架构


Red Hat Advanced Cluster Security for Kubernetes 4.8

系统架构

Red Hat OpenShift Documentation Team

摘要

提供有关 Red Hat Advanced Cluster Security for Kubernetes 架构的概述和描述。

发现 Red Hat Advanced Cluster Security for Kubernetes 架构和概念。

Red Hat Advanced Cluster Security for Kubernetes (RHACS)使用分布式架构,它支持大规模部署,并进行了优化,以最大程度降低对底层 OpenShift Container Platform 或 Kubernetes 节点的影响。

RHACS 架构

下图显示了产品架构,包括扫描程序组件。

您可以将 RHACS 作为 OpenShift Container Platform 或 Kubernetes 集群中的一组容器安装。RHACS 包括以下服务:

  • 您在一个集群中安装的核心服务
  • 您在您要由 RHACS 保护的每个集群中安装的安全集群服务

除了这些主要服务外,RHACS 也与其他外部组件交互,以增强集群的安全性。

当使用 RHACS Operator 在 OpenShift Container Platform 上安装 RHACS 时,或在 OpenShift Container Platform 上安装带有 secure-cluster-services Helm chart 的 Helm,RHACS 会在每个安全集群中安装 StackRox Scanner 和 Scanner V4 组件。这可让扫描集成 OpenShift 镜像 registry 中的镜像,或在启用委派扫描时与 RHACS 集成的任何 registry 中扫描。您可以选择不会在安全集群中安装 StackRox Scanner 或 Scanner V4,并只安装到安装了 Central 的集群上。如需更多信息,请参阅"启用扫描器 V4"。

1.2. 中央服务

您可以在单个集群中安装 Central 服务。这些服务包括以下组件:

  • Central : Central 是 RHACS 应用程序管理界面和服务。它处理 API 交互和用户界面 (RHACS Portal) 访问。您可以使用同一中实例来保护多个 OpenShift Container Platform 或 Kubernetes 集群。
  • Central DB : Central DB 是 RHACS 的数据库,并处理所有数据持久性。它目前基于 PostgreSQL 13。
  • 扫描程序 V4 :从版本 4.4 开始,RHACS 包含 Scanner V4 漏洞扫描程序,用于扫描容器镜像。扫描程序 V4 基于 Claircore 构建,它还为 Clair 扫描程序提供支持。扫描程序 V4 支持语言和特定于操作系统的镜像组件、节点和平台扫描。扫描程序 V4 包含索引器、匹配器和 DB 组件。

    • 扫描程序 V4 Indexer : Scanner V4 Indexer 执行镜像索引,以前称为镜像分析。根据镜像和 registry 凭证,索引器从 registry 拉取镜像,找到基础操作系统(如果存在),并查找软件包。然后,索引器会存储和输出一个索引报告,其中包含给定镜像的发现。
    • 扫描程序 V4 Matcher :Scanner V4 Matcher 执行漏洞匹配。如果在 Central 索引中安装的 Indexer,则 Matcher 从索引器获取索引报告,并将报告与 Scanner V4 数据库中存储的漏洞匹配。如果安装在安全集群中安装的 Indexer 执行索引,则 Matcher 将使用从该索引程序发送的索引报告,然后与漏洞匹配。Matcher 还获取漏洞数据,并使用最新的漏洞数据更新 Scanner V4 数据库。Scanner V4 Matcher 输出漏洞报告,其中包含镜像的最终结果。
    • 扫描程序 V4 DB :此数据库存储 Scanner V4 的信息,包括所有漏洞数据和索引报告。在安装 Central 的集群上,Scanner V4 DB 需要持久性卷声明(PVC)。
  • stackrox Scanner: StackRox Scanner 源自 Clair v2 开源扫描程序的分叉,是 Scanner V4 之前 RHACS 的默认扫描程序。
  • scanner-DB :此数据库包含 StackRox Scanner 的数据。

RHACS 扫描程序分析每个镜像层,以确定基础操作系统,并确定操作系统软件包管理器安装的编程语言软件包和软件包。它与来自各种漏洞源的已知漏洞匹配。另外,它会识别节点的操作系统和平台中的漏洞。

1.2.1. 漏洞数据源

漏洞的来源取决于系统中使用的扫描程序。RHACS 包含两个扫描程序: StackRox Scanner 和 Scanner V4。StackRox Scanner 已被弃用。扫描程序 V4 是默认镜像扫描程序。

1.2.1.1. 扫描程序 V4 源

扫描程序 V4 使用以下漏洞源:

Red Hat VEX

此源用于发行版本 4.6 及更新的版本。此源以 漏洞利用性 eXchange (VEX)格式提供漏洞数据。RHACS 利用 VEX 优势来显著减少初始加载漏洞数据所需的时间,以及存储漏洞数据所需的空间。VEX 还比 OVAL 提供更高的准确性。

当使用 OVAL 版本(如 RHACS 版本 4.5)和使用 VEX 版本(如版本 4.6)的 RHACS 版本扫描时,RHACS 可能会列出不同的漏洞数。例如,当这些漏洞包含在之前使用 OVAL 数据的版本中,RHACS 不再显示状态为 "under investigation" 的漏洞。

对于来自红帽生态系统目录的容器上的容器,RHACS 提供了一个选项,用于只显示红帽 VEX 数据的漏洞。红帽镜像的 VEX 数据是最准确的,因为红帽安全团队对这些镜像中的漏洞进行了审查,并报告了 VEX 的结果。其他安全漏洞源(如 OSV)可能会报告红帽已确定的漏洞不适用于镜像。这可能会在漏洞结果中造成假的正状态。启用该设置,使其只为红帽镜像使用 VEX 数据,可最大程度降低这些误报。

默认情况下,禁用将 VEX 数据用于红帽容器的选项。要启用这个选项,在 Scanner V4 Matcher 中,将环境变量 ROX_SCANNER_V4_RED_HAT_RED_HAT_VULNS_ONLY 设置为 true。请注意,在个别情况下,使用这个选项可能会导致扫描结果中没有出现有效的漏洞,或假的负状态。例如,红帽不会跟踪已结束生命周期的产品的漏洞。另请注意,红帽的 VEX 数据对许多 中间件产品缺少准确的安全数据

有关红帽安全数据的更多信息,包括关于使用 OVAL、通用安全公告框架 2.0 (CSAF)和 VEX 的信息,请参阅 红帽安全数据的未来

OSV

这用于与语言相关的漏洞,如 Go、Java、Java、Java、Python 和 Ruby。此源可能会提供 CVE ID 以外的漏洞 ID,如 GitHub 安全公告(GHSA) ID。

注意

RHACS 使用 Apache License 2.0 下的 OSV 数据库,位于 OSV.dev 中。

NVD

这用于各种目的,如在供应商不提供信息时填补信息差距。例如,Alpine 不提供描述、CVSS 分数、严重性或发布日期。

注意

此产品使用 NVD API,但不由 NVD 结束或认证。

其他漏洞源
扫描程序 V4 Indexer 源

扫描程序 V4 索引器使用以下文件来索引红帽容器:

1.2.1.2. stackrox Scanner 源

stackrox Scanner 使用以下漏洞源:

1.3. 安全的集群服务

您可以使用 Red Hat Advanced Cluster Security 在您要保护的每个集群中安装安全集群服务。安全的集群服务包括以下组件:

  • Sensor :传感器是负责分析和监控集群的服务。Sensor 侦听 OpenShift Container Platform 或 Kubernetes API 和 Collector 事件来报告集群的当前状态。Sensor 还根据 RHACS 策略触发部署时间和运行时违反情况。另外,Sensor 负责所有集群交互,如应用网络策略、启动 RHACS 策略的重新处理,并与 Admission 控制器交互。
  • 准入控制器 : Admission 控制器可防止用户创建在 RHACS 中违反安全策略的工作负载。
  • Collector :收集器分析和监控集群节点上的容器活动。它收集容器运行时和网络活动信息,并将收集的数据发送到 Sensor。
  • 扫描程序 V4: Scanner V4 检索并扫描镜像并进行索引。它是 RHACS 的默认扫描程序,其中包含以下组件:

    • 扫描程序 V4 Indexer : Scanner V4 Indexer 执行镜像索引,以前称为镜像分析。根据镜像和 registry 凭证,索引程序会从 registry 中拉取镜像。Indexer 找到基本操作系统(如果存在),并查找软件包。它存储和输出一个索引报告,其中包含给定镜像的发现。
    • 扫描程序 V4 DB :此数据库存储 Scanner V4 的信息,包括索引报告。为获得最佳性能,请为 Scanner V4 DB 配置持久性卷声明(PVC)。
  • stackrox Scanner :在 Kubernetes 中,安全集群服务程序包括 Scanner-slim 作为可选组件。但是,在 OpenShift Container Platform 中,RHACS 在每个安全集群中安装 Scanner-slim 版本,以扫描 OpenShift Container Platform 集成 registry 和其他 registry 中的镜像。
  • scanner-DB :此数据库包含 StackRox Scanner 的数据。

    注意

    当在与 Central 服务相同的集群中安装并安装到同一命名空间中时,安全集群服务不会部署 Scanner V4 组件。相反,假设 Central 服务已经包含 Scanner V4 的部署。

1.4. 外部组件

Red Hat Advanced Cluster Security for Kubernetes (RHACS)与以下外部组件交互:

  • 第三方系统 :您可以将 RHACS 与其他系统(如 CI/CD 管道、事件管理(SIEM)系统、日志记录、电子邮件等)集成。
  • roxctl: roxctl 是一个命令行界面 (CLI),用于在 RHACS 上运行命令。
  • 镜像 registry :您可以将 RHACS 与各种镜像 registry 集成,并使用 RHACS 扫描和查看镜像。RHACS 使用安全集群中发现的镜像 pull secret 为活跃镜像自动配置 registry 集成。但是,要扫描不活跃的镜像,您必须手动配置 registry 集成。
  • definitions.stackrox.io:RHACS 聚合了来自 definitions.stackrox.io 端点中各种漏洞源的数据,并将这些信息传递给 Central。该源包括常规、国家漏洞数据库 (NVD) 数据和特定于分发的数据,如 Alpine、Debian 和 Ubuntu。
  • collector-modules.stackrox.io: Central 到达 collector-modules.stackrox.io,以获取受支持的内核模块并将这些模块传递给 Collector。

1.5. 服务间的交互

本节介绍 RHACS 服务如何相互交互。

Expand
表 1.1. 使用扫描器 V4 的 RHACS
组件方向组件描述

Central

scanner V4 Indexer

Central 请求索引器下载和索引(分析)给定的镜像。这个过程会产生一个索引报告。扫描程序 V4 索引器从 Central 请求映射文件,以帮助索引过程。

Central

扫描程序 V4 匹配器

Scanner V4 Matcher 与已知漏洞匹配的中央请求。此过程会导致最终的扫描结果:漏洞报告。扫描程序 V4 匹配程序从 Central 请求最新的漏洞。

Sensor

scanner V4 Indexer

在使用 Operator 部署的 Red Hat OpenShift 环境中,或使用委托扫描时,Red Hat OpenShift 环境中会默认启用 SecuredCluster 扫描。启用 SecuredCluster 扫描时,Sensor 将 Scanner V4 请求为索引镜像。扫描程序 V4 索引程序从 Sensor 请求映射文件,以帮助索引过程,除非 Central 存在于同一命名空间中。在这种情况下,会联系 Central。

scanner V4 Indexer

镜像 registry

Indexer 从 registry 中拉取镜像元数据,以确定镜像的层,并下载每个之前未索引的层。

扫描程序 V4 匹配器

scanner V4 Indexer

扫描程序 V4 Matcher 从索引器请求镜像索引(索引报告)的结果。然后,它使用报告来确定相关漏洞。只有在 Central 集群中索引镜像时,才会进行此交互。当 Scanner V4 与安全集群中索引的镜像匹配的漏洞时,不会发生此交互。

scanner V4 Indexer

Scanner V4 DB

Indexer 存储与索引结果相关的数据,以确保镜像层仅下载并索引一次。这可以防止不必要的网络流量和其他资源利用率。

扫描程序 V4 匹配器

Scanner V4 DB

扫描程序 V4 匹配器将其所有漏洞数据存储在数据库中,并定期更新这些数据。扫描程序 V4 索引器也会查询这些数据,作为与漏洞匹配过程的一部分。

Sensor

Central

Central 和 Sensor 之间有双向通信。Sensor 定期轮询 Central 以下载传感器捆绑包配置的更新。它还会为安全集群观察到的活动发送事件,并观察到的策略违反情况。Central. 与 Sensor 通信,以强制针对启用的策略对所有部署进行重新处理。

Collector

Sensor

收集器与 Sensor 通信,并将所有事件发送到集群的对应 Sensor。在支持的 OpenShift Container Platform 集群中,Collector 会分析节点上安装的软件包并将其发送到 Sensor,以便扫描程序稍后可以扫描它们以了解漏洞。收集器也请求 Sensor 中缺少的驱动程序。Sensor 从 Collector 请求合规性扫描结果。另外,Sensor 接收来自 Central 的外部无类别域间路由信息,并将其推送到 Collector。

准入控制器

Sensor

sensors 将安全策略列表发送到 Admission 控制器。准入控制器将安全策略违反警报发送到 Sensor。准入控制器也可以根据需要从 Sensor 请求镜像扫描。

准入控制器

Central

它并不常见;但是,如果知道 Central 端点且 Sensor 不可用,Admission 控制器可以直接与 Central 进行通信。

Expand
表 1.2. 使用 StackRox Scanner 的 RHACS
组件方向相互交互描述

Central

扫描程序

Central 和 Scanner 之间有双向通信。中央从扫描器请求镜像扫描,Scanner 从 Central 请求对其 CVE 数据库的更新。

Central

definitions.stackrox.io

Central 连接到 definitions.stackrox.io 端点,以接收聚合的漏洞信息。

Central

collector-modules.stackrox.io

Central 从 collector-modules.stackrox.io 下载支持的内核模块。

Central

镜像 registry

中央查询镜像 registry 以获取镜像元数据。例如,要在 RHACS 门户中显示 Dockerfile 指令。

扫描程序

镜像 registry

扫描程序从镜像 registry 拉取镜像以识别漏洞。

Sensor

Central

Central 和 Sensor 之间有双向通信。Sensor 定期轮询 Central 以下载传感器捆绑包配置的更新。它还会为安全集群观察到的活动发送事件,并观察到的策略违反情况。Central. 与 Sensor 通信,以强制针对启用的策略对所有部署进行重新处理。

Sensor

扫描程序

Sensor 可以与安全集群中安装的轻量级扫描程序通信。当 Central 可能无法访问它们时,这个连接允许 Sensor 直接从安全集群访问 registry。扫描程序从 Sensor 请求更新的数据,Sensor 将这些请求转发到 Central,Central 从 definitions.stackrox.io 下载请求的数据。

Collector

Sensor

收集器与 Sensor 通信,并将所有事件发送到集群的对应 Sensor。在支持的 OpenShift Container Platform 集群中,Collector 会分析节点上安装的软件包并将其发送到 Sensor,以便扫描程序稍后可以扫描它们以了解漏洞。收集器也请求 Sensor 中缺少的驱动程序。Sensor 从 Collector 请求合规性扫描结果。另外,Sensor 接收来自 Central 的外部无类别域间路由信息,并将其推送到 Collector。

准入控制器

Sensor

sensors 将安全策略列表发送到 Admission 控制器。准入控制器将安全策略违反警报发送到 Sensor。准入控制器也可以根据需要从 Sensor 请求镜像扫描。

准入控制器

Central

它并不常见;但是,如果知道 Central 端点且 Sensor 不可用,Admission 控制器可以直接与 Central 进行通信。

1.6. RHACS 连接协议和默认端口

RHACS 的组件使用各种默认端口和连接协议。根据您的系统和防火墙配置,您可能需要配置防火墙以允许特定端口上的流量。

下表提供了 RHACS 和 RHACS 和外部组件之间一些连接的默认端口和协议。这可用于配置防火墙以允许入站和出站集群流量。

然而,在某些情况下,您可能需要更详细的信息。例如,如果您的防火墙在集群路由器中集成,您可能需要为在一个集群中发生的连接指定端口,但可能位于不同的 IP 网络中。在这种情况下,您可以使用 OpenShift Container Platform 和 Kubernetes 集群中的 RHACS 网络策略 YAML 文件来决定您可能需要配置的连接和端口。

Expand
表 1.3. 组件之间的 RHACS 连接
组件或外部实体连接类型port其他信息

Central 和 Scanner V4 Indexer

gRPC

8443

 

安全集群中的 Central 和 Sensor

  • TCP/HTTPS
  • gRPC

443

Sensor 和 Central 主要通过双向 gRPC 流通信,由 Sensor 启动到 Central 的端口 443。

Central 和用户(CLI)

  • gRPC
  • HTTPS (with --force-http1 选项)

443

有关 --force-http1 选项的更多信息,请参阅 roxctl 命令选项。

Central 和漏洞源

HTTPS

443

默认连接到 definitions.stackrox.io

收集器到 Sensor

gRPC

443

这是 Collector 向 Sensor 端口 443 启动的双向 gRPC 连接。

收集器(合规性)到 Sensor

gRPC

8444

如果在 OpenShift Container Platform 版本 4 上启用了节点扫描,则这个连接由 Sensor 启动,以在 Collector pod 中运行合规性。

Scanner-DB 的扫描程序

TCP

5432

 

扫描程序 V4 Indexer to Central

HTTPS

443

 

扫描程序 V4 Indexer 和 Matcher 到 Scanner V4 DB

TCP

5432

 

Sensor 和 Admission Controller

gRPC

443

这是一个双向 gRPC 流,由 Admission Controller 启动到 Sensor 的端口 443。这会在委托扫描场景或 OpenShift Container Platform 安全集群中发生。

法律通告

Copyright © 2025 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.
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat