Alauda 容器安全提供默认和可自定义的安全策略,以帮助您防止高风险部署并应对容器环境中的运行时事件。
策略按类型和功能组织,以便于管理和搜索。默认类别包括:
管理类别的步骤:
在创建或编辑策略时,您可以指定一个或多个生命周期阶段:
策略由特定标准(属性)触发。以下表格总结了常见属性及其描述。有关允许值、运算符和适用阶段的详细信息,请参见每个表格下方的说明。
属性 | 描述 | 允许值 |
---|---|---|
镜像注册表 | 镜像注册表的名称 | 字符串 |
镜像名称 | 注册表中的完整镜像名称 | 字符串 |
镜像标签 | 镜像标识符 | 字符串 |
镜像签名 | 镜像的签名集成 | 集成 ID |
可修复 | 镜像具有可修复的 CVE | 布尔值 |
自 CVE 发现以来的天数 | 自 CVE 被发现以来的天数 | 整数 |
镜像年龄 | 自镜像创建以来的天数 | 整数 |
镜像扫描年龄 | 自上次镜像扫描以来的天数 | 整数 |
镜像用户 | Dockerfile 中的 USER 指令 | 字符串 |
Dockerfile 行 | Dockerfile 指令/参数 | LABEL/RUN 等等 |
未扫描镜像 | 镜像扫描状态 | 布尔值 |
CVSS | 漏洞评分 | 数字 |
严重性 | 漏洞严重性 | 级别 |
修复版本 | 修复漏洞的版本 | 字符串 |
CVE | 特定 CVE 编号 | 字符串 |
镜像组件 | 镜像中的软件组件 | key=value |
镜像操作系统 | 镜像的基础操作系统 | 字符串 |
所需镜像标签 | 所需的 Docker 镜像标签 | key=value |
不允许的镜像标签 | 不允许的 Docker 镜像标签 | key=value |
运算符: 正则表达式、NOT、AND、OR、仅 OR、仅 AND、无等。
阶段: 构建、部署、运行时
属性 | 描述 | 允许值 |
---|---|---|
环境变量 | 检查环境变量 | RAW=key=value |
容器 CPU 请求 | 请求的 CPU 核心数 | 数字 |
容器 CPU 限制 | CPU 核心数限制 | 数字 |
容器内存请求 | 请求的内存(MB) | 数字 |
容器内存限制 | 内存限制(MB) | 数字 |
特权容器 | 启用特权模式 | 布尔值 |
只读根文件系统 | 根文件系统为只读 | 布尔值 |
Seccomp 配置文件类型 | Seccomp 配置文件类型 | UNCONFINED/RUNTIME_DEFAULT/LOCALHOST |
允许特权提升 | 允许特权提升 | 布尔值 |
删除能力 | 要删除的 Linux 能力 | 列表 |
添加能力 | 不允许的 Linux 能力 | 列表 |
容器名称 | 容器的名称 | 字符串 |
AppArmor 配置文件 | 使用的 AppArmor 配置文件 | 字符串 |
存活探针 | 定义存活探针 | 布尔值 |
就绪探针 | 定义就绪探针 | 布尔值 |
运算符: 正则表达式、AND、OR、无等。
阶段: 部署、运行时
属性 | 描述 | 允许值 |
---|---|---|
不允许的注释 | 不允许的注释 | key=value |
所需标签 | 所需的 Kubernetes 标签 | key=value |
所需注释 | 所需的 Kubernetes 注释 | key=value |
运行时类 | 部署的 RuntimeClass | 字符串 |
主机网络 | 启用主机网络 | 布尔值 |
主机 PID | 共享主机 PID 命名空间 | 布尔值 |
主机 IPC | 共享主机 IPC 命名空间 | 布尔值 |
命名空间 | 部署的命名空间 | 字符串 |
副本数 | 部署副本的数量 | 数字 |
运算符: 正则表达式、AND、OR、NOT、无等。
阶段: 部署、运行时
属性 | 描述 | 允许值 |
---|---|---|
卷名称 | 存储的名称 | 字符串 |
卷来源 | 卷的提供类型 | 字符串 |
卷目标 | 卷挂载的路径 | 字符串 |
卷类型 | 卷的类型 | 字符串 |
可写挂载卷 | 卷挂载为可写 | 布尔值 |
挂载传播 | 挂载传播模式 | NONE/HOSTTOCONTAINER/BIDIRECTIONAL |
可写主机挂载 | 主机路径挂载为可写 | 布尔值 |
暴露端口协议 | 暴露端口使用的协议 | 字符串 |
暴露端口 | 暴露的端口号 | 数字 |
暴露节点端口 | 外部暴露的节点端口 | 数字 |
端口暴露方法 | 服务暴露方法 | UNSET/EXTERNAL/NODE/HOST/INTERNAL/ROUTE |
意外网络流量 | 检测到的非基线网络流量 | 布尔值 |
是否有 Ingress 网络策略 | 是否存在 Ingress 网络策略 | 布尔值 |
是否有 Egress 网络策略 | 是否存在 Egress 网络策略 | 布尔值 |
运算符: 正则表达式、AND、OR、NOT、无等。
阶段: 部署、运行时、运行时(网络)
属性 | 描述 | 允许值 |
---|---|---|
进程名称 | 执行的进程名称 | 字符串 |
进程祖先 | 父进程名称 | 字符串 |
进程参数 | 命令参数 | 字符串 |
进程 UID | Unix 用户 ID | 整数 |
执行的意外进程 | 不在锁定基线中 | 布尔值 |
运算符: 正则表达式、AND、OR、NOT、无等。
阶段: 运行时(进程)
属性 | 描述 | 允许值 |
---|---|---|
服务账户 | 服务账户的名称 | 字符串 |
自动挂载服务账户令牌 | 自动挂载服务账户令牌 | 布尔值 |
最小 RBAC 权限 | 最小 RBAC 权限级别 | DEFAULT/ELEVATED_IN_NAMESPACE/ELEVATED_CLUSTER_WIDE/CLUSTER_ADMIN |
Kubernetes 操作 | Kubernetes 操作的名称 | PODS_EXEC/PODS_PORTFORWARD |
Kubernetes 用户名称 | 访问资源的用户名称 | 字符串 |
Kubernetes 用户组 | 用户组名称 | 字符串 |
Kubernetes 资源类型 | 访问的资源类型 | 字符串 |
Kubernetes API 动词 | 使用的 API 动词 | CREATE/DELETE/GET/PATCH/UPDATE |
Kubernetes 资源名称 | 访问的资源名称 | 字符串 |
用户代理 | 使用的用户代理 | 字符串 |
源 IP 地址 | 源 IP 地址 | IPv4/IPv6 |
是否为模拟用户 | 请求是否由模拟用户发出 | 布尔值 |
运算符: 正则表达式、AND、OR、NOT、无等。
阶段: 部署、运行时、运行时(K8s 事件)、运行时(审计日志)
Alauda 容器安全支持多种执行类型,具体取决于策略阶段:
注意: 默认情况下,
stackrox
、kube-system
、cpaas-system
和istio-system
等管理命名空间被排除在执行阻止之外。来自系统命名空间中服务账户的请求也会被绕过。
要将策略更改应用于现有部署,请使用 策略管理 > 重新评估所有 以触发对所有部署的执行。
您可以通过将策略导出和导入为 JSON 文件,在不同的 Central 实例之间共享安全策略。
导入处理:
重要:
- 当导入到同一 Central 实例时,所有导出的字段都会被使用。
- 当导入到不同的 Central 实例时,某些字段(例如集群范围排除通知)将被省略,无法迁移。