×

能够即时查找资源对于保护您的集群非常重要。使用 Red Hat Advanced Cluster Security for Kubernetes 搜索功能可以更快地找到相关的资源。例如,您可以使用它来查找暴露于新发布的 CVE 的部署,或查找所有具有外部网络暴露的部署。

搜索语法

搜索查询由两部分组成

  • 一个属性,用于标识您要搜索的资源类型。

  • 一个搜索词,用于查找匹配的资源。

例如,要查找 `visa-processor` 部署中的所有违规项,搜索查询为 `Deployment:visa-processor`。在此搜索查询中,`Deployment` 是属性,`visa-processor` 是搜索词。

您必须先选择一个属性,然后才能使用搜索词。但是,在某些视图(例如 **风险** 视图和 **违规** 视图)中,Red Hat Advanced Cluster Security for Kubernetes 会根据您输入的搜索词自动应用相关的属性。

  • 您可以在查询中使用多个属性。当您使用多个属性时,结果仅包含匹配所有属性的项目。

    示例

    当您搜索 `Namespace:frontend CVE:CVE-2018-11776` 时,它只返回 `frontend` 命名空间中违反 CVE-2018-11776 的那些资源。

  • 您可以为每个属性使用多个搜索词。当您使用多个搜索词时,结果将包含匹配任何搜索词的所有项目。

    示例

    如果使用搜索查询`Namespace: frontend backend`,则会返回命名空间`frontend`或`backend`中的匹配结果。

  • 可以组合多个属性和搜索词对。

    示例

    搜索查询`Cluster:production Namespace:frontend CVE:CVE-2018-11776`将返回`production`集群中`frontend`命名空间下违反CVE-2018-11776的所有资源。

  • 搜索词可以是单词的一部分,在这种情况下,Red Hat Advanced Cluster Security for Kubernetes将返回所有匹配的结果。

    示例

    如果搜索`Deployment:def`,结果将包含所有以`def`开头的部署。

  • 要显式搜索特定术语,请使用引号中的搜索词。

    示例

    搜索`Deployment:"def"`时,结果仅包含部署`def`。

  • 还可以使用正则表达式,在搜索词前使用`r/`。

    示例

    搜索`Namespace:r/st.*x`时,结果将包含来自命名空间`stackrox`和`stix`的匹配项。

  • 使用`!`表示您不希望在结果中出现的搜索词。

    示例

    如果搜索`Namespace:!stackrox`,结果将包含来自所有命名空间的匹配项,但`stackrox`命名空间除外。

  • 使用比较运算符`>`、`<`、`=`、`>=`或`<=`来匹配特定值或值范围。

    示例

    如果搜索`CVSS:>=6`,结果将包含所有常见漏洞评分系统 (CVSS) 分数为6或更高的漏洞。

搜索自动完成

输入查询时,Red Hat Advanced Cluster Security for Kubernetes会自动显示属性和搜索词的相关建议。

使用全局搜索

使用全局搜索,您可以搜索环境中所有资源。根据您在搜索查询中使用的资源类型,结果将分为以下几类:

  • 所有结果(列出所有类别中的匹配结果)

  • 集群

  • 部署

  • 镜像

  • 命名空间

  • 节点

  • 策略

  • 策略类别[1]

  • 角色

  • 角色绑定

  • 密钥

  • 服务账号

  • 用户和组

  • 违规

  1. 只有在使用以下情况时,才会显示**策略类别**选项:

    • 在Red Hat Advanced Cluster Security for Kubernetes (RHACS)中使用PostgreSQL作为后端数据库。

    • Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service)。

这些类别在RHACS门户全局搜索页面上以表格形式列出,您可以单击类别名称来识别属于所选类别的结果。

要在RHACS门户中进行全局搜索,请选择**搜索**。

使用本地页面过滤

您可以在RHACS门户中的所有视图中使用本地页面过滤。本地页面过滤的工作方式类似于全局搜索,但仅提供相关的属性。您可以选择搜索栏以显示特定视图的所有可用属性。

常见搜索查询

以下是一些可以使用Red Hat Advanced Cluster Security for Kubernetes运行的常见搜索查询。

查找受特定CVE影响的部署

查询 示例

CVE:<CVE_编号>

CVE:CVE-2018-11776

查找以特权方式运行的部署

查询 示例

Privileged:<true_or_false>

Privileged:true

查找具有外部网络访问的部署

查询 示例

Exposure Level:<级别>

Exposure Level:External

查找运行特定进程的部署

查询 示例

Process Name:<进程名称>

Process Name:bash

查找具有严重但可修复漏洞的部署

查询 示例

CVSS:<表达式和分数>

CVSS:>=6 Fixable:.*

查找通过环境变量暴露密码的部署

查询 示例

Environment Key:<查询>

Environment Key:r/.*pass.*

查找在其内部包含特定软件组件的正在运行的部署

查询 示例

Component:<组件名称>

Component:libgpg-errorComponent:sudo

查找用户或组

使用Kubernetes 标签和选择器以及注释将元数据附加到您的部署。然后,您可以根据应用的注释和标签进行查询,以识别个人或组。

查找拥有特定部署的用户

查询 示例

Deployment:<部署名称> Label:<键值>Deployment:<部署名称> Annotation:<键值>

Deployment:app-server Label:team=backend

查找谁正在从公共注册表部署镜像

查询 示例

Image Registry:<注册表名称> Label:<键值>Image Registry:<注册表名称> Annotation:<键值>

Image Registry:docker.io Label:team=backend

查找谁正在部署到默认命名空间

查询 示例

Namespace:default Label:<键值>Namespace:default Annotation:<键值>

Namespace:default Label:team=backend

搜索属性

以下是您在Red Hat Advanced Cluster Security for Kubernetes中搜索和过滤时可以使用的一些搜索属性列表。

属性 描述

添加功能

为容器提供额外的Linux功能,例如修改文件或执行网络操作的能力。

注释

附加到编排器对象的任意非标识元数据。

CPU核心限制

资源允许使用的最大核心数。

CPU核心请求

为给定资源保留的最小核心数。

CVE

常见漏洞和披露,与特定的CVE编号一起使用。

CVSS

通用漏洞评分系统,与CVSS分数以及大于(>)、小于(<)或等于(=)符号一起使用。

类别

策略类别包括DevOps最佳实践、安全最佳实践、权限、漏洞管理、多个以及您创建的任何自定义策略类别。

证书过期

证书过期日期。

集群

Kubernetes或OpenShift Container Platform集群的名称。

集群ID

Kubernetes或OpenShift Container Platform集群的唯一ID。

集群角色

使用true搜索集群范围的角色,使用false搜索命名空间范围的角色。

组件

软件(守护进程、docker)、对象(镜像、容器、服务)、注册表(Docker镜像的存储库)。

组件计数

镜像中组件的数量。

组件版本

软件、对象或注册表的版本。

创建时间

秘密对象创建的时间和日期。

部署

部署的名称。

部署类型

部署所基于的 Kubernetes 控制器类型。

描述

部署的描述。

Dockerfile 指令关键字

镜像中 Dockerfile 指令中的关键字。

Dockerfile 指令值

镜像中 Dockerfile 指令中的值。

删除的功能

已从容器中删除的 Linux 功能。例如 CAP_SETUIDCAP_NET_RAW

执行

分配给部署的执行类型。例如,“无”、“缩放到零副本”或“添加不可满足的节点约束”。

环境键

标签键值字符串的关键部分,是用于进一步标识和组织容器环境的元数据。

环境值

标签键值字符串的值部分,是用于进一步标识和组织容器环境的元数据。

公开的节点端口

公开的节点端口的端口号。

公开的服务

公开服务的名称。

公开的服务端口

公开服务的端口号。

公开级别

部署端口的公开类型,例如 externalnode

外部主机名

部署的外部端口公开的主机名。

外部IP

部署的外部端口公开的IP地址。

可修复的 CVE 数量

镜像上可修复的 CVE 数量。

已修复

修复镜像中标记的漏洞的软件包的版本字符串。

镜像

镜像的名称。

镜像命令

镜像中指定的命令。

镜像创建时间

创建镜像的时间和日期。

镜像入口点

镜像中指定的入口点命令。

镜像拉取密钥

拉取镜像时使用的密钥名称,如部署中指定。

镜像拉取密钥注册表

镜像拉取密钥的注册表名称。

镜像注册表

镜像注册表的名称。

远程镜像

远程可访问镜像的指示。

镜像扫描时间

上次扫描镜像的时间和日期。

镜像标签

镜像的标识符。

镜像用户

容器镜像运行时配置使用的用户或组的名称。

镜像卷

容器镜像中配置的卷的名称。

非活动部署

使用 true 搜索非活动部署,使用 false 搜索活动部署。

标签

标签键值字符串的关键部分,是用于进一步标识和组织镜像、容器、守护程序、卷、网络和其他资源的元数据。

生命周期阶段

配置此策略或触发警报的生命周期阶段类型。

最大公开级别

对于部署,所有给定端口/服务的最大网络公开级别。

内存限制 (MB)

资源允许使用的最大内存量。

内存请求 (MB)

为给定资源保留的最小内存量。

命名空间

命名空间的名称。

命名空间ID

部署上包含命名空间对象的唯一ID。

节点

节点的名称。

节点ID

节点的唯一ID。

Pod标签

附加到单个 Pod 的单个标识元数据。

策略

安全策略的名称。

端口

部署公开的端口号。

端口协议

公开端口使用的 IP 协议,例如 TCP 或 UDP。

优先级

部署的风险优先级。(仅在**风险**视图中可用。)

特权

使用 true 搜索以特权方式运行的部署,否则使用 false

进程祖先

部署中进程指示器的任何父进程的名称。

进程参数

部署中进程指示器的命令参数。

进程名称

部署中进程指示器的进程名称。

进程路径

部署中进程指示器的容器中二进制文件的路径。

进程UID

部署中进程指示器的 Unix 用户 ID。

只读根文件系统

使用 true 搜索以只读方式配置根文件系统的容器。

角色

Kubernetes RBAC 角色的名称。

角色绑定

Kubernetes RBAC 角色绑定的名称。

角色ID

Kubernetes RBAC 角色绑定绑定的角色 ID。

密钥

保存敏感信息的密钥对象的名称。

密钥路径

文件系统中密钥对象的路径。

密钥类型

密钥的类型,例如证书或 RSA 公钥。

服务账户

服务帐户或部署的服务帐户名称。

严重性

违规重要性级别指示:严重、高、中、低。

主体

Kubernetes RBAC 中主体的名称。

主体类型

Kubernetes RBAC 中主体的类型,例如 SERVICE_ACCOUNTUSERGROUP

污点效果

当前应用于节点的污点类型。

污点键

当前应用于节点的污点的键。

污点值

当前应用于节点的污点的允许值。

容忍键

应用于部署的容忍的键。

容忍值

应用于部署的容忍的值。

违规

当策略指定的条件未满足时,在**违规**页面中显示的通知。

违规状态

使用它来搜索已解决的违规。

违规时间

违规首次发生的时间和日期。

卷目标

数据卷的挂载路径。

卷名称

存储的名称。

卷只读

使用 true 搜索以只读方式挂载的卷。

卷源

指示卷的配置方式(例如,persistentVolumeClaimhostPath)。

卷类型

卷的类型。