操作

Red Hat Advanced Cluster Security for Kubernetes 3.71

操作 Red Hat Advanced Cluster Security for Kubernetes

Red Hat OpenShift Documentation Team

摘要

本文档论述了如何在 Red Hat Advanced Cluster Security for Kubernetes 中执行常见操作任务,包括使用仪表板、管理合规性、评估安全风险、管理安全策略和网络策略,检查镜像的漏洞,以及响应违反情况。

第 1 章 查看仪表板

Red Hat Advanced Cluster Security for Kubernetes(RHACS)Dashboard 可让您快速访问您需要的数据。它包含容易过滤和自定义的额外导航快捷键和可操作性小部件,以便您可以专注于最重要的数据。您可以在镜像中查看有关环境、合规状态、策略违规和常见漏洞以及 CVE(CVE)的风险级别的信息。

注意

第一次打开 RHACS 门户时,仪表板可能是空的。在至少有一个集群中部署 Sensor 后,仪表板会反映您的环境的状态。

以下小节描述了 Dashboard 组件。

1.2. dashboard 过滤器

Dashboard 包含一个顶层过滤器,同时应用于所有小部件。您可以选择一个或多个集群,以及所选集群中的一个或多个命名空间。当没有选择集群或命名空间时,视图会自动切换到 All。对过滤器的任何更改都会被所有小部件立即反映,从而限制它们显示到所选范围的数据。Dashboard 过滤器不会影响 Status Bar

1.3. 小部件选项

可以自定义一些小部件,以帮助您专注于特定的数据。小部件提供不同的控件,您可以使用它们来更改数据排序方式、过滤数据和自定义小部件的输出。

小部件提供两种自定义不同方面的方法:

  • Options 菜单存在时,提供适用于该小部件的特定选项。
  • 一个 动态 axis legend (存在时)提供了一个通过隐藏一个或多个类别来过滤数据的方法。例如,在 Policy violations by category widget 中,您可以点击严重性来包含或排除数据所选严重性的违反情况。
注意

各个小部件自定义设置比较短,在离开仪表板后会被重置为系统默认值。

1.4. 可操作小部件

以下小节描述了 Dashboard 中可用的可操作小部件。

1.4.1. 策略违反严重性

此小部件显示通过 Dashboard-filtered 范围在严重性级别间分布违反情况。点击图表中 的严重性级别 会进入 Violations 页面,它针对该严重性和范围过滤。它还列出了您在 Dashboard 过滤器中定义的 范围中关键 级别策略的三个最新违反情况。点击特定的违反情况会直接进入该 违反情况 的 Violation 详情页面。

1.4.2. 镜像处于最大的风险

此小部件列出了 Dashboard-filtered 范围内的前六个存在安全漏洞的镜像,按其计算风险优先级排序,以及它们包含的关键和重要 CVE 的数量。单击镜像名称以直接转至 漏洞管理 下的 Image Findings 页面。使用 Options 菜单来专注于可修复的 CVE,或者更专注于活跃的镜像。

注意

当在 Dashboard 过滤器中选择了集群或命名空间时,显示的数据已过滤为活跃镜像,或被过滤范围内部署使用的镜像。

1.4.3. 部署面临最多风险

此小部件提供环境中面临风险,了解最高部署的信息。它显示额外的信息,如资源位置(集群和命名空间)以及风险优先级分数。此外,您可以点击部署来查看有关部署的风险信息;例如,策略违反和漏洞。

1.4.4. 过期的镜像

旧镜像存在更高的安全风险,因为它们可能包含已解决的漏洞。如果较旧的镜像是活跃的,它们可以公开部署供利用。您可以使用此小部件来快速评估安全状况并识别出错的镜像。您可以使用默认范围,或使用您自己的值自定义年龄间隔。您可以查看不活跃和活跃的镜像,或者使用 Dashboard 过滤器来专注于活跃镜像的特定区域。然后,您可以点此小部件中的 age 组,仅在 Vulnerability ManagementImages 页面中查看这些镜像。

1.4.5. 根据类别策略违反情况

通过分析哪些类型的策略违反了超过其他策略,可以帮助您深入了解您的组织面临的挑战。小部件显示以下的五个策略类别。探索用于转换数据的不同方法的 Options 菜单。您可以过滤数据,使其只专注于部署或运行时违反情况。

您还可以更改排序模式。默认情况下,数据首先按照最高严重性中的违反数量进行排序。因此,所有带有关键策略的类别都会在没有关键策略前出现。其他排序模式都会考虑违反情况的总数,而不考虑严重性。因为有些类别不包含关键策略(例如:"Docker CIS"),这两种排序模式可以提供很大的不同视图,从而提供额外的信息。

点击图形底部的严重性级别,从数据中包含或排除该级别。选择不同的严重性级别可能会生成不同前 5 个选择列表或其顺序。数据将过滤为 Dashboard 过滤器选择的范围。

1.4.6. 按标准合规

您可以通过标准小部件和 Dashboard 过滤器使用 Compliance,专注于最适合您的区域。小部件根据排序顺序列出前六个合规基准。选择 Options 以按照覆盖范围百分比排序。点击其中一个基准标签或图形直接转至 Compliance Controls 页面,按 Dashboard 范围和所选基准过滤。

注意

Compliance widget 仅在运行 合规性扫描 后显示详情。

第 2 章 管理合规性

通过使用 Red Hat Advanced Cluster Security for Kubernetes,您可以评估、检查并报告容器化基础架构的合规性状态。您可以基于行业标准运行开箱即用合规性扫描,包括:

  • 用于 DockerKubernetesCIS Benchmark(互联网安全中心)
  • HIPAA (健康保险的便携性和责任法)
  • NIST Special Publication 800-190800-53 (标准与技术研究所)
  • PCI DSS (支付卡行业数据安全标准)

根据以下标准扫描您的环境:

  • 评估您的基础架构,以确定合规性。
  • 强化 Docker Engine 和 Kubernetes 编配器。
  • 了解和管理您环境的整体安全状况。
  • 获取集群、命名空间和节点的合规状态的详细视图。

2.1. 查看合规性仪表板

合规性仪表板提供环境中所有集群、命名空间和节点的合规性标准的高级视图。

合规性仪表板包括 chart,并提供一些选项来调查合规指令的潜在问题。您可以导航到单个集群、命名空间或节点的合规性扫描结果。此外,您可以在容器化环境中生成有关合规性状态的报告。

流程

  • 在 RHACS 门户,从导航菜单中选择 Compliance
注意

您第一次打开 Compliance 仪表板时,您将看到一个空白仪表板。您必须运行合规性扫描来填充仪表板。

2.2. 运行合规性扫描

运行合规性扫描会检查所有合规标准中整个基础架构的合规性状态。运行合规性扫描时,Red Hat Advanced Cluster Security for Kubernetes 会为您的环境进行数据快照。数据快照包括警报、镜像、网络策略、部署和相关基于主机的数据。中心从集群中运行的 Sensors 收集基于主机的数据。之后,中央中央从各个收集器 Pod 中运行的合规容器收集更多数据。合规性容器收集有关环境的以下数据:

  • 配置 Docker 守护进程、Docker 镜像和 Docker 容器。
  • 有关 Docker 网络的信息。
  • Docker、Kubernetes 和 OpenShift Container Platform 的命令行参数和进程。
  • 特定文件路径的权限。
  • 核心 Kubernetes 和 OpenShift Container Platform 服务的配置文件。

数据收集完成后,中心会对数据执行检查以确定结果。您可以从合规仪表板查看结果,并根据结果生成合规性报告。

注意

在合规性扫描中:

  • Control 描述了行业或法规合规性标准中的一行项目,它针对该审核员评估一个信息系统,以遵守标准。Red Hat Advanced Cluster Security for Kubernetes 通过完成一个或多个检查检查与单个控制的合规性。
  • 检查 是在单个控制评估过程中执行的单个测试。
  • 有些控制会有多个与它们关联的检查。如果有任何关联的检查无法控制,则整个控制状态被标记为 Fail

流程

  1. 导航到 RHACS 门户,并通过从导航菜单中选择 Compliance 来打开合规性仪表板。
  2. 扫描环境

    注意

    完成扫描整个环境需要大约 2 分钟。根据环境中的集群和节点数量,这个时间可能会有所不同。

2.3. 查看合规性扫描结果

运行合规性扫描后,合规性仪表板会显示结果作为环境的合规状态。您可以直接从仪表板查看合规性违反情况,过滤详情视图,并深入查看您的环境是否遵循特定的基准。本节介绍如何查看和过滤合规性扫描结果。

您可以使用快捷方式检查集群、命名空间和节点的合规状态。在合规性仪表板的顶部查找这些快捷方式。通过点击这些快捷方式,您可以查看合规性快照,并针对集群、命名空间或节点的整体合规性生成报告。

合规性状态

状态描述

Fail

合规性检查失败。

Pass

已传递合规性检查。

N/A

Red Hat Advanced Cluster Security for Kubernetes 会跳过检查,因为它不适用。

info

合规性检查收集数据,但 Red Hat Advanced Cluster Security for Kubernetes 无法做出 PassFail 确定。

Error

合规检查因为技术问题而失败。

2.3.1. 查看集群的合规性状态

您可以从合规性仪表板查看所有集群或单个集群的合规性状态。

流程

  • 查看环境中所有集群的合规性状态:

    1. 导航到 RHACS 门户,并通过从导航菜单中选择 Compliance 来打开合规性仪表板。
    2. 在合规性仪表板上点 Clusters
  • 查看环境中特定集群的合规性状态:

    1. 导航到 RHACS 门户,并通过从导航菜单中选择 Compliance 来打开合规性仪表板。
    2. 在合规性仪表板上,通过集群小部件查找传递标准
    3. 在这个小部件中,点击集群名称来查看其合规状态。

2.3.2. 查看命名空间的合规性状态

您可以从合规性仪表板查看所有命名空间或单个命名空间的合规状态。

流程

  • 查看环境中所有命名空间的合规状态:

    1. 导航到 RHACS 门户,并通过从导航菜单中选择 Compliance 来打开合规性仪表板。
    2. 点合规性仪表板上的 Namespaces
  • 查看环境中特定命名空间的合规性状态:

    1. 导航到 RHACS 门户,并通过从导航菜单中选择 Compliance 来打开合规性仪表板。
    2. Namespaces 打开命名空间详情页面。
    3. Namespaces 表中点一个命名空间。在右侧打开侧面板。
    4. 在侧边面板中,点命名空间的名称来查看其合规状态。

2.3.3. 查看特定标准的合规性状态

Red Hat Advanced Cluster Security for Kubernetes 支持 NIST, PCI DSS、NIST、HIPAA、CIS 用于 Docker 合规标准。您可以查看单个合规性标准的所有合规控制。

流程

  1. 导航到 RHACS 门户,并通过从导航菜单中选择 Compliance 来打开合规性仪表板。
  2. 在合规性仪表板上,通过集群小部件查找传递标准
  3. 在此小部件中,点标准以查看与该标准关联的所有控件的信息。

2.3.4. 查看特定控制的合规性状态

您可以查看所选标准的特定控制的合规性状态。

流程

  1. 导航到 RHACS 门户,并通过从导航菜单中选择 Compliance 来打开合规性仪表板。
  2. 在合规性仪表板上,通过集群小部件查找传递标准
  3. 在此小部件中,点标准以查看与该标准关联的所有控件的信息。
  4. Controls 表中点控制。在右侧打开侧面板。
  5. 在侧边面板中,点击控制名称来查看其详情。

2.4. 过滤合规性状态

Red Hat Advanced Cluster Security for Kubernetes 搜索可让您轻松地从合规性仪表板中过滤不同的数据组合。为了让您注意集群的子集,行业标准,传递或失败控制,您可以在合规性仪表板中缩小数据的范围。

流程

  1. 导航到 RHACS 门户,并通过从导航菜单中选择 Compliance 来打开合规性仪表板。
  2. 在合规性仪表板中,选择 Clusters、or NamespacesNodes 来打开详情页面。
  3. 在搜索栏中输入您的过滤条件,然后按 Enter

2.5. 生成合规性报告

Red Hat Advanced Cluster Security for Kubernetes 允许您生成报告来跟踪环境的合规状态。您可以使用这些报告来区分不同行业要求对其它利益相关者的要求的合规性状态。

您可以生成:

  • 关注商业方面的 执行报告,包括 PDF 格式的合规性状态的图表和摘要。
  • 证据报告,侧重于技术方面,并包括了 CSV 格式的详细信息。

流程

  1. 导航到 RHACS 门户,并通过从导航菜单中选择 Compliance 来打开合规性仪表板。
  2. 在合规性仪表板上,单击右上角的 Export

    • 要生成执行报告,请选择 Download page as PDF
    • 要生成证据报告,请选择 Download Evidence 作为 CSV
提示

Export 选项会出现在所有合规页面中,并过滤过视图。

2.5.1. 证据报告

您可以作为证据报告,从 Red Hat Advanced Cluster Security for Kubernetes 导出与 Red Hat Advanced Cluster Security for Kubernetes 的综合合规数据。此证据报告包含有关合规性评估的详细信息,并针对于技术角色(如合规性审核员、DevOps 工程师或安全攻击者)量身定做。

证据报告包含以下信息:

CSV 字段描述

Standard(标准)

合规标准,如 CIS Kubernetes。

集群

评估的集群的名称。

命名空间

部署存在的命名空间或项目的名称。

对象类型

对象的 Kubernetes 实体类型。例如,节点集群DaemonSetDeploymentStaticPod

对象名称

是唯一标识对象的 Kubernetes 系统生成的字符串。例如: gke-setup-dev21380-default-pool-8e086a77-1jfq

控制

显示在合规性标准中的控制号。

控制描述

有关合规性检查说明,控制执行。

状态

合规性检查是否通过还是失败。例如,passFail

证据

有关特定合规性检查失败或通过的原因。

评估时间

运行合规性扫描时的时间和日期。

2.6. 支持的基准版本

Red Hat Advanced Cluster Security for Kubernetes 支持与以下行业标准和规范框架的合规性检查:

基准支持的版本

用于 Docker 和 Kubernetes 的 CIS Benchmark(互联网安全中心)

CIS Kubernetes v1.5.0 和 CIS Docker v1.2.0

HIPAA(健康保险的便携性和责任法)

HIPAA 164

NIST(标准与技术研究所)

NIST Special Publication 800-190 和 800-53 Rev. 4

PCI DSS(支付卡行业数据安全标准)

PCI DSS 3.2.1

第 3 章 评估安全风险

Red Hat Advanced Cluster Security for Kubernetes 会评估整个环境的风险,并根据其安全风险对运行的部署进行评级。它还详细介绍了需要立即关注的漏洞、配置和运行时活动。

3.1. 风险视图

Risk 视图列出了所有集群中的所有部署,根据策略违反、镜像内容、部署配置和其他类似因素,根据策略违反风险指标进行排序。在列表顶部的部署会带来最大的风险。

Risk 视图显示每行中带有以下属性的部署列表:

  • 名称 :部署的名称。
  • 创建 :部署的创建时间。
  • Cluster :运行部署的集群的名称。
  • 命名空间:部署所在的命名空间。
  • 优先级 :优先级根据严重性和风险指标进行评级。

Risk 视图中,您可以:

  • 选择一个列标题,以升序或降序排列违反情况。
  • 使用过滤器栏过滤违反情况。
  • 根据过滤的标准创建新策略。

要查看有关部署风险的更多详情,请在风险视图中选择部署。

3.1.1. 打开风险视图

您可以分析风险视图中的所有 风险,并采取纠正措施。

流程

  • 导航到 RHACS 门户并从 导航菜单中选择风险

3.2. 从风险视图中创建安全策略

风险视图中评估部署的风险时,当您应用本地页面过滤时,您可以根据您使用的过滤标准创建新的安全策略。

流程

  1. 导航到 RHACS 门户并从 导航菜单中选择风险
  2. 应用您要创建策略的本地页面过滤条件。
  3. 选择 New Policy 并填写所需字段来创建新策略。

3.2.1. 了解 Red Hat Advanced Cluster Security for Kubernetes 如何将过滤条件转换为策略标准

当您从 风险 视图中创建新安全策略时,基于您使用的过滤条件,并非所有条件都直接应用于新策略。

  • Red Hat Advanced Cluster Security for Kubernetes 将 ClusterNamespaceDeployment 过滤器转换为等效的策略范围。

    • Risk 视图中过滤本地页面会使用以下方法组合搜索术语:

      • 将同一类别中的搜索术语与 OR 运算符合并。例如,如果搜索查询是 Cluster:A,B,则过滤器与集群 A集群 B 中的部署匹配。
      • 将不同类别中的搜索术语与 AND 运算符合并。例如,如果搜索查询是 Cluster:A+Namespace:Z,则过滤器 与集群 Anamespace Z 中的部署匹配。
    • 当您向策略中添加多个范围时,策略会从任何范围中匹配违反情况。

      • 例如,如果您搜索 (Cluster A or Cluster B)and(Namespace Z),则会产生两个策略范围 (Cluster=A AND Namespace=Z)(Cluster=B and Namespace=Z)
  • Red Hat Advanced Cluster Security for Kubernetes drops 或修改过滤器不会直接映射到策略标准并报告丢弃的过滤器。

下表列出了过滤搜索属性如何映射到策略条件:

search 属性策略标准

添加功能

添加功能

注解

禁止注解

CPU 内核限制

容器 CPU 限制

CPU 内核请求

容器 CPU 请求

CVE

CVE

CVE Published On

rails 已丢弃

CVE Snoozed

rails 已丢弃

CVSS

CVSS

集群

转换为范围

组件

镜像组件(名称)

组件版本

镜像组件(版本)

Deployment

转换为范围

部署类型

rails 已丢弃

Dockerfile 指令关键字

Dockerfile 行(密钥)

Dockerfile 指令值

Dockerfile 行(值)

丢弃功能

rails 已丢弃

环境密钥

环境变量(密钥)

环境值

环境变量(值)

环境变量源

环境变量(源)

公开的节点端口

rails 已丢弃

公开服务

rails 已丢弃

公开服务端口

rails 已丢弃

风险级别

端口公开

外部主机名

rails 已丢弃

外部 IP

rails 已丢弃

镜像

rails 已丢弃

镜像命令

rails 已丢弃

镜像创建时间

自镜像创建以来的天数

image Entrypoint

rails 已丢弃

镜像标签

禁止的镜像标签

镜像操作系统

镜像操作系统

镜像 Pull Secret

rails 已丢弃

镜像 Registry

镜像 Registry

镜像远程

镜像远程

镜像扫描时间

自镜像最后一次扫描的天数

镜像标签

镜像标签

镜像顶级 CVSS

rails 已丢弃

镜像用户

rails 已丢弃

镜像卷

rails 已丢弃

标签

转换为范围

max Exposure Level

rails 已丢弃

内存限制(MB)

容器内存限制

内存请求(MB)

容器内存请求

命名空间

转换为范围

命名空间 ID

rails 已丢弃

Pod 标签

rails 已丢弃

端口

端口

端口协议

协议

优先级

rails 已丢弃

privileged

privileged

Process Ancestor

Process Ancestor

进程参数

进程参数

进程名称

进程名称

进程路径

rails 已丢弃

进程标签

rails 已丢弃

进程 UID

进程 UID

只读取根文件系统

只读根文件系统

Secret

rails 已丢弃

机密路径

rails 已丢弃

服务帐户

rails 已丢弃

服务帐户权限级别

最低 RBAC 权限级别

容限键

rails 已丢弃

容限值

rails 已丢弃

卷目的地

卷目的地

卷名称

卷名称

卷 ReadOnly

可写卷

卷源

卷源

卷类型

卷类型

3.3. 查看风险详情

当您在 风险 视图中选择部署时,在右侧的面板中打开 风险 详情。Risk Details 面板显示按多个标签页分组的详细信息。

3.3.1. risk Indicators 选项卡

Risk Details 中的 Risk Indicators 标签页解释了发现的风险。

Risk Indicators 选项卡包括以下部分:

  • 策略冲突 :违反了所选部署的策略的名称。
  • 可疑的进程执行: 可疑的进程、参数以及进程中运行的容器名称。
  • 镜像漏洞 :镜像,包括包括 CVSS 分数的总 CVE。
  • 服务配置 :配置通常出现问题的配置,如读写(RW)功能、是否丢弃功能,以及存在特权容器。
  • 服务可靠性 :在集群内部或外部公开的容器端口。
  • 组件对 Attackers:发现的软件工具使用,攻击者经常用到。
  • Image 中的组件数量:每个镜像中找到的软件包数
  • Image Freshness :镜像名称和年龄,如 285 days old
  • RBAC 配置 :授予 Kubernetes 基于角色的访问控制(RBAC)中部署的权限级别。
注意

并非所有部分都在 Risk Indicators 选项卡中可见。Red Hat Advanced Cluster Security for Kubernetes 只显示影响所选部署的相关部分。

3.4. 部署详情标签页

Deployment Risk 面板的 Deployment Details 选项卡中的部分提供了更多信息,以便您能够就如何解决发现的风险做出适当的决定。

3.4.1. 概述部分

Overview 部分显示以下内容的详情:

  • 部署 ID :部署的字母数字标识符。
  • 命名空间 :部署所在的 Kubernetes 或 OpenShift Container Platform 命名空间。
  • 更新了 :更新部署时具有日期的时间戳。
  • 部署类型 :部署类型,如 DeploymentDaemonSet
  • replicas :为此部署部署的 pod 数量。
  • 标签 :附加到 Kubernetes 或 OpenShift Container Platform 应用程序的键值标签。
  • Cluster :运行部署的集群的名称。
  • Annotations :部署的 Kubernetes 注解。
  • 服务帐户 :代表 pod 中运行的进程的身份。当进程通过服务帐户进行身份验证时,它可以联系 Kubernetes API 服务器并访问集群资源。如果 pod 没有分配的服务帐户,它会获取 default 服务帐户。

3.4.2. 容器配置部分

容器配置部分显示以下详情:

  • 镜像名称 :部署的镜像 的名称
  • Resources

    • CPU 请求(核心 ):容器请求的 CPU 数量。
    • CPU 限制(内核数): 容器可以使用的最大 CPU 数量。
    • 内存请求(MB) :容器请求的内存大小。
    • 内存限制(MB) :容器可以使用的最大内存量而不被终止。
  • mounts

    • 名称 :挂载的名称。
    • Source :挂载数据所处的路径。
    • destination :挂载数据所处的路径。
    • 键入: 挂载的类型。
  • secret :部署中使用的 Kubernetes secret 的名称,以及 X.509 证书的 secret 值的基本详情。

3.4.3. 安全上下文部分

安全上下文 部分显示以下内容:

  • Privileged:如果容器是特权,则列为 true

3.5. 进程发现标签页

Process Discovery 选项卡提供环境中各个容器执行的所有二进制文件的完整列表,具体由部署进行总结。

process discovery 标签页显示以下详情:

  • 二进制名称 :执行的二进制名称。
  • 容器 :执行进程的部署中的容器。
  • 参数 :通过二进制文件传递的特定参数。
  • 时间 :给定容器中执行二进制文件最近一次的日期和时间。
  • Pod ID :容器所在的 pod 的标识符。
  • UID :执行进程的 Linux 用户身份。

在过滤器栏中使用 Process Name:<name > 查询来查找特定的进程。

3.5.1. 事件时间表部分

Process Discovery 选项卡中的 Event Timeline 部分提供了所选部署的事件概述。它显示策略违反、进程活动和容器终止或重启事件的数量。

您可以选择 Event Timeline 来查看更多详情。

Event Timeline modal 框显示所选部署的所有 pod 的事件。

时间表上的事件归类为:

  • 流程活动
  • 策略违反情况
  • 容器重启
  • 容器终止

这些事件以图标形式显示在时间表上。要查看有关事件的更多详情,请保留鼠标指针到事件图标上。详情会出现在工具提示中。

  • Show Legend 查看哪个图标对应于哪一种事件类型。
  • 选择 ExportDownload PDFExportDownload CSV 来下载事件时间表信息。
  • 选择 Show All 下拉菜单来过滤哪些类型的事件在时间表上可见。
  • 点击展开图标,单独查看所选 pod 中的每个容器的事件。

时间表中的所有事件也显示在底部 minimap 控制中。minimap 控制事件时间表中可见的事件数量。您可以通过修改 minimap 上突出显示的区域来更改时间表中显示的事件。为此,请缩小从左或右边(或两者)中突出显示的区域,然后拖动突出显示的区域。

注意
  • 当容器重启时,Red Hat Advanced Cluster Security for Kubernetes:

    • 显示 pod 中每个容器终止和重启事件最多 10 个不活跃容器实例的信息。例如,对于有两个容器 appsidecar 的 pod,Red Hat Advanced Cluster Security for Kubernetes 保留最多 10 个 app 实例和最多 10 个 sidecar 实例。
    • 不跟踪与之前容器实例关联的进程活动。
  • Red Hat Advanced Cluster Security for Kubernetes 只显示每个 pod 的最新执行(进程名称、进程参数、UID)元。
  • Red Hat Advanced Cluster Security for Kubernetes 只显示活跃 pod 的事件。
  • Red Hat Advanced Cluster Security for Kubernetes 根据 Kubernetes 和 Collector 报告的时间戳来调整报告的时间戳。Kubernetes 时间戳使用基于第二的精度,它将时间从最接近的第二个时舍入。但是,Collector 使用更精确的时间戳。例如,如果 Kubernetes 将容器启动时间报告为 10:54:48,且 Collector 会在该容器中报告进程 10:54:47.5349823,Red Hat Advanced Cluster Security for Kubernetes 将容器启动时间调整为 10:54:47.5349823

3.6. 使用进程基准

您可以使用流程基础来最大程度降低基础架构安全性的风险。通过这种方法,Red Hat Advanced Cluster Security for Kubernetes 首先发现现有的进程并创建基准。然后,它以默认的 deny-all 模式运行,只允许在基准中运行列出的进程。

<discreet><title>进程基准</title>

安装 Red Hat Advanced Cluster Security for Kubernetes 时,没有默认的进程基准。当 Red Hat Advanced Cluster Security for Kubernetes 发现部署时,它会为部署中的每个容器类型创建一个进程基准。然后,它会将发现的进程添加到自己的进程基线中。

</discreet>
<discreet><title>进程基准状态</title>

在进程发现阶段,所有基线都处于解锁状态。

处于 解锁 状态:

  • 当 Red Hat Advanced Cluster Security for Kubernetes 发现新进程时,它会将该进程添加到进程基准中。
  • 进程不会显示为风险,也不会触发任何违反情况。

在 Red Hat Advanced Cluster Security for Kubernetes 超时后,当 Red Hat Advanced Cluster Security for Kubernetes 收到来自部署中的容器的第一个进程指示符后,它会完成进程发现阶段。此时:

  • Red Hat Advanced Cluster Security for Kubernetes 停止在进程基准中添加进程。
  • 没有包括在进程基准中的新进程会显示为风险,但它们不会触发任何违反情况。

要生成违反情况,您必须手动锁定进程基线。

处于 锁定状态

  • Red Hat Advanced Cluster Security for Kubernetes 停止在进程基准中添加进程。
  • 不存在于进程基准中的新进程会触发冲突。

独立于锁定或解锁的基准状态,您总是可以在基线中添加或删除进程。

注意

对于一个部署,如果每个 pod 中存在多个容器,Red Hat Advanced Cluster Security for Kubernetes 为每种容器类型创建一个进程基准。对于这样的部署,如果某些基准被锁定并且一些基准被解锁,则部署的基准状态显示为 Mixed

</discreet>

3.6.1. 查看进程基准

您可以从 风险 视图查看进程基准。

流程

  1. 在 RHACS 门户, 导航菜单中选择风险。
  2. 在默认 风险 视图中,从部署列表中选择部署。部署详情在右侧的面板中打开。
  3. Deployment 详情面板中,选择 Process Discovery 选项卡。
  4. 进程基准在 Spec Container Baselines 部分可见。

3.6.2. 在基线中添加进程

您可以在基线中添加进程。

流程

  1. 在 RHACS 门户, 导航菜单中选择风险。
  2. 在默认 风险 视图中,从部署列表中选择部署。部署详情在右侧的面板中打开。
  3. Deployment 详情面板中,选择 Process Discovery 选项卡。
  4. Running Process 部分,点您要添加到进程基准进程的 Add 图标。
注意

Add 图标仅适用于不在进程基准中的进程。

3.6.3. 从基线中删除进程

您可以从基线中删除进程。

流程

  1. 在 RHACS 门户, 导航菜单中选择风险。
  2. 在默认 风险 视图中,从部署列表中选择部署。部署详情在右侧的面板中打开。
  3. Deployment 详情面板中,选择 Process Discovery 选项卡。
  4. Spec Container baselines 部分,点您要从进程基准中删除的进程的 Remove 图标。

3.6.4. 锁定和解锁进程基准

您可以锁定基线,以为所有没有列在基线中的进程触发违规,也可以取消锁定基线来停止触发违规。

流程

  1. 在 RHACS 门户, 导航菜单中选择风险。
  2. 在默认 风险 视图中,从部署列表中选择部署。部署详情在右侧的面板中打开。
  3. Deployment 详情面板中,选择 Process Discovery 选项卡。
  4. Spec Container baselines 部分:

    • 点击 Lock 图标触发基线中不在的进程的违反情况。
    • 点击 Unlock 图标为不在基准中的进程停止触发违反情况。

第 4 章 使用准入控制器强制

Red Hat Advanced Cluster Security for Kubernetes 与 Kubernetes 准入控制器OpenShift Container Platform 准入插件 一起工作,允许您在 Kubernetes 或 OpenShift Container Platform 创建工作负载(如部署、守护进程集或作业)前强制实施安全策略。

Red Hat Advanced Cluster Security for Kubernetes 准入控制器可防止用户创建违反您在 Red Hat Advanced Cluster Security for Kubernetes 中配置的策略的工作负载。从 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.41 开始,您还可以配置准入控制器以防止更新违反策略的工作负载。

Red Hat Advanced Cluster Security for Kubernetes 使用 ValidatingAdmissionWebhook 控制器来验证是否置备了指定安全策略的资源。为了处理此问题,Red Hat Advanced Cluster Security for Kubernetes 会创建一个 ValidatingWebhookConfiguration,其中包含多个 webhook 规则。

当 Kubernetes 或 OpenShift Container Platform API 服务器收到与其中一个 webhook 规则匹配的请求时,API 服务器会向 Red Hat Advanced Cluster Security for Kubernetes 发送 AdmissionReview 请求。Red Hat Advanced Cluster Security for Kubernetes 随后根据配置的安全策略接受或拒绝请求。

注意

要在 OpenShift Container Platform 中使用准入控制器强制功能,您需要 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.49 或更新版本。

4.1. 了解准入控制器强制

如果要使用准入控制器强制,请考虑以下几点:

  • API 延迟 :使用准入控制器强制增加 Kubernetes 或 OpenShift Container Platform API 延迟,因为它涉及到额外的 API 验证请求。许多标准 Kubernetes 库(如 fabric8)默认具有简短的 Kubernetes 或 OpenShift Container Platform API 超时。另外,请考虑您可能使用的任何自定义自动化中的 API 超时。
  • 镜像扫描 :您可以通过在集群配置面板中设置 Contact Image Scanners 选项,选择准入控制器在查看请求时扫描镜像。

    • 如果您启用这个设置,如果扫描或镜像签名验证结果不可用,Red Hat Advanced Cluster Security for Kubernetes 会联系镜像扫描程序,这会增加显著的延迟。
    • 如果您禁用此设置,则执行决定仅在有缓存的扫描和签名结果可用时考虑镜像扫描标准。
  • 您可以使用准入控制器强制:

    • pod securityContext 中的选项。
    • 部署配置。
    • 镜像组件和漏洞。
  • 您不能将准入控制器强制用于:

    • 任何运行时行为,如进程。
    • 基于端口暴露的任何策略。
  • 如果 Kubernetes 或 OpenShift Container Platform API 服务器和 Red Hat Advanced Cluster Security for Kubernetes Sensor 之间有连接问题,准入控制器可能会失败。要解决这个问题,请删除 ValidatingWebhookConfiguration 对象,如禁用准入控制器强制部分中所述。
  • 如果您已为策略启用了部署时间执行功能,并且启用了准入控制器,Red Hat Advanced Cluster Security for Kubernetes 会尝试阻止违反该策略的部署。如果准入控制器没有拒绝不合规的部署,例如在超时时,Red Hat Advanced Cluster Security for Kubernetes 仍然会应用其他部署时执行机制,如扩展到零副本。

4.2. 启用准入控制器强制

您可在安装 Sensor 或编辑现有集群配置时,从 Clusters 视图启用准入控制器强制。

流程

  1. 在 RHACS 门户,进入到 Platform ConfigurationClusters
  2. 从列表中选择现有集群,或者选择 + New Cluster
  3. 在集群配置面板中输入集群详情。
  4. 红帽建议,如果您计划使用准入控制器强制处理对象创建事件,则只打开 Configure Admission Controller Webhook 以侦听创建 切换。
  5. 红帽建议,如果您计划使用准入控制器强制强制处理 更新事件,则只打开 Configure Admission Controller Webhook 以侦听 更新切换。
  6. 红帽建议,如果您计划使用准入控制器强制强制处理 pod 执行 和 pod 端口转发事件,则只打开 Enable Admission Controller Webhook 以侦听 exec 和 port-forward 事件。
  7. 配置以下选项:

    • 对象 Creates 上强制实施 :这个切换控制准入控制服务的行为。您必须具有 Configure Admission Controller Webhook 才能监听 打开的 Create 切换才能正常工作。
    • 在对象更新 上强制实施 :此切换控制准入控制服务的行为。您必须具有 Configure Admission Controller Webhook 才能监听打开 updates 切换才能正常工作。
  8. 选择 Next
  9. Download files 部分中,选择 Download YAML Files and Keys

    注意

    在为现有集群启用准入控制器时,如果您对以下几项进行任何更改,

    • 静态配置 部分,您必须下载 YAML 文件并重新部署 Sensor。
    • 动态配置 部分,您可以跳过下载文件和部署,因为 Red Hat Advanced Cluster Security for Kubernetes 会自动同步 Sensor 并应用更改。
  10. 选择 Finish

验证

  • 在使用生成的 YAML 置备新集群后,运行以下命令验证是否正确配置了准入控制器强制:

    $ oc get ValidatingWebhookConfiguration 1
    1
    如果使用 Kubernetes,请输入 kubectl 而不是 oc

    输出示例

    NAME       CREATED AT
    stackrox   2019-09-24T06:07:34Z

4.3. 绕过准入控制器强制

要绕过准入控制器,请在配置 YAML 中添加 admission.stackrox.io/break-glass 注解。绕过准入控制器会触发策略违反情况,其中包括部署详情。红帽建议提供 issue-tracker 链接或某些其他引用作为此注解的值,以便其他人了解您绕过准入控制器的原因。

4.4. 禁用准入控制器强制

您可以在 Red Hat Advanced Cluster Security for Kubernetes(RHACS)门户的 Clusters 视图中禁用准入控制器强制功能。

流程

  1. 在 RHACS 门户,选择 Platform ConfigurationClusters
  2. 从列表中选择现有集群。
  3. Dynamic Configuration 项中,关闭T Enforce on Object CreatesEnforce on Object Updates
  4. 选择 Next
  5. 选择 Finish

4.4.1. 禁用关联的策略

您可以在相关的策略中关闭强制实施,这将指示准入控制器跳过强制。

流程

  1. 在 RHACS 门户网站中,导航至 Platform ConfigurationPolicies
  2. 在默认策略中禁用强制:

    • 在策略视图中,向下滚动并选择 Kubernetes Actions: Exec into Pod 策略旁边的电源图标来禁用该策略。
    • 在策略视图中,向下滚动并选择 Kubernetes Actions: Port Forward to Pod 策略旁边的电源图标来禁用该策略。
  3. 在使用默认 Kubernetes Actions 中的条件创建的任何其他自定义策略中禁用强制: Port Forward to PodKubernetes Actions: Exec to Pod 策略。

4.4.2. 禁用 Webhook

您可以从 RHACS 门户上的 Clusters 视图禁用准入控制器强制。

重要

如果关闭 Webhook 来禁用准入控制器,您必须重新部署 Sensor 捆绑包。

流程

  1. 在 RHACS 门户,进入到 Platform ConfigurationClusters
  2. 从列表中选择现有集群。
  3. Static Configuration 项中关闭 Enable Admission Controller Webhook to listen on exec and port-forward events
  4. 选择 Next 以继续进行 Sensor setup。
  5. Download YAML File and Keys
  6. 在可以访问受监控的集群的系统中,解压缩并运行 sensor 脚本:

    $ unzip -d sensor sensor-<cluster_name>.zip
    $ ./sensor/sensor.sh
    注意

    如果您收到一个您没有部署传感器所需的权限,请按照屏幕上的说明,或与集群管理员联系以获得帮助。

    部署完传感器后,它会联系中心并提供集群信息。

  7. 返回 RHACS 门户并检查部署是否成功。如果成功,则在 #2 部分中会出现一个绿色勾号。如果您没有看到绿色勾选标记,请使用以下命令检查问题:

    • 在 OpenShift Container Platform 中:

      $ oc get pod -n stackrox -w
    • 对于 Kubernetes:

      $ kubectl get pod -n stackrox -w
  8. 选择 Finish
注意

当您禁用准入控制器时,Red Hat Advanced Cluster Security for Kubernetes 不会删除 ValidatingWebhookConfiguration。但是,它接受所有 AdmissionReview 请求,而不是检查违反请求。

要删除 ValidatingWebhookConfiguration 对象,请在安全集群中运行以下命令:

  • 在 OpenShift Container Platform 中:

    $ oc delete ValidatingWebhookConfiguration/stackrox
  • 对于 Kubernetes:

    $ kubectl delete ValidatingWebhookConfiguration/stackrox

4.5. ValidatingWebhookConfiguration YAML 文件更改

使用 Red Hat Advanced Cluster Security for Kubernetes,您可以考虑以下安全策略:

  • 对象创建
  • 对象更新
  • Pod 执行
  • Pod 端口转发

如果中部或 Sensor 不可用

准入控制器需要来自 Sensor 的初始配置才能工作。Kubernetes 或 OpenShift Container Platform 保存此配置,即使所有准入服务副本都重新调度到其他节点,它也仍可访问。如果存在此初始配置,准入控制器会强制执行所有配置的 deploy-time 策略。

如果 Sensor 或 Central 不可用:

  • 您将无法运行镜像扫描,或查询有关缓存的镜像扫描的信息。但是,准入控制器强制仍基于超时过期之前收集的可用信息执行,即使收集的信息不完整。
  • 您将无法从 RHACS 门户禁用准入控制器,或修改现有策略的强制,因为更改不会传播到准入控制服务。
注意

如果需要禁用准入控制强制,您可以通过运行以下命令来删除验证 Webhook 配置:

  • 在 OpenShift Container Platform 中:

    $ oc delete ValidatingWebhookConfiguration/stackrox
  • 对于 Kubernetes:

    $ kubectl delete ValidatingWebhookConfiguration/stackrox

使准入控制器更可靠

红帽建议您在 control plane 上调度准入 control 服务,而不是 worker 节点上。部署 YAML 文件包含用于在 control plane 上运行的软首选项,但不强制使用。

默认情况下,准入控制服务运行 3 个副本。要提高可靠性,您可以运行以下命令来提高副本:

$ oc -n stackrox scale deploy/admission-control --replicas=<number_of_replicas> 1
1
如果使用 Kubernetes,请输入 kubectl 而不是 oc

使用 roxctl CLI

在您生成 Sensor 部署 YAML 文件时,您可以使用以下选项:

  • --admission-controller-listen-on-updates :如果您使用这个选项,Red Hat Advanced Cluster Security for Kubernetes 会生成带有 ValidatingWebhookConfiguration 的 Sensor 捆绑包,以接收来自 Kubernetes 或 OpenShift Container Platform API 服务器的更新事件。
  • --admission-controller-enforce-on-updates: 如果您使用这个选项,Red Hat Advanced Cluster Security for Kubernetes 配置中央,使得准入控制器也强制执行安全策略对象更新。

这两个选项都是可选的,默认情况下为 false

第 5 章 管理安全策略

Red Hat Advanced Cluster Security for Kubernetes 允许您使用开箱即用安全策略,并为容器环境定义自定义多因素策略。配置这些策略可让您自动防止环境中的高风险服务部署,并响应运行时安全事件。

5.1. 使用默认安全策略

Red Hat Advanced Cluster Security for Kubernetes 包括了一组默认的策略,它们提供广泛的覆盖来识别安全问题,并确保环境中的安全性的最佳实践。

查看默认策略:

  • 在 RHACS 门户网站中,导航至 Platform ConfigurationPolicies

Policies 视图列出了默认策略,并为每个策略包括以下参数:

  • 策略 :策略的名称。
  • 描述 :策略警报的较长、更详细的描述。
  • 状态 :策略的当前状态,可以是 EnabledDisabled
  • Notifiers:为策略配置的通知程序列表。
  • 严重性 :针对所需关注量,策略(关键、中、中等或低)的等级。
  • 生命周期 :此策略应用到的应用程序生命周期阶段(构建、部署或运行时),以及在启用策略时实施的阶段。

默认策略预先配置了参数并属于类别,例如:

  • 同性活动
  • Cryptocurrency Mining
  • DevOps 最佳实践
  • Kubernetes
  • 网络工具
  • 软件包管理
  • 权限
  • 安全性最佳实践
  • 系统修改
  • 漏洞管理

您可以编辑这些类别并创建您自己的类别。在创建自己的类别时,新的小部件会在仪表板上显示有关该类别的信息。

注意

您不能删除默认策略或编辑默认策略标准。

5.2. 修改现有安全策略

您可以编辑您创建的策略以及 Red Hat Advanced Cluster Security for Kubernetes 提供的现有默认策略。

流程

  1. 在 RHACS 门户网站中,导航至 Platform ConfigurationPolicies
  2. Policies 页面中,选择您要编辑的策略。
  3. 选择 ActionsEdit policy
  4. 修改策略详细。您可以修改策略名称、严重性、类别、描述、比率和指导。您还可以通过从 Attach notifiers 部分下的 available Notifiers 部分选择将通知附加到策略。
  5. 点击 Next
  6. Policy behavior 部分中,为策略选择 Lifecycle 阶段事件源
  7. 选择一个 Response 方法,以解决策略违反情况。
  8. 点击 Next
  9. Policy criteria 部分中,展开 Drag out policy 字段 部分中的类别。使用拖放策略字段为策略标准指定逻辑条件。

    注意

    您不能编辑默认策略的策略条件。

  10. 点击 Next
  11. Policy Scope 部分中,修改 Restrict by scope, Exclude by scope, 和 Exclude images 设置。
  12. 点击 Next
  13. Review policy 部分,预览策略违反情况。
  14. 点击 Save

5.3. 创建策略类别

您可以从系统策略视图创建新策略类别。

流程

  1. 在 RHACS 门户网站中,导航至 Platform ConfigurationPolicies
  2. Policies 页面中,选择您要编辑的策略。
  3. 选择 ActionsEdit policy
  4. Categories 字段中输入新类别名称,然后点 Create <category>
  5. Review policy 部分标题。
  6. 点击 Save

保存配置后,如果类别中有任何违反情况,新类别会显示在仪表板中。

5.4. 创建自定义策略

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

要构建新策略,您可以克隆现有的策略,也可以从头开始创建一个新策略。

  • 您还可以根据 RHACS 门户中 Risk 视图中的过滤条件来创建策略。
  • 您还可以在策略条件中使用 AND, OR, 和 NOT 逻辑运算符来创建高级策略。

5.4.1. 从系统策略视图创建安全策略

您可以从系统策略视图创建新安全策略。

流程

  1. 在 RHACS 门户网站中,导航至 Platform ConfigurationPolicies
  2. 点击 Create policy
  3. Policy details 部分输入策略的详情:

    • 为策略输入一个 Name
    • 可选:从 Attach notifiers 部分的 available Notifiers 部分中选择将通知附加到策略。

      注意

      在转发警报前,您必须将 Red Hat Advanced Cluster Security for Kubernetes 与通知提供程序集成,如 Webhook、JIRA、Pageruty、Splunk 或其他。

    • 为这个策略选择一个 严重级别,可以是 CriticalHighMediumLow
    • 选择您要 应用到 此策略的策略类别。
    • Description 框中输入策略详情。
    • 输入有关在 Rationale 框中存在策略的原因。
    • Guidance 框中输入解决此策略的违反情况的步骤。
    • 可选:在 MITRE ATT&CK 部分,选择您要为策略指定的技巧和您要指定的 技术

      1. 单击 Add tactic,然后从下拉列表中选择 tactic。
      2. 单击 Add 技术 来为所选的 Tactic 添加技术。您可以为 tactic 指定多种技术。
  4. 点击 Next
  5. Policy 行为 部分中,为策略选择 Lifecycle 阶段事件源(仅限运行时生命周期 )。

    • BuildDeployRuntime 中选择适合您的策略的 Lifecycle Stage。您可以选择多个阶段。

      • 构建时策略适用于镜像字段,如 CVE 和 Dockerfile 指令。
      • deploy-time 策略可以包括所有构建时策略标准,但还可包含集群配置中的数据,如以特权模式运行或挂载 Docker 套接字。
      • 运行时策略可以包括所有构建时和部署时策略标准,但也可在运行时包括有关进程执行的数据。
  6. 对于 Response 方法,请选择:

    1. 用于在 违反列表中包括违反情况。
    2. 或选择 Inform and enforce 强制执行操作。

      • 选择策略的强制行为。它仅适用于您在配置 Lifecycle Stages 时选择的各个阶段。选择 ON (启用)来强制执行策略并报告冲突,OFF (禁用)仅报告违反情况。各个生命周期阶段的行为都不同。

        • Build - 当镜像与策略条件匹配时,Red Hat Advanced Cluster Security for Kubernetes Kubernetes 的持续集成(CI)构建会失败。
        • Deployment - 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,或阻止对 pod 执行的操作。

          警告

          策略实施可能会影响正在运行的应用程序或开发过程。在启用强制选项前,请告知所有相关人员并计划如何响应自动化执行操作。

  7. 点击 Next
  8. Policy Criteria 部分中,配置您要为其触发策略的属性。
  9. 点击 Next
  10. Policy scope 部分中,配置以下内容:

    • Add included Scope 来使用 Restrict to Scope,以便仅对特定集群、命名空间或标签启用此策略。您可以添加多个范围,并在 RE2 语法中为命名空间 和标签使用正则表达式。
    • Add exclusion 范围 使用 Scope 排除部署、集群、命名空间和标签,这意味着策略不会应用到您选择的实体。您可以添加多个范围,并在 RE2 语法中为命名空间 和标签使用正则表达式。但是,您不能使用正则表达式来选择部署。
    • 对于 排除的镜像(仅Build Lifecycle),请选择您不想触发违反情况的所有镜像。

      注意

      排除的镜像 设置只在您通过 Build 生命周期阶段连续集成系统中检查镜像时应用。如果您使用此策略检查 Deploy 生命周期阶段中运行的部署,或检查在 Runtime 生命周期阶段中的运行时活动时,则不会生效。

  11. 点击 Next
  12. Review policy 部分,预览策略违反情况。
  13. 点击 Save

其他资源

5.4.2. 从风险视图中创建安全策略

风险视图中评估部署的风险时,当您应用本地页面过滤时,您可以根据您使用的过滤标准创建新的安全策略。

流程

  1. 导航到 RHACS 门户并从 导航菜单中选择风险
  2. 应用您要创建策略的本地页面过滤条件。
  3. 选择 New Policy 并填写所需字段来创建新策略。

5.4.3. 策略标准

Policy Criteria 部分中,您可以配置要触发策略的数据。

您可以根据下表中列出的属性来配置策略。

在此表中:

  • Regular expressions, AND, OR, 和 NOT 列指示您可以使用正则表达式和其他逻辑运算符以及特定的属性。

    • !Regular 表达式 列中,表示您只能对列出的字段使用正则表达式。
    • !AND 中,OR 列表示您只能对属性使用上述逻辑运算符。
  • RHACS 版本 列显示必须使用该属性的 Red Hat Advanced Cluster Security for Kubernetes 的版本。
  • 您不能使用逻辑组合运算符 AND 和 或 来获得以下属性:

    • 布尔值 truefalse
    • 最小值语义,例如:

      • 最低 RBAC 权限
      • 自镜像创建以来的天数
  • 您不能将 NOT 逻辑运算符用于具有以下内容的属性:

    • 布尔值 truefalse
    • 已使用进行比较(如 <, >, <=, >= 操作符)的数字值。
    • 可以有多个值的复合条件,例如:

      • Dockerfile 行,其中包括 instructions 和 参数。
      • 环境变量,由名称和值组成。
    • 其他含义,包括 添加功能Drop Capabilities自镜像创建起日,以及 自镜像上次扫描起的天数
注意

要使用逻辑运算符 AND 而不要 创建安全策略,您需要 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.45 或更新版本。但是,在早期版本中,您仍然可以将正则表达式用于 Regular 表达式 列中列出的字段。

属性描述RHACS 版本正则表达式NOT和,或者阶段

命名空间

命名空间的名称。

3.0.51 及更新版本

部署

镜像 Registry

镜像 registry 的名称。

All

部署

镜像远程

registry 中镜像的完整名称,如 library/nginx

All

部署

镜像标签

镜像的标识符。

All

部署

自镜像创建以来的天数

镜像创建日期的天数。

All

Build

自镜像最后一次扫描的天数

最后一次镜像扫描以来的天数。

All

Build

Dockerfile 行

Dockerfile 中的特定行,包括 instructions 和 参数。

All

! 仅用于值

Build

镜像没有扫描

镜像没有可用的扫描数据。

All

Build

CVSS

通用漏洞评分系统,使用它来匹配分数大于 >、小于 < , 或等于 = 指定的 CVSS 的漏洞的镜像。

All

Build

修复了人

一个软件包的版本字符串,用于修复镜像中标记的漏洞。

All

Build

CVE

常见的漏洞和风险,将其与特定的 CVE 数字一起使用。

All

Build

镜像组件

镜像中存在的特定软件组件的名称和版本号。

All

Build

镜像操作系统

镜像的基本操作系统的名称和版本号。

3.0.47 及更新版本

Build

环境变量

按名称或值检查环境变量。

All

! 仅用于键和值

部署

禁止注解

注解不允许在指定环境中的 Kubernetes 资源上存在。

All

部署

禁止的镜像标签

检查是否有不应使用的 Docker 镜像标签。如果部署中的任何镜像具有指定标签,策略会触发。您可以对 keyvalue 字段使用正则表达式来匹配标签。Disallowed Image Label 策略条件仅在与 Docker registry 集成时才有效。

3.0.40 及更新版本

部署

所需的镜像标签

检查是否存在所需的 Docker 镜像标签。如果部署中的任何镜像没有指定标签,策略会触发。您可以对 keyvalue 字段使用正则表达式来匹配标签。只有在与 Docker registry 集成时,所需的镜像标签 策略标准才起作用。

3.0.40 及更新版本

部署

所需标签

检查 Kubernetes 中是否存在所需的标签。

All

部署

所需注解

检查 Kubernetes 中是否存在所需的注解。

All

部署

卷名称

存储的名称。

All

部署

卷源

指明置备卷的形式。例如: persistentVolumeClaimhostPath

All

部署

卷目的地

挂载卷的路径。

All

部署

卷类型

卷的类型。

All

部署

可写卷

挂载为可写的卷。

All

部署

协议

由公开端口使用的协议,如 TCP 或 UDP。

All

部署

端口

由部署公开的端口号。

All

部署

privileged

运行特权的部署。

All

部署

只读根文件系统

使用 root 文件系统运行的容器配置为只读。

All

部署

丢弃功能

必须从容器中丢弃的 Linux 功能。例如 CAP_SETUIDCAP_NET_RAW

All

部署

添加功能

不得添加到容器中的 Linux 功能,例如发送原始数据包或覆盖文件权限的功能。

All

部署

进程名称

在部署中执行的进程的名称。

All

Runtime

Process Ancestor

在部署中执行的进程的任何父进程的名称。

All

Runtime

进程参数

在部署中执行的进程的命令参数。

All

Runtime

进程 UID

在部署中执行的进程的 UNIX 用户 ID。

All

Runtime

端口公开

服务的方法,如负载均衡器或节点端口。

All

部署

服务帐户

服务帐户的名称。

All

部署

可写主机挂载

资源在主机上挂载了具有写入权限的路径。

All

部署

执行意外进程

检查部署锁定的进程基准中没有列出哪些进程执行的部署。

All

Runtime

最低 RBAC 权限

如果部署的 Kubernetes 服务帐户等于 = 或高于>指定的级别,则匹配。

All

部署

容器名称

容器的名称。

3.0.52 及更新版本

部署

容器 CPU 请求

检查为给定资源保留的内核数。

All

部署

容器 CPU 限制

检查允许使用的资源的最大内核数。

All

部署

容器内存请求

检查为给定资源保留的内存量。

All

部署

容器内存限制

检查允许资源使用的最大内存量。

All

部署

Kubernetes 操作

Kubernetes 操作的名称,如 Pod Exec

3.0.55 及更新版本

!仅限 OR

Runtime

Kubernetes 资源

所访问的 Kubernetes 资源的名称,如 configmapssecret

3.63 及更新版本

!仅限 OR

Runtime

Kubernetes 资源名称

访问的 Kubernetes 资源的名称。

3.63 及更新版本

!仅限 OR

Runtime

Kubernetes API Verb

用于访问资源的 Kubernetes API 动词,如 GETPOST

3.63 及更新版本

!仅限 OR

Runtime

Kubernetes 用户名

访问该资源的用户名称。

3.63 及更新版本

!仅限 OR

Runtime

Kubernetes 用户组

访问资源所属用户的组名称。

3.63 及更新版本

!仅限 OR

Runtime

用户代理

用户用于访问该资源的用户代理。例如 oc、或 kubectl

3.63 及更新版本

!仅限 OR

Runtime

源 IP 地址

用户从中访问该资源的 IP 地址。

3.63 及更新版本

!仅限 OR

Runtime

是 Impersonated 用户

检查请求是否由服务帐户或者其它帐户模拟的用户进行。

3.63 及更新版本

Runtime

Runtime Class

部署 RuntimeClass。

3.67 及更新版本

部署

自动挂载服务帐户令牌

检查部署配置是否自动挂载服务帐户令牌。

3.68 及更新版本

部署

存活度(Liveness)探测

容器是否定义了存活度探测。

3.69 及更新版本

部署

就绪度(Readiness)探测

容器是否定义了就绪度探测。

3.69 及更新版本

部署

Replicas

部署副本数。

3.69 及更新版本

部署

权限升级

在配置了开发时,提供警报,以允许容器进程获得高于其父进程的特权。

3.70 及更新的版本

部署

Ingress Network Policy

检查 ingress Kubernetes 网络策略是否存在。

3.70 及更新的版本

部署

出口网络策略

检查出口 Kubernetes 网络策略是否存在。

3.70 及更新的版本

部署

不受可信镜像签名者验证

您可以使用签名集成列表来验证镜像签名。在镜像上创建警报,它们没有签名,或者其签名至少无法被提供的签名集成之一验证。

3.70 及更新的版本

!仅限 OR

部署

注意

如果您使用 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.44 或更早的版本,则您在 Policy 条件 部分中指定的策略条件为 "AND"ed。这意味着,在所有指定的策略条件匹配时才会违反触发器。

5.4.3.1. 为策略条件添加逻辑条件

您可以使用拖放策略字段面板为策略标准指定逻辑条件。

先决条件

  • 您必须使用 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.45 或更新版本。

流程

  1. Policy Criteria 部分中,选择 Add a new condition 以添加新策略部分。

    • 您可以点 Edit 图标重命名 policy 部分。
    • Drag out a policy 字段 部分列出了多个类别的可用策略标准。您可以展开和折叠这些类别,以查看策略标准属性。
  2. 将属性拖动到 policy 部分的 Drop a policy 字段
  3. 根据您选择的属性类型,您可以获得不同的选项来配置所选属性的条件。例如:

    • 如果您选择了一个布尔值 Read-Only Root Filesystem 的属性,您会看到 READ-ONLYWRITABLE 选项。
    • 如果您选择了一个带有复合值 环境变量 的属性,您将看到为 KeyValueValue From 字段的值以及为可用选项添加更多值的选项。

      1. 要组合多个属性的值,点 Add 图标。
      2. 您还可以单击策略部分中列出的逻辑运算符 ANDOR,以在 ANDOR 运算符之间切换。在 Operator 之间切换只在策略部分中正常工作,而不在两个不同的策略部分之间进行切换。
  4. 您可以通过重复这些步骤来指定多个 ANDOR 条件。为添加的属性配置条件后,点 Next 继续创建策略。

5.5. 共享安全策略

从 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.44 开始,您可以通过导出和导入策略在不同的中央实例间共享安全策略。它可以帮助您为所有集群强制相同的标准。要共享策略,请将它们导出为 JSON 文件,然后将它们重新导入到另一个中央实例中。

注意

目前,使用 RHACS 门户无法一次性导出多个安全策略。但是,您可以使用 API 导出多个安全策略。在 RHACS 门户中,导航至 HelpAPI 参考 来查看 API 参考。

5.5.1. 导出安全策略

当您导出策略时,它包括所有策略内容,还包括集群范围、集群排除以及所有配置的通知。

流程

  1. 在 RHACS 门户网站中,导航至 Platform ConfigurationPolicies
  2. Policies 页面中,选择您要编辑的策略。
  3. 选择 ActionsExport policy to JSON

5.5.2. 导入安全策略

您可以从 RHACS 门户 的系统策略 视图中导入安全策略。

流程

  1. 在 RHACS 门户网站中,导航至 Platform ConfigurationPolicies
  2. Import policy
  3. Import policy JSON 对话框中,点 Upload 并选择您要上传的 JSON 文件。
  4. Begin import

Red Hat Advanced Cluster Security for Kubernetes 中的每个安全策略都有一个唯一 ID(UID)和唯一名称。导入策略时,Red Hat Advanced Cluster Security for Kubernetes 处理上传的策略,如下所示:

  • 如果导入的策略 UID 和名称与任何现有策略不匹配,Red Hat Advanced Cluster Security for Kubernetes 会创建一个新策略。
  • 如果导入的策略与现有策略具有相同的 UID,但使用不同的名称,您可以:

    • 保留两种策略。Red Hat Advanced Cluster Security for Kubernetes 使用新 UID 保存导入的策略。
    • 使用导入策略替换现有策略。
  • 如果导入的策略的名称与现有策略相同,但具有不同的 UID,您可以:

    • 通过为导入的策略提供新名称来保留这两个策略。
    • 使用导入策略替换现有策略。
  • 如果导入的策略与现有策略的名称相同,Red Hat Advanced Cluster Security for Kubernetes 会检查策略条件是否与现有策略匹配。如果策略条件匹配,Red Hat Advanced Cluster Security for Kubernetes 会保留现有策略并显示成功信息。如果策略条件不匹配,您可以:

    • 通过为导入的策略提供新名称来保留这两个策略。
    • 使用导入策略替换现有策略。
重要
  • 如果您导入到同一中央实例,Red Hat Advanced Cluster Security for Kubernetes 会使用所有导出的字段。
  • 如果您导入了不同的中央实例,Red Hat Advanced Cluster Security for Kubernetes 会省略特定的字段,如集群范围、集群排除和通知。Red Hat Advanced Cluster Security for Kubernetes 在消息中显示这些省略的字段。这些字段因每一个安装而异,您不能从一个中央实例迁移到另一个中央实例。

第 6 章 管理网络策略

Kubernetes 网络策略的 规格规格了如何允许 pod 组相互通信,以及其他网络端点。这些网络策略配置为 YAML 文件。通过单独查看这些文件,通常难以识别应用的网络策略是否达到所需的网络拓扑。

Red Hat Advanced Cluster Security for Kubernetes 从您的编配器收集所有定义的网络策略,并提供相应的功能来简化这些策略。

为了支持网络策略实施,Red Hat Advanced Cluster Security for Kubernetes 提供了:

  • 网络图
  • 网络策略模拟器
  • 网络策略生成器

6.1. 网络图形视图

网络图提供可见性和控制:

  • 允许的网络连接,如 Kubernetes 网络策略所定义。
  • 命名空间和部署之间的主动通信路径。

在菜单栏中,选择要查看信息以及至少一个命名空间的集群。

Network Graph 视图中,您可以配置您要查看的连接类型。在 Flows 部分(左下),选择:

  • Active 来只查看活跃的连接。
  • Allowed 来只查看允许的网络连接。
  • all 可查看活动和允许的网络连接。

在网络图中,每个圆形都代表一个部署,每个周围的框代表一个 Kubernetes 命名空间,每个第三行代表命名空间之间的连接。您可以将鼠标悬停在这些项目上,以查看更多详细信息。点击某个项目(如部署或命名空间)将打开一个窗口,其中显示其他信息。通过选择蓝色栏中的箭头可以展开和折叠窗口。

要了解网络图中其他符号的含义,请将鼠标移到图例中的其他符号(左下)的提示,以查看表明这些符号的含义。

当您将鼠标悬停于:

  • 一个连接,您会看到有关网络流的信息,其中包括正在使用的连接、端口号和协议。
  • 一个部署,您可以看到有关入口和出口连接、使用中的协议、端口号的信息,以及部署间的网络流量的方向。
注意

您需要 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.47 或更新版本,查看有关入口和出口连接、协议、端口号和网络流量方向的信息。

允许网络连接

Red Hat Advanced Cluster Security for Kubernetes 会处理每个安全集群中的所有网络策略,以向您展示哪些部署可以相互联系,并可访问外部网络。

网络图将可能的网络连接显示为横线。

实际的网络流

Red Hat Advanced Cluster Security for Kubernetes 监控运行的部署,并跟踪它们之间的流量。网络图显示了观察到的网络流作为固态行。

网络基准

Red Hat Advanced Cluster Security for Kubernetes 发现现有网络流并创建一个基线。

要查看部署的网络基准,请在 Network Graph 视图中选择部署。Network Flows 详情面板显示异常和基准流。在这个面板中,您可以:

  • 选择 Mark 作为匿名方式,将基准中的网络流标记为异常
  • 选择 Add to Baseline 来添加网络流到来自异常流的基准。
注意

要使用 网络基准 功能,您必须使用 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.54 或更新版本。

外部实体和连接

Network Graph 视图显示有关受管集群和外部来源之间的网络连接的信息。Red Hat Advanced Cluster Security for Kubernetes 还自动发现并自动发现公共 CIDR(Classless Inter-Domain Routing)地址块,如 Google Cloud、AWS、Azure、Oracle Cloud 和 Cloudflare。使用这些信息,您可以识别具有活跃外部连接的部署,以及是否从网络外部发出或接收未经授权的连接。

注意

您需要 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.52 或更新版本,以查看活跃外部连接的信息。

默认情况下,外部连接指向一个通用的 外部实体 框,以及 Network Graph 视图中的不同 CIDR 地址块。但是,您可以选择不显示自动发现 CIDR 块。

Red Hat Advanced Cluster Security for Kubernetes 包括以下云供应商的 IP 范围:

  • Google Cloud
  • AWS
  • Azure
  • Oracle Cloud
  • Cloudflare

Red Hat Advanced Cluster Security for Kubernetes 获取并更新云供应商的 IP 范围,每 7 天获取和更新云供应商。如果您使用离线模式,您可以通过安装新的支持软件包来更新这些范围。

6.1.1. 查看网络策略

网络策略指定如何允许 Pod 组相互通信以及其他网络端点。Kubernetes NetworkPolicy 资源使用标签来选择 pod,并定义指定允许来自所选 pod 或从所选 pod 的流量的规则。Red Hat Advanced Cluster Security for Kubernetes 发现并在 Network Graph 视图中显示所有 Kubernetes 集群、命名空间、部署和 pod 的网络策略信息。

要查看命名空间中的部署网络策略和其他相关详情,您可以在 Network Graph 视图中选择命名空间。

命名空间详情面板列出了所选命名空间中的所有部署。然后,您可以将鼠标悬停在详细信息面板中的部署上,然后选择右侧显示的 Navigate to deployment (arrow)图标以查看部署详情。

另外,您可以在 Network Graph 视图中直接选择一个部署来查看其详情。部署详情面板包括 Network Flows, Details, 和 Network Policies 标签页。

您可以选择每个标签页来查看相关信息。

  • Network Flows 选项卡显示有关用于该部署的入口和出口连接、协议和端口号的信息。
  • Details 选项卡显示如何部署该服务的信息,包括编配器标签和注解。
  • Network Policies 选项卡显示适用于部署的每个网络策略的信息。
注意

您需要 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.47 或更新版本,查看有关入口和出口连接、协议、端口号和网络流量方向的信息。

6.1.2. 配置 CIDR 块

您可以在 Network Graph 视图中指定自定义 CIDR 块,或配置显示自动发现的 CIDR 块。

流程

  1. Network Graph 视图中,选择 Configure CIDR Blocks
  2. 关闭 Network Graph 切换中的 Display auto-discovered CIDR 块 来隐藏自动发现的 CIDR 块。

    注意

    当您隐藏了自动发现的 CIDR 块时,所有集群都会隐藏自动发现的 CIDR 块,而不只适用于 Network Graph 视图中的所选集群。

  3. 通过添加 CIDR 块名称和 CIDR 地址 来添加自定义 CIDR 地址。要添加多个,请选择 Add 图标。
  4. 单击 Update Configuration 以保存更改。

6.2. 模拟网络策略

您当前的网络策略可能允许不需要的网络通信。要模拟一组新网络策略的影响,请使用网络策略模拟器。

流程

  1. 在 RHACS 门户,从左侧导航菜单中选择 Network Graph
  2. 选择一个或多个命名空间。
  3. Network Graph view 标头中,选择 Network Policy Simulator
  4. 选择 Upload and模拟网络策略 YAML 并上传您推荐的 YAML 文件。网络图形视图显示您的提议的网络策略要实现。
  5. 要与您的团队共享建议的策略,请选择 Share YAML。要直接应用您的策略,请选择 Apply Network Policies
警告

直接应用网络策略可能会导致运行应用程序时出现问题。始终在开发环境或测试集群中下载并测试网络策略,然后再将它们应用到生产工作负载。

6.3. 生成网络策略

Kubernetes 网络策略控制哪些 pod 接收传入的网络流量,哪些 pod 可以发送传出流量。通过使用网络策略来启用和禁用 pod 的流量,您可以限制网络攻击面。

这些网络策略是 YAML 配置文件。通常很难深入了解网络流,并手动创建这些文件。Red Hat Advanced Cluster Security for Kubernetes 允许您根据环境中实际观察到的网络通信流自动生成这些网络策略。

您可以从网络图形视图生成网络策略。

生成的策略适用于网络图形中显示的部署,并允许在所选时间观察到的所有网络流量。

流程

  1. 在 RHACS 门户,从左侧导航菜单中选择 Network Graph
  2. 如果还没有选择正确的,则从顶栏的菜单中选择集群名称。
  3. 选择一个或多个命名空间。
  4. 如果您只想为一些部署生成策略,请使用 Add 一个或多个部署过滤器 字段来添加要过滤部署的条件。如果没有添加过滤器,Red Hat Advanced Cluster Security for Kubernetes 会为集群中的所有部署生成策略。
  5. 从顶栏的菜单中选择一个适当的时间。如果选择的时间过短,它会留下定期或不经常的网络通信。
  6. 选择 Network Policy Simulator
  7. 在打开的面板中,如果您不需要在 Red Hat Advanced Cluster Security for Kubernetes 生成的策略中有范围的 端口和协议,请选择 Exclude 端口和协议。
  8. 选择" 生成"并模拟网络策略。生成的网络策略配置 YAML 在同一面板中打开,网络图则显示策略的影响。

6.3.1. 保存生成的策略

您可以从 Red Hat Advanced Cluster Security for Kubernetes 下载并保存生成的网络策略。使用此选项将策略提交到类似于 Git 的版本控制系统。

流程

  • 选择 Network Policy Simulator 面板上的 Download YAML 图标。

6.3.2. 测试生成的策略

下载 Red Hat Advanced Cluster Security for Kubernetes 生成的网络策略后,您可以通过将其应用到集群来测试它们。

流程

  1. 要使用保存的 YAML 文件创建策略,请使用以下命令:

    $ oc create -f "<generated_file>.yaml" 1
    1
    如果使用 Kubernetes,请输入 kubectl 而不是 oc
  2. 如果生成的策略出现问题,您可以通过运行以下命令来删除它们:

    $ oc delete -f "StackRox Generated.yaml" 1
    1
    如果使用 Kubernetes,请输入 kubectl 而不是 oc

6.3.3. 应用生成的策略

您可以从 RHACS 门户应用生成的网络策略。

流程

  • 要从 Red Hat Advanced Cluster Security for Kubernetes 中直接在集群中应用生成的策略,请选择 Apply Network Policies
警告

直接应用网络策略可能会导致运行应用程序时出现问题。始终在开发环境或测试集群中下载并测试网络策略,然后再将它们应用到生产工作负载。

6.3.4. 删除生成的策略

如果您直接应用了策略并想删除它们,请选择 Network Policy Simulator 面板上 最近应用的 YAML 图标。

流程

  1. 在 RHACS 门户,从左侧导航菜单中选择 Network Graph
  2. 如果还没有选择正确的,则从顶栏的菜单中选择集群名称。
  3. 选择一个或多个命名空间。
  4. 选择 Network Policy Simulator
  5. 选择 View active YAMLS
  6. 选择 Revert 最近应用的 YAML 图标。

6.3.5. 删除所有自动生成的策略

您可以使用 Red Hat Advanced Cluster Security for Kubernetes 从您创建的集群中删除所有生成的策略。

流程

  • 运行以下命令:

    • 在 OpenShift Container Platform 中:

      $ oc get ns -o jsonpath='{.items[*].metadata.name}' | xargs -n 1 oc delete networkpolicies -l 'network-policy-generator.stackrox.io/generated=true' -n
    • 对于 Kubernetes:

      $ kubectl get ns -o jsonpath='{.items[*].metadata.name}' | xargs -n 1 kubectl delete networkpolicies -l 'network-policy-generator.stackrox.io/generated=true' -n

6.3.6. 策略生成策略

当您自动生成网络策略时:

  • Red Hat Advanced Cluster Security for Kubernetes 为命名空间中的每个部署生成一个网络策略。策略的 pod 选择器是部署的 pod 选择器。

    • 如果部署已有网络策略,Red Hat Advanced Cluster Security for Kubernetes 不会生成新策略或删除现有的策略。
  • 生成的策略仅限制对现有部署的流量。

    • 您稍后创建的部署不会有任何限制,除非您为其创建新的网络策略。
    • 如果新部署需要联系网络策略的部署,您可能需要编辑网络策略来允许访问。
  • 每个策略的名称与部署名称相同,前缀为 stackrox-generated-。例如,生成的网络策略中的部署 depABC 的策略名称为 stackrox-generated-depABC。所有生成的策略也都有一个 identifying 标签。
  • Red Hat Advanced Cluster Security for Kubernetes 生成一个允许来自任何 IP 地址的流量的规则,如下所示:

    • 该部署具有来自集群外部的进入连接,在选定时间或
    • 部署通过节点端口或负载均衡器服务公开。
  • Red Hat Advanced Cluster Security for Kubernetes 为每个部署生成一个 入站 规则,这个规则都会进入一个连接。

    • 对于同一命名空间中的部署,此规则使用其他部署的 pod 选择器标签。
    • 对于不同命名空间中的部署,此规则使用命名空间选择器。因此,Red Hat Advanced Cluster Security for Kubernetes 可以为每个命名空间自动添加一个标签 namespace.metadata.stackrox.io/name
重要

在个别情况下,如果独立 pod 没有任何标签,生成的策略允许来自或 pod 的整个命名空间的流量。

6.4. 使用网络基本 lint

在 Red Hat Advanced Cluster Security for Kubernetes 中,您可以使用网络基础来最小化您的风险。它是保持基础架构安全的一种积极方法。Red Hat Advanced Cluster Security for Kubernetes 首先发现现有的网络流并创建一个基线,然后它会把这个基准外的网络流视为异常。

注意
  • 要使用 网络基准 功能,您必须使用 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.54 或更新版本。
  • 要在基准违规中启用警报,您必须使用 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.56 或更新版本。

安装 Red Hat Advanced Cluster Security for Kubernetes 时,没有默认网络基准。当 Red Hat Advanced Cluster Security for Kubernetes 发现网络流时,它会创建一个基线,然后将所有发现的网络流添加到其中。

  • 当 Red Hat Advanced Cluster Security for Kubernetes 发现新的网络活动时,它会将网络流添加到网络基准中。
  • 网络流不会显示为异常流,也不会触发任何违反情况。

发现阶段后:

  • Red Hat Advanced Cluster Security for Kubernetes 停止在网络基准中添加网络流。
  • 新网络流(不在网络基准中)显示为异常流,但它们不会触发任何违反情况。

6.4.1. 查看网络基准

您可以从网络图形视图查看网络基准。

流程

  1. Network Graph 视图中,选择一个或多个命名空间。
  2. 选择部署。
  3. Network Flows 详情面板显示异常和基准流。在这个面板中,您可以:

    • 将基准中的网络流标记为异常情况,方法是选择 Mark as Anomalous,或者
    • 选择 Add to Baseline 来添加网络流到来自异常流的基准。

6.4.2. 在基准冲突中启用警报

您可以配置 Red Hat Advanced Cluster Security for Kubernetes 来检测异常网络流并触发违反情况。

注意

您需要 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.56 或更新版本,以启用基准违规警报。

流程

  1. Network Graph 视图中选择一个部署。
  2. 在网络流详情面板中,选择 Baseline Settings
  3. 打开 Alert on baseline violations toggle。

    • 当您打开 Alert on baseline 冲突 后,切换了异常的网络流会导致违反情况。
    • 您可以关闭 Alert on baseline 违反情况 来停止收到异常网络流的违反情况。

第 7 章 查看集群配置

了解如何使用 配置管理 视图并了解集群中各种实体之间的关联功能,以有效地管理您的集群配置。

每个 OpenShift Container Platform 集群都包含在集群中分发的许多不同实体,这有助于了解和操作可用信息。

Red Hat Advanced Cluster Security for Kubernetes(RHACS)提供了高效的配置管理,可将所有这些分布式实体组合在一个页面中。它会在单一 配置管理 视图中整合所有集群、命名空间、节点、部署、镜像、secret、组、服务帐户和角色的信息,以帮助您视觉化它们的不同实体和连接。

7.1. 使用 Configuration Management 视图

要打开 Configuration Management 视图,请从导航菜单中选择 Configuration Management。与 Dashboard 类似,它会显示一些有用的小部件。

这些小部件是交互式的,显示以下信息:

  • 安全策略按严重性违反情况
  • CIS(信息安全性)Docker 和 Kubernetes 基准控制的状态
  • 在大多数集群中具有管理员权限的用户
  • 在集群中使用最广泛使用的 secret

Configuration Management 视图中的标头显示集群中的策略和 CIS 控制数量。

注意

只有 Deploy 生命周期阶段的策略包含在策略计数和策略列表中。

标头包含下拉菜单,允许您在实体间切换。例如,您可以:

  • Policies 查看所有策略及其严重性,或者选择 CIS Controls 来查看所有控制的详细信息。
  • Application and Infrastructure 并选择集群、命名空间、节点、部署、镜像和 secret,以查看详细信息。
  • 点击 RBAC Visibility 和 Configuration,然后选择用户和组、服务帐户和角色来查看详细信息。

7.2. 识别 Kubernetes 角色中的错误配置

您可以使用 Configuration Management 视图来识别潜在的错误配置,如用户、组或服务帐户授予 cluster-admin 角色或没有被任何人授予的角色。

7.2.1. 查找 Kubernetes 角色是其分配

使用 Configuration Management 视图来获取哪些 Kubernetes 角色被分配给特定的用户和组的信息。

流程

  1. 进入 RHACS 门户,从左侧导航菜单中点击 Configuration Management
  2. Configuration Management 视图的头中选择 RBAC Visibility and ConfigurationUsers and GroupsUsers 和 Groups 视图显示 Kubernetes 用户和组、其分配角色的列表,以及是否为每个都启用了 cluster-admin 角色。
  3. 选择用户或组来查看有关关联集群和命名空间权限的更多详情。

7.2.2. 查找服务帐户及其权限

使用 Configuration Management 视图找出服务帐户使用的位置及其权限。

流程

  1. 进入 RHACS 门户,从左侧导航菜单中点击 Configuration Management
  2. Configuration Management 视图的标头中选择 RBAC Visibility and ConfigurationService AccountsService Accounts 视图显示集群中 Kubernetes 服务帐户的列表,它们分配的角色(是否启用了 cluster-admin 角色),以及哪些部署使用了它们。
  3. 选择一个行或带有下划线的链接来查看更多详情,包括为所选服务帐户授予哪些集群和命名空间权限。

7.2.3. 查找未使用的 Kubernetes 角色

使用 Configuration Management 视图来获取 Kubernetes 角色的更多信息,并查找未使用的角色。

流程

  1. 进入 RHACS 门户,从左侧导航菜单中点击 Configuration Management
  2. Configuration Management 视图的头中选择 RBAC Visibility and ConfigurationRolesRoles 视图显示集群中的 Kubernetes 角色列表、它们授予的权限以及使用它们的位置。
  3. 选择一个一行或带有下划线的链接来查看与角色相关的更多详情。
  4. 要查找未授予任何用户、组或服务帐户的角色,请选择" 用户和组" 列标题。然后在按住 Shift 键时选择 Service Account 列标题。列表中显示不授予任何用户、组或服务帐户的角色。

7.3. 查看 Kubernetes secret

查看在您的环境中使用的 Kubernetes secret,并使用这些 secret 识别部署。

流程

  1. 进入 RHACS 门户,从左侧导航菜单中点击 Configuration Management
  2. 在大多数 使用的 Across Deployments 小部件上,选择 View AllSecrets 视图显示 Kubernetes secret 列表。
  3. 选择一个一行来查看更多详情。

使用可用信息来识别是否在不需要它们的部署中使用 secret。

7.4. 查找策略违反情况

Configuration Management 视图中的 Severity widget 的 Policy Violations 在 sunburst chart 中显示策略违反情况。Chart 的每个级别由一个环或圆形表示。

  • innermost circle表示违反情况的总数。
  • 下一个环代表 Low, Medium, High, 和 Critical 策略类别。
  • 最顶层环代表特定类别中的单个策略。

Configuration Management 视图仅显示将 Lifecycle Stage 设置为 Deploy 的策略的信息。它不会包括在 Build 阶段中处理运行时行为或为评估配置的策略。

流程

  1. 进入 RHACS 门户,从左侧导航菜单中点击 Configuration Management
  2. 严重性小部件的 Policy Violations 上,将鼠标移到 sunburst chart 上,以查看策略违反的详细信息。
  3. 选择 n 评级为 high,其中 n 是一个数字,可以查看有关高优先级策略违反的详细信息。Policies 视图显示在所选类别上过滤的策略违反列表。
  4. 选择一个行来查看更多详情,包括策略描述、修复、带有违反情况的部署等。详情可在面板中查看。
  5. 信息面板中的 Policy Findings 部分列出了发生这些违反的部署。
  6. Policy Findings 部分中选择一个部署,以查看相关的详情,包括 Kubernetes 标签、注解和服务帐户。

您可以使用详细信息来计划违反情况的补救。

7.5. 查找失败的 CIS 控制

Configuration Management 视图中的 Policy Violations sunburst chart 类似,CIS 控制工具 提供了有关信息安全(CIS)控制失败中心的信息。

Chart 的每个级别由一个环或圆形表示。

  • innermost circle表示失败控制的百分比。
  • 下一个环代表控制类别。
  • outermost 环代表特定类别中的单独控制。

流程

  1. CIS controls widget 的标头中选择 CIS Docker v1.2.0。使用它来在 CIS Docker 和 Kubernetes 控制间切换。
  2. 将鼠标悬停在 sunburst chart 上,以查看失败控制的详细信息。
  3. 选择 n 控制失败 (其中 n 是一个数字),以查看有关失败控制的详细信息。Controls 视图显示根据合规性状态过滤的失败控制列表。
  4. 选择一行来查看更多详细信息,包括控制描述和控制失败的节点。
  5. 信息面板中的 Control Findings 部分列出了控制失败的节点。选择一行来查看更多详情,包括 Kubernetes 标签、注解和其他元数据。

您可以使用详细信息来专注于节点、行业标准或失败控制的子集。您还可以评估、检查并报告容器化基础架构的合规性状态。

第 8 章 检查漏洞的镜像

通过 Red Hat Advanced Cluster Security for Kubernetes,您可以分析漏洞的镜像。扫描程序将所有镜像层与常见漏洞和暴露(CVE)列表进行比较,以检查已知的漏洞。

当 Scanner 发现任何漏洞时,它会:

  • 在详细分析的 漏洞管理视图中显示它们。
  • 根据风险对漏洞进行评级,并在 RHACS 门户中强调这些漏洞进行风险评估。
  • 针对启用 安全策略进行检查

扫描程序检查镜像,并根据镜像中的文件来识别已安装的组件。如果修改最终镜像以删除以下文件,则可能无法识别已安装的组件或漏洞:

组件文件

软件包管理器

  • /etc/alpine-release
  • /etc/apt/sources.list
  • /etc/lsb-release
  • /etc/os-release/usr/lib/os-release
  • /etc/oracle-release/etc/centos-release/etc/redhat-release/etc/system-release
  • 其他类似的系统文件。

语言级依赖项

  • package.json,用于 JavaScript。
  • Python 的 dist-infoegg-info
  • MANIFEST.MF in Java Archive(JAR)for Java.

应用程序级别的依赖项

  • dotnet/shared/Microsoft.AspNetCore.App/
  • dotnet/shared/Microsoft.NETCore.App/

8.1. 扫描镜像

中央将镜像扫描请求提交给扫描器。在收到这些请求后,Scanner 从相关 registry 中拉取镜像层,检查镜像,并确定每个层中安装的软件包。然后,它会将识别的软件包和特定于编程语言的依赖关系与漏洞列表进行比较,并将信息发回到 Central。

您还可以将 Red Hat Advanced Cluster Security for Kubernetes 与另一个漏洞扫描程序集成。

扫描程序标识以下漏洞:

  • 基础镜像操作系统
  • 软件包管理器安装的软件包
  • 特定于编程语言的依赖关系
  • 编程运行时和框架

支持的软件包格式

扫描程序可在使用以下软件包格式的镜像中检查漏洞:

  • yum
  • microdnf
  • apt
  • apk
  • dpkg
  • RPM

支持的编程语言

扫描程序可检查以下编程语言的依赖关系的漏洞:

  • Java
  • JavaScript
  • Python
  • Ruby

支持的运行时和框架

从 Red Hat Advanced Cluster Security for Kubernetes 3.0.50 开始(Scanner 版本 2.5.0),Scanner 标识以下开发人员平台中的漏洞:

  • .NET Core
  • ASP.NET Core

支持的操作系统

本节中列出的受支持平台是 Scanner 识别漏洞的发行版本,它与您可以安装 Red Hat Advanced Cluster Security for Kubernetes 支持的平台不同。

扫描程序识别镜像中包含以下 Linux 发行版的漏洞:

分发版本

alpine Linux

alpine:v3.2,alpine:v3.3,alpine:v3.4,alpine:v3.5,alpine:v3.6,alpine:v3.7,alpine:v3.8,alpine:v3.9, alpine:v3.10,alpine:v3.11,alpine:v3.12,alpine:v3.13,alpine:v3.14,alpine:v3.15 , alpine:v 3.16,alpine:edge

Amazon Linux

amzn:2018.03,amzn:2

CentOS

CentOS:6,centos:7,centos:8

Debian

Debian:9, debian:10,debian:11,debian:unstable

Red Hat Enterprise Linux(RHEL)

rhel:6,rhel:7,rhel:8

Ubuntu

Ubuntu:14.04,ubuntu:16.04,ubuntu:18.04,ubuntu:20.04,ubuntu:21.10,ubuntu:22.04

注意
  • 扫描程序不支持 Fedora 操作系统,因为 Fedora 不支持维护漏洞数据库。但是,扫描器仍然会检测基于 Fedora 的镜像中的特定于语言的漏洞。
  • 扫描程序还会识别以下镜像中的漏洞。但是,漏洞源不再被其厂商更新:

    分发版本

    Debian

    Debian:8

    Ubuntu

    ubuntu:12.04, ubuntu:12.10, ubuntu:13.04, ubuntu:14.10, ubuntu:15.04, ubuntu::15.10, ubuntu::16.10, ubuntu:17.04, ubuntu:17.10, ubuntu:18.10, ubuntu:19.04, ubuntu:19.10, ubuntu:20.10, ubuntu:21.04

8.2. 定期扫描镜像

Red Hat Advanced Cluster Security for Kubernetes 会定期扫描所有活跃的镜像并更新镜像扫描结果,以反映最新的漏洞定义。有效镜像是您已在环境中部署的镜像。

注意

在 Red Hat Advanced Cluster Security for Kubernetes 3.0.57 中,您可以通过配置 Watch 设置来启用非活动镜像自动扫描。

central 从您每 4 小时使用的其他集成镜像扫描器或其他集成镜像扫描程序中获取镜像扫描结果。

您还可以使用 roxctl CLI 按需检查镜像扫描结果。

8.3. 扫描不活跃镜像

Red Hat Advanced Cluster Security for Kubernetes 每 4 小时扫描所有活跃的(部署)镜像,并更新镜像扫描结果以反映最新的漏洞定义。

您还可以将 Red Hat Advanced Cluster Security for Kubernetes 配置为自动扫描不活跃(未部署)镜像。

流程

  1. 选择 Vulnerability Management 视图标头上的 Images 来查看所有镜像的列表。
  2. Images 视图中,选择 Watch Images
  3. Manage Inactive Images 对话框中,输入您要启用扫描的非活动 镜像的名称(而不是镜像 ID)。
  4. 选择 Add Image。Red Hat Advanced Cluster Security for Kubernetes 然后扫描镜像,并显示错误或成功信息。
  5. 选择 return to Image 列表 来查看 Images 视图。

8.4. 获取漏洞定义

在在线模式中,Central 从单个源获取每 5 分钟获得漏洞定义。这个源结合了上游源中的漏洞定义,其中包括多个 Linux 发行版和国家漏洞数据库,并每小时刷新一次。

  • 源的地址是 https://definitions.stackrox.io
  • 您可以通过设置 ROX_SCANNER_VULN_UPDATE_INTERVAL 环境变量来更改 Central 的默认查询频率:

    $ oc -n stackrox set env deploy/central ROX_SCANNER_VULN_UPDATE_INTERVAL=<value> 1
    1
    如果使用 Kubernetes,请输入 kubectl 而不是 oc
注意

扫描程序的配置映射仍然有一个 updater.interval 参数,用于配置 Scanner 的更新频率,但它不再包含 fetchFromCentral 参数。

8.5. 了解漏洞分数

在 RHACS 门户网站中,为每个漏洞显示一个通用缺陷评分系统(CVSS)基本分数。Red Hat Advanced Cluster Security for Kubernetes 会根据以下条件显示 CVSS 分数:

  • 如果有 CVSS v3 分数,Red Hat Advanced Cluster Security for Kubernetes 会显示分数和列表 v3。例如,6.5(v3)

    注意

    只有在您使用 Scanner 版本 1.3.5 及更新版本时,才会提供 CVSS v3 分数。

  • 如果 CVSS v3 分数不可用,Red Hat Advanced Cluster Security for Kubernetes 只会显示 CVSS v2 分数。例如,6.5

您可以使用 API 获取 CVSS 分数。如果对常见漏洞和暴露(CVE)提供了 CVSS v3 信息,则响应包括 CVSS v3 和 CVSS v2 信息。

对于某些 CVE,红帽安全公告(RHSA)CVSS 分数可能与 RHACS 门户中可见的 CVSS 分数不同。这个问题的区别在于,一个 RHSA 可以包含多个 CVE,红帽有时根据漏洞影响到其它红帽产品的方式分配不同的分数。

在这种情况下,Red Hat Advanced Cluster Security for Kubernetes:

  • 找到国家漏洞数据库(NVD)中最高的 CVE,并将其分数显示为 RHSA 的 CVSS 分数。
  • 作为带有原始 CVSS 分数(来自 NVD)的独立漏洞,破坏 RHSA 中的每个 CVE,以便您可以查看每个 CVE 并为特定 CVE 创建策略。

8.5.1. 其他资源

8.6. 查看环境中的镜像

使用 Red Hat Advanced Cluster Security for Kubernetes,您可以查看集群中的所有容器镜像的详情。

流程

  1. 导航到 RHACS 门户,从左侧导航菜单中单击 Vulnerability Management
  2. 要查看集群中的所有镜像的详情,请在 Vulnerability Management 视图标头中选择 Images

8.7. 查看镜像的 Dockerfile

使用 漏洞管理 视图查找镜像中漏洞的根本原因。您可以查看 Dockerfile 并查找 Dockerfile 中的哪个命令引入了漏洞以及与该单一命令关联的所有组件。

Dockerfile 标签显示以下信息:

  • Dockerfile 中的所有层
  • 每个层的 instructions 及其值
  • 每个层中包含的组件
  • 每个层的组件中的 CVE 数量

当有特定层引入的组件时,您可以选择展开图标来查看其组件的摘要。如果这些组件中存在任何 CVE,您可以选择单个组件的扩展图标,以获取有关影响该组件的 CVE 的更多详细信息。

流程

  1. 导航到 RHACS 门户,从导航菜单中单击 Vulnerability Management
  2. Top Riskies Images 小部件中选择镜像
  3. Image details 视图中,选择 Image Findings 部分下的 Dockerfile 选项卡。

8.8. 识别引入漏洞的容器镜像层

使用 漏洞管理 视图识别存在安全漏洞的组件及其出现在镜像层。

流程

  1. 导航到 RHACS 门户,从导航菜单中单击 Vulnerability Management
  2. Top Riskies Images 小部件中选择镜像
  3. Image details 视图中,选择 Image Findings 部分下的 Dockerfile 选项卡。
  4. Image Findings 部分下的 Dockerfile 选项卡中,选择展开图标来查看镜像组件的摘要。
  5. 选择特定组件的扩展图标,以获取有关影响所选组件的 CVE 的更多详细信息。

8.9. 识别基础镜像的操作系统

使用 漏洞管理 视图确定基础镜像的操作系统。

流程

  1. 导航到 RHACS 门户,从导航菜单中单击 Vulnerability Management
  2. Vulnerability Management 视图标头中选择 Images
  3. 查看 Image OS 列下所有镜像的基础操作系统(OS)和 OS 版本。
  4. 选择一个镜像来查看其详情。基础操作系统也位于 Image SummaryDetails 和 Metadata 部分。
注意

在 Red Hat Advanced Cluster Security for Kubernetes 时,Red Hat Advanced Cluster Security for Kubernetes 将镜像 OS 列为 unknown

  • 操作系统信息不可用,或者
  • 如果使用的镜像扫描程序没有提供此信息。

Docker Trusted Registry、Google Container Registry 和 Anchore 不提供此信息。

8.10. 禁用特定于语言的漏洞扫描

扫描程序默认识别特定于编程语言的依赖项中的漏洞。您可以禁用特定于语言的依赖关系扫描。

流程

  • 要禁用特定于语言的漏洞扫描,请运行以下命令:

    $ oc -n stackrox set env deploy/scanner \ 1
      ROX_LANGUAGE_VULNS=false 2
    1
    如果使用 Kubernetes,请输入 kubectl 而不是 oc
    2
    如果您使用 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.47 或更早的版本,请将环境变量名 ROX_LANGUAGE_VULNS 替换为 LANGUAGE_VULNS

8.11. 其他资源

第 9 章 验证镜像签名

您可以通过针对预先配置的密钥验证镜像签名,使用 Red Hat Advanced Cluster Security for Kubernetes(RHACS)来确保集群中容器镜像的完整性。

您可以创建策略来阻止没有验证签名的镜像和镜像。您还可以使用 RHACS 准入控制器停止未授权部署创建来强制实施策略。

注意
  • RHACS 3.70 只支持 Cosign 签名和 Cosign 公钥签名验证。如需有关 Cosign 的更多信息,请参阅 Cosign overview
  • 您必须配置签名集成,至少 1 个 Cosign 公钥进行签名验证。
  • 对于所有部署和监视的镜像:

    • RHACS 获取并验证每个 4 小时的签名。
    • 每当您更改或更新您的签名集成公钥时,RHACS 会验证签名。

9.1. 配置签名集成

在进行镜像签名验证前,您必须首先在 RHACS 中添加您的 Cosign 公钥。

先决条件

  • 您必须已有一个 PEM 编码的 Cosign 公钥。如需有关 Cosign 的更多信息,请参阅 Cosign overview

流程

  1. 在 RHACS 门户网站中,选择 Platform ConfigurationIntegrations
  2. 向下滚动到 Signature Integrations 部分,并点击 Signature
  3. 单击 New integration
  4. 输入 集成名称 的名称
  5. CosignAdd a new 公钥
  6. 输入 公共密钥 名称。
  7. 对于 Public key value 字段,输入 PEM 编码的公钥。
  8. (可选)您可以通过点 Add a new public key and 输入详情来添加多个密钥。
  9. 点击 Save

9.2. 在策略中使用签名验证

在创建自定义安全策略时,您可以使用 受信任的镜像符号 策略标准来验证镜像签名。

先决条件

  • 您必须已经配置了一个与至少 1 Cosign 公钥的签名集成。

流程

  1. 在创建或编辑策略时,对于 Policy criteria 部分,将 Not verified by trusted image signers 策略条件拖放到策略字段放置区。
  2. 选择
  3. 从列表中选择可信镜像签名,然后单击 Save

9.3. 强制签名验证

为防止用户使用未签名镜像,您可以使用 RHACS 准入控制器强制签名验证。您必须首先在集群配置设置中启用 contact Image Scanners 功能。然后,在创建安全策略来强制执行签名验证时,您可以使用 Inform 和 enforce 选项。

如需更多信息,请参阅启用准入控制器强制

第 10 章 管理漏洞

您的环境中的安全漏洞可能会被攻击者利用,执行未经授权的操作,如拒绝服务、远程代码执行或未经授权访问敏感数据。因此,管理漏洞是成功实现 Kubernetes 安全计划的基本步骤。

10.1. 漏洞管理流程

漏洞管理是一个持续的流程,用于识别和修复漏洞。Red Hat Advanced Cluster Security for Kubernetes 可帮助您促进漏洞管理流程。

成功的漏洞管理程序通常包括以下关键任务:

  • 执行资产评估
  • 对漏洞进行优先级排序
  • 评估风险
  • 操作
  • 持续重新评估资产

Red Hat Advanced Cluster Security for Kubernetes 可帮助机构在其 OpenShift Container Platform 和 Kubernetes 集群上执行持续评估。它为组织提供了所需的上下文信息,以便更有效地确定和对其环境中的漏洞采取相应措施。

10.1.1. 执行资产评估

对机构资产进行评估涉及以下操作:

  • 确定您环境中的资产。
  • 扫描这些资产以识别已知的漏洞。
  • 报告您环境中的漏洞,以影响用户。

当您在 Kubernetes 或 OpenShift Container Platform 集群中安装 Red Hat Advanced Cluster Security for Kubernetes 时,它首先会聚合集群内部运行的资产,以帮助您识别这些资产。Red Hat Advanced Cluster Security for Kubernetes 允许在 OpenShift Container Platform 和 Kubernetes 集群上进行持续评估。它为组织提供了上下文信息,以更有效地对环境中的漏洞进行优先级和采取措施。

使用 Red Hat Advanced Cluster Security for Kubernetes 的机构漏洞管理流程监控的重要资产包括:

  • 组件 :组件是可以作为镜像的一部分或在节点上运行的软件包。组件是存在漏洞的最低级别。因此,组织必须以某种方式升级、修改或删除软件组件,以修复漏洞。
  • 镜像 :创建环境以运行代码可执行部分代码的软件组件和代码的集合。镜像是您升级组件以修复漏洞的位置。
  • 节点 :使用 OpenShift 或 Kubernetes 管理并运行应用程序的服务器,以及组成 OpenShift Container Platform 或 Kubernetes 服务的组件。

Red Hat Advanced Cluster Security for Kubernetes 将这些资产分组到以下结构中:

  • 部署 :在 Kubernetes 中定义应用程序,可以基于一个或多个镜像运行带有容器的 pod。
  • 命名空间 :一组资源,如支持并隔离应用程序的部署。
  • 集群 :一组用于通过 OpenShift 或 Kubernetes 运行应用的节点。

Red Hat Advanced Cluster Security for Kubernetes 扫描已知漏洞的资产,并使用通用漏洞和暴露(CVE)数据来评估已知漏洞的影响。

10.1.1.1. 查看应用程序漏洞

您可以查看 Red Hat Advanced Cluster Security for Kubernetes 中的应用程序漏洞。

流程

  1. 在 RHACS 门户网站中,导航至 Vulnerability ManagementDashboard
  2. Dashboard 视图标头中,选择 Application & InfrastructureNamespacesDeployments
  3. 在列表中,搜索并 选择您要查看的 命名空间或 Deployment
  4. 要获取有关应用程序的更多信息,请从右侧的 相关实体 中选择实体。

10.1.1.2. 查看镜像漏洞

您可以查看 Red Hat Advanced Cluster Security for Kubernetes 中的镜像漏洞。

流程

  1. 在 RHACS 门户网站中,导航至 Vulnerability ManagementDashboard
  2. Dashboard 视图标头中选择 Images
  3. 在镜像列表中选择您要调查的镜像。您还可以执行以下步骤之一来过滤列表:

    1. 在搜索栏中输入 Image,然后选择 Image 属性。
    2. 在搜索栏中输入镜像名称。
  4. 在镜像详情视图中,查看列出的 CVE 并优先采取措施来解决受影响的组件。
  5. 从右侧的 Related entities 中选择 Components,以获取有关受所选镜像影响的所有组件的更多信息。或者,在 Image findings 部分的 Affected components 列中选择组件,以了解受特定 CVE 影响的组件列表。

10.1.1.3. 查看基础架构漏洞

您可以使用 Red Hat Advanced Cluster Security for Kubernetes 查看节点中的漏洞。

流程

  1. 在 RHACS 门户网站中,导航至 Vulnerability ManagementDashboard
  2. Dashboard 视图标头中,选择 Application & InfrastructureCluster
  3. 在集群列表中选择您要调查的集群。
  4. 查看集群漏洞,并优先在集群中受影响的节点上采取措施。

10.1.1.4. 查看节点漏洞

您可以使用 Red Hat Advanced Cluster Security for Kubernetes 查看特定节点中的漏洞。

流程

  1. 在 RHACS 门户网站中,导航至 Vulnerability ManagementDashboard
  2. Dashboard 视图标头中,选择 Nodes
  3. 在节点列表中选择您要调查的节点。
  4. 查看所选节点的漏洞,并优先采取措施。
  5. 要在节点中获取有关受影响组件的更多信息,请从右侧的 相关实体 中选择 组件

10.1.2. 对漏洞进行优先级排序

回答以下问题以对您的环境进行操作和调查的优先级排列:

  • 对于您的组织而言,受影响的资产是多大?
  • 漏洞需要进行严重程度才能调查?
  • 漏洞是否可以被受影响软件组件的补丁修复?
  • 漏洞是否存在违反您机构安全策略?

这些问题的答案帮助安全性和开发团队决定要衡量漏洞的暴露情况。

Red Hat Advanced Cluster Security for Kubernetes 为您提供了促进应用程序和组件中漏洞优先级优先级的方法。

10.1.3. 评估风险

要评估暴露漏洞,请参阅以下问题:

  • 您的应用程序是否受漏洞影响?
  • 其他因素是否缓解了漏洞?
  • 是否存在可能导致利用此漏洞的已知威胁?
  • 您使用的是存在漏洞的软件包?
  • 是否对特定的漏洞花费时间以及软件包是否值得其?

根据您的评估执行以下操作:

  • 如果您确定没有暴露或者您的环境中没有暴露,则漏洞将这个漏洞标记为假的正状态。
  • 如果您想修复、缓解或接受风险。
  • 请考虑要删除或更改软件包以减少攻击面。

10.1.4. 操作

决定对某个漏洞采取行动后,您可以执行以下操作之一:

  • 修复漏洞
  • 缓解并接受风险
  • 接受风险
  • 将漏洞标记为假的正状态

您可以执行以下操作之一修复漏洞:

  • 删除软件包
  • 将软件包更新为一个不可预测的版本。

10.1.4.1. 查找新组件版本

以下流程找到要升级到的新组件版本。

流程

  1. 在 RHACS 门户网站中,导航至 Vulnerability ManagementDashboard
  2. Dashboard 视图标头中选择 Images
  3. 从镜像列表中,选择您已评估的镜像。
  4. Image findings 部分下,选择 CVE。
  5. 选择您要执行的操作的 CVE 受影响组件。
  6. 查看 CVE 中修复的组件版本,并更新您的镜像。

10.1.5. 接受风险

按照本节中的说明,接受 Red Hat Advanced Cluster Security for Kubernetes 的风险。

先决条件

  • 您必须具有 VulnerabilityManagementRequests 资源 的写入权限

接受或不带有缓解措施的风险:

流程

  1. 在 RHACS 门户网站中,导航至 Vulnerability ManagementDashboard
  2. Dashboard 视图标头中选择 Images
  3. 从镜像列表中,选择您已评估的镜像。
  4. 找到列出要对其采取行动的 CVE 的行。
  5. 点击您标识的 CVE 右侧的 kebab 并点 Defer CVE
  6. 选择您要推迟 CVE 的日期和时间。
  7. 如果要为所选镜像标签或者该镜像的所有标签定义 CVE,请选择。
  8. 输入延迟的原因。
  9. Request approval。选择 CVE 右侧的蓝色信息图标,再复制批准链接以与您所在机构的 deferral approver 共享。

10.1.5.1. 将漏洞标记为假的正状态

以下流程将漏洞标记为假的正状态。

先决条件

  • 您必须具有 VulnerabilityManagementRequests 资源 的写入权限

流程

  1. 在 RHACS 门户网站中,导航至 Vulnerability ManagementDashboard
  2. Dashboard 视图标头中选择 Images
  3. 从镜像列表中,选择您已评估的镜像。
  4. 找到列出要对其采取行动的 CVE 的行。
  5. 点击您标识的 CVE 右侧的 kebab 并点 Defer CVE
  6. 选择您要推迟 CVE 的日期和时间。
  7. 如果要为所选镜像标签或者该镜像的所有标签定义 CVE,请选择。
  8. 输入延迟的原因。
  9. Request approval
  10. 选择 CVE 右侧的蓝色信息图标,再复制批准链接以与您所在机构的 deferral approver 共享。

10.1.5.2. 查看假的正或延迟的 CVE

使用以下步骤检查假的正或延迟的 CVE。

先决条件

  • 您必须具有 VulnerabilityManagementApprovals 资源 的写入权限

您可以检查错误的正或延迟的 CVE:

流程

  1. 在浏览器或 RHACS 门户中打开批准链接。
  2. 导航到 Vulnerability ManagementRisk Acceptance,再搜索 CVE。
  3. 查看漏洞范围和操作,以确定您要批准它。
  4. 点击 CVE 右侧的 kebab 并批准或拒绝批准请求。

10.1.6. 向团队报告漏洞

当组织必须不断重新评估并报告其漏洞时,一些组织发现调度了与主要相关人员的通讯以帮助进行漏洞管理流程。

您可以使用 Red Hat Advanced Cluster Security for Kubernetes 来通过电子邮件来调度这些重复通信。这些通信应限定在主要利益相关者需要的最相关信息。

要发送这些通信,您必须考虑以下问题:

  • 在与利益相关者沟通时,哪些计划会对什么影响。
  • 谁是谁?
  • 您应该只在您的报告中发送特定的严重性漏洞?
  • 您应该只在您的报告中发送可修复的漏洞?

10.1.6.1. 调度漏洞管理报告

以下流程创建了调度的漏洞报告。

流程

  1. 在 RHACS 门户网站中,导航至 Vulnerability ManagementReporting
  2. Create report
  3. Report name 字段中输入报告的名称。
  4. Repeat report…​下为您的报告选择一个每周或每月节奏。
  5. 为报告输入 Description
  6. 选择您要报告可修复的漏洞、特定严重性漏洞或仅自上次调度报告所出现的漏洞的漏洞,选择报告的范围。
  7. 对于 配置资源范围,请选择漏洞应用到的资源范围。
  8. 选择或创建一个电子邮件通知程序,通过电子邮件发送您的报告 并在通知和分发下配置您的分发 列表。
  9. 选择 Create 来调度报告。

10.1.6.2. 发送漏洞报告

以下流程发送漏洞报告。

流程

  1. 在 RHACS 门户网站中,导航至 Vulnerability ManagementReporting
  2. 从报告列表中,选择报告。
  3. 选择报告右侧的 kebab 并点 Run report now

10.1.6.3. 编辑漏洞报告

以下流程编辑漏洞报告。

流程

  1. 在 RHACS 门户网站中,导航至 Vulnerability ManagementReporting
  2. 从报告列表中,选择报告。
  3. 选择报告右侧的 kebab 并点 Edit
  4. 根据需要修改报告。
  5. 点击 Save

10.1.6.4. 删除漏洞报告

以下流程删除漏洞报告。

流程

  1. 在 RHACS 门户网站中,导航至 Vulnerability ManagementReporting
  2. 从报告列表中,选择报告。
  3. 选择报告右侧的 kebab 并点 Delete report

10.2. 常见任务

本节列出了您可以在 Vulnerability ManagementDashboard 视图中执行的一些常见任务。

10.2.1. 查找影响您基础架构的关键 CVE

使用 漏洞管理 视图来识别影响您最强平台的 CVE。

流程

  1. 导航到 RHACS 门户,从导航菜单中单击 Vulnerability Management
  2. 选择 Vulnerability Management view 标头上的 CVE。
  3. CVEs 视图中,选择 Env Impact 列标题,以根据环境影响来按降序排列 CVE(最高名)。

10.2.2. 查找最易受攻击的镜像组件

使用 漏洞管理视图 来识别存在安全漏洞的镜像组件。

流程

  1. 导航到 RHACS 门户,从导航菜单中单击 Vulnerability Management
  2. Vulnerability Management 视图标头中选择 Application & InfrastructureComponents
  3. 组件 视图中,选择 CVEs 列标题,以根据 CVE 计数以降序排列组件(最高名)。

10.2.3. 识别引入漏洞的容器镜像层

使用 漏洞管理 视图识别存在安全漏洞的组件及其出现在镜像层。

流程

  1. 导航到 RHACS 门户,从导航菜单中单击 Vulnerability Management
  2. Top Riskies Images 小部件中选择镜像
  3. Image details 视图中,选择 Image Findings 部分下的 Dockerfile 选项卡。
  4. Image Findings 部分下的 Dockerfile 选项卡中,选择展开图标来查看镜像组件的摘要。
  5. 选择特定组件的扩展图标,以获取有关影响所选组件的 CVE 的更多详细信息。

10.2.4. 仅查看可修复的 CVE 的详情

使用 漏洞管理 视图过滤和仅显示可修复的 CVE。

流程

  1. 导航到 RHACS 门户,从导航菜单中单击 Vulnerability Management
  2. Vulnerability Management 视图标头中选择 Filter CVEsFixable

10.2.5. 识别基础镜像的操作系统

使用 漏洞管理 视图确定基础镜像的操作系统。

流程

  1. 导航到 RHACS 门户,从导航菜单中单击 Vulnerability Management
  2. Vulnerability Management 视图标头中选择 Images
  3. 查看 Image OS 列下所有镜像的基础操作系统(OS)和 OS 版本。
  4. 选择一个镜像来查看其详情。基础操作系统也位于 Image SummaryDetails 和 Metadata 部分。
注意

在 Red Hat Advanced Cluster Security for Kubernetes 时,Red Hat Advanced Cluster Security for Kubernetes 将镜像 OS 列为 unknown

  • 操作系统信息不可用,或者
  • 如果使用的镜像扫描程序没有提供此信息。

Docker Trusted Registry、Google Container Registry 和 Anchore 不提供此信息。

10.2.6. 识别主要风险对象

使用 漏洞管理 视图确定您环境中的最大风险对象。Top Risky widget 显示有关环境中顶级风险镜像、部署、集群和命名空间的信息。风险根据漏洞的数量及其 CVSS 分数来决定。

流程

  1. 导航到 RHACS 门户,从导航菜单中单击 Vulnerability Management
  2. 选择 Top Risky widget 标头以选择风险性镜像、部署、集群和命名空间。

    chart 上的小圆形表示所选对象(镜像、部署、集群、命名空间)。将鼠标悬停在圆括号上,以查看它们所代表对象的概览。然后选择一个圆形来查看有关所选对象、相关实体以及它们之间的连接的详细信息。

    例如,如果您通过 CVE Count 和 CVSS 分数查看最佳风险部署,则图表上的每个圆形都代表部署。

    • 当您将鼠标悬停在部署上时,您会看到部署概述,其中包括部署名称、集群和命名空间名称、严重性、风险优先级、CVSS 和 CVE 计数(包括可修复)。
    • 当您选择一个部署时,会为所选部署打开 Deployment 视图。Deployment 视图中显示部署的深入了解,包括有关该部署的策略违反情况、常见漏洞、CVE 和风险镜像的信息。
  3. 选择 View All on the widget 标头来查看所选类型的所有对象。例如,如果您 根据 CVE Count 和 CVSS 分数选择顶级风险 部署,您可以选择 View All 查看基础架构中所有部署的详细信息。

10.2.7. 识别镜像和组件的主要风险

top Risky 类似,Top Riskiest 列出了主要风险的镜像和组件的名称。此小部件还包括列表镜像中可修复的 CVE 总数和可修复的 CVE 数量。

流程

  1. 导航到 RHACS 门户,从导航菜单中单击 Vulnerability Management
  2. 选择 Top Riskiest Images 小部件标题,以在不同的风险和组件之间进行选择。如果您看到 最大的风险镜像

    • 当您将鼠标悬停在列表中的镜像上时,您会看到镜像概述,其中包括镜像名称、扫描时间以及 CVE 的数量(关键、高、中度和低)。
    • 当您选择镜像时,为所选镜像打开 Image 视图。Image 视图显示镜像的深度详情,包括 CVSS 分数、最高风险组件、可修复的 CVE 和 Dockerfile 的信息。
  3. 选择 View All on the widget 标头来查看所选类型的所有对象。例如,如果您选择 顶级风险组件,可以选择 View All 来查看基础架构中所有组件的详细信息。

10.2.8. 查看镜像的 Dockerfile

使用 漏洞管理 视图查找镜像中漏洞的根本原因。您可以查看 Dockerfile 并查找 Dockerfile 中的哪个命令引入了漏洞以及与该单一命令关联的所有组件。

Dockerfile 标签显示以下信息:

  • Dockerfile 中的所有层
  • 每个层的 instructions 及其值
  • 每个层中包含的组件
  • 每个层的组件中的 CVE 数量

当有特定层引入的组件时,您可以选择展开图标来查看其组件的摘要。如果这些组件中存在任何 CVE,您可以选择单个组件的扩展图标,以获取有关影响该组件的 CVE 的更多详细信息。

流程

  1. 导航到 RHACS 门户,从导航菜单中单击 Vulnerability Management
  2. Top Riskies Images 小部件中选择镜像
  3. Image details 视图中,选择 Image Findings 部分下的 Dockerfile 选项卡。

10.2.9. 禁用节点中的识别漏洞

识别节点中的漏洞会被默认启用。您可以从 RHACS 门户禁用它。

流程

  1. 在 RHACS 门户网站中,进入 Platform ConfigurationIntegrations
  2. Image Integrations 下,选择 StackRox Scanner
  3. 从扫描程序列表中,选择 StackRox Scanner 来查看其详细信息。
  4. 从类型中删除 Node Scanner 选项
  5. 选择 Save

10.2.10. 扫描不活跃镜像

Red Hat Advanced Cluster Security for Kubernetes 每 4 小时扫描所有活跃的(部署)镜像,并更新镜像扫描结果以反映最新的漏洞定义。

您还可以将 Red Hat Advanced Cluster Security for Kubernetes 配置为自动扫描不活跃(未部署)镜像。

流程

  1. 选择 Vulnerability Management 视图标头上的 Images 来查看所有镜像的列表。
  2. Images 视图中,选择 Watch Images
  3. Manage Inactive Images 对话框中,输入您要启用扫描的非活动 镜像的名称(而不是镜像 ID)。
  4. 选择 Add Image。Red Hat Advanced Cluster Security for Kubernetes 然后扫描镜像,并显示错误或成功信息。
  5. 选择 return to Image 列表 来查看 Images 视图。

10.2.11. 创建阻止特定 CVE 的策略

您可以从 漏洞管理 视图创建新策略,或将特定的 CVE 添加到现有策略中。

流程

  1. Vulnerability Management 视图标头中点 CVE
  2. 为一个或多个 CVE 选择复选框(左高列),然后单击 Add selected CVE to Policy添加 图标)。或者,将鼠标移到列表中的 CVE 上,然后选择右侧的 Add 图标。
  3. 对于 Policy Name

    • 要将 CVE 添加到现有策略,请从下拉列表中选择现有策略。
    • 要创建新策略,请输入新策略的名称,然后选择 Create <policy_name>
  4. Severity 选择一个值,可以是 CriticalHighMediumLow
  5. BuildDeploy 中选择您的策略适用的 Lifecycle Stage。您还可以选择两个生命周期阶段。
  6. Description 框中输入策略详情。
  7. 如果要创建策略但在以后启用它,请关闭 Enable Policy 切换。Enable Policy 切换默认是 on。
  8. 验证此策略中包含的列出 CVE。
  9. Save Policy

10.2.12. 查看最近检测到的漏洞

漏洞管理 视图中的 Recently Detected vulnerabilities widget 显示您扫描镜像中最近发现的漏洞列表,具体取决于扫描时间和 CVSS 分数。它还包含有关受 CVE 影响的镜像数及其影响(百分比)的信息。

  • 当您将某个 CVE 悬停在列表上的 CVE 中时,您会看到 CVE 的概述,其中包括扫描时间、CVSS 得分、描述、影响以及是否使用 CVSS v2 或 v3 评分。
  • 当您选择 CVE 时,为所选 CVE 打开 CVE 详情视图。CVE 详情视图显示 CVE 的深度信息,以及它所出现的组件、镜像和部署。
  • 选择 View All on the Recently Detected Vulnerabilities widget 标头来查看您基础架构中所有 CVE 的列表。您还可以过滤 CVE 列表。

10.2.13. 查看最常见的漏洞

漏洞管理视图 中的大多数 常见漏洞 小部件显示,它们会影响最大数量的部署和镜像,按其 CVSS 分数排列。

  • 当您将某个 CVE 悬停在列表中的 CVE 中时,您会看到 CVE 概述,其中包括、扫描时间、CVSS 得分、描述、影响以及是否使用 CVSS v2 或 v3 评分。
  • 当您选择 CVE 时,为所选 CVE 打开 CVE 详情视图。CVE 详情视图显示 CVE 的深度信息,以及它所出现的组件、镜像和部署。
  • 选择 View All on Most Common Vulnerabilities widget 标头来查看您基础架构中所有 CVE 的列表。您还可以过滤 CVE 列表。要将 CVE 导出为 CSV 文件,请选择 ExportDownload CVES 作为 CSV

10.2.14. 识别带有最严重策略违反的部署

漏洞管理 视图中 具有最严重的策略违反小部件的 Deployment 显示了影响该部署的漏洞的部署和严重性列表。

  • 当您将鼠标悬停在列表中的部署上时,您会看到部署概述,其中包括部署名称、集群的名称以及部署所在的命名空间,以及失败策略的数量及其严重性。
  • 当您选择一个部署时,会为所选部署打开 Deployment 视图。Deployment 视图中显示部署的深入了解,包括有关该部署的策略违反情况、常见漏洞、CVE 和风险镜像的信息。
  • 选择 View All on Most Common Vulnerabilities widget 标头来查看您基础架构中所有 CVE 的列表。您还可以过滤 CVE 列表。要将 CVE 导出为 CSV 文件,请选择 ExportDownload CVES 作为 CSV

10.2.15. 使用大多数 Kubernetes 和 Istio 漏洞查找集群

使用 漏洞管理 视图,在您的环境中识别带有最多 Kubernetes 和 Istio 漏洞的集群。

带有大多数 K8S 和 Istio 漏洞 的集群会显示一个集群列表,由每个集群的 Kubernetes 和 Istio 漏洞数量列入。列表顶部的集群是具有最多漏洞的集群。

流程

  1. 从列表中选择一个集群来查看集群的详情。Cluster 视图包括:

    • Cluster Details 部分,显示集群详情和元数据、主要风险对象(部署、命名空间和镜像)、最近检测到的漏洞、风险镜像以及带有最严重的策略违反的部署。
    • Cluster Findings 部分,其中包括失败策略列表以及可修复的 CVE 列表。
    • 相关实体 部分,显示集群包含的命名空间、部署、策略、镜像、组件和 CVE 的数量。您可以选择这些实体来查看更多详情。
  2. 点 widget 标头上的 View All 来查看所有集群的列表。

10.2.16. 识别节点中的漏洞

您可以使用 漏洞管理视图 来识别节点中的漏洞。识别的漏洞包括以下漏洞:

  • Kubernetes 核心组件。
  • 容器运行时(Docker、CRI-O、runC 和 containerd)。

    注意
    • Red Hat Advanced Cluster Security for Kubernetes 不支持识别 OpenShift Container Platform 中的节点中的漏洞。
    • Red Hat Advanced Cluster Security for Kubernetes 可以识别以下操作系统中的漏洞:

      • Amazon Linux 2
      • CentOS
      • Debian
      • Garden Linux(Debian 11)
      • Red Hat Enterprise Linux(RHEL)
      • Ubuntu(AWS、Azure、GCP 和 GKE 特定版本)

流程

  1. 选择 Vulnerability Management 视图标头上的 Nodes,以查看影响节点的所有 CVE 列表。
  2. 从列表中选择一个节点,以查看影响该节点的所有 CVE 的详情。

    1. 当您选择节点时,为所选节点打开 Node 详情面板。Node 视图显示节点的深度详情,其中包含有关 CVSS 分数的 CVE 的信息,以及为该节点修复的 CVE。
    2. 选择 View All on CVE by CVSS 分数 widget 标头来查看所选节点中的所有 CVE 列表。您还可以过滤 CVE 列表。
    3. 要将可修复的 CVE 导出为 CSV 文件,请在 Node Findings 部分选择 Export as CSV

第 11 章 响应违反情况

使用 Red Hat Advanced Cluster Security for Kubernetes 可以查看策略违反情况,深入到冲突的实际原因,并采取纠正措施。

Red Hat Advanced Cluster Security for Kubernetes 内置策略标识了各种安全发现结果,包括漏洞(CVE)、符合 DevOps 最佳实践的违反情况、高风险构建和部署实践以及可疑的运行时行为。无论您使用默认开箱即用安全策略,或使用您自己的自定义策略,Red Hat Advanced Cluster Security for Kubernetes 都会在启用的策略失败时报告违反情况。

11.1. 违反视图

您可以在 Violations 视图中分析所有违反情况并采取纠正措施。

要查看发现的违反情况,请从 RHACS 门户的左侧导航菜单中选择 Violations

Violations 视图显示每行有以下属性的违反列表:

  • 部署 :部署的名称。
  • Cluster: 集群的名称。
  • 命名空间 :用于部署的命名空间。
  • Policy :违反的策略的名称。
  • 强制 :指示是否在发生冲突时强制执行策略。
  • 重要信息 :指示严重性为 LowMediumHighCritical
  • 类别 :策略类别。
  • Lifecycle: 策略将应用到的阶段:Build, Deploy, 或 Runtime
  • 时间 - 发生冲突的日期和时间。

和其它视图类似:

  • 您可以选择列标题来按升序或降序排列违反情况。
  • 使用过滤器栏过滤违反情况。如需更多信息,请参阅搜索和过滤部分。
  • Violations 视图中选择一个违反情况来查看违反情况的更多详细信息。

11.2. 查看违反详情

当您在 Violations 视图中选择违反情况时,会在右侧打开 Violation Details 面板。

Violation Details 面板显示按多个标签页分组的详细信息。

11.2.1. 违反标签

Violation DetailsViolation 标签页解释了如何违反了策略。如果策略目标 deploy-phase 属性,您可以查看违反策略的特定值,如违反名称。如果策略以运行时活动为例,您可以查看违反策略的进程的详细信息,包括其参数和创建该文件的上级进程。

11.2.2. 强制标签页

Details 面板的 Enforcement 选项卡显示在响应所选策略违反时执行的强制操作类型的说明

11.2.3. Deployment 选项卡

Details 面板的 Deployment 选项卡显示违反了违反情况的部署详情。

概述部分

overview 部分列出了以下信息:

  • 部署 ID :部署的字母数字标识符。
  • 部署名称 :部署的名称。
  • 部署类型 :部署的类型。
  • Cluster :部署容器的集群名称。
  • 副本 :复制部署的数量。
  • 命名空间 :已部署集群的唯一标识符。
  • 更新了 :更新部署的时间和日期。
  • Labels :应用到所选部署的标签。
  • Annotations:应用到所选部署。
  • Service Account :所选部署的服务帐户的名称。
容器配置部分

容器配置部分列出了以下信息:

  • Image Name :所选部署的镜像的名称。
  • 资源

    • CPU 请求(内核) :容器请求的内核数。
    • 内存请求(MB) :容器请求的内存大小。
    • 名称 :挂载该服务的位置的名称。
    • :数据源路径。
    • destination :存储数据的路径。
    • 键入: 卷的类型。
  • Secret :与所选部署关联的 Secret。
安全上下文部分

列出容器是否作为特权容器运行。

  • privileged

    • (如果是 特权
    • 如果不是特权,则为 false
网络策略部分

列出命名空间中包含冲突的所有网络策略。

11.2.4. 策略标签

Details 面板的 Policy 选项卡显示导致违反情况的策略详情。

策略详情部分

策略详情部分列出了以下信息:

  • ID :策略的数字标识符。
  • 名称 :策略的名称。
  • 描述 :策略警报的详细说明。
  • Rationale:有关策略建立原因的信息及其重要原因。
  • 补救 :如何修复违反情况存在的问题。
  • Enabled :指示是否启用了策略。
  • 类别 :策略的策略类别。
  • Lifecycle Stage: 策略所属的生命周期阶段:Build, Deploy, 或 Runtime
  • severity - 违反的风险级别。
策略标准部分

列出策略的策略条件。

第 12 章 搜索和过滤

即时查找资源的功能对于保护集群非常重要。使用 Red Hat Advanced Cluster Security for Kubernetes 搜索功能可以更快地查找相关资源。例如,您可以使用它来查找公开到新发布的 CVE 的部署,或查找具有外部网络公开的所有部署。

12.1. 搜索语法

搜索查询由两个部分组成:

  • 标识您要搜索的资源类型的属性。
  • 查找匹配资源的搜索词。

例如,要在 visa-processor 部署中查找所有违反情况,搜索查询为 Deployment:visa-processor。在这个搜索查询中,Deployment 是属性,visa-processor 是搜索词。

注意

在使用搜索条件前,您必须选择一个属性。但是,在一些视图中,如 风险 视图和 Violations 视图,Red Hat Advanced Cluster Security for Kubernetes 根据您输入的搜索术语自动应用相关属性。

  • 您可以在查询中使用多个属性。当您使用多个属性时,结果只会包括与所有属性匹配的项目。

    示例

    当您搜索 Namespace:frontend CVE:CVE-2018-11776 时,它只返回在 frontend 命名空间中违反 CVE-2018-11776 的资源。

  • 您可以将多个搜索词用于每个属性。当您使用多个搜索时,结果会包括与任何搜索条件匹配的所有项目。

    示例

    如果您使用搜索查询 Namespace: frontend backend,它会从命名空间 frontendbackend 返回匹配结果。

  • 您可以组合多个属性和搜索词对。

    示例

    搜索查询 Cluster:production Namespace:frontend CVE:CVE-2018-11776 会返回所有违反了 production 集群中的 frontend 命名空间中的 CVE-2018-11776 的资源。

  • 搜索词可以是词语的一部分,在这种情况下,Red Hat Advanced Cluster Security for Kubernetes 返回所有匹配结果。

    示例

    如果搜索 Deployment:def,则结果包括从 def 开始的所有部署。

  • 要明确搜索特定术语,请使用引号内的搜索词。

    示例

    当搜索 Deployment:"def" 时,结果只会包括部署 定义

  • 您还可以在搜索词前使用 r/ 来使用正则表达式。

    示例

    当您搜索 Namespace:r/st.*x 时,结果包括从命名空间 stackroxstix 匹配。

  • 使用 ! 表示您不想在结果中的搜索术语。

    示例

    如果您搜索 Namespace:!stackrox,则结果会包括与 stackrox 命名空间以外的所有命名空间匹配的结果。

  • 使用比较 Operators & gt;、& lt ;=&gt;= 或 <= 匹配特定值或值范围。

    示例

    如果您搜索 CVSS:>=6,则结果包括带有常见漏洞评分系统(CVSS)6 或更高版本的所有漏洞。

12.2. 搜索自动完成

在输入查询时,Red Hat Advanced Cluster Security for Kubernetes 会自动显示属性和搜索条款的相关建议。

12.3. 使用全局搜索

通过使用全局搜索,您可以在环境中的所有资源中搜索。根据您在搜索查询中使用的资源类型,结果按以下类别分组:

  • All(列出所有类别之间的匹配结果)。
  • 违反
  • 策略(policy)
  • Deployments
  • 镜像
  • Secrets

这些类别在 RHACS 门户全局搜索页中被列为表,您可以点击类别名称来识别属于所选类别的结果。

要进行全局搜索,请在 RHACS 门户中选择 搜索

12.4. 使用本地页面过滤

您可以使用 RHACS 门户所有视图进行本地页面过滤。本地页面过滤功能与全局搜索类似,但只有相关属性可用。您可以选择搜索栏来显示特定视图的所有可用属性。

12.5. 常见搜索查询

以下是您可以使用 Red Hat Advanced Cluster Security for Kubernetes 运行的一些常见搜索查询。

查找受特定 CVE 影响的部署

查询示例

CVE:<CVE_number>

CVE:CVE-2018-11776

查找特权运行部署

查询示例

privileged:<true_or_false>

privileged:true

查找具有外部网络暴露的部署

查询示例

exposure Level:<level>

风险级别:External

查找运行特定进程的部署

查询示例

process Name:<process_name>

process Name:bash

查找具有严重但可修复的漏洞的部署

查询示例

CVSS:<expression_and_score>

CVSS:>=6 Fixable:.*

查找使用通过环境变量公开的密码的部署

查询示例

environment Key:<query>

环境键:r/.*pass.*

查找运行具有特定软件组件的部署

查询示例

component:<component_name>

组件:libgpg-errorcomponent:sudo

查找用户或组

使用 Kubernetes Labels 和 Selectors 将元数据附加到部署。然后,您可以根据应用的注解和标签查询来标识个人或组。

查找拥有特定部署的用户
查询示例

deployment :<deployment_name> Label:<key_value>Deployment:<deployment_name> Annotation:<key_value>

Deployment:app-server Label:team=backend

从公共 registry 查找部署镜像的人员
查询示例

image Registry:<registry_name> Label:<key_value>Image Registry:<registry_name> Annotation:<key_value>

Image Registry:docker.io Label:team=backend

查找正在部署到默认命名空间中
查询示例

namespace:default Label:<key_value>Namespace:default ation :<key_value>

namespace:default Label:team=backend

12.6. 搜索属性

以下是在 Red Hat Advanced Cluster Security for Kubernetes 搜索和过滤时可以使用的搜索属性列表。

属性描述

添加功能

为容器提供额外的 Linux 功能,例如修改文件或执行网络操作的功能。

注解

附加到编配器对象的任意非标识元数据。

CPU 内核限制

允许使用资源的内核数上限。

CPU 内核请求

为给定资源保留的最小内核数。

CVE

常见的漏洞和风险,将其与特定的 CVE 数字一起使用。

CVSS

通用漏洞评分系统,将其与 CVSS 分数一起使用,大于(>),小于(<),或等于(=)符号。

类别

策略类别包括 DevOps 最佳实践、安全最佳实践、特权、漏洞管理、多选和自定义策略类别。

证书过期

证书过期日期.

集群

Kubernetes 或 OpenShift Container Platform 集群的名称。

集群 ID

Kubernetes 或 OpenShift Container Platform 集群的唯一 ID。

集群角色

使用 true 为命名空间范围的角色搜索集群范围的角色和 false

组件

软件(daemond、docker)、对象(镜像、容器、服务)、注册表(Docker 镜像的存储库)。

组件计数

镜像中的组件数。

组件版本

软件、对象或 registry 的版本。

已创建时间

创建 secret 对象的时间和日期。

Deployment

部署的名称。

部署类型

部署所基于的 Kubernetes 控制器的类型。

描述

部署的描述。

Dockerfile 指令关键字

镜像 Dockerfile 指令中的关键字。

Dockerfile 指令值

镜像 Dockerfile 指令中的值。

丢弃功能

已从容器中丢弃的 Linux 功能。例如 CAP_SETUIDCAP_NET_RAW

强制

分配给部署的强制类型。例如,NoneScale 到 Zero Replicas或添加 Unsatisfiable Node Constraint

环境密钥

标签键值字符串的关键部分,即元数据以进一步标识和组织容器的环境。

环境值

标签键值字符串的值部分,即元数据以进一步标识和组织容器环境。

公开的节点端口

公开的节点端口的端口号。

公开服务

公开的服务的名称。

公开服务端口

公开服务的端口号。

风险级别

部署端口的暴露类型,如 externalnode

外部主机名

为部署公开外部端口的主机名。

外部 IP

为部署公开的外部端口的 IP 地址。

可修复的 CVE 数量

镜像上的可修复的 CVE 数量。

修复了人

一个软件包的版本字符串,用于修复镜像中标记的漏洞。

镜像

镜像的名称。

镜像命令

镜像中指定的命令。

镜像创建时间

镜像创建的时间和日期。

image Entrypoint

镜像中指定的 entrypoint 命令。

镜像 Pull Secret

在拉取镜像时使用的 secret 名称,如部署中指定的。

Image Pull Secret Registry

镜像 pull secret 的 registry 名称。

镜像 Registry

镜像 registry 的名称。

镜像远程

表示远程访问的镜像。

镜像扫描时间

镜像最后一次扫描的时间和日期。

镜像标签

镜像的标识符。

镜像用户

容器镜像在运行时要使用的用户或组的名称。

镜像卷

容器镜像中配置的卷的名称。

不活跃部署

使用 true 搜索不活跃的部署,为活跃的部署搜索 false

标签

标签键值字符串的关键部分,即元数据,用于进一步识别和组织镜像、容器、守护进程、卷、网络和其他资源。

生命周期阶段

触发此策略或警报的生命周期阶段类型。

max Exposure Level

对于部署,所有给定端口/服务的网络风险的最大级别。

内存限制(MB)

允许使用资源的最大内存量。

内存请求(MB)

为给定资源保留的最小内存量。

命名空间

命名空间的名称。

命名空间 ID

部署上包含命名空间对象的唯一 ID。

节点

节点的名称。

节点 ID

节点的唯一 ID。

Pod 标签

单个识别附加到单个 pod 的元数据。

策略

安全策略的名称。

端口

由部署公开的端口号。

端口协议

IP 协议,如公开端口使用的 TCP 或 UDP。

优先级

部署的风险优先级。(仅在 风险 视图中可用。)

privileged

使用 true 搜索特权运行部署,否则使用 false 搜索。

Process Ancestor

部署中进程指示器的任何父进程的名称。

进程参数

部署中进程指示器的命令参数。

进程名称

部署中进程指示的进程的名称。

进程路径

部署中进程指示器的到容器中的二进制路径。

进程 UID

在部署中的进程指示器的 UNIX 用户 ID。

只读取根文件系统

使用 true 来搜索使用配置为只读 root 文件系统运行的容器。

角色

Kubernetes RBAC 角色的名称。

角色绑定

Kubernetes RBAC 角色绑定的名称。

角色 ID

Kubernetes RBAC 角色绑定绑定到的角色 ID。

Secret

包含敏感信息的 secret 对象的名称。

机密路径

到文件系统中 secret 对象的路径。

Secret 类型

secret 的类型,如证书或 RSA 公钥。

服务帐户

服务帐户或部署的服务帐户名称。

重要性

表示冲突程度:关键、高、中等、低.

subject

Kubernetes RBAC 中的主题名称。

subject Kind

Kubernetes RBAC 中的主题类型,如 SERVICE_ACCOUNTUSERGROUP

taint Effect

当前应用到节点的污点类型。

污点密钥

当前应用到节点的污点键。

污点值

当前应用到节点的污点允许值。

容限键

应用到部署的容限的键。

容限值

应用到部署的容限的值。

违反

当由一个策略指定的条件尚未满足时,在 Volations 页面中显示的通知。

违反状态

使用它搜索已解析的违反情况。

违反时间

首次发生冲突的时间和日期。

卷目的地

数据卷的挂载路径。

卷名称

存储的名称。

卷 ReadOnly

使用 true 搜索以只读方式挂载的卷。

卷源

指明置备卷的格式(如 persistentVolumeClaimhostPath)。

卷类型

卷的类型。

第 13 章 管理用户访问权限

13.1. 将 Okta Identity Cloud 配置为 SAML 2.0 身份提供程序

您可以使用 Okta 作为 Red Hat Advanced Cluster Security for Kubernetes(RHACS)的单一登录(SSO)供应商。

13.1.1. 创建 Okta 应用

在将 Okta 用作 Red Hat Advanced Cluster Security for Kubernetes 的 SAML 2.0 身份提供程序之前,您必须创建一个 Okta 应用程序。

警告

Okta 的开发人员控制台 不支持创建自定义 SAML 2.0 应用程序。如果使用 Developer 控制台,您必须首先切换到 Admin 控制台(Classic UI)。要切换,请单击页面左上角的 Developer Console 并选择 Classic UI

先决条件

  • 您必须具有具有 Okta portal 的管理特权的帐户。

流程

  1. 在 Okta 门户上,从菜单栏中选择 Applications
  2. 单击 Add Application,然后选择 Create New App
  3. Create a New Application Integration 对话框中,保留 Web 作为平台,然后选择 SAML 2.0 作为您要登录的协议。
  4. Create
  5. General Settings 页面中,在 App name 字段中输入 app 的名称。
  6. 点击 Next
  7. SAML Settings 页面中,为以下字段设置值:

    1. 单点登录

      • 将它指定为 https://<RHACS_portal_hostname>/sso/providers/saml/acs
      • Use this for Recipient URL 和 Destination URL 选项选中。
      • 如果您的 RHACS 门户可以通过不同的 URL 访问,您可以通过选中 Allow this app 来请求其他 SSO URL 选项来添加它们,并使用指定格式添加替代 URL。
    2. 使用者 URI(SP Entity ID)

      • 将值设为 RHACS 或您选择的另一个值。
      • 请记住,您选择的值;当您配置 Red Hat Advanced Cluster Security for Kubernetes 时,您将需要这个值。
    3. 属性声明

      • 您必须至少添加一个属性语句。
      • 红帽建议使用 email 属性:

        • 名称: mail
        • 格式: 未指定
        • Value: user.email
  8. 在继续操作前,验证您是否至少配置 了一条属性语句
  9. 点击 Next
  10. 反馈 页面中,选择适合您的选项。
  11. 选择适当的应用程序 类型
  12. Finish

配置完成后,您将被重定向到新应用的 Sign On 设置页面。黄色框包含指向配置 Red Hat Advanced Cluster Security for Kubernetes 的信息的链接。

创建应用程序后,为这个应用程序分配 Okta 用户。进入 Assignments 选项卡,并分配可以访问 Red Hat Advanced Cluster Security for Kubernetes 的独立用户或组。例如,为组 Everyone 分配,以允许该机构中的所有用户访问 Red Hat Advanced Cluster Security for Kubernetes。

13.1.2. 在 Red Hat Advanced Cluster Security for Kubernetes 中配置 SAML 2.0 身份提供程序

使用本节中的说明将 SAML 2.0 身份提供程序与 Red Hat Advanced Cluster Security for Kubernetes 集成。

先决条件

  • 您必须具有在 Red Hat Advanced Cluster Security for Kubernetes 中配置身份提供程序的权限。
  • 您必须为 Red Hat Advanced Cluster Security for Kubernetes 配置了一个 Okta 应用程序。

流程

  1. 在 RHACS 门户网站中,导航至 Platform ConfigurationAccess Control
  2. 打开 Add an Auth Provider 菜单,然后选择 SAML 2.0
  3. 填写以下详情:

    • 集成名称: 用于标识此身份验证提供程序的名称,如 OktaGoogle。集成名称显示在登录页面中,以帮助用户选择正确的符号选项。
    • ServiceProvider Issuer: 用作 Okta 中的 Audience URISP Entity ID 的值,或其他提供程序中的类似值。
    • IdP 元数据 URL: 使用 身份提供程序控制台提供的身份提供程序元数据的 URL。如果您不想使用 IdP 元数据 URL,您可以在 Okta 控制台中复制 View Setup 指令 链接中的所需的静态字段,或者为其他供应商处复制类似的位置。
  4. 使用所选身份提供程序 访问 Red Hat Advanced Cluster Security for Kubernetes 的用户,选择最小访问角色

    提示

    在完成设置时,将 Minimum access role 设置为 Admin。之后,您可以返回到 Access Control 页面,根据身份提供程序的用户元数据设置更定制的访问规则。

  5. 点击 Save
重要

如果您的 SAML 身份提供程序的身份验证响应:

  • 包括一个 NotValidAfter assertion,用户会话在 NotValidAfter 字段中指定的时间已过前保持有效。在到期后,用户必须重新验证。
  • 不包括 NotValidAfter assertion,用户会话在 30 天内仍有效,之后用户必须重新验证。

验证

  1. 在 RHACS 门户网站中,导航至 Platform ConfigurationAccess Control
  2. 选择 Auth Provider Rules 选项卡。
  3. Auth Providers 部分下,选择您要验证配置的身份验证提供程序。
  4. Auth Provider 部分标头选择 Test LoginTest Login 页面将在新的浏览器标签页中打开。
  5. 使用您的凭据登录。

    • 成功后,Red Hat Advanced Cluster Security for Kubernetes 显示您为登录的凭证发送的用户 ID用户属性
    • 在失败时,Red Hat Advanced Cluster Security for Kubernetes 会显示一条信息来描述身份提供程序无法处理的响应的原因。
  6. 关闭 Test Login browser 选项卡。

    注意

    即使响应指示成功的身份验证,您可能需要根据身份提供程序中的用户元数据创建额外的访问规则。

13.2. 将 Google Workspace 配置为 OIDC 身份提供程序

您可以使用 Google Workspace 作为 Red Hat Advanced Cluster Security for Kubernetes 的单点登录(SSO)供应商。

13.2.1. 为您的 GCP 项目设置 OAuth 2.0 凭证

要将 Google Workspace 配置为 Red Hat Advanced Cluster Security for Kubernetes 的身份供应商,您必须首先为您的 GCP 项目配置 OAuth 2.0 凭证。

先决条件

  • 您必须具有机构的 Google Workspace 帐户的管理员级访问权限,才能创建新项目,或为现有项目创建和配置 OAuth 2.0 凭证的权限。红帽建议创建一个新项目来管理 Red Hat Advanced Cluster Security for Kubernetes 的访问。

流程

  1. 创建新的 Google Cloud Platform(GCP)项目,请参阅 Google 文档主题 创建和管理项目
  2. 创建项目后,打开 Google API 控制台中的 Credentials 页面。
  3. 验证徽标旁边列出的项目名称,以确保您正在使用正确的项目。
  4. 要创建新凭证,请转至 Create CredentialsOAuth 客户端 ID
  5. 选择 Web application 作为 Application type
  6. Name 框中输入应用程序名称,例如: RHACS
  7. Authorized redirect URIs 框中,输入 https://<stackrox_hostname>:<port_number>/sso/providers/oidc/callback

    • <stackrox_hostname > 替换为您公开您的 Central 实例的主机名。
    • <port_number > 替换为您 expose Central 的端口号。如果您使用标准 HTTPS 端口 443, 可以省略端口号。
  8. Create。这会创建一个应用程序和凭证,并将您重新指向 credentials 页面。
  9. 此时会打开一个信息框,显示新创建的应用程序的详细信息。关闭信息框。
  10. 复制并保存以 .apps.googleusercontent.com 结尾的 客户端 ID。您可以使用 Google API 控制台检查此客户端 ID。
  11. 从左侧的导航菜单中选择 OAuth consent 屏幕

    注意

    OAuth 批准屏幕配置对整个 GCP 项目有效,而不仅仅是您在前面的步骤中创建的应用程序。如果您已经在这个项目中配置了 OAuth 批准屏幕,并希望为 Red Hat Advanced Cluster Security for Kubernetes 登录应用不同的设置,请创建一个新的 GCP 项目。

  12. 在 OAuth 批准屏幕上:

    1. 选择 应用程序类型 作为 Internal。如果选择 公共,则具有 Google 帐户的任何人都可以登录。
    2. 输入描述性 应用程序名称。此名称显示在同意屏幕上的用户。例如,将 RHACS 或 &lt ;organization_name> SSO 用于 Red Hat Advanced Cluster Security for Kubernetes
    3. 验证 Google API 的 Scope 只列出 电子邮件配置集和 openid 范围。只有这些范围才需要单点登录。如果您向其他范围授予额外的范围,这会增加公开敏感数据的风险。

13.2.2. 指定客户端 secret

在指定客户端 secret 时,Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.39 及更新的版本支持 OAuth 2.0 授权代码授予 身份验证流程。当使用此验证流时,Red Hat Advanced Cluster Security for Kubernetes 使用刷新令牌来把用户登录超过 OIDC 身份提供程序中配置的令牌过期时间。

当用户注销时,Red Hat Advanced Cluster Security for Kubernetes 会从客户端中删除刷新令牌。另外,如果您的身份提供程序 API 支持刷新令牌撤销,Red Hat Advanced Cluster Security for Kubernetes 也会向身份提供程序发送请求以撤销刷新令牌。

在将 Red Hat Advanced Cluster Security for Kubernetes 配置为与 OIDC 身份提供程序集成时,您可以指定客户端 secret。

注意
  • 您不能使用带有 Fragment Callback modeClient Secret
  • 您不能编辑现有身份验证供应商的配置。
  • 如果要使用 客户端 Secret,您必须在 Red Hat Advanced Cluster Security for Kubernetes 中创建一个新的 OIDC 集成。

红帽建议在使用 OIDC 身份提供程序连接 Red Hat Advanced Cluster Security for Kubernetes 时使用客户端 secret。如果您不想使用 客户端 Secret,则必须选择 Do not use Client Secret(不推荐) 选项。

13.2.3. 在 Red Hat Advanced Cluster Security for Kubernetes 中配置 OIDC 身份提供程序

您可以将 Red Hat Advanced Cluster Security for Kubernetes 配置为使用 OpenID Connect(OIDC)身份提供程序。

先决条件

  • 您必须已在身份提供程序中配置了应用程序,如 Google Workspace。
  • 您必须具有在 Red Hat Advanced Cluster Security for Kubernetes 中配置身份提供程序的权限。

流程

  1. 在 RHACS 门户网站中,导航至 Platform ConfigurationAccess Control
  2. 打开 Add a Auth Provider 菜单,然后选择 OpenID Connect
  3. 填写以下详情:

    • 集成名称 :用于标识身份验证提供程序的名称。例如: Auth0Google Workspace"。集成名称显示在登录页面中,以帮助用户选择正确的符号选项。
    • 回调模式 :选择 HTTP POST (默认)。另外,还提供了名为 Fragment 的替代模式,它围绕单页应用程序(SPA)的限制。红帽只支持旧集成的 Fragment 模式,不建议将其用于新的集成。
    • issuer :身份提供程序的根 URL,如 Google Workspace https://accounts.google.com。如需更多信息,请参阅您的身份提供程序文档。

      注意

      如果您使用 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.49 及更新版本,对于 Issuer 您可以:

      • 为 root URL 前缀有 https+insecure:// 以跳过 TLS 验证。这个配置是不安全的,红帽不推荐这样做。仅将其用于测试目的。
      • 指定查询字符串,如 ?key1=value1&key2=value2 和 root URL。Red Hat Advanced Cluster Security for Kubernetes 将 Issuer 的值附加到授权端点中。您可以使用它来自定义供应商的登录屏幕。例如,您可以使用 hd 参数在 PingFederate 中使用 pfidpadapterid 参数 优化 Google Workspace 登录屏幕。
    • 客户端 ID :您配置的项目的 OIDC 客户端 ID。
  4. 使用所选身份提供程序 访问 Red Hat Advanced Cluster Security for Kubernetes 的用户,选择最小访问角色

    提示

    在完成设置时,将 Minimum access role 设置为 Admin。之后,您可以返回到 Access Control 页面,根据身份提供程序的用户元数据设置更定制的访问规则。

  5. 点击 Save

验证

  1. 在 RHACS 门户网站中,导航至 Platform ConfigurationAccess Control
  2. 选择 Auth Provider Rules 选项卡。
  3. Auth Providers 部分下,选择您要验证配置的身份验证提供程序。
  4. Auth Provider 部分标头选择 Test LoginTest Login 页面将在新的浏览器标签页中打开。
  5. 使用您的凭据登录。

    • 成功后,Red Hat Advanced Cluster Security for Kubernetes 显示您为登录的凭证发送的用户 ID用户属性
    • 在失败时,Red Hat Advanced Cluster Security for Kubernetes 会显示一条信息来描述身份提供程序无法处理的响应的原因。
  6. 关闭 Test Login browser 选项卡。

13.3. 将 OpenShift Container Platform OAuth 服务器配置为身份提供程序

OpenShift Container Platform 包含一个内置 OAuth 服务器,您可以用作 Red Hat Advanced Cluster Security for Kubernetes(RHACS)的身份验证供应商。

13.3.1. 将 OpenShift Container Platform OAuth 服务器配置为 Red Hat Advanced Cluster Security for Kubernetes 中的身份提供程序

要将内置的 OpenShift Container Platform OAuth 服务器集成为 Red Hat Advanced Cluster Security for Kubernetes(RHACS)的身份供应商,请使用本节中的说明。

先决条件

  • 您必须具有 AuthProvider 权限才能在 RHACS 中配置身份提供程序。
  • 您必须已通过身份提供程序在 OpenShift Container Platform OAuth 服务器中配置了用户和组。有关身份提供程序要求的详情,请参阅 了解身份提供程序配置
注意

以下流程只为 OpenShift Container Platform OAuth 服务器配置一个名为 central 的主路由。

流程

  1. 在 RHACS 门户网站中,导航至 Platform ConfigurationAccess Control
  2. 打开 Add a Auth Provider 菜单,然后选择 OpenShift Auth
  3. Name 字段中输入身份验证提供程序的名称。
  4. 使用所选身份提供程序为访问 RHACS 的用户选择 最小访问权限角色

    提示

    为安全起见,红帽建议在完成设置 时将最低访问角色 设置为 None。之后,您可以返回到 Access Control 页面,根据身份提供程序的用户元数据设置更定制的访问规则。

  5. 可选: 要为访问 RHACS 的用户和组添加访问规则,点 Rules 部分中的 Add new rule,然后输入规则信息并点 Save。您需要用户或组的属性,以便您可以配置访问权限。

    提示

    组映射功能更强大,因为组通常与团队或权限集关联,而且需要修改频率少于用户。

    要在 OpenShift Container Platform 中获取用户信息,您可以使用以下方法之一:

    • User ManagementUsers → < username &gt; → YAML
    • 访问 k8s/cluster/user.openshift.io~v1~User/<username>/yaml 文件,并记录 名称uid ( RHACS 中的userid ) 和组
    • 使用 OpenShift Container Platform API 参考

    以下配置示例描述了如何使用以下属性为 Admin 角色配置规则:

    • 名称管理员
    • groups: ["system:authenticated", "system:authenticated:oauth", "myAdministratorsGroup"]
    • UID:12345-00aa-1234-123b-123fcdef1234

    您可以使用以下步骤之一为这个管理员角色添加规则:

    • 要为名称配置规则,请从 Key 下拉列表中选择 名称,在 Value 字段中输入 administrator,然后在 Role 下选择 Administrator
    • 要为组配置规则,请从 Key 下拉列表中选择 ,在 Value 字段中输入 myAdministratorsGroup,然后选择 Admin 下的 Role
    • 要为用户名配置规则,请从 Key 下拉列表中选择 userid,在 Value 字段中输入 12345-00aa-1234-123b-123fcdef1234,然后选择 Role 下的 Admin
重要
  • 如果您将自定义 TLS 证书用于 OpenShift Container Platform OAuth 服务器,您必须将 CA 的 root 证书添加到 Red Hat Advanced Cluster Security for Kubernetes 中作为可信 root CA。否则,Central 无法连接到 OpenShift Container Platform OAuth 服务器。
  • 在使用 roxctl CLI 安装 Red Hat Advanced Cluster Security for Kubernetes 时启用 OpenShift Container Platform OAuth 服务器集成,在 Central 中将 ROX_ENABLE_OPENSHIFT_AUTH 环境变量设置为 true

    $ oc -n stackrox set env deploy/central ROX_ENABLE_OPENSHIFT_AUTH=true
  • 对于访问规则,OpenShift Container Platform OAuth 服务器不会返回密钥 电子邮件

13.3.2. 为 OpenShift Container Platform OAuth 服务器创建额外的路由

当使用 Red Hat Advanced Cluster Security for Kubernetes 门户将 OpenShift Container Platform OAuth 服务器配置为身份提供程序时,RHACS 仅为 OAuth 服务器配置一个路由。但是,您可以通过在 Central 自定义资源中将路由指定为注解来创建其他路由。

流程

  • 如果您使用 RHACS Operator 安装 RHACS:

    1. 创建一个 CENTRAL_ADDITIONAL_ROUTES 环境变量,其中包含中央自定义资源的补丁:

      $ CENTRAL_ADDITIONAL_ROUTES='
      spec:
        central:
          exposure:
            loadBalancer:
              enabled: false
              port: 443
            nodePort:
              enabled: false
            route:
              enabled: true
          persistence:
            persistentVolumeClaim:
              claimName: stackrox-db
        customize:
          annotations:
            serviceaccounts.openshift.io/oauth-redirecturi.main: sso/providers/openshift/callback 1
            serviceaccounts.openshift.io/oauth-redirectreference.main: "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"central\"}}" 2
            serviceaccounts.openshift.io/oauth-redirecturi.second: sso/providers/openshift/callback 3
            serviceaccounts.openshift.io/oauth-redirectreference.second: "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"second-central\"}}" 4
      '
      1
      用于设置主路由的重定向 URI。
      2
      主路由的重定向 URI 引用。
      3
      用于设置第二路由的重定向。
      4
      第二个路由的重定向引用。
    2. CENTRAL_ADDITIONAL_ROUTES 补丁应用到中央自定义资源:

      $ oc patch centrals.platform.stackrox.io \
        -n <namespace> \ 1
        <custom-resource> \ 2
        --patch "$CENTRAL_ADDITIONAL_ROUTES" \
        --type=merge
      1
      <namespace > 替换为包含 Central 自定义资源的项目的名称。
      2
      <custom-resource > 替换为 Central 自定义资源的名称。
  • 或者,如果使用 Helm 安装 RHACS:

    1. values-public.yaml 文件中添加以下注解:

      customize:
        central:
          annotations:
            serviceaccounts.openshift.io/oauth-redirecturi.main: sso/providers/openshift/callback 1
            serviceaccounts.openshift.io/oauth-redirectreference.main: "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"central\"}}" 2
            serviceaccounts.openshift.io/oauth-redirecturi.second: sso/providers/openshift/callback 3
            serviceaccounts.openshift.io/oauth-redirectreference.second: "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"second-central\"}}" 4
      1
      用于设置主路由的重定向。
      2
      对主路由进行重定向引用。
      3
      用于设置第二路由的重定向。
      4
      第二个路由的重定向引用。
    2. 使用 helm upgrade 将自定义注解应用到中央自定义资源:

      $ helm upgrade -n stackrox \
        stackrox-central-services rhacs/central-services \
        -f <path_to_values_public.yaml> 1
      1
      使用 -f 选项指定 values-public.yaml 配置文件的路径。

13.4. 在 Red Hat Advanced Cluster Security for Kubernetes 中管理 RBAC

Red Hat Advanced Cluster Security for Kubernetes(RHACS)附带了基于角色的访问控制(RBAC),可用于为不同的用户配置角色并授予不同级别的 Red Hat Advanced Cluster Security for Kubernetes。

Red Hat Advanced Cluster Security for Kubernetes 3.63 包含范围的访问控制功能,可让您配置精细和特定的权限集,用于定义给定 Red Hat Advanced Cluster Security for Kubernetes 用户或一组用户如何与 Red Hat Advanced Cluster Security for Kubernetes 交互,以及他们可以执行的操作。

  • 角色是 权限集和访问范围的集合。您可以通过指定规则为用户和组分配角色。您可以在配置身份验证供应商时配置这些规则。Red Hat Advanced Cluster Security for Kubernetes 中有两种角色:

    • 红帽创建的系统角色是无法更改的。
    • 自定义角色,Red Hat Advanced Cluster Security for Kubernetes 管理员可以随时创建和更改。

      注意
      • 如果您为用户分配多个角色,就可以访问所分配角色的组合权限。
      • 如果您为用户分配了一个自定义角色,并且删除了该角色,则所有关联的用户都会转移到您配置的最少访问角色。
  • 权限集 是定义角色在给定资源上可以执行的操作的一组权限。资源是 Red Hat Advanced Cluster Security for Kubernetes 的功能,您可以为其设置(读取)和修改(写入)权限。Red Hat Advanced Cluster Security for Kubernetes 中有两种类型的权限集:

    • 系统权限集,由红帽创建且不可更改。
    • 自定义权限集,Red Hat Advanced Cluster Security for Kubernetes 管理员可以随时创建和更改。
  • 访问 范围是用户可以访问的一组 Kubernetes 和 OpenShift Container Platform 资源。例如,您可以定义一个访问范围,它只允许用户访问给定项目中 pod 的信息。Red Hat Advanced Cluster Security for Kubernetes 中存在两种类型的访问范围:

    • 系统访问范围,由红帽创建且不可更改。
    • 自定义访问范围,Red Hat Advanced Cluster Security for Kubernetes 管理员可以随时创建和更改。

13.4.1. 系统角色

Red Hat Advanced Cluster Security for Kubernetes 包括了一些默认系统角色,您可以在创建规则时应用到用户。您还可以根据需要创建自定义角色。

系统角色描述

Admin

此角色面向管理员。使用它提供对所有资源的读写访问权限。

分析师

此角色适用于无法进行任何更改但可以查看所有内容的用户。使用它为所有资源提供只读访问权限。

持续集成

此角色针对 CI(持续集成)系统,包括实施部署策略所需的权限。

此角色没有对任何资源的读写访问权限。您可以将此角色设置为所有用户的最低访问角色。

sensor Creator

Red Hat Advanced Cluster Security for Kubernetes 使用此角色来自动执行新的集群设置。它包含在安全集群中创建 Sensors 的权限。

Scope Manager

此角色包含创建和修改访问范围所需的最低权限。

13.4.1.1. 查看系统角色的权限集和访问范围

您可以查看默认系统角色的权限集和访问范围。

流程

  1. 在 RHACS 门户网站中,导航至 Platform ConfigurationAccess control
  2. 选择 Roles
  3. 点击其中一个角色来查看其详细信息。详情页面中显示了所选角色的权限集和访问范围。
注意

您不能修改默认系统角色的权限集和访问范围。

13.4.1.2. 创建自定义角色

您可以从 Access Control 视图创建新角色。

先决条件

  • 您必须具有 Admin 角色,或者具有为 AuthProviderRole 资源设置的具有读写权限的角色,才能创建、修改和删除自定义角色。
  • 在创建角色前,您必须创建权限集和自定义角色的访问范围。

流程

  1. 在 RHACS 门户网站中,导航至 Platform ConfigurationAccess control
  2. 选择 Roles 选项卡。
  3. 单击 Add role
  4. 为新角色输入 NameDescription
  5. 为角色选择 Permission set
  6. 选择角色的 Access 范围
  7. 点击 Save

13.4.1.3. 为用户或组分配角色

您可以使用 RHACS 门户将角色分配给用户或组群。

流程

  1. 在 RHACS 门户网站中,导航至 Platform ConfigurationAccess Control
  2. 从身份验证提供程序列表中,选择身份验证提供程序。
  3. 单击 Edit minimum role and rules
  4. Rules 部分下,单击 Add new rule
  5. 对于 Key,请从 userid, name, emailgroup 中选择一个值。
  6. 对于 Value,根据您选择的键,输入用户 ID、名称、电子邮件地址或组的值。
  7. Role 下拉菜单并选择您要分配的角色。
  8. 点击 Save

您可以为每个用户或组重复这些指令并分配不同的角色。

13.4.2. 系统权限集

Red Hat Advanced Cluster Security for Kubernetes 包括了一些可应用于角色的默认系统权限集。您还可以根据需要创建自定义权限集。

权限集描述

Admin

提供所有资源的读写访问权限。

分析师

为所有资源提供只读访问。

持续集成

此权限集面向 CI(持续集成)系统,包括实施部署策略所需的权限。

不允许对任何资源进行读写权限。

sensor Creator

提供在安全集群中创建 Sensors 所需的资源权限。

13.4.2.1. 查看系统权限集的权限

您可以查看 RHACS 门户中设定的系统权限的权限。

流程

  1. 在 RHACS 门户网站中,导航至 Platform ConfigurationAccess control
  2. 选择 Permission set
  3. 点击其中一个权限集来查看其详情。详情页面中显示了资源列表及其所选权限集的权限。
注意

您不能修改系统权限集的权限。

13.4.2.2. 创建自定义权限集

您可以从 Access Control 视图创建新权限集。

先决条件

  • 您必须具有 Admin 角色,或者具有为 AuthProviderRole 资源设置了权限的 Admin 角色,才能创建、修改和删除权限集。

流程

  1. 在 RHACS 门户网站中,导航至 Platform ConfigurationAccess control
  2. 选择 Permission set 选项卡。
  3. Add permissions set
  4. 输入新权限集的 NameDescription
  5. 对于每个资源,在 Access level 列下,从 No access,Read access,Read and Write access 中选择其中一个权限。

    警告
    • 如果要为用户配置权限集,您必须为以下资源授予只读权限:

      • 警报
      • 集群
      • Deployment
      • 镜像
      • NetworkPolicy
      • NetworkGraph
      • 策略
      • Secret
    • 当您创建新权限集时,这些权限会被预先选择。
    • 如果您没有授予这些权限,用户会在 RHACS 门户网站中查看页面时遇到问题。
  6. 点击 Save

13.4.3. 系统访问范围

Red Hat Advanced Cluster Security for Kubernetes 包括了一些默认系统访问范围,它们可应用于角色。您还可以根据需要创建自定义访问范围。

acces 范围描述

unrestricted

提供对 Red Hat Advanced Cluster Security for Kubernetes 监控器的所有集群和命名空间的访问。

拒绝所有

不提供任何 Kubernetes 和 OpenShift Container Platform 资源的访问权限。

13.4.3.1. 查看系统访问范围的详情

您可以查看允许且不允许 RHACS 门户中的访问范围的 Kubernetes 和 OpenShift Container Platform 资源。

流程

  1. 在 RHACS 门户网站中,导航至 Platform ConfigurationAccess control
  2. 选择 Access Scopes
  3. 点击其中一个访问范围来查看其详细信息。详情页面显示集群和命名空间列表,以及允许哪些命名空间用于所选访问范围。
注意

您不能修改系统访问范围允许的资源。

13.4.3.2. 创建自定义访问范围

您可以从 Access Control 视图创建新的访问权限范围。

先决条件

  • 您必须具有 Admin 角色,或者具有为 AuthProviderRole 资源设置了权限的 Admin 角色,才能创建、修改和删除权限集。

流程

  1. 在 RHACS 门户网站中,导航至 Platform ConfigurationAccess control
  2. 选择 Access scope 选项卡。
  3. 单击 Add access scope
  4. 为新访问范围输入 NameDescription
  5. Allowed resources 部分:

    • 使用 Cluster filterNamespace 过滤器框,过滤列表中可见的集群和命名空间列表。
    • 展开 & lt;Cluster_name > 以查看该集群中的命名空间列表。
    • 打开集群的 Manual 选择 栏下切换,允许访问该集群中的所有命名空间。

      注意

      对特定集群的访问可让用户在集群范围内访问以下资源:

      • OpenShift Container Platform 或 Kubernetes 集群元数据和安全信息
      • 授权集群的合规性信息
      • 节点元数据和安全信息
      • 访问该集群中的所有命名空间及其关联的安全信息
    • 在命名空间的 Manual 选择 栏下打开切换,以允许访问该命名空间。

      注意

      访问特定命名空间后,可以访问命名空间范围内的以下信息:

      • 部署的警报和违反情况
      • 镜像的漏洞数据
      • 部署元数据和安全信息
      • 角色和用户信息
      • 部署的网络图形、策略和基准信息
      • 处理信息和流程基准配置
      • 每个部署的优先级风险信息
  6. 如果要允许基于标签访问集群和命名空间,请在 Label 选择规则 部分下点 Add label selector。然后单击 Add rules,为标签选择器指定 KeyValue 对。您可以为集群和命名空间指定标签。
  7. 点击 Save

13.4.4. 资源定义

Red Hat Advanced Cluster Security for Kubernetes 包含多个资源。下表列出了资源,并解释了带有 readwrite 权限的用户可以执行的操作。

资源读取权限写入权限

APIToken

列出现有的 API 令牌。

创建新的 API 令牌或撤销现有的令牌。

警报

查看现有策略违反情况。

解决或编辑策略违反情况。

AuthPlugin

查看现有的验证插件

修改这些配置。(仅限本地管理员。)

AuthProvider

查看单点登录的现有配置。

修改这些配置。

BackupPlugins

查看现有与自动备份系统(如 AWS S3)的集成。

修改这些配置。

CVE

只限内部使用

只限内部使用

集群

查看现有的安全集群。

添加新的安全集群,然后修改或删除现有集群。

合规性

查看合规标准和结果。

N/A

ComplianceRunSchedule

查看调度的合规性运行。

创建、修改或删除调度的合规性运行。

ComplianceRuns

查看最近的合规性运行及其完成状态。

触发合规性运行。

config

查看数据保留、安全通知和其他相关配置的选项。

修改这些配置。

DebugLogs

查看 Red Hat Advanced Cluster Security for Kubernetes 组件中的当前日志详细程度。

修改日志级别。

Deployment

查看安全集群中的部署(工作负载)。

N/A

检测

针对镜像或部署 YAML 检查构建时策略。

N/A

查看将用户元数据与 Red Hat Advanced Cluster Security for Kubernetes 角色匹配的现有 RBAC 规则。

创建、修改或删除配置的 RBAC 规则。

镜像

查看镜像、其组件及其漏洞。

N/A

ImageComponent

只限内部使用

只限内部使用

ImageIntegration

列出现有镜像 registry 集成。

创建、编辑或删除镜像 registry 集成。

ImbuedLogs

只限内部使用

只限内部使用

指示符

查看部署中的进程活动。

N/A

K8sRole

查看安全集群中 Kubernetes 基于角色的访问控制的角色。

N/A

K8sRoleBinding

查看安全集群中 Kubernetes 基于角色的访问控制的角色绑定。

N/A

K8sSubject

查看安全集群中 Kubernetes 基于角色的访问控制的用户和组。

N/A

许可证

查看 Red Hat Advanced Cluster Security for Kubernetes 现有许可证的状态。

上传新的许可证密钥。

命名空间

查看安全集群中的现有 Kubernetes 命名空间。

N/A

NetworkGraph

查看安全集群中的活跃和允许的网络连接。

N/A

NetworkPolicy

查看安全集群中的现有网络策略并模拟更改。

应用安全集群中的网络策略更改。

节点

查看安全集群中的现有 Kubernetes 节点。

N/A

notifier

查看通知系统(如电子邮件、JIRA 或 Webhook)的现有集成。

创建、修改或删除这些集成。

策略

查看现有系统策略。

创建、修改或删除系统策略。

ProbeUpload

上传的探测文件读取清单。

将支持软件包上传到 Central。

ProcessWhitelist

查看进程基线.

在基线中添加或删除进程。

风险

查看风险结果。

N/A

角色

查看现有 Red Hat Advanced Cluster Security for Kubernetes RBAC 角色及其权限。

添加、修改或删除角色及其权限。

ScannerBundle

下载扫描程序捆绑包。

N/A

ScannerDefinitions

列出现有镜像扫描程序集成。

创建、修改或删除镜像扫描程序集成。

Secret

查看安全集群中的 secret 元数据。

N/A

SensorUpgradeConfig

检查自动升级的状态。

为安全集群禁用或启用自动升级。

ServiceAccount

列出安全集群中的 Kubernetes 服务帐户。

N/A

ServiceIdentity

查看 Red Hat Advanced Cluster Security for Kubernetes 服务到服务身份验证的元数据。

撤销或重新发出服务到服务身份验证凭据。

User

查看已访问 Red Hat Advanced Cluster Security for Kubernetes 实例的用户,包括身份验证供应商为它们提供的元数据。

N/A

13.5. 启用 PKI 身份验证

如果您使用企业证书颁发机构(CA)进行身份验证,您可以配置 Red Hat Advanced Cluster Security for Kubernetes(RHACS)来使用其个人证书来验证用户。

配置 PKI 身份验证后,用户和 API 客户端可以使用其个人证书登录。没有证书的用户仍然可以使用其他验证选项,包括 API 令牌、本地管理员密码或其他身份验证供应商。PKI 身份验证在与 Web UI、gRPC 和 REST API 相同的端口号上可用。

当您配置 PKI 身份验证时,Red Hat Advanced Cluster Security for Kubernetes 将相同的端口用于 PKI、Web UI、gRPC、其他单点登录(SSO)供应商和 REST API。您也可以使用 YAML 配置文件配置和公开端点,为 PKI 身份验证配置单独的端口。

13.5.1. 使用 RHACS 门户配置 PKI 身份验证

您可以使用 RHACS 门户配置 PKI 身份验证。

流程

  1. 在 RHACS 门户网站中,导航至 Platform ConfigurationAccess Control
  2. 单击 Add an Auth Provider,然后选择 User Certificates
  3. Name 框中,为此身份验证供应商指定名称。
  4. 将 PEM 格式的 root CA 证书粘贴到文本框中。
  5. 可选:更改 最小访问角色,并根据属性添加角色映射。
  6. 点击 Save

13.5.2. 使用 roxctl CLI 配置 PKI 身份验证

您可以使用 roxctl CLI 配置 PKI 身份验证。

流程

  • 运行以下命令:

    $ roxctl -e <hostname>:<port_number> central userpki create -c <ca_certificate_file> -r <default_role_name> <provider_name>

13.5.3. 更新身份验证密钥和证书

您可以使用 RHACS 门户更新身份验证密钥和证书。

流程

  1. 创建新的身份验证供应商。
  2. 将角色映射从旧身份验证供应商复制到新的身份验证提供程序。
  3. 使用旧的 root CA 密钥重命名或删除旧的身份验证提供程序。

13.5.4. 使用客户端证书登录

配置 PKI 身份验证后,用户在 RHACS 门户登录页面上看到证书提示。提示仅显示在用户的系统中安装由配置的根 CA 信任的客户端证书。

使用本节中描述的步骤使用客户端证书登录。

流程

  1. 打开 RHACS 门户。
  2. 在浏览器提示符中选择证书。
  3. 在登录页面中,选择身份验证提供程序名称选项,以使用证书登录。如果您不想使用证书登录,也可以使用管理员密码或其他登录方法登录。
注意

使用客户端证书登录到 RHACS 门户后,除非您重新启动浏览器,否则无法使用其他证书登录。

第 14 章 使用系统健康仪表板

Red Hat Advanced Cluster Security for Kubernetes 系统健康状态仪表板提供了一个单一界面来查看与 Red Hat Advanced Cluster Security for Kubernetes 组件相关的信息。

注意

系统健康仪表板仅适用于 Kubernetes 3.0.53 及更新版本的 Red Hat Advanced Cluster Security。

14.1. 系统健康仪表板详情

访问健康仪表板:

  • 在 RHACS 门户网站中,进入 Platform ConfigurationSystem Health

健康仪表板在以下组中组织信息:

  • Cluster Health - 显示 Red Hat Advanced Cluster Security for Kubernetes 集群的整体状态。
  • 漏洞定义 - 显示漏洞定义的最后更新时间。
  • 镜像集成 - 显示您集成的所有 registry 的健康状况。
  • notifier 集成 - 显示您集成的任意通知程序(Slack、电子邮件、JIRA 或其他类似集成)的健康状况。
  • 备份集成 - 显示您集成的任何备份供应商的健康状况。

仪表板列出了不同组件的以下状态:

  • healthy - 组件可以正常工作。
  • degraded - 组件部分不健康。这个状态表示集群可以正常工作,但一些组件不健康,需要注意。
  • 不健康 - 此组件不健康,需要立即关注。
  • 未初始化 - 组件尚未报告回中部,使其健康评估。未初始化的状态有时可能需要注意,但经常在几分钟后报告健康状态,或者在使用集成时返回健康状态。

集群健康部分

Cluster Overview 显示有关 Red Hat Advanced Cluster Security for Kubernetes 集群健康状况的信息。它报告以下健康信息:

  • Collector Status - 它显示 Red Hat Advanced Cluster Security for Kubernetes 使用的 Collector pod 是否健康。
  • sensor Status - 它显示 Red Hat Advanced Cluster Security for Kubernetes 使用的 Sensor pod 是否健康。
  • 传感器升级 - 它表明,与 Central 相比,传感器是否运行了正确的版本。
  • 凭证过期 - 显示 Red Hat Advanced Cluster Security for Kubernetes 的凭证是否接近过期。
注意

未初始化 状态的集群不会在 Red Hat Advanced Cluster Security for Kubernetes 保护的集群数量中报告,直到它们被检查为止。

安全漏洞定义部分

漏洞定义 部分显示最近一次漏洞定义已更新,如果定义是最新的。

集成部分

存在 3 个集成部分 镜像集成通知器集成备份集成。与 Cluster Health 部分类似,这些部分列出不健康的集成数量(如果存在)。否则,所有集成报告都健康。

注意

如果满足以下条件,Integrations 部分会将健康集成列为 0

  • 您已将 Red Hat Advanced Cluster Security for Kubernetes 与第三方工具集成。
  • 您已与一些工具集成,但禁用了集成,或者尚未设置任何策略违反情况。

14.2. 使用 RHACS 门户生成诊断捆绑包

您可以使用 RHACS 门户上的系统健康仪表板生成诊断捆绑包。

先决条件

  • 要生成诊断捆绑包,需要对 DebugLogs 资源 具有读 权限。

流程

  1. 在 RHACS 门户,选择 Platform ConfigurationSystem Health
  2. System Health view 标头上,单击 Generate Diagnostic Bundle
  3. 对于 Filter by cluster 下拉菜单,选择您要为其生成诊断数据的集群。
  4. 对于 Filter by start time,请指定您要包含诊断数据的日期和时间(以 UTC 格式)。
  5. 单击 Download Diagnostic Bundle

14.2.1. 其他资源

法律通告

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.