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