部分:镜像注册表 |
镜像注册表 |
镜像注册表的名称。 |
镜像注册表 |
字符串 |
正则表达式, 非, 与,或 |
构建,
部署,
运行时(与运行时标准一起使用时) |
镜像名称 |
注册表中镜像的全名,例如library/nginx 。 |
镜像远程地址 |
字符串 |
正则表达式, 非, 与,或 |
构建,
部署,
运行时(与运行时标准一起使用时) |
镜像标签 |
镜像标识符。 |
镜像标签 |
字符串 |
正则表达式, 非, 与,或 |
构建,
部署,
运行时(与运行时标准一起使用时) |
镜像签名 |
您可以用来验证镜像签名的签名集成列表。针对那些没有签名或其签名无法由至少一个提供的签名集成验证的镜像创建警报。 |
镜像签名验证者 |
已配置的镜像签名集成的有效 ID |
!仅或 |
构建,
部署,
运行时(与运行时标准一起使用时) |
部分:镜像内容 |
常见漏洞和披露 (CVE) 可修复 |
只有当您正在评估的部署中的镜像具有可修复的 CVE 时,此标准才会导致违规。 |
可修复 |
布尔值 |
✕ |
构建,
部署,
运行时(与运行时标准一起使用时) |
自 CVE 首次在镜像中发现以来的天数 |
只有当自 RHACS 在特定镜像中发现 CVE 以来超过指定天数时,此标准才会导致违规。 |
自 CVE 首次在镜像中发现以来的天数 |
整数 |
✕ |
构建,
部署,
运行时(与运行时标准一起使用时) |
自 CVE 首次在系统中发现以来的天数 |
只有当自 RHACS 在 RHACS 监控的所有集群中的所有已部署镜像中发现 CVE 以来超过指定天数时,此标准才会导致违规。 |
自 CVE 首次在系统中发现以来的天数 |
整数 |
✕ |
构建,
部署,
运行时(与运行时标准一起使用时) |
镜像年龄 |
自镜像创建日期起的最小天数。 |
镜像年龄 |
整数 |
✕ |
构建,
部署,
运行时(与运行时标准一起使用时) |
镜像扫描年龄 |
自镜像上次扫描以来的最小天数。 |
镜像扫描年龄 |
整数 |
✕ |
构建,
部署,
运行时(与运行时标准一起使用时) |
镜像用户 |
与 Dockerfile 中的 USER 指令匹配。有关详细信息,请参见http://docs.docker.net.cn/engine/reference/builder/#user。 |
镜像用户 |
字符串 |
正则表达式, 非, 与,或 |
构建,
部署,
运行时(与运行时标准一起使用时) |
Dockerfile 行 |
Dockerfile 中的特定行,包括指令和参数。 |
Dockerfile 行 |
以下之一:LABEL、RUN、CMD、EXPOSE、ENV、ADD、COPY、ENTRYPOINT、VOLUME、USER、WORKDIR、ONBUILD |
!仅对值使用正则表达式, 与,或 |
构建,
部署,
运行时(与运行时标准一起使用时) |
镜像扫描状态 |
检查是否扫描了镜像。 |
未扫描的镜像 |
布尔值 |
✕ |
构建,
部署,
运行时(与运行时标准一起使用时) |
通用漏洞评分系统 (CVSS) |
CVSS:使用它来匹配漏洞分数大于> 、小于< 或等于= 指定 CVSS 的镜像。 |
CVSS |
<、>、<=、>= 或无(这意味着等于) ——和—— 十进制数(一个带有可选小数部分的数字)。
示例 ≥5,或
9.5 |
与,或 |
构建,
部署,
运行时(与运行时标准一起使用时) |
严重性 |
基于 CVSS 或供应商的漏洞严重性。可以是低、中、重要或严重之一。 |
严重性 |
<,>,⇐,>= 或无(表示等于) ——和—— 其中之一 未知 低 中 重要 严重
示例 ≥重要,或 严重 |
与,或 |
构建,
部署,
运行时(与运行时标准一起使用时) |
已修复版本 |
修复镜像中标记漏洞的软件包的版本字符串。此标准可与其他识别漏洞的标准一起使用,例如使用 CVE 标准。 |
已修复版本 |
字符串 |
正则表达式, 非, 与,或 |
构建,
部署,
运行时(与运行时标准一起使用时) |
CVE |
常见漏洞和披露,与具体的 CVE 编号一起使用。 |
CVE |
字符串 |
正则表达式, 非, 与,或 |
构建,
部署,
运行时(与运行时标准一起使用时) |
镜像组件 |
镜像中特定软件组件的名称和版本号。 |
镜像组件 |
键=值
值是可选的。
如果值缺失,则格式必须为“键=”。 |
正则表达式, 与,或 |
构建,
部署,
运行时(与运行时标准一起使用时) |
镜像操作系统 |
镜像的基础操作系统的名称和版本号。例如,alpine:3.17.3 |
镜像操作系统 |
字符串 |
正则表达式, 非, 与,或 |
构建,
部署,
运行时(与运行时标准一起使用时) |
需要镜像标签 |
确保 Docker 镜像标签存在。如果部署中的任何镜像都不具有指定的标签,则策略将触发。您可以对键和值字段都使用正则表达式来匹配标签。“需要镜像标签”策略标准只有在与 Docker 注册表集成时才有效。有关 Docker 标签的详细信息,请参阅 Docker 文档,http://docs.docker.net.cn/config/labels-custom-metadata/。 |
必需的镜像标签 |
键=值
值是可选的。
如果值缺失,则格式必须为“键=”。 |
正则表达式, 与,或 |
构建,
部署,
运行时(与运行时标准一起使用时) |
禁止镜像标签 |
确保不使用特定的 Docker 镜像标签。如果部署中的任何镜像都具有指定的标签,则策略将触发。您可以对键和值字段都使用正则表达式来匹配标签。“禁止镜像标签”策略标准只有在与 Docker 注册表集成时才有效。有关 Docker 标签的详细信息,请参阅 Docker 文档,http://docs.docker.net.cn/config/labels-custom-metadata/。 |
禁止的镜像标签 |
键=值
值是可选的。
如果值缺失,则格式必须为“键=”。 |
正则表达式, 与,或 |
构建,
部署,
运行时(与运行时标准一起使用时) |
部分:容器配置 |
环境变量 |
按名称或值检查环境变量。创建包含环境变量属性的策略时,可以选择策略应匹配哪些类型的环境变量。例如,您可以指定原始值(直接在部署 YAML 中提供),也可以指定对来自配置映射、密钥、字段或资源请求或限制的值的引用。对于直接在部署 YAML 中指定的原始值以外的任何类型,策略规则的相应value 属性将被忽略。在这种情况下,策略匹配将根据指定环境变量类型的存在情况进行评估。此外,此标准禁止为原始值以外的类型创建具有非空value 属性的策略。 |
环境变量 |
RAW=key=value 用于匹配直接在部署 YAML 中使用特定键和值指定的环境变量。您可以省略value 属性以仅匹配键。
如果环境变量未在配置 YAML 中定义,则可以使用格式SOURCE=KEY ,其中SOURCE 是以下对象之一
-
SECRET_KEY (SecretKeyRef)
-
CONFIG_MAP_KEY (ConfigMapRef)
-
FIELD (FieldRef)
-
RESOURCE_FIELD (ResourceFieldRef)
以上列表首先提供 API 对象标签,然后提供括号中的用户界面标签。
|
!仅对键和值使用正则表达式(如果使用 RAW) 与,或 |
部署,
运行时(与运行时标准一起使用时) |
容器 CPU 请求 |
检查为给定资源保留的核心数。 |
容器 CPU 请求 |
<,>,⇐,>= 或无(表示等于) ——和—— 十进制数(带可选小数部分的数字)
示例 ≥5,或
9.5 |
与,或 |
部署,
运行时(与运行时标准一起使用时) |
容器 CPU 限制 |
检查资源允许使用的最大核心数。 |
容器 CPU 限制 |
(与容器 CPU 请求相同) |
与,或 |
部署,
运行时(与运行时标准一起使用时) |
容器内存请求 |
请求的 MB 数,包括小数部分。 |
容器内存请求 |
(与容器 CPU 请求相同) |
与,或 |
部署,
运行时(与运行时标准一起使用时) |
容器内存限制 |
检查资源允许使用的最大内存量。 |
容器内存限制 |
(与容器 CPU 请求相同) |
与,或 |
部署,
运行时(与运行时标准一起使用时) |
特权容器 |
检查部署是否以特权模式配置。此标准仅检查相应Pod 安全上下文中privileged 字段的值。 |
特权容器 |
布尔值:当相应PodSecurityContext 中privileged 字段的值设置为true 时为true |
✕ |
部署,
运行时(与运行时标准一起使用时) |
根文件系统可写性 |
检查部署是否以readOnlyFilesystem 模式配置。 |
只读根文件系统 |
布尔值:当相应PodSecurityContext 中readOnlyRootFilesystem 字段的值设置为true 时为true |
✕ |
部署,
运行时(与运行时标准一起使用时) |
Seccomp 配置文件类型 |
为部署定义的seccomp 配置文件类型。如果在 Pod 和容器级别都提供了seccomp 选项,则容器选项将覆盖 Pod 选项。参见安全上下文。 |
Seccomp 配置文件类型 |
其中之一
不受限制 运行时默认 本地主机 |
✕ |
部署,
运行时(与运行时标准一起使用时) |
权限提升 |
当部署允许容器进程获得比其父进程更多权限时提供警报。 |
允许权限提升 |
布尔值 |
✕ |
部署,
运行时(与运行时标准一起使用时) |
删除功能 |
必须从容器中删除的 Linux 功能。当未删除指定的权限时提供警报。例如,如果配置了SYS_ADMIN 和SYS_BOOT ,并且部署仅删除了这两个功能中的一个或都不删除,则会发生警报。 |
删除功能
|
其中之一
全部 审核控制 审核读取 审核写入 阻止挂起 CHOWN DAC 覆盖 DAC 读取搜索 FOWNER FSETID IPC 锁 IPC 所有者 KILL 租赁 LINUX 不可变 MAC 管理 MAC 覆盖 MKNOD 网络管理 网络绑定服务 网络广播 网络原始 SETGID SETFCAP SETPCAP SETUID 系统管理员 系统启动 系统CHROOT 系统模块 系统优先级 系统PACCT 系统PTRACE 系统原始IO 系统资源 系统时间 系统TTY配置 系统日志 唤醒警报
|
和 |
部署,
运行时(与运行时标准一起使用时) |
添加功能 |
不能添加到容器的 Linux 功能,例如发送原始数据包或覆盖文件权限的功能。当添加指定的权限时提供警报。例如,如果配置了NET_ADMIN 或NET_RAW ,并且部署清单 YAML 文件包含这两个功能中的至少一个,则会发生警报。 |
添加功能 |
审核控制 审核读取 审核写入 阻止挂起 CHOWN DAC 覆盖 DAC 读取搜索 FOWNER FSETID IPC 锁 IPC 所有者 KILL 租赁 LINUX 不可变 MAC 管理 MAC 覆盖 MKNOD 网络管理 网络绑定服务 网络广播 网络原始 SETGID SETFCAP SETPCAP SETUID 系统管理员 系统启动 系统CHROOT 系统模块 系统PACCT 系统PTRACE 系统原始IO 系统资源 系统时间 系统TTY配置 系统日志 唤醒警报
|
或 |
部署,
运行时(与运行时标准一起使用时) |
容器名称 |
容器的名称。 |
容器名称 |
字符串 |
正则表达式, 非, 与,或 |
部署,
运行时(与运行时标准一起使用时) |
AppArmor 配置文件 |
容器中使用的 Application Armor (“AppArmor”) 配置文件。 |
AppArmor 配置文件 |
字符串 |
正则表达式, 非, 与,或 |
部署,
运行时(与运行时标准一起使用时) |
存活性探针 |
容器是否定义了存活性探针。 |
存活性探针 |
布尔值 |
✕ |
部署,
运行时(与运行时标准一起使用时) |
就绪性探针 |
容器是否定义了就绪性探针。 |
就绪性探针 |
布尔值 |
✕ |
部署,
运行时(与运行时标准一起使用时) |
部分:部署元数据 |
禁止的注释 |
不允许在指定环境中的 Kubernetes 资源上存在的注释。 |
禁止的注释 |
键=值
值是可选的。
如果值缺失,则格式必须为“键=”。 |
正则表达式, 与,或 |
部署,
运行时(与运行时标准一起使用时) |
必需的标签 |
检查 Kubernetes 中所需标签的存在。 |
必需的标签 |
键=值
值是可选的。
如果值缺失,则格式必须为“键=”。 |
正则表达式, 与,或 |
部署,
运行时(与运行时标准一起使用时) |
必需的注释 |
检查 Kubernetes 中所需注释的存在。 |
必需的注释 |
键=值
值是可选的。
如果值缺失,则格式必须为“键=”。 |
正则表达式, 与,或 |
部署,
运行时(与运行时标准一起使用时) |
运行时类 |
部署的RuntimeClass 。 |
运行时类 |
字符串 |
正则表达式, 非, 与,或 |
部署,
运行时(与运行时标准一起使用时) |
主机网络 |
检查是否启用了HostNetwork ,这意味着容器未放置在单独的网络堆栈中(例如,容器的网络未容器化)。这意味着容器可以完全访问主机的网络接口。 |
主机网络 |
布尔值 |
✕ |
部署,
运行时(与运行时标准一起使用时) |
主机PID |
检查容器和主机之间是否隔离了进程 ID (PID) 命名空间。这允许不同 PID 命名空间中的进程具有相同的 PID。 |
主机PID |
布尔值 |
✕ |
部署,
运行时(与运行时标准一起使用时) |
主机IPC |
检查主机上的 IPC(POSIX/SysV IPC)命名空间(提供命名共享内存段、信号量和消息队列的分离)是否与容器共享。 |
主机IPC |
布尔值 |
✕ |
部署,
运行时(与运行时标准一起使用时) |
命名空间 |
部署所属的命名空间名称。 |
命名空间 |
字符串 |
正则表达式, 非, 与,或 |
部署,
运行时(与运行时标准一起使用时) |
副本 |
部署副本的数量。如果您使用oc scale 将部署副本从 0 扩展到某个数字,则如果部署违反策略,则准入控制器会阻止此操作。 |
副本 |
<,>,⇐,>= 或无(表示等于) ——和—— 十进制数(一个带有可选小数部分的数字)。
示例 ≥5,或
9.5 |
非, 与,或 |
部署,
运行时(与运行时标准一起使用时) |
章节:存储 |
卷名称 |
存储的名称。 |
卷名称 |
字符串 |
正则表达式, 非, 与,或 |
部署,
运行时(与运行时标准一起使用时) |
卷源 |
指示卷的配置方式。例如,persistentVolumeClaim 或 hostPath 。 |
卷源 |
字符串 |
正则表达式, 非, 与,或 |
部署,
运行时(与运行时标准一起使用时) |
卷目标 |
挂载卷的路径。 |
卷目标 |
字符串 |
正则表达式, 非, 与,或 |
部署,
运行时(与运行时标准一起使用时) |
卷类型 |
卷的类型。 |
卷类型 |
字符串 |
正则表达式, 非, 与,或 |
部署,
运行时(与运行时标准一起使用时) |
已挂载卷的可写性 |
以可写方式挂载的卷。 |
可写挂载卷 |
布尔值 |
✕ |
部署,
运行时(与运行时标准一起使用时) |
挂载传播 |
检查容器是否以Bidirectional 、Host to Container 或None 模式挂载卷。 |
挂载传播 |
其中之一
NONE HOSTTOCONTAINER BIDIRECTIONAL
|
非, 与,或 |
部署,
运行时(与运行时标准一起使用时) |
主机挂载的可写性 |
资源已挂载具有写权限的主机路径。 |
可写主机挂载 |
布尔值 |
✕ |
部署,
运行时(与运行时标准一起使用时) |
章节:网络 |
协议 |
公开端口使用的协议,例如 TCP 或 UDP。 |
公开端口协议 |
字符串 |
正则表达式, 非, 与,或 |
部署,
运行时(与运行时标准一起使用时) |
端口 |
部署公开的端口号。 |
公开端口 |
<,>,⇐,>= 或无(表示等于) ——和—— 一个整数。
示例 >=1024,或
22 |
非, 与,或 |
部署,
运行时(与运行时标准一起使用时) |
公开节点端口 |
部署在外部公开的端口号。 |
公开节点端口 |
(与公开端口相同) |
非, 与,或 |
部署,
运行时(与运行时标准一起使用时) |
端口暴露 |
服务的暴露方式,例如负载均衡器或节点端口。 |
端口暴露方法 |
其中之一
未设置 外部 节点 主机 内部 路由
|
非, 与,或 |
部署,
运行时(与运行时标准一起使用时) |
检测到意外网络流量 |
检查检测到的网络流量是否是部署的网络基线的组成部分。 |
检测到意外网络流量 |
布尔值 |
✕ |
**运行时**仅限 - 网络 |
入站网络策略 |
检查是否存在入站 Kubernetes 网络策略。 |
具有入站网络策略 |
布尔值 |
正则表达式, 与,或 |
部署,
运行时(与运行时标准一起使用时) |
出站网络策略 |
检查是否存在出站 Kubernetes 网络策略。 |
具有出站网络策略 |
布尔值 |
正则表达式, 与,或 |
部署,
运行时(与运行时标准一起使用时) |
章节:进程活动 |
进程名称 |
在部署中执行的进程的名称。 |
进程名称 |
字符串 |
正则表达式, 非, 与,或 |
**运行时**仅限 - 进程 |
进程祖先 |
在部署中执行的进程的任何父进程的名称。 |
进程祖先 |
字符串 |
正则表达式, 非, 与,或 |
**运行时**仅限 - 进程 |
进程参数 |
在部署中执行的进程的命令参数。 |
进程参数 |
字符串 |
正则表达式, 非, 与,或 |
**运行时**仅限 - 进程 |
进程 UID |
在部署中执行的进程的 Unix 用户 ID。 |
进程 UID |
整数 |
非, 与,或 |
**运行时**仅限 - 进程 |
执行了意外进程 |
检查其进程执行未列在部署的锁定进程基线中的部署。 |
执行了意外进程 |
布尔值 |
✕ |
**运行时**仅限 - 进程 |
章节:Kubernetes 访问 |
服务账户 |
服务账户的名称。 |
服务账户 |
字符串 |
正则表达式, 非, 与,或 |
部署,
运行时(与运行时标准一起使用时) |
自动挂载服务账户令牌 |
检查部署配置是否自动挂载服务账户令牌。 |
自动挂载服务账户令牌 |
布尔值 |
✕ |
部署,
运行时(与运行时标准一起使用时) |
最小 RBAC 权限 |
匹配部署的 Kubernetes 服务账户的 Kubernetes RBAC 权限级别是否等于= 或大于> 指定的级别。 |
最小 RBAC 权限 |
其中之一
默认 命名空间内提升 集群范围提升 集群管理员 |
非 |
部署,
运行时(与运行时标准一起使用时) |
章节:Kubernetes 事件 |
Kubernetes 操作 |
Kubernetes 操作的名称,例如Pod Exec 。 |
Kubernetes 资源 |
其中之一
PODS_EXEC PODS_PORTFORWARD
|
!仅或 |
**运行时**仅限 - Kubernetes 事件 |
Kubernetes 用户名 |
访问资源的用户的名称。 |
Kubernetes 用户名 |
仅包含字母数字、连字符 (-) 和冒号 (:) |
正则表达式, 非, !仅或 |
**运行时**仅限 - Kubernetes 事件 |
Kubernetes 用户组 |
访问资源的用户所属的组的名称。 |
Kubernetes 用户组 |
仅包含字母数字、连字符 (-) 和冒号 (:) |
正则表达式, 非, !仅或 |
**运行时**仅限 - Kubernetes 事件 |
Kubernetes 资源类型 |
已访问的 Kubernetes 资源的类型。 |
Kubernetes 资源 |
其中之一
配置映射 密钥 集群角色 集群角色绑定 网络策略 安全上下文约束 出站防火墙 |
!仅或 |
**运行时**仅限 - 审计日志 |
Kubernetes API 动词 |
用于访问资源的 Kubernetes API 动词,例如GET 或POST 。 |
Kubernetes API 动词 |
其中之一
创建 删除 获取 修补 更新
|
!仅或 |
**运行时**仅限 - 审计日志 |
Kubernetes 资源名称 |
已访问的 Kubernetes 资源的名称。 |
Kubernetes 资源名称 |
仅包含字母数字、连字符 (-) 和冒号 (:) |
正则表达式, 非, !仅或 |
**运行时**仅限 - 审计日志 |
用户代理 |
用户用来访问资源的用户代理。例如oc 或kubectl 。 |
用户代理 |
字符串 |
正则表达式, 非, !仅或 |
**运行时**仅限 - 审计日志 |
源 IP 地址 |
用户从中访问资源的 IP 地址。 |
源 IP 地址 |
IPV4 或 IPV6 地址 |
正则表达式, 非, !仅或 |
**运行时**仅限 - 审计日志 |
是否为模拟用户 |
检查请求是否由服务账户或其他账户模拟的用户发出的。 |
是否为模拟用户 |
布尔值 |
✕ |
**运行时**仅限 - 审计日志 |