第 2 章 与 CI 系统集成
Red Hat Advanced Cluster Security for Kubernetes (RHACS)与各种持续集成(CI)产品集成。在部署镜像前,您可以使用 RHACS 将构建时间和部署时间安全规则应用到您的镜像。
在构建镜像并推送到 registry 后,RHACS 集成到 CI 管道中。首先推送镜像可让开发人员在处理任何策略违反情况时继续测试其工件,以及任何其他 CI 测试失败、Linter违反或其他问题。
如果可能,将版本控制系统配置为阻止在构建阶段(包括 RHACS 检查)进行合并的拉取或合并请求。
通过联系 RHACS 安装来检查镜像是否符合您配置的构建时策略,与 CI 产品功能集成。如果存在策略违反情况,则会在控制台日志中显示详细消息,包括策略描述、理由和补救说明。
每个策略都包括一个可选的强制设置。如果您为构建时间强制标记策略,则该策略的失败会导致客户端退出,并带有非零错误代码。
要将 Red Hat Advanced Cluster Security for Kubernetes 与 CI 系统集成,请按照以下步骤操作:
2.1. 配置构建策略 复制链接链接已复制到粘贴板!
您可以在构建期间检查 RHACS 策略。
流程
- 配置适用于容器生命周期的构建时间的策略。
- 与在构建期间推送到的 registry 集成。
2.1.1. 检查现有的构建时策略 复制链接链接已复制到粘贴板!
使用 RHACS 门户检查您在 Red Hat Advanced Cluster Security for Kubernetes 中配置的任何现有构建时间策略。
流程
-
在 RHACS 门户中,进入 Platform Configuration
Policy Management。 -
使用全局搜索搜索
Lifecycle Stage:Build。
2.1.2. 创建新系统策略 复制链接链接已复制到粘贴板!
除了使用默认策略外,您还可以在 Red Hat Advanced Cluster Security for Kubernetes 中创建自定义策略。
流程
-
在 RHACS 门户中,进入 Platform Configuration
Policy Management。 - 单击 + New Policy。
- 输入策略的 Name。
- 选择策略的严重性级别:Critical, High, Medium, 或 Low。
选择适用于策略的生命周期阶段,Build, Deploy, 或 Runtime。您可以选择多个阶段。
注意如果您创建了一个与 CI 系统集成的新策略,请选择 Build 作为生命周期阶段。
- 构建时策略适用于 CVE 和 Dockerfile 指令等镜像字段。
- 部署时策略可以包含所有构建时策略标准。它们也可以有集群配置中的数据,如以特权模式运行或挂载 Docker 守护进程套接字。
- 运行时策略可包括所有构建时间和部署时间策略标准,以及有关进程在运行时执行的数据。
- 在 Description,Rationale, 和 Remediation 字段中输入有关策略的信息。当 CI 验证构建时,会显示这些字段中的数据。因此,包括解释策略的所有信息。
- 从 Categories 下拉菜单中选择一个类别。
从 Notifications 下拉菜单中选择一个通知程序,在针对此策略发生违反时接收警报通知。
注意您必须将 RHACS 与通知提供程序(如 Webhook、JIRA 或 PagerDuty)集成,才能接收警报通知。只有在您使用 RHACS 集成了任何通知供应商时,notifiers 才会显示。
- 使用 Restrict to Scope 只为特定集群、命名空间或标签启用此策略。您可以添加多个范围,并将 RE2 语法中的正则表达式用于命名空间和标签。
- 使用 Exclude by Scope 来排除部署、集群、命名空间和标签。此字段表示策略不适用于您指定的实体。您可以添加多个范围,并将 RE2 语法中的正则表达式用于命名空间和标签。但是,您无法使用正则表达式来选择部署。
对于 Excluded Images (Build Lifecycle only),请从您不想触发策略违反列表中选择所有镜像。
注意Excluded Images (Build Lifecycle only) 设置仅在检查持续集成系统( Build 生命周期阶段)中的镜像时适用。如果您使用此策略检查正在运行的部署( Deploy 生命周期阶段)或运行时活动( Runtime 生命周期阶段),则它不会生效。
- 在 Policy Criteria 部分中,配置触发该策略的属性。
- 在面板标头中选择 Next。
- 新策略面板显示启用策略时触发的违反情况的预览。
- 在面板标头中选择 Next。
选择策略的强制行为。强制设置仅适用于您为 Lifecycle Stages 选项选择的阶段。选择 ON 来强制执行策略并报告违反情况。选择 OFF 来仅报告违反情况。
注意每个生命周期阶段的强制行为都有所不同。
- 对于 Build 阶段,当镜像与策略条件匹配时,RHACS 会失败。
对于 Deploy 阶段,RHACS 会阻止在 RHACS 准入控制器配置并运行时与策略条件匹配的部署创建或更新。
- 在带有准入控制器强制的集群中,Kubernetes 或 OpenShift Container Platform API 服务器会阻止所有不合规的部署。在其他集群中,RHACS 编辑不合规的部署以防止调度 pod。
- 对于现有部署,当 Kubernetes 事件发生时,策略更改只会导致在下一个条件检测时进行强制。有关强制的更多信息,请参阅"部署阶段的安全策略强制"。
- 对于 Runtime 阶段,RHACS 会停止与策略条件匹配的所有 pod。
警告策略实施可能会影响运行应用程序或开发流程。在启用强制选项前,请通知所有利益相关者,并计划如何响应自动化执行操作。
2.1.2.1. deploy 阶段的安全策略强制 复制链接链接已复制到粘贴板!
Red Hat Advanced Cluster Security for Kubernetes 支持对 deploy-time 策略的两种安全策略实施:通过准入控制器和 RHACS Sensor 进行软实施的硬强制。准入控制器会阻止创建或更新违反策略的部署。如果准入控制器被禁用或不可用,Sensor 可以将违反策略的部署缩减为 0 来执行强制。
策略实施可能会影响运行应用程序或开发流程。在启用强制选项前,请通知所有利益相关者,并计划如何响应自动化执行操作。