Policy Controller 概览
本页面介绍了什么是 Policy Controller,以及如何使用它来确保 Kubernetes 集群和工作负载以安全且合规的方式运行。
Policy Controller 支持为 Kubernetes 集群应用和实施可编程政策。这些政策可作为保障措施,有助于实现集群和舰队的最佳实践、安全性和合规性管理。Policy Controller 基于开源 Open Policy Agent Gatekeeper 项目,与 Google Cloud 完全集成,包含一个用于可观测的内置信息中心,并附带一个完整的预构建政策库,用于实现常见的安全性和合规性控制措施。
Policy Controller 可通过 Google Kubernetes Engine (GKE) Enterprise 版本许可使用。
Policy Controller 的优势
- 与 Google Cloud 集成:平台管理员可以使用 Google Cloud 控制台、使用 Terraform 或在连接到舰队的任何集群上使用 Google Cloud CLI 安装 Policy Controller。Policy Controller 可与其他 Google Cloud 服务搭配使用,例如 Config Sync、metrics和 Cloud Monitoring。
- 支持多个强制执行点:除了集群审核和准入控制之外,Policy Controller 还可以选择启用左移方法在应用之前分析和捕获不合规的更改。
- 预建的政策包:Policy Controller 提供完整的预构建政策库,用于实现常见的安全性和合规性控制。其中包括由 Google 构建和维护的政策包以及限制条件模板库。
- 支持自定义政策:如果除了使用限制条件模板库提供的功能要求之外,还需要自定义政策,则 Policy Controller 还支持开发自定义限制条件模板。
- 内置可观测性:Policy Controller 包含一个 Google Cloud 控制台信息中心,可提供应用于舰队的所有政策的状态概览(包括未注册的集群)。在信息中心中,查看合规性和强制执行状态以帮助您排查问题,并获取专业的建议来解决政策违规问题。
政策包
您可以使用政策包来应用一些限制条件,这些限制条件分组到特定的 Kubernetes 标准、安全性或合规性主题下。这些政策包由 Google 构建和维护,因此无需编写任何代码即可供您使用。例如,您可以使用以下政策包:
- 强制执行许多与 PodSecurityPolicy 相同的要求,但在此基础上,除了可以强制执行配置之外,还可以审核配置,从而确保所有政策更改都不会对正在运行的工作负载造成干扰。
- 使用与 Anthos Service Mesh 兼容的限制条件来审核网格安全漏洞的合规性并了解是否符合最佳实践。
- 将一般最佳实践应用于集群资源,以帮助强化安全状况。此包还用于 Policy Controller 的先试再买功能,因此您可以按需试用这组基准政策,无需额外付费。
Policy Controller 包概览提供了更多详细信息和当前可用的政策包列表。
限制条件
政策控制器使用称为限制条件的对象来实施集群的合规性。您可以将限制条件视为政策的“组成要素”。每个限制条件都会定义对 Kubernetes API 的特定更改,以允许或不允许对限制条件应用于的集群进行此更改。您可以设置政策主动屏蔽不符合政策的 API 请求,或者审核集群的配置并报告违规行为。在任一情况下,您都可以查看警告消息,并详细了解集群中发生了什么违规行为。借助这些信息,您可以修复问题。例如,您可以使用以下单个限制条件:
- 要求每个命名空间至少有一个标签。例如,当使用 GKE Usage Metering 时,可以使用这个约束来确保准确地跟踪资源消耗。
- 限制可以从中提取给定容器映像的代码库。 此限制条件可确保从未知来源拉取容器的任何尝试都被拒绝,从而防止集群运行潜在的恶意软件。
- 控制容器是否可以在特权模式下运行。此限制条件可控制任何容器启用特权模式的能力,从而控制哪些容器(如有)可以使用不受限制的政策运行。
这些只是 Policy Controller 附带的限制条件模板库中提供的部分限制条件。此库包含许多政策,可用于帮助您实施最佳实践并限制风险。如果除了限制条件模板库中提供的功能之外,您还需要进行更多自定义,还可以创建自定义限制条件模板。
您可以使用 Kubernetes API 将限制条件直接应用于集群,也可以使用 Config Sync 将限制条件从可靠来源分发到一组集群。