16.4. 查看违反详情
当您在 Violations 视图中选择一个违反时,会打开一个窗口,其中包含有关违反情况的更多信息。它提供按多个选项卡分组的详细信息。
16.4.1. 违反标签页 复制链接链接已复制到粘贴板!
Violation Details 的 Violation 标签页解释了如何违反了策略。如果策略以 deploy-phase 属性为目标,您可以查看违反策略的特定值,如违反名称。如果策略以运行时活动为目标,您可以查看违反策略的进程的详细信息,包括其参数以及创建该策略的上级进程。
16.4.2. Deployment 标签页 复制链接链接已复制到粘贴板!
Details 面板的 Deployment 选项卡显示违反适用的部署详情。
概述部分
部署概述 部分列出了以下信息:
- Deployment ID: 部署字母数字字符标识符。
- Deployment name :部署的名称。
- 部署类型 :部署的类型。
- Cluster: 部署容器的集群名称。
- Namespace :部署的集群的唯一标识符。
- 副本 :复制部署的数量。
- Created :创建部署的时间和日期。
- 更新了 :部署更新的时间和日期。
- Labels :应用到所选部署的标签。
- Annotations:应用到所选部署。
- Service Account :所选部署的服务帐户的名称。
容器配置部分
Container 配置部分 列出了以下信息:
容器 :对于每个容器,提供以下信息:
- 镜像名称 :所选部署的镜像的名称。点名称查看镜像的更多信息。
Resources: 本节提供以下字段的信息:
- CPU 请求(内核) :容器请求的内核数。
- CPU 限制(内核) :容器可以请求的最大内核数。
- 内存请求(MB) :容器请求的内存大小。
- 内存限制(MB) :容器可以请求的最大内存。
- 卷 :挂载到容器中的卷(若有)。
Secret :与所选部署关联的 Secret。对于每个 secret,提供以下字段的信息:
- 名称 :secret 的名称。
- 容器路径 :存储 secret 的位置。
- Name :挂载服务的位置的名称。
- Source: 数据源路径。
- Target: 存储数据的路径。
- 类型 :卷的类型。
端口配置部分
Port 配置 部分提供有关部署中端口的信息,包括以下字段:
端口 :部署公开的所有端口,以及与此部署和端口关联的任何 Kubernetes 服务(如果存在)。对于每个端口,会列出以下字段:
- containerPort :部署公开的端口号。
- 协议 :端口使用的协议,如 TCP 或 UDP。
- 公开 :公开服务方法,如负载均衡器或节点端口。
exposureInfo :本节提供了以下字段的信息:
- level :指示服务在内部或外部公开端口。
- serviceName :Kubernetes 服务的名称。
- serviceID :存储在 RHACS 中的 Kubernetes 服务的 ID。
- serviceClusterIp : 集群中 另一个部署或服务的 IP 地址,可用于访问该服务。这不是外部 IP 地址。
- servicePort :服务使用的端口。
- NodePort :外部流量进入节点上的端口。
- externalIPs :可用于从外部访问该服务的 IP 地址(如果存在)。此字段不适用于内部服务。
安全上下文部分
Security context 部分列出了容器是否作为特权容器运行。
特权 :
-
如果 特权 为,则为
true
。 -
如果 它不特权,则为
false
。
-
如果 特权 为,则为
网络策略部分
Network policy 部分列出了包含违反情况的命名空间中的命名空间和所有网络策略。点网络策略名称查看网络策略的完整 YAML 文件。
16.4.3. 策略标签页 复制链接链接已复制到粘贴板!
Details 面板的 Policy 选项卡显示导致违反情况的策略详情。
策略概述部分
Policy overview 部分列出了以下信息:
- 严重性 :对于所需的关注量,对政策的排名(关键、高、中等或低)。
-
类别 :策略类别。策略类别在 Policy categories 选项卡中的 Platform Configuration
Policy Management 中列出。 - 类型 :策略是用户生成的(用户创建的策略)或系统策略(默认为在 RHACS 中构建的策略)。
- Description: 策略报警的详细说明。
- Rationale:有关策略建立原因的信息及其重要原因。
- 指导 :说明如何解决违反情况。
- MITRE ATT&CK :指示存在适用于此政策的 MITRE 战术和技术。
策略行为
Policy behavior 部分提供以下信息:
-
Lifecycle Stage: 策略所属的生命周期阶段:
Build
,Deploy
, 或Runtime
。 Event source: 此字段仅在生命周期阶段为
Runtime
时才适用。它可以是以下之一:- Deployment: RHACS 会在事件源包括进程和网络活动、pod 执行和 pod 端口转发时触发策略违反情况。
- 审计日志 :当事件源与 Kubernetes 审计日志记录匹配时,RHACS 会触发策略违反情况。
响应 :响应可以是以下之一:
- inform: Policy violations 在违反列表中生成违反情况。
- inform and enforce :强制违反情况。
强制 :如果响应被设置为 Inform 和 enforce,请列出为以下阶段设置的强制类型:
- 构建 :当镜像与策略条件匹配时,RHACS 将无法进行持续集成(CI)构建。
部署 :对于 Deploy 阶段,RHACS 会阻止在 RHACS 准入控制器配置并运行时与策略条件匹配的部署创建或更新。
- 在带有准入控制器强制的集群中,Kubernetes 或 OpenShift Container Platform API 服务器会阻止所有不合规的部署。在其他集群中,RHACS 编辑不合规的部署以防止调度 pod。
- 对于现有部署,当 Kubernetes 事件发生时,策略更改只会导致在下一个条件检测时进行强制。有关强制的更多信息,请参阅"部署阶段的安全策略强制"。
- Runtime: RHACS 当 Pod 中的事件与策略条件匹配时,会删除所有 pod。
策略标准部分
Policy criteria 部分列出了策略的策略标准。
16.4.3.1. deploy 阶段的安全策略强制 复制链接链接已复制到粘贴板!
Red Hat Advanced Cluster Security for Kubernetes 支持对 deploy-time 策略的两种安全策略实施:通过准入控制器和 RHACS Sensor 进行软实施的硬强制。准入控制器会阻止创建或更新违反策略的部署。如果准入控制器被禁用或不可用,Sensor 可以将违反策略的部署缩减为 0
来执行强制。
策略实施可能会影响运行应用程序或开发流程。在启用强制选项前,请通知所有利益相关者,并计划如何响应自动化执行操作。
16.4.3.1.1. 硬实施 复制链接链接已复制到粘贴板!
硬强制由 RHACS 准入控制器执行。在带有准入控制器强制的集群中,Kubernetes 或 OpenShift Container Platform API 服务器会阻止所有不合规的部署。准入控制器会阻止 CREATE
和 UPDATE
操作。任何满足启用了部署时强制配置的策略的 pod 创建或更新请求将失败。
Kubernetes 准入 Webhook 仅支持 CREATE
、UPDATE
、DELETE
或 CONNECT
操作。RHACS 准入控制器只支持 CREATE
和 UPDATE
操作。kubectl patch
、kubectl set
和 kubectl scale
等操作是 PATCH 操作,而不是 UPDATE 操作。因为 Kubernetes 不支持 PATCH 操作,所以 RHACS 无法对 PATCH 操作执行强制。
要阻止强制,您必须在 RHACS 中为集群启用以下设置:
- Object Creates on Object Creates:此切换在 Dynamic Configuration 部分中控制准入控制服务的行为。您必须在 Static Configuration 部分中打开 Configure Admission Controller Webhook 侦听 Object Creates 切换,才能使它正常工作。
- 对 Object Updates 强制执行 :这会在 Dynamic Configuration 部分中切换控制准入控制服务的行为。您必须在 Static Configuration 部分中打开 Configure Admission Controller Webhook 以侦听 Object Updates 切换,才能使它正常工作。
如果更改了 Static Configuration 设置中的设置,您必须重新部署安全集群才能使这些更改生效。
16.4.3.1.2. 软强制 复制链接链接已复制到粘贴板!
软强制由 RHACS Sensor 执行。这种强制可防止启动操作。在软强制中,Sensor 将副本扩展到 0,并阻止调度 pod。在此强制中,集群中提供了一个非就绪的部署。
按照设计,Sensor 仅执行此软执行一次,以防止捕获更新请求以再次缩减部署。
如果配置了软强制,并且 Sensor 停机,则 RHACS 无法执行强制。
16.4.3.1.3. 命名空间排除 复制链接链接已复制到粘贴板!
默认情况下,RHACS 排除某些管理命名空间,如 stackrox
、kube-system
和 istio-system
命名空间。这样做的原因是,必须部署这些命名空间中的一些项目才能使 RHACS 正常工作。
另外,RHACS 准入控制器会绕过来自 系统
命名空间中的 服务帐户
的请求。在部署您选择的 CI/CD 工具时,请考虑此因素。
16.4.3.1.4. 对现有部署进行强制 复制链接链接已复制到粘贴板!
对于现有部署,当 Kubernetes 事件发生时,策略更改只会导致在下一个条件检测时进行强制。如果对策略进行更改,您必须通过 选择策略管理 并单击 Reassess All 来重新评估策略。无论是否有新的传入的 Kubernetes 事件,此操作会在所有现有部署中应用部署策略。如果违反了策略,则 RHACS 执行执行。
16.4.4. 网络策略标签页 复制链接链接已复制到粘贴板!
Network policies 部分列出了与命名空间关联的网络策略。