第 5 章 使用准入控制器强制
Red Hat Advanced Cluster Security for Kubernetes 可以与 Kubernetes 准入控制器 和 OpenShift Container Platform 准入插件 一起工作,允许您在 Kubernetes 或 OpenShift Container Platform 创建工作负载前强制实施安全策略,如部署、守护进程集或作业。
RHACS 准入控制器可防止用户创建违反您在 RHACS 中配置策略的工作负载。从 RHACS 版本 3.0.41 开始,您还可以配置准入控制器以防止对违反策略的工作负载进行更新。
RHACS 使用 ValidatingAdmissionWebhook
控制器来验证正在置备的资源是否符合指定的安全策略。为了解决这个问题,RHACS 会创建一个 ValidatingWebhookConfiguration
,其中包含多个 Webhook 规则。
当 Kubernetes 或 OpenShift Container Platform API 服务器收到与其中一个 webhook 规则匹配的请求时,API 服务器会向 RHACS 发送 AdmissionReview
请求。然后,RHACS 根据配置的安全策略接受或拒绝请求。
要在 OpenShift Container Platform 上使用准入控制器强制,您需要 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.49 或更新版本。
5.1. 了解准入控制器强制
如果要使用准入控制器强制,请考虑以下几点:
- API 延迟 :使用准入控制器强制会增加 Kubernetes 或 OpenShift Container Platform API 延迟,因为它涉及额外的 API 验证请求。许多标准 Kubernetes 库(如 fabric8)默认具有简短的 Kubernetes 或 OpenShift Container Platform API 超时。另外,请考虑您可能使用的任何自定义自动化中的 API 超时。
镜像扫描 :您可以通过在集群配置面板中设置 Contact Image Scanners 选项来选择准入控制器在查看请求时是否扫描镜像。
- 如果启用此设置,如果扫描或镜像签名验证结果不可用,Red Hat Advanced Cluster Security for Kubernetes 会联系镜像扫描程序,这会增加显著的延迟。
- 如果您禁用了此设置,则强制决定仅在缓存的扫描和签名验证结果可用时考虑镜像扫描条件。
您可以使用准入控制器强制进行:
-
pod
securityContext
中的选项。 - 部署配置。
- 镜像组件和漏洞。
-
pod
您不能为以下目的使用准入控制器强制:
- 任何运行时行为,如进程。
- 基于端口暴露的任何策略。
-
如果 Kubernetes 或 OpenShift Container Platform API 服务器和 RHACS Sensor 之间存在连接问题,则准入控制器可能会失败。要解决这个问题,删除
ValidatingWebhookConfiguration
对象,如禁用准入控制器强制部分所述。 - 如果您为策略启用了部署时间强制,且启用了准入控制器,RHACS 会尝试阻止违反策略的部署。如果准入控制器没有拒绝不合规的部署,例如,在超时时,RHACS 仍然会应用其他部署时间强制机制,如扩展到零副本。