查看和管理安全策略

Alauda 容器安全提供默认和可自定义的安全策略,以帮助您防止高风险部署并应对容器环境中的运行时事件。


目录

策略类别

策略按类型和功能组织,以便于管理和搜索。默认类别包括:

  • 异常活动
  • 加密货币挖掘
  • DevOps 最佳实践
  • Docker CIS
  • Kubernetes
  • Kubernetes 事件
  • 网络工具
  • 包管理
  • 权限
  • 安全最佳实践
  • 供应链安全
  • 系统修改
  • 漏洞管理
  • 零信任

管理类别的步骤:

  1. 转到 平台配置 > 策略管理
  2. 点击 策略类别 标签。
  3. 根据需要创建、查看或管理类别。

策略生命周期阶段

在创建或编辑策略时,您可以指定一个或多个生命周期阶段:

  • 构建:检查镜像字段(例如 CVE、Dockerfile 指令)。
  • 部署:包括构建时检查和集群配置(例如特权模式)。
  • 运行时:添加进程执行和运行时事件检查。

策略标准和属性

策略由特定标准(属性)触发。以下表格总结了常见属性及其描述。有关允许值、运算符和适用阶段的详细信息,请参见每个表格下方的说明。

镜像注册表和内容

属性描述允许值
镜像注册表镜像注册表的名称字符串
镜像名称注册表中的完整镜像名称字符串
镜像标签镜像标识符字符串
镜像签名镜像的签名集成集成 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、无等。
阶段: 部署、运行时、运行时(网络)


进程活动(仅限运行时)

属性描述允许值
进程名称执行的进程名称字符串
进程祖先父进程名称字符串
进程参数命令参数字符串
进程 UIDUnix 用户 ID整数
执行的意外进程不在锁定基线中布尔值

运算符: 正则表达式、AND、OR、NOT、无等。
阶段: 运行时(进程)


Kubernetes 访问和事件

属性描述允许值
服务账户服务账户的名称字符串
自动挂载服务账户令牌自动挂载服务账户令牌布尔值
最小 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 容器安全支持多种执行类型,具体取决于策略阶段:

  • 构建时执行:如果镜像违反策略,则 CI 构建失败。API 返回非零退出代码,可用于使构建管道失败。
  • 部署时执行:与 Kubernetes 准入控制器和 Alauda 容器平台准入插件集成,以阻止不合规的工作负载。执行可以是:
    • 强制执行:准入控制器阻止创建或更新违反的部署。
    • 软性执行:传感器将违反的部署缩放为零副本,防止 pod 被调度。
  • 运行时执行:启用时,任何在 pod 内部违反此策略的运行时活动将导致 pod 被自动删除。通过 API 服务器触发的违规行为也将被阻止。

注意: 默认情况下,stackroxkube-systemcpaas-systemistio-system 等管理命名空间被排除在执行阻止之外。来自系统命名空间中服务账户的请求也会被绕过。

要将策略更改应用于现有部署,请使用 策略管理 > 重新评估所有 以触发对所有部署的执行。


导出和导入策略

您可以通过将策略导出和导入为 JSON 文件,在不同的 Central 实例之间共享安全策略。

导出策略

  1. 转到 平台配置 > 策略管理
  2. 选择要导出的策略。
  3. 点击 操作 > 导出策略到 JSON

导入策略

  1. 转到 平台配置 > 策略管理
  2. 点击 导入策略
  3. 上传 JSON 文件并点击 开始导入

导入处理:

  • 如果导入的策略 UID 和名称是唯一的,则会创建新策略。
  • 如果 UID 匹配但名称不同,您可以保留两个(新 UID)或替换现有策略。
  • 如果名称匹配但 UID 不同,您可以保留两个(重命名)或替换现有策略。
  • 如果 UID 和名称都匹配,Alauda 容器安全会检查标准是否匹配。如果匹配,则保留现有策略;否则,您可以保留两个(重命名)或替换。

重要:

  • 当导入到同一 Central 实例时,所有导出的字段都会被使用。
  • 当导入到不同的 Central 实例时,某些字段(例如集群范围排除通知)将被省略,无法迁移。