第 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 超时。如果请求因为延迟问题而超时,您可以配置准入控制器是否打开,允许请求访问 API 服务器,或者失败关闭,阻止请求的操作。这个设置是在安装过程中配置的,您可以通过选择 Platform Configuration
Clusters 并检查 Admission 控制器失败策略 来验证设置。 - 如果您在持续开发(CD)工具中使用 RHACS,请将准入控制器失败策略设置为失败关闭,以便您的 CD 工具处理强制。
您可以将准入控制器强制用于以下项目:
-
pod
securityContext中的选项 - 部署配置
- 镜像组件和漏洞
-
用户发起的容器命令,如
pod exec和端口转发
-
pod
- 如果您为策略启用了部署阶段强制,并且启用了准入控制器,RHACS 会尝试阻止违反策略的部署。如果准入控制器没有拒绝不合规的部署,例如,当超时时,RHACS 仍然会应用其他部署阶段强制机制,如扩展到零副本。