第 2 章 与 CI 系统集成


Red Hat Advanced Cluster Security for Kubernetes (RHACS)与各种持续集成(CI)产品集成,并允许您在部署镜像前应用构建时间和部署时安全规则。

在构建镜像并推送到 registry 后,Red Hat Advanced Cluster Security for Kubernetes 集成到 CI 管道中。首先推送镜像可让开发人员在处理任何策略违反情况时继续测试其工件,同时处理任何其他 CI 测试失败、linter violations 或其他问题。

如果可能,您应该将版本控制系统配置为阻止拉取或合并请求(如果构建阶段包括 Red Hat Advanced Cluster Security for Kubernetes 检查)失败。

通过联系 Red Hat Advanced Cluster Security for Kubernetes 安装来与 CI 产品集成,检查镜像是否符合您配置的构建阶段策略。如果有策略违反情况,控制台日志中会显示一个详细的信息,包括策略描述、比例和补救说明。每个策略都包括一个可选强制设置;如果您为 build-phase 强制标记策略,则该策略失败会导致客户端退出且非零错误代码。

要将 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 中配置的任何现有构建阶段策略。

流程

  1. 在 RHACS 门户网站中,进入到 Platform Configuration Policies
  2. 使用全局搜索搜索 Lifecycle Stage:Build

2.1.2. 创建新系统策略

除了使用默认策略外,您还可以在 Red Hat Advanced Cluster Security for Kubernetes 中创建自定义策略。

流程

  1. 在 RHACS 门户网站中,进入到 Platform Configuration Policies
  2. 单击 + New Policy
  3. 输入策略的 Name
  4. 选择策略的严重性级别:Critical, High, Medium, 或 Low。
  5. 选择适用于策略的生命周期阶段Build, Deploy, 或 Runtime。您可以选择多个阶段。

    注意

    如果您为与 CI 系统创建新策略,请选择 Build 作为生命周期阶段。

    • 构建时策略适用于镜像字段,如 CVE 和 Dockerfile 指令。
    • Deployment-time 策略可以包含所有构建时策略标准。它们也可以具有来自集群配置的数据,如以特权模式运行或挂载 Docker 守护进程套接字。
    • 运行时策略可以包含所有构建时间和部署时间策略标准,以及运行时期间进程执行的数据。
  6. Description,Rationale, 和 Remediation 字段中输入有关策略的信息。当 CI 验证构建时,将显示这些字段中的数据。因此,包含解释该策略的所有信息。
  7. Categories 下拉菜单中选择类别。
  8. 通知下拉菜单中选择通知程序,该下拉菜单在出现违反此策略时接收警报通知。

    注意

    您必须将 Red Hat Advanced Cluster Security for Kubernetes 与通知供应商(如 Webhook、JIRA 或 PagerDuty)集成,才能接收警报通知。只有在您使用 Red Hat Advanced Cluster Security for Kubernetes 集成的任何通知供应商时,才会显示通知程序。

  9. 使用 Restrict to Scope 仅为特定集群、命名空间或标签启用此策略。您可以添加多个范围,还可在 RE2 语法中使用正则表达式进行命名空间和标签。
  10. 使用 Exclude by Scope 来排除部署、集群、命名空间和标签。此字段表示策略不适用于您指定的实体。您可以添加多个范围,还可在 RE2 语法中使用正则表达式进行命名空间和标签。但是,您无法使用正则表达式来选择部署。
  11. 对于 Excluded Images (仅限Build Lifecycle),请从您不想为其触发违反的列表中选择所有镜像。

    注意

    Excluded Images (Build Lifecycle only) 设置仅在检查持续集成系统中的镜像(构建生命周期阶段)时才适用。如果您使用此策略检查运行部署( Deploy 生命周期阶段)或运行时活动( Runtime 生命周期阶段),则它无效。

  12. Policy Criteria 部分中,配置将触发该策略的属性。
  13. 在面板标头中选择 Next
  14. 新策略面板显示在启用策略时触发的违反情况的预览。
  15. 在面板标头中选择 Next
  16. 选择策略的强制行为。强制设置仅适用于您为 Lifecycle Stages 选项选择的阶段。选择 ON 强制执行策略并报告违反情况。选择 OFF 只报告违反情况。

    注意

    每个生命周期阶段的强制行为都有所不同。

    • 对于 Build 阶段,当镜像与策略条件匹配时,Red Hat Advanced Cluster Security for Kubernetes 将无法进行 CI 构建。
    • 对于 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。
    警告

    策略实施可能会影响运行应用程序或开发流程。在启用强制选项前,请通知所有利益相关者,并计划如何响应自动强制操作。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.