You are viewing documentation for a release that is no longer maintained. To view the documentation for the most recent version, see the latest RHACS docs.
5.4.3. 策略标准
在 Policy Criteria 部分中,您可以配置要触发策略的数据。
您可以根据下表中列出的属性来配置策略。
在此表中:
正则表达式 、AND、OR 和 not 列指示您可以使用正则表达式和其他逻辑运算符以及特定属性。
-
!
在 Regular 表达式 列中,表示您只能对列出的字段使用正则表达式。 -
!
在 AND 中,OR 列表示您只能对属性使用上述逻辑运算符。
-
- RHACS 版本 列显示必须使用该属性的 Red Hat Advanced Cluster Security for Kubernetes 的版本。
您不能使用逻辑组合运算符
AND
和 或
来获得以下属性:-
布尔值
true
和false
最小值语义,例如:
- 最低 RBAC 权限
- 自镜像创建以来的天数
-
布尔值
您不能将
NOT
逻辑运算符用于具有以下内容的属性:-
布尔值
true
和false
-
已使用比较的数字值,如 < , >
;
, <
;= ,>=
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 中镜像的完整名称,如 | All | ✓ | ✓ | ✓ | 部署 |
镜像标签 | 镜像的标识符。 | All | ✓ | ✓ | ✓ | 部署 |
自镜像创建以来的天数 | 镜像创建日期的天数。 | All | ✕ | ✕ | ✕ | Build |
自镜像最后一次扫描的天数 | 最后一次镜像扫描以来的天数。 | All | ✕ | ✕ | ✕ | Build |
Dockerfile 行 | Dockerfile 中的特定行,包括 instructions 和 参数。 | All | ! 仅用于值 | ✕ | ✓ | Build |
镜像没有扫描 | 镜像没有可用的扫描数据。 | All | ✕ | ✕ | ✕ | Build |
CVSS |
通用漏洞评分系统,使用它来匹配带有分数大于 > 的漏洞、小于 <,或等于 | All | ✕ | ✕ | ✓ | Build |
修复了人 | 一个软件包的版本字符串,用于修复镜像中标记的漏洞。 | All | ✓ | ✓ | ✓ | Build |
CVE | 常见的漏洞和风险,将其与特定的 CVE 数字一起使用。 | All | ✓ | ✓ | ✓ | Build |
镜像组件 | 镜像中存在的特定软件组件的名称和版本号。 | All | ✓ | ✕ | ✓ | Build |
镜像操作系统 | 镜像的基本操作系统的名称和版本号。 | 3.0.47 及更新版本 | ✓ | ✓ | ✓ | Build |
环境变量 | 按名称或值检查环境变量。 | All | ! 仅用于键和值 | ✕ | ✓ | 部署 |
禁止注解 | 注解不允许在指定环境中的 Kubernetes 资源上存在。 | All | ✓ | ✕ | ✓ | 部署 |
禁止的镜像标签 |
检查是否有不应使用的 Docker 镜像标签。如果部署中的任何镜像具有指定标签,策略会触发。您可以将正则表达式用于 | 3.0.40 及更新版本 | ✓ | ✕ | ✓ | 部署 |
所需的镜像标签 |
检查是否存在所需的 Docker 镜像标签。如果部署中的任何镜像没有指定标签,策略会触发。您可以将正则表达式用于 | 3.0.40 及更新版本 | ✓ | ✕ | ✓ | 部署 |
所需标签 | 检查 Kubernetes 中存在所需标签。 | All | ✓ | ✕ | ✓ | 部署 |
所需注解 | 检查 Kubernetes 中存在所需注解。 | All | ✓ | ✕ | ✓ | 部署 |
卷名称 | 存储的名称。 | All | ✓ | ✓ | ✓ | 部署 |
卷源 |
指明置备卷的形式。例如: | All | ✓ | ✓ | ✓ | 部署 |
卷目的地 | 挂载卷的路径。 | All | ✓ | ✓ | ✓ | 部署 |
卷类型 | 卷的类型。 | All | ✓ | ✓ | ✓ | 部署 |
可写卷 | 挂载为可写的卷。 | All | ✕ | ✕ | ✕ | 部署 |
协议 | 由公开端口使用的协议,如 TCP 或 UDP。 | All | ✓ | ✓ | ✓ | 部署 |
端口 | 由部署公开的端口号。 | All | ✕ | ✓ | ✓ | 部署 |
privileged | 运行特权的部署。 | All | ✕ | ✕ | ✕ | 部署 |
只读根文件系统 | 使用 root 文件系统运行的容器配置为只读。 | All | ✕ | ✕ | ✕ | 部署 |
丢弃功能 |
必须从容器中丢弃的 Linux 功能。例如 | 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 操作的名称,如 | 3.0.55 及更新版本 | ✕ | ✕ |
!仅限 | Runtime |
Kubernetes 资源 |
所访问的 Kubernetes 资源的名称,如 | 3.63 及更新版本 | ✕ | ✕ |
!仅限 | Runtime |
Kubernetes 资源名称 | 访问的 Kubernetes 资源的名称。 | 3.63 及更新版本 | ✓ | ✓ |
!仅限 | Runtime |
Kubernetes API Verb |
用于访问资源的 Kubernetes API 动词,如 | 3.63 及更新版本 | ✕ | ✕ |
!仅限 | Runtime |
Kubernetes 用户名 | 访问该资源的用户名称。 | 3.63 及更新版本 | ✓ | ✓ |
!仅限 | Runtime |
Kubernetes 用户组 | 访问资源所属用户的组名称。 | 3.63 及更新版本 | ✓ | ✕ |
!仅限 | Runtime |
用户代理 |
用户用于访问该资源的用户代理。例如 | 3.63 及更新版本 | ✓ | ✓ |
!仅限 | Runtime |
源 IP 地址 | 用户从中访问该资源的 IP 地址。 | 3.63 及更新版本 | ✓ | ✓ |
!仅限 | 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 或更新版本。
流程
在 Policy Criteria 部分中,选择 Add a new condition 以添加新策略部分。
- 您可以点击 Edit 图标来重命名 policy 部分。
- Drag out a policy 字段 部分列出了多个类别的可用策略标准。您可以展开和折叠这些类别,以查看策略标准属性。
- 将属性拖动到 policy 部分的 Drop a policy 字段。
根据您选择的属性类型,您可以获得不同的选项来配置所选属性的条件。例如:
-
如果您选择了一个布尔值
Read-Only Root Filesystem
的属性,您会看到READ-ONLY
和WRITABLE
选项。 如果您选择了一个带有复合值
环境变量 的属性
,您将看到为Key
、Value
、Value From
字段的值以及为可用选项添加更多值的选项。- 要组合多个属性的值,点 Add 图标。
-
您还可以单击策略部分中列出的逻辑运算符
AND
或OR
,以在AND
和OR
运算符之间切换。在 Operator 之间切换只在策略部分中正常工作,而不在两个不同的策略部分之间进行切换。
-
如果您选择了一个布尔值
-
您可以通过重复这些步骤来指定多个
AND
和OR
条件。为添加的属性配置条件后,点 Next 继续创建策略。