LabHub
学习 学习路径 课程

CNPE — 云原生平台工程师

策略在哪里执行

在 LabHub 中继续学习

一句话总结

Pipeline 提供快速反馈,admission 执行 API 请求策略,持续检查发现既有资源违规。存在策略与实际检查过请求不是一回事。

概念图: 一句话总结 · 为什么一处不够 · 工作原理 · 策略 Audit 模式不等于 API audit log

为什么一处不够

支付团队 CI 拒绝未签名镜像,但运维从其他路径部署时 CI 不运行;只用 admission 又会到构建结束才发现错误;新策略也不会自动修正既有 workload。应连接三个位置,但不要复制三份规则,而要管理公共规则版本、例外清单及每处实际检查输入,并观测适用对象数、违规数、检查错误和例外过期。

工作原理

位置 证据 单凭它不知道
CI digest、规则版本、退出码 绕过 CI 的 API 请求
admission 请求、范围、允许或拒绝 旧资源当前违规
持续检查 时间、对象总数、违规列表 下一请求是否一定被拒绝

admission 保证只覆盖匹配请求和配置范围。要检查 namespaceSelector、资源与操作 selector、例外和 Webhook 错误处理。failurePolicy: Ignore 只在调用错误时放行,不会把 Webhook 正常返回的明确拒绝改为允许;Fail 在错误时也拒绝,因此必须设计可用性与恢复路径。参阅Kubernetes 动态 admission

mutating 先于 validating。若变更补齐必要标签,验证会检查变更后的最终对象并允许,这不表示验证未运行。

策略 Audit 模式不等于 API audit log

策略引擎 Audit 用于观察违规和评估引入影响,功能及旧资源范围依引擎而异;Kubernetes API audit log 记录请求活动,开启日志不会阻止违规,也不会重扫所有旧资源。

引入计划要写观察期、修复负责人、转强制条件。例外要有对象、原因、批准者、到期日,并确认到期真实执行。不要把紧急例外变成永久 Namespace 排除。

NetworkPolicy 与 mTLS 不互相替代

标准 NetworkPolicy 主要限制 L3/L4 连接范围,用标签、IP、端口选择对象,不提供 TLS 加密或证书双向认证。Service mesh 或应用 mTLS 认证身份并加密;能执行什么仍需 authorization policy。参阅Kubernetes NetworkPolicy 范围与限制

还需要能执行 NetworkPolicy 的网络插件。标准语义下,某方向未被策略选择的 Pod 在该方向不隔离,实际可达性还受其他防火墙和平台策略影响。引入默认拒绝前要列出 DNS 与必要依赖流量,在隔离环境测试,不能直接全局切断连接当作验证。

现场表现

签名验证持续成功,但策略只选择 team-a,真实服务在 team-b;只读成功报告会漏掉空范围。应先建测试表:应允许请求必须成功,同目标未签名请求必须拒绝,范围外请求如何处理也要记录。timeout 只在自有隔离环境测试。网络也必须同时验证允许客户端成功与非允许客户端失败,避免把服务器宕机导致“全部失败”误作安全成功。

下一步

下一篇区分 digest、签名、SBOM、provenance,并讨论不复制秘密正文仍保留审计证据。本单元是设计判断理论与测验,不代表已验证所有策略引擎行为。