ACP 支持 Kubernetes Pod Security Admission (PSA) 和 Kyverno Policy,以帮助强制执行集群中运行的 Pod 的安全标准。
参考官方 Kubernetes 文档:Pod Security Admission
Pod Security Admission (PSA) 是 Kubernetes 的一个准入控制器,通过验证 Pod 规范是否符合预定义标准,在命名空间级别强制执行安全策略。
PSA 定义了三种模式来控制如何处理策略违规:
| 模式 | 行为 | 使用场景 |
|---|---|---|
| Enforce | 拒绝创建/修改不合规的 Pod。 | 需要严格安全执行的生产环境。 |
| Audit | 允许创建 Pod,但在审计日志中记录违规。 | 监控和分析安全事件,不阻止工作负载。 |
| Warn | 允许创建 Pod,但向客户端返回违规警告。 | 测试环境或策略调整的过渡阶段。 |
关键说明:
PSA 定义了三种安全标准来限制 Pod 权限:
| 标准 | 描述 | 主要限制 |
|---|---|---|
| Privileged | 不受限制访问。适用于受信任的工作负载(例如系统组件)。 | 不验证 securityContext 字段。 |
| Baseline | 最小限制,防止已知的权限提升。 | 阻止 hostNetwork、hostPID、特权容器和不受限制的 hostPath 卷。 |
| Restricted | 最严格的策略,执行安全最佳实践。 | 要求: - runAsNonRoot: true - seccompProfile.type: RuntimeDefault - 丢弃 Linux 能力。 |
通过为命名空间应用标签来定义 PSA 策略。
YAML 文件示例
CLI 命令
对特定用户、命名空间或 runtimeClass 免除 PSA 检查。
示例配置:
ACP 提供了多个示例,用于创建 Pod 安全的 Kyverno 策略。示例包括:
Restricted 策略不等同于 Kubernetes Pod Security Admission 的 'restricted' 标准。 如果您想使用 kyverno 的 Restricted 策略而非 Kubernetes Pod Security Admission 的 'restricted' 标准,可能需要更改您的 Pod 安全配置。
namespace-resource-manage。Restricted),然后点击 Try。登录到要应用安全策略的 Kubernetes 集群。
运行以下命令从示例资源创建 Kyverno Policy:
可用的示例资源包括: