强制实施 Pod 安全标准
此页面提供了有关实施 Pod 安全标准的最佳实践概述。
使用内置的 Pod 安全准入控制器
Kubernetes v1.25 [稳定]Pod 安全准入控制器旨在取代已弃用的 PodSecurityPolicies。
配置所有集群命名空间
缺少任何配置的命名空间应被视为集群安全模型中的重大缺陷。我们建议花时间分析每个命名空间中发生的工作负载类型,并参考 Pod 安全标准,为每个命名空间确定适当的级别。未标记的命名空间应仅表示尚未评估过。
如果所有命名空间中的所有工作负载具有相同的安全要求,我们提供了一个 示例,说明如何批量应用 PodSecurity 标签。
秉承最小权限原则
在理想情况下,每个命名空间中的每个 Pod 都应满足 restricted 策略的要求。但是,这既不可行也不切实际,因为有些工作负载出于合法原因需要更高的权限。
- 允许
privileged工作负载的命名空间应建立并强制执行适当的访问控制。 - 对于在这些宽松命名空间中运行的工作负载,请维护有关其独特安全要求的文档。如果可能,请考虑如何进一步限制这些要求。
采用多模式策略
Pod 安全标准准入控制器的 audit 和 warn 模式使您能够轻松收集有关 Pod 的重要安全信息,而不会破坏现有的工作负载。
为所有命名空间启用这些模式,将其设置为您最终想要 enforce 的期望级别和版本,是一种很好的做法。在此阶段生成的警告和审核注释可以指导您达到该状态。如果您希望工作负载作者更改以适应所需的级别,请启用 warn 模式。如果您希望使用审核日志来监控/驱动更改以适应所需的级别,请启用 audit 模式。
当您将 enforce 模式设置为所需值时,这些模式在几种不同的情况下仍然有用
- 通过将
warn设置为与enforce相同级别,客户端将在尝试创建不通过验证的 Pod(或具有 Pod 模板的资源)时收到警告。这将帮助他们更新这些资源以符合要求。 - 在将
enforce固定到特定非最新版本的命名空间中,将audit和warn模式设置为与enforce相同的级别,但设置为latest版本,可以了解以前版本允许但当前最佳实践不允许的设置。
第三方替代方案
Kubernetes 生态系统中正在开发其他用于强制执行安全配置文件的替代方案
选择使用内置解决方案(例如 PodSecurity 准入控制器)还是第三方工具完全取决于您自己的情况。在评估任何解决方案时,信任您的供应链至关重要。最终,使用任何上述方法都比什么都不做要好。
此页面上的项目引用了 Kubernetes 所需功能的第三方产品或项目。Kubernetes 项目作者不对这些第三方产品或项目负责。请参阅 CNCF 网站指南 以获取更多详细信息。
在提出添加额外的第三方链接的更改之前,您应该阅读 内容指南。