5.4.3. 策略标准


Policy Criteria 部分中,您可以配置要触发策略的数据。

您可以根据下表中列出的属性来配置策略。

在此表中:

  • 正则表达式 、AND、OR 和 not 列指示您可以使用正则表达式和其他逻辑运算符以及特定属性。

    • !Regular 表达式 列中,表示您只能对列出的字段使用正则表达式。
    • !AND 中,OR 列表示您只能对属性使用上述逻辑运算符。
  • RHACS 版本 列显示必须使用该属性的 Red Hat Advanced Cluster Security for Kubernetes 的版本。
  • 您不能使用逻辑组合运算符 AND 和 或 来获得以下属性:

    • 布尔值 truefalse
    • 最小值语义,例如:

      • 最低 RBAC 权限
      • 自镜像创建以来的天数
  • 您不能将 NOT 逻辑运算符用于具有以下内容的属性:

    • 布尔值 truefalse
    • 已使用比较的数字值,如 < , &gt ;, & lt;= , >= operator。
    • 可以有多个值的复合条件,例如:

      • Dockerfile 行,其中包括 instructions 和 参数。
      • 环境变量,由名称和值组成。
    • 其他含义,包括 添加功能Drop Capabilities自镜像创建起日,以及 自镜像上次扫描起的天数
注意

要使用逻辑运算符 AND 而不要 创建安全策略,您需要 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.45 或更新版本。但是,在早期版本中,您仍然可以将正则表达式用于 Regular 表达式 列中列出的字段。

属性描述RHACS 版本正则表达式NOT和,或者阶段

命名空间

命名空间的名称。

3.0.51 及更新版本

部署

镜像 Registry

镜像 registry 的名称。

All

部署

镜像远程

registry 中镜像的完整名称,如 library/nginx

All

部署

镜像标签

镜像的标识符。

All

部署

自镜像创建以来的天数

镜像创建日期的天数。

All

Build

自镜像最后一次扫描的天数

最后一次镜像扫描以来的天数。

All

Build

Dockerfile 行

Dockerfile 中的特定行,包括 instructions 和 参数。

All

! 仅用于值

Build

镜像没有扫描

镜像没有可用的扫描数据。

All

Build

CVSS

通用漏洞评分系统,使用它来匹配带有分数大于 > 的漏洞、小于 <,或等于 = 指定的 CVSS 的漏洞。

All

Build

修复了人

一个软件包的版本字符串,用于修复镜像中标记的漏洞。

All

Build

CVE

常见的漏洞和风险,将其与特定的 CVE 数字一起使用。

All

Build

镜像组件

镜像中存在的特定软件组件的名称和版本号。

All

Build

镜像操作系统

镜像的基本操作系统的名称和版本号。

3.0.47 及更新版本

Build

环境变量

按名称或值检查环境变量。

All

! 仅用于键和值

部署

禁止注解

注解不允许在指定环境中的 Kubernetes 资源上存在。

All

部署

禁止的镜像标签

检查是否有不应使用的 Docker 镜像标签。如果部署中的任何镜像具有指定标签,策略会触发。您可以将正则表达式用于 键和值 字段来匹配标签。Disallowed Image Label 策略条件仅在与 Docker registry 集成时才有效。

3.0.40 及更新版本

部署

所需的镜像标签

检查是否存在所需的 Docker 镜像标签。如果部署中的任何镜像没有指定标签,策略会触发。您可以将正则表达式用于 键和值 字段来匹配标签。只有在与 Docker registry 集成时,所需的镜像标签 策略标准才起作用。

3.0.40 及更新版本

部署

所需标签

检查 Kubernetes 中存在所需标签。

All

部署

所需注解

检查 Kubernetes 中存在所需注解。

All

部署

卷名称

存储的名称。

All

部署

卷源

指明置备卷的形式。例如: persistentVolumeClaimhostPath

All

部署

卷目的地

挂载卷的路径。

All

部署

卷类型

卷的类型。

All

部署

可写卷

挂载为可写的卷。

All

部署

协议

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

All

部署

端口

由部署公开的端口号。

All

部署

privileged

运行特权的部署。

All

部署

只读根文件系统

使用 root 文件系统运行的容器配置为只读。

All

部署

丢弃功能

必须从容器中丢弃的 Linux 功能。例如 CAP_SETUIDCAP_NET_RAW

All

部署

添加功能

不得添加到容器中的 Linux 功能,例如发送原始数据包或覆盖文件权限的功能。

All

部署

进程名称

在部署中执行的进程的名称。

All

Runtime

Process Ancestor

在部署中执行的进程的任何父进程的名称。

All

Runtime

进程参数

在部署中执行的进程的命令参数。

All

Runtime

进程 UID

在部署中执行的进程的 UNIX 用户 ID。

All

Runtime

端口公开

服务的方法,如负载均衡器或节点端口。

All

部署

服务帐户

服务帐户的名称。

All

部署

可写主机挂载

资源在主机上挂载了具有写入权限的路径。

All

部署

执行意外进程

检查部署锁定的进程基准中没有列出哪些进程执行的部署。

All

Runtime

最低 RBAC 权限

如果部署的 Kubernetes 服务帐户的 Kubernetes RBAC 权限级别等于 = 或更高 > 所指定级别,则匹配。

All

部署

容器名称

容器的名称。

3.0.52 及更新版本

部署

容器 CPU 请求

检查为给定资源保留的内核数。

All

部署

容器 CPU 限制

检查允许使用的资源的最大内核数。

All

部署

容器内存请求

检查为给定资源保留的内存量。

All

部署

容器内存限制

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

All

部署

Kubernetes 操作

Kubernetes 操作的名称,如 Pod Exec

3.0.55 及更新版本

!仅限 OR

Runtime

Kubernetes 资源

所访问的 Kubernetes 资源的名称,如 configmapssecret

3.63 及更新版本

!仅限 OR

Runtime

Kubernetes 资源名称

访问的 Kubernetes 资源的名称。

3.63 及更新版本

!仅限 OR

Runtime

Kubernetes API Verb

用于访问资源的 Kubernetes API 动词,如 GETPOST

3.63 及更新版本

!仅限 OR

Runtime

Kubernetes 用户名

访问该资源的用户名称。

3.63 及更新版本

!仅限 OR

Runtime

Kubernetes 用户组

访问资源所属用户的组名称。

3.63 及更新版本

!仅限 OR

Runtime

用户代理

用户用于访问该资源的用户代理。例如 oc、或 kubectl

3.63 及更新版本

!仅限 OR

Runtime

源 IP 地址

用户从中访问该资源的 IP 地址。

3.63 及更新版本

!仅限 OR

Runtime

是 Impersonated 用户

检查请求是否由服务帐户或者其它帐户模拟的用户进行。

3.63 及更新版本

Runtime

Runtime Class

部署 RuntimeClass。

3.67 及更新版本

部署

自动挂载服务帐户令牌

检查部署配置是否自动挂载服务帐户令牌。

3.68 及更新版本

部署

存活度(Liveness)探测

容器是否定义了存活度探测。

3.69 及更新版本

部署

就绪度(Readiness)探测

容器是否定义了就绪度探测。

3.69 及更新版本

部署

Replicas

部署副本数。

3.69 及更新版本

部署

注意

如果您使用 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.44 或更早的版本,则您在 Policy 条件 部分中指定的策略条件为 "AND"ed。这意味着,在所有指定的策略条件匹配时才会违反触发器。

5.4.3.1. 为策略条件添加逻辑条件

您可以使用拖放策略字段面板为策略标准指定逻辑条件。

先决条件

  • 您必须使用 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.45 或更新版本。

流程

  1. Policy Criteria 部分中,选择 Add a new condition 以添加新策略部分。

    • 您可以点击 Edit 图标来重命名 policy 部分。
    • Drag out a policy 字段 部分列出了多个类别的可用策略标准。您可以展开和折叠这些类别,以查看策略标准属性。
  2. 将属性拖动到 policy 部分的 Drop a policy 字段
  3. 根据您选择的属性类型,您可以获得不同的选项来配置所选属性的条件。例如:

    • 如果您选择了一个布尔值 Read-Only Root Filesystem 的属性,您会看到 READ-ONLYWRITABLE 选项。
    • 如果您选择了一个带有复合值 环境变量 的属性,您将看到为 KeyValueValue From 字段的值以及为可用选项添加更多值的选项。

      1. 要组合多个属性的值,点 Add 图标。
      2. 您还可以单击策略部分中列出的逻辑运算符 ANDOR,以在 ANDOR 运算符之间切换。在 Operator 之间切换只在策略部分中正常工作,而不在两个不同的策略部分之间进行切换。
  4. 您可以通过重复这些步骤来指定多个 ANDOR 条件。为添加的属性配置条件后,点 Next 继续创建策略。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.