5.3. 创建和修改安全策略
在 Red Hat Advanced Cluster Security for Kubernetes (RHACS)中,您可以使用 RHACS 门户创建策略,或通过保存策略作为 Kubernetes 自定义资源(CR)来创建和管理策略,并使用持续交付工具(如 Argo CD)。
5.3.1. 从系统策略视图创建安全策略 复制链接链接已复制到粘贴板!
您可以从系统策略视图创建新的安全策略。
流程
-
在 RHACS 门户中,进入 Platform Configuration
Policy Management。 - 点击 Create policy。
- 在以下部分中配置策略定义信息。
5.3.1.1. 输入策略详情 复制链接链接已复制到粘贴板!
输入您的策略详情,如名称、严重性、描述和指导来解析策略违反情况。必填字段标记为星号。
流程
- 输入策略的 Name。策略的名称必须在 5 到 128 个字符之间,且不能包含新行或美元符号。
- 为此策略选择一个 严重性级别。
- 从 Categories 列表中选择策略的策略类别。
- 在 Description 字段中输入策略详情。
- 在 Rationale 字段中输入有关策略存在的原因的说明。
- 在 Guidance 字段中输入解决此策略违反情况的步骤。
在 MITRE ATT&CK 部分下,选择您要为策略指定的 tactics 和技术。
- 单击 Add tactic,然后从下拉列表中选择 tactic。
- 点 Add Technology,为所选 tactic 添加技术。您可以为 tactic 指定多种技术。
- 点 Next。
5.3.1.2. 选择策略生命周期阶段 复制链接链接已复制到粘贴板!
选择使用策略时的生命周期阶段。如需更多信息,请参阅"了解 RHACS 策略评估引擎"。
流程
选择 策略的 Lifecycle 阶段 :
- Build: 此阶段中的策略只能检查与镜像 registry、内容、漏洞数据和扫描过程相关的镜像标准。它们在 CI 管道中评估,允许策略违反在强制时中断构建。RHACS 不会存储此阶段的违反情况。
- 部署 :此阶段中的策略可以检查工作负载配置及其镜像。这些策略在创建或更新工作负载资源时评估,并定期或按需重新评估。强制时,策略违反可能会导致准入控制器拒绝部署或更新尝试,或者将工作负载副本缩减为零。
- Build and Deploy: 如果您希望策略在构建管道和工作负载准入期间检查镜像,并将强制应用到这两个阶段。
Runtime: 此阶段的策略检查与以下两个事件源关联的工作负载活动或 Kubernetes 资源操作:
- Deployment :运行时策略检查工作负载活动至少需要一个工作负载活动。工作负载活动标准可以与镜像或工作负载配置标准结合使用。强制终止终止 pod,然后重新创建 pod。
- 审计日志 :评估 Kubernetes 资源操作的运行时策略会使用 Kubernetes 审计日志查找敏感操作。您无法为使用此源的策略配置强制,因为操作已经发生。
- 点 Next。
5.3.1.3. 配置策略规则 复制链接链接已复制到粘贴板!
您可以使用策略字段或条件来创建策略规则。
流程
-
在 Rules 部分中,配置您要触发策略的条件。您可以编辑规则标题;例如,您可以将
Rule 1更改为更描述性的内容。 对于每个规则,点策略字段并将策略字段拖到 Policy Section 中,以添加策略字段或条件。
注意可用的策略字段取决于您为策略选择的生命周期阶段。例如,当为运行时生命周期创建策略时,网络或 工作负载活动 下的条件可用,但不能在为构建生命周期创建策略时使用。有关策略标准的更多信息,包括可用条件和生命周期阶段的信息,请参阅"策略标准"。
对于每个字段,您可以从特定于字段的选项中选择。它们根据字段类型而有所不同。例如:
- 作为字符串的默认行为与策略字段匹配,您点 Not 来指示您不希望字段匹配的时间。
-
有些字段包含一个值,可以是
true或false。 - 有些字段要求您从下拉列表中选择一个值。
-
如果您选择了带有布尔值的属性,如
Read-Only Root Filesystem,则会提供READ-ONLY和WRITABLE选项。 如果您选择了带有复合值(如
Environment 变量)的属性,您可以为Key、Value和Value From字段输入值,然后点击图标为可用选项添加更多值。注意如需有关策略条件可用值的更多信息,请参阅 "Policy criteria"。
- 要组合一个属性的多个值,点 Add 图标。
- 可选:点击 Add a new rule 来添加额外的规则。
- 点 Next。
5.3.1.4. 配置策略范围 复制链接链接已复制到粘贴板!
您可以定义策略范围来限制或允许特定实体的策略。您可以启用策略应用到特定的集群、命名空间或部署标签。对于为部署和运行时生命周期阶段配置的策略,您还可以排除集群、命名空间、部署或部署标签,以便不应用策略。对于构建生命周期阶段,您可以排除特定的镜像,例如,这些镜像不会在持续集成/持续交付(CI/CD)管道的持续集成部分触发违反情况。
流程
配置以下选项之一:
- 按范围限制 :这将使此策略只应用于特定的集群、命名空间或部署标签。您可以添加多个范围,并将 RE2 语法中的正则表达式 用于命名空间和标签。
排除范围 :从策略中排除特定的部署、集群、命名空间和部署标签。该策略不适用于您选择的实体。您可以添加多个范围,并将 RE2 语法中的正则表达式 用于命名空间和标签。但是,您无法使用正则表达式来选择部署。
注意此功能仅适用于为部署和运行时生命周期阶段配置的策略。
exclude 镜像 :对于为构建生命周期阶段配置的策略,您可以从策略中排除镜像。选择您要触发违反情况的镜像。
注意Excluded Images 设置仅在您在带有 Build 生命周期阶段的持续集成系统中检查镜像时适用。如果您使用此策略检查 Deploy 生命周期阶段中运行的部署,或检查在 Runtime 生命周期阶段中的运行时活动时,则不会生效。
- 点 Next。
5.3.1.5. 启用策略 复制链接链接已复制到粘贴板!
启用或禁用策略。
流程
- 选择 Enable make policy active 或 Disable 来禁用它。
- 点 Next。
5.3.1.6. 配置策略强制 复制链接链接已复制到粘贴板!
您可以在违反此策略时,配置 RHACS 是否只通知您通知,或者通知您并强制实施策略。策略强制由在集群中启用准入控制器和策略的生命周期阶段决定。
流程
选择强制方法:
- inform: 在违反列表中包含违反情况。
- inform and enforce :将违反信息包含在违反列表中,并强制您配置的操作。如果选择这个选项,则必须使用相应生命周期的切换选择策略的强制行为。
如果您选择强制实施策略,请配置强制行为。您可以选择的强制行为取决于您在策略定义的 Lifecycle 部分为策略选择的生命周期阶段。以下强制行为取决于生命周期阶段:
-
Build: 选择 Enforce on Build 使 RHACS 在镜像与策略条件匹配时,您的持续集成(CI)构建会失败。您可以下载
roxctlCLI,并将roxctl image check命令配置为使用该策略。 Deploy: 选择 Enforce on Deploy 以获得 RHACS 块工作负载准入和更新,如果 RHACS 准入控制器配置并运行,则与策略条件匹配。
- 在带有准入控制器强制的集群中,Kubernetes 或 OpenShift Container Platform API 服务器会阻止所有不合规的部署。在其他集群中,RHACS 编辑不合规的部署以防止调度 pod。
- 对于现有部署,当 Kubernetes 事件发生时,策略更改只会导致在下一个条件检测时进行强制。有关强制的更多信息,请参阅"部署阶段强制"。
Runtime: 选择 Enforce on Runtime,以便在 Pod 中的事件与策略条件匹配时,删除所有 pod。
警告策略实施可能会影响运行应用程序或开发流程。在启用强制选项前,请通知所有利益相关者,并计划如何响应自动化执行操作。
-
Build: 选择 Enforce on Build 使 RHACS 在镜像与策略条件匹配时,您的持续集成(CI)构建会失败。您可以下载
- 点 Next。
5.3.1.7. 选择策略通知程序 复制链接链接已复制到粘贴板!
您可以将通知程序附加到策略,将策略违反情况发送到电子邮件接收者,或向外部工具(如 Slack、JIRA、Splunk 或其他使用 webhook 的应用程序)。
前提条件
-
您必须先配置了通知程序,然后才能在列表中看到并可用。您可以在 Platform Configuration
Integrations 页面中配置这些集成,在 Notifier Integrations 部分。
流程
- 选择 RHACS 在违反策略时将用来通知您的通知程序。
- 点 Next。
5.3.1.8. 查看策略并预览违反情况 复制链接链接已复制到粘贴板!
在创建策略时,RHACS 提供了一个 preview 窗口,您可以在其中查看策略配置并预览在策略实现时发生的违反情况。
流程
- 验证策略配置是否已配置了正确的选项。
在 Preview violations 面板中查看结果,以确保策略正常工作。此面板提供其他信息,包括构建阶段还是部署阶段部署是否有策略违反情况。
注意此预览中不提供运行时违反情况,因为它们会在以后发生事件时生成。
在保存策略前,请验证违反情况是否准确。
- 点击 Save。
5.3.2. 从 risk 视图创建安全策略 复制链接链接已复制到粘贴板!
在风险视图中评估部署的风险时,当您应用本地页面过滤时,您可以根据您使用的过滤标准创建新的安全策略。
流程
- 进入 RHACS 门户,从导航菜单中选择 Risk。
- 应用您要为其创建策略的本地页面过滤条件。
- 选择 New Policy 并完成必填字段来创建新策略。有关创建策略的步骤,请参阅"从系统策略视图创建安全策略"。
5.3.3. 修改现有安全策略 复制链接链接已复制到粘贴板!
您可以编辑您创建的策略,以及已克隆的 Red Hat Advanced Cluster Security for Kubernetes 提供的现有默认策略。
流程
-
在 RHACS 门户中,进入 Platform Configuration
Policy Management。 - 在 Policies 页面中,选择您要编辑的策略。
选择 Actions
Edit policy。 注意您不能编辑默认系统策略的某些字段。要更改默认策略,请克隆策略并编辑副本。
- 编辑您要更改的字段,然后单击保存。
5.3.3.1. 禁用策略 复制链接链接已复制到粘贴板!
您可以使用 RHACS 门户禁用策略。
流程
-
在 RHACS 门户中,进入 Platform Configuration
Policy Management。对于默认策略,您无法编辑强制选项。 -
如果您不希望针对工作负载操作评估策略,请选择 Actions
Edit policy。 - 在左侧导航菜单中,选择 Actions。
- 在 Activation state 字段中,选择 Disable。
- 保存策略。