安装
安装 Red Hat Advanced Cluster Security for Kubernetes
摘要
第 1 章 高级别 RHACS 安装概述 复制链接链接已复制到粘贴板!
Red Hat Advanced Cluster Security for Kubernetes (RHACS)为您的自助管理的 Red Hat OpenShift Kubernetes 系统或平台(如 OpenShift Container Platform、Amazon Elastic Kubernetes Service (Amazon EKS)、Google Kubernetes Engine (Google GKE)和 Microsoft Azure Kubernetes Service (Microsoft AKS))提供安全服务。
有关支持的平台和架构的详情,请查看 Red Hat Advanced Cluster Security for Kubernetes 支持列表。有关 RHACS 的生命周期支持信息,请参阅 Red Hat Advanced Cluster Security for Kubernetes 支持政策。
1.1. 常规安装指南 复制链接链接已复制到粘贴板!
要确定最佳安装体验,请遵循以下准则:
- 了解安装平台和此模块中描述的方法。
- 了解 Red Hat Advanced Cluster Security for Kubernetes 架构。
- 检查默认资源要求。
1.2. 不同平台的安装方法 复制链接链接已复制到粘贴板!
您可以在不同的平台上执行不同类型的安装。
不是所有安装方法都支持所有平台。如需更多信息,请参阅 Red Hat Advanced Cluster Security for Kubernetes Support Matrix。
| 平台类型 | 平台 | 推荐的安装方法 | 安装步骤 |
|---|---|---|---|
| 受管服务平台 | Red Hat OpenShift Dedicated (OSD) |
Operator (推荐)、Helm chart 或 | |
| Azure Red Hat OpenShift (ARO) | |||
| Red Hat OpenShift Service on AWS (ROSA) | |||
| Red Hat OpenShift on IBM Cloud | |||
| Amazon Elastic Kubernetes Service (Amazon EKS) |
Helm chart (推荐)或 | ||
| Google Kubernetes Engine (Google GKE) | |||
| Microsoft Azure Kubernetes Service (Microsoft AKS) | |||
| 自我管理的平台 | Red Hat OpenShift Container Platform (OCP) |
Operator (推荐)、Helm chart 或 | |
| Red Hat OpenShift Kubernetes Engine (OKE) |
-
除非有以下这个安装方法的具体要求,否则不要使用
roxctl安装方法。
1.3. 不同架构的安装方法 复制链接链接已复制到粘贴板!
Red Hat Advanced Cluster Security for Kubernetes (RHACS)支持以下架构。有关支持的平台和架构的详情,请查看 Red Hat Advanced Cluster Security for Kubernetes 支持列表。另外,下表提供了有关每个架构可用的安装方法的信息。
| 支持的构架 | 支持的安装方法 |
|---|---|
| AMD64 |
Operator (首选)、Helm chart 或 |
| ppc64le (IBM Power) | Operator |
| s390x (IBM Z 和 IBM® LinuxONE) | |
|
AArch64 ( |
Operator (首选)、Helm chart 或 |
1.4. OpenShift Container Platform 上 RHACS 的安装步骤 复制链接链接已复制到粘贴板!
1.4.1. 使用 RHACS Operator 在 Red Hat OpenShift 上安装 RHACS 复制链接链接已复制到粘贴板!
-
在 Red Hat OpenShift 集群中,将 RHACS Operator 安装到
rhacs-operator项目或命名空间中。 -
在包含 Central 的 Red Hat OpenShift 集群上,称为中央集群,使用 RHACS Operator 将 Central 服务安装到
stackrox项目中。一个中央集群可以保护多个集群。 - 从中央集群登录到 RHACS web 控制台,然后创建一个 init 捆绑包或集群注册 secret (CRS)并下载它。然后,init 捆绑包会在您要保护的集群中安装,称为安全集群。
对于安全集群:
-
将 RHACS Operator 安装到
rhacs-operator命名空间中。 在安全集群中,通过执行以下步骤应用您在 RHACS 中创建的 init 捆绑包或 CRS:
-
使用 OpenShift Container Platform Web 控制台导入您创建的 init 捆绑包或 CRS 的 YAML 文件。确保您位于
stackrox命名空间中。 使用 OpenShift CLI 执行以下操作之一:
-
如果您创建了 init 捆绑包,在终端窗口中运行
oc create -f <init_bundle.yaml> -n <stackrox> 命令,指定 init 捆绑包下载的 YAML 文件的路径。 -
如果您创建了 CRS,在终端窗口中运行
oc create -f <file_name.yaml> -n <stackrox> 命令,指定下载的 CRS 的路径。
-
如果您创建了 init 捆绑包,在终端窗口中运行
-
使用 OpenShift Container Platform Web 控制台导入您创建的 init 捆绑包或 CRS 的 YAML 文件。确保您位于
-
在安全集群中,使用 RHACS Operator 将安全的 Cluster 服务安装到
stackrox命名空间中。在创建这些服务时,请确保在 Central Endpoint 字段中输入 Central 地址,以便安全集群可以与 Central 通信。
-
将 RHACS Operator 安装到
1.4.2. 使用 Helm chart 在 Red Hat OpenShift 上安装 RHACS 复制链接链接已复制到粘贴板!
- 添加 RHACS Helm chart 仓库。
-
在 Red Hat OpenShift 集群上安装
central-servicesHelm Chart,其中包含 Central,称为中央集群。 - 在 Central 集群中登录到 RHACS web 控制台,并创建一个 init 捆绑包或 CRS。
-
对于您要保护的每个集群,登录到安全集群,并使用
helm install命令安装secure-cluster-servicesHelm Chart,指定您创建的 init 捆绑包或 CRS 的路径。
1.4.3. 使用 roxctl CLI 在 Red Hat OpenShift 上安装 RHACS 复制链接链接已复制到粘贴板!
此安装方法也称为 清单安装方法。
-
安装
roxctlCLI。 在包含 Central 的 Red Hat OpenShift 集群中,执行以下步骤:
-
在终端窗口中,使用
roxctlCLI 运行交互式 install 命令。 - 运行 setup shell 脚本。
-
在终端窗口中,使用
oc create命令创建 Central 资源。
-
在终端窗口中,使用
执行以下操作之一:
- 在 RHACS web 控制台中,创建并下载 sensor YAML 文件和密钥。
-
在安全集群中,使用
roxctl sensor generate openshift命令。
- 在安全集群中,运行传感器安装脚本。
1.5. Kubernetes 上的 RHACS 的安装步骤 复制链接链接已复制到粘贴板!
1.5.1. 使用 Helm chart 在 Kubernetes 平台上安装 RHACS 复制链接链接已复制到粘贴板!
- 添加 RHACS Helm chart 仓库。
-
在包含 Central 的集群中安装
central-servicesHelm Chart,称为 Central 集群。 从 Central 集群登录到 RHACS web 控制台,并创建一个 init 捆绑包或集群注册 secret (CRS),您需要应用到您要保护的集群,称为安全集群。init 捆绑包或 CRS 包含 RHACS 用来在 Central 和安全集群间建立可信连接的加密工件。
重要集群注册 secret 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
对于每个安全集群,运行以下命令来安装
secure-cluster-servicesHelm Chart:对于 init 捆绑包,运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 CRS,运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.2. 使用 roxctl CLI 在 Kubernetes 平台上安装 RHACS 复制链接链接已复制到粘贴板!
此安装方法也称为 清单安装方法。
-
安装
roxctlCLI。 在包含 Central 的 Kubernetes 集群中,执行以下步骤:
-
在终端窗口中,使用
roxctlCLI 运行交互式 install 命令。 - 运行 setup shell 脚本。
-
在终端窗口中,使用
kubectl create命令创建 Central 资源。
-
在终端窗口中,使用
执行以下操作之一:
- 在 RHACS web 控制台中,创建并下载 sensor YAML 文件和密钥。
-
在您要保护的集群中,称为安全集群,使用
roxctl sensor generate openshift命令。
- 在安全集群中,运行传感器安装脚本。
2.1. 常规 RHACS 要求 复制链接链接已复制到粘贴板!
在安装 RHACS 之前,您的系统必须满足几个要求。
您不能在以下环境中安装 RHACS:
- Amazon Elastic File System(Amazon EFS)。使用带有默认 gp2 卷类型的 Amazon Elastic Block Store(Amazon EBS)。
- 没有 SIMD 扩展 (SSE) 4.2 指令集的旧 CPU。例如,比 Sandy Bridge 和 AMD 处理器旧的 Intel 处理器(比 Bulldozer 旧)。这些处理器于 2011 年发布。
要安装 RHACS,您必须有以下系统之一:
- OpenShift Container Platform 版本 4.12 或更高版本,以及受支持的 Red Hat Enterprise Linux CoreOS (RHCOS)或 Red Hat Enterprise Linux (RHEL)的操作系统
受支持的受管 Kubernetes 平台和集群节点,以及受支持的 Amazon Linux、CentOS、Container-Optimized OS from Google、Red Hat Enterprise Linux CoreOS (RHCOS)、Debian、Red Hat Enterprise Linux (RHEL)或 Ubuntu 的操作系统
有关支持的平台和架构的详情,请查看 Red Hat Advanced Cluster Security for Kubernetes 支持列表。有关 RHACS 的生命周期支持信息,请参阅 Red Hat Advanced Cluster Security for Kubernetes 支持政策。
以下最低要求和建议适用于集群节点。
- 架构
amd64,ppc64le, 或s390x注意从 RHACS 4.3 开始,IBM Power (
ppc64le)、IBM Z (s390x)和 IBM® LinuxONE ()集群都支持 Central 和安全集群服务。s390x- 处理器
- 需要 3 个 CPU 内核。
- 内存
需要 6 GiB RAM。
注意请参阅每个组件的默认内存和 CPU 要求,并确保节点大小可以支持它们。
- 存储
安装 Central 的集群中需要一个持久性卷声明(PVC)。强烈建议在启用了 Scanner V4 的安全集群中。使用固态驱动器(SSD)以获得最佳性能。但是,如果您没有 SSD,也可以使用另一个存储类型。
重要您不能在 Red Hat Advanced Cluster Security for Kubernetes 中使用 Ceph FS 存储。红帽建议为 Red Hat Advanced Cluster Security for Kubernetes 使用 RBD 块模式 PVC。
如果您计划使用 Helm chart 安装 RHACS,您必须满足以下要求:
-
如果要使用 Helm chart 安装和配置 RHACS,则必须有 Helm 命令行界面(CLI) v3.2 或更新版本。使用
helm version命令验证已安装的 Helm 版本。 -
您必须有权访问 Red Hat Container Registry。有关从
registry.redhat.io下载镜像的详情,请参考 Red Hat Container Registry Authentication。
2.2. 中央服务(自助管理) 复制链接链接已复制到粘贴板!
如果您使用 Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service),则不需要查看 Central 服务的要求,因为它们由红帽管理。您只需要查看安全集群服务的要求。
Central 服务包含以下组件:
- Central
- Scanner V4
- stackrox Scanner (可选)
2.2.1. Central 复制链接链接已复制到粘贴板!
名为 Central 的容器化服务处理 API 交互和 RHACS Web 门户访问,而名为 Central DB (PostgreSQL 15)的容器化服务处理数据持久性。
Central DB 需要安装 Central 的集群中的持久性存储。
您可以使用持久性卷声明(PVC)提供存储。
注意只有在所有主机(或一组主机)挂载共享文件系统(如 NFS 共享或存储设备)时,您可以使用 hostPath 卷进行存储。否则,您的数据只保存在一个节点中。红帽不推荐使用 hostPath 卷。
- 使用固态磁盘(SSD)以获得最佳性能。但是,如果您没有 SSD,也可以使用另一个存储类型。
如果使用 Web 代理或防火墙,您必须配置绕过规则,以允许
definitions.stackrox.io域的流量,并启用 RHACS 信任 Web 代理或防火墙。否则,漏洞的更新将失败。您还必须确保安全集群上的 Sensor 到端口 443 上的 Central 的连接。Red Hat Advanced Cluster Security for Kubernetes 需要访问:
-
definitions.stackrox.io,用于下载更新的漏洞数据。漏洞更新允许 Red Hat Advanced Cluster Security for Kubernetes 在发现新漏洞或其他数据源时维护最新的漏洞数据。
-
为安全起见,您应该在具有有限的管理访问权限的集群中部署 Central。
2.2.2. CPU、内存和存储要求 复制链接链接已复制到粘贴板!
下表列出了安装和运行 Central 所需的最小 CPU 和内存值。
| Central | CPU | 内存 |
|---|---|---|
| Request(请求) | 1.5 个内核 | 4 GiB |
| 限制 | 4 个核 | 8 GiB |
Central 需要 Central DB 存储数据。下表列出了安装和运行 Central DB 所需的最小 CPU、内存和存储值。
| Central DB | CPU | 内存 | 存储 |
|---|---|---|---|
| Request(请求) | 4 个核 | 8 GiB | 100 GiB |
| 限制 | 8 个内核 | 16 GiB | 100 GiB |
2.2.3. 扫描程序 复制链接链接已复制到粘贴板!
扫描程序负责扫描镜像、节点和漏洞的平台。
RHACS 包括两个镜像漏洞策略: StackRox Scanner 和 Scanner V4。StackRox Scanner 已被弃用。扫描程序 V4 在版本 4.4 中引入,从版本 4.8 开始,默认的镜像扫描程序。
2.2.4. StackRox Scanner 复制链接链接已复制到粘贴板!
下表列出了安装和运行 StackRox 扫描器所需的最小 CPU 和内存值。此表中的要求基于 3 个副本的默认值。
| StackRox Scanner | CPU | 内存 |
|---|---|---|
| Request(请求) | 3 个内核 | 4500 MiB |
| 限制 | 6 个内核 | 12 GiB |
StackRox Scanner 需要 Scanner DB (PostgreSQL 15)存储数据。这些数据不会被保留。下表列出了安装和运行 Scanner DB 所需的最小 CPU 和内存值。
| 扫描程序数据库(Scanner DB) | CPU | 内存 |
|---|---|---|
| Request(请求) | 0.2 个内核 | 512 MiB |
| 限制 | 2 个内核 | 4 GiB |
2.2.5. Scanner V4 复制链接链接已复制到粘贴板!
scanner V4 Indexer
此表中的要求基于 3 个副本的默认值。
| scanner V4 Indexer | CPU | 内存 |
|---|---|---|
| Request(请求) | 3 个内核 | 4500 MiB |
| 限制 | 6 个内核 | 9 GiB |
扫描程序 V4 匹配器
此表中的要求基于 2 个副本的默认值。
| 扫描程序 V4 匹配器 | CPU | 内存 |
|---|---|---|
| Request(请求) | 2 个内核 | 1000 MiB |
| 限制 | 4 个核 | 4 GiB |
Scanner V4 DB
扫描程序 V4 需要 Scanner V4 DB (PostgreSQL 15)来存储数据。对于 Scanner V4 DB,需要一个 PVC 以确保最佳性能。下表列出了安装和运行 Scanner V4 DB 所需的最小 CPU、内存和存储值。
| Scanner V4 DB | CPU | 内存 | 存储 |
|---|---|---|---|
| Request(请求) | 0.2 个内核 | 3 GiB | 50 GiB |
| 限制 | 2 个内核 | 4 GiB | 50 GiB |
2.3. 安全的集群服务 复制链接链接已复制到粘贴板!
安全集群服务包含以下组件:
- Sensor
- 准入控制器
- Collector
- scanner (可选)
- 扫描程序 V4 (可选)
如果使用 Web 代理或防火墙,您必须确保安全集群和 Central 可以在 HTTPS 端口 443 中进行通信。
2.3.1. Sensor 复制链接链接已复制到粘贴板!
Sensor 监控 Kubernetes 和 OpenShift Container Platform 集群。这些服务目前在单个部署中进行部署,它处理与 Kubernetes API 的交互,并与其他 Red Hat Advanced Cluster Security for Kubernetes 组件协调。
2.3.1.1. CPU 和内存要求 复制链接链接已复制到粘贴板!
下表列出了在安全集群中安装并运行 sensor 所需的最小 CPU 和内存值。
| Sensor | CPU | 内存 |
|---|---|---|
| Request(请求) | 2 个内核 | 4 GiB |
| 限制 | 4 个核 | 8 GiB |
2.3.2. 准入控制器 复制链接链接已复制到粘贴板!
Admission 控制器可防止用户创建违反您配置策略的工作负载。
2.3.2.1. CPU 和内存要求 复制链接链接已复制到粘贴板!
默认情况下,准入控制服务运行 3 个副本。下表列出了每个副本的请求和限制。
| 准入控制器 | CPU | 内存 |
|---|---|---|
| Request(请求) | 0.05 个内核 | 100 MiB |
| 限制 | 0.5 个内核 | 500 MiB |
2.3.3. Collector 复制链接链接已复制到粘贴板!
收集器将安全集群中每个节点的运行时活动监控为 DaemonSet。它连接到 Sensor 来报告此信息。收集器 Pod 有三个容器。第一个容器是收集器,它监控和报告节点上的运行时活动。另外两个是 compliance 和 node-inventory。
2.3.3.1. 集合要求 复制链接链接已复制到粘贴板!
要使用 CORE_BPF 集合方法,基本内核必须支持 BTF,并且 BTF 文件必须可供收集器使用。通常,内核版本必须高于 5.8 (适用于 RHEL 节点的4.18)和 CONFIG_DEBUG_INFO_BTF 配置选项必须被设置。
收集器在以下列表中显示的标准位置查找 BTF 文件:
例 2.1. BTF 文件位置
如果存在这些文件,则内核可能会支持 BTF,CORE_BPF 是可配置的。
2.3.3.2. CPU 和内存要求 复制链接链接已复制到粘贴板!
默认情况下,收集器 Pod 运行 3 个容器。下表列出了每个容器的请求和限值,以及每个收集器 Pod 的总数。
2.3.3.2.1. 收集器容器 复制链接链接已复制到粘贴板!
| 类型 | CPU | 内存 |
|---|---|---|
| Request(请求) | 0.06 内核 | 320 MiB |
| 限制 | 0.9 个内核 | 1000 MiB |
2.3.3.2.2. Compliance 容器 复制链接链接已复制到粘贴板!
| 类型 | CPU | 内存 |
|---|---|---|
| Request(请求) | 0.01 个内核 | 10 MiB |
| 限制 | 1 个内核 | 2000 MiB |
2.3.3.2.3. node-inventory 容器 复制链接链接已复制到粘贴板!
| 类型 | CPU | 内存 |
|---|---|---|
| Request(请求) | 0.01 个内核 | 10 MiB |
| 限制 | 1 个内核 | 500 MiB |
2.3.3.2.4. 收集器 pod 总数要求 复制链接链接已复制到粘贴板!
| 类型 | CPU | 内存 |
|---|---|---|
| Request(请求) | 0.07 个内核 | 340 MiB |
| 限制 | 2.75 个内核 | 3500 MiB |
2.3.4. 扫描程序 复制链接链接已复制到粘贴板!
2.3.4.1. CPU 和内存要求 复制链接链接已复制到粘贴板!
此表中的要求基于 3 个副本的默认值。
| StackRox Scanner | CPU | 内存 |
|---|---|---|
| Request(请求) | 3 个内核 | 4500 MiB |
| 限制 | 6 个内核 | 12 GiB |
StackRox Scanner 需要 Scanner DB (PostgreSQL 15)存储数据。下表列出了安装和运行 Scanner DB 所需的最小内存和存储值。
| 扫描程序数据库(Scanner DB) | CPU | 内存 |
|---|---|---|
| Request(请求) | 0.2 个内核 | 512 MiB |
| 限制 | 2 个内核 | 4 GiB |
2.3.5. Scanner V4 复制链接链接已复制到粘贴板!
扫描程序 V4 是可选的。如果在安全集群中安装 Scanner V4,则应用以下要求。
2.3.5.1. CPU、内存和存储要求 复制链接链接已复制到粘贴板!
2.3.5.2. scanner V4 Indexer 复制链接链接已复制到粘贴板!
此表中的要求基于 2 个副本的默认值。
| scanner V4 Indexer | CPU | 内存 |
|---|---|---|
| Request(请求) | 2 个内核 | 3000 MiB |
| 限制 | 4 个核 | 6 GiB |
2.3.5.3. Scanner V4 DB 复制链接链接已复制到粘贴板!
扫描程序 V4 需要 Scanner V4 DB (PostgreSQL 15)来存储数据。下表列出了安装和运行 Scanner V4 DB 所需的最小 CPU、内存和存储值。对于 Scanner V4 DB,不需要 PVC,但强烈建议这样做,因为它可确保最佳性能。
| Scanner V4 DB | CPU | 内存 | 存储 |
|---|---|---|---|
| Request(请求) | 0.2 个内核 | 2 GiB | 10 GiB |
| 限制 | 2 个内核 | 4 GiB | 10 GiB |
2.4. 使用外部数据库的要求 复制链接链接已复制到粘贴板!
您可以将 Red Hat Advanced Cluster Security for Kubernetes Central 服务配置为使用外部 PostgreSQL 兼容的数据库进行数据持久性,而不是部署自己的数据库 pod。
使用外部数据库时,请注意以下指导:
- 数据库基础架构管理中央 DB 的持久性存储。因此,不要在 RHACS 安装配置中为 Central DB 配置持久性设置。
- 红帽支持对连接到该数据库的 RHACS 中央的配置和操作。但是,对特定于数据库的操作(如备份和恢复、性能诊断和潜在调整、软件和版本升级)的支持,以及高可用性/消除恢复操作的支持处于第三方支持下。在完整平台升级之外手动升级或自定义数据库也会限制支持性。
如果选择外部数据库,您的数据库实例和连接它的用户必须满足以下部分中列出的要求。
2.4.1. 数据库类型和版本 复制链接链接已复制到粘贴板!
数据库必须是兼容 PostgreSQL 的数据库,它支持 PostgreSQL 13 或更高版本。
2.4.2. 用户权限 复制链接链接已复制到粘贴板!
Central 用来连接到数据库的用户帐户必须是具有与数据库连接权限的 超级用户帐户,以及以下权限:
-
对 schema
使用和创建权限。 -
在 schema 中的所有表上,
选择,Insert,Update, 和Deletepermissions。 -
对 schema 中所有序列的使用权限。
-
能够
以超级用户身份创建和删除数据库。
2.4.3. 连接字符串 复制链接链接已复制到粘贴板!
Central 使用连接字符串连接到外部数据库,该字符串必须采用 keyword=value 格式。连接字符串应指定详情,如主机、端口、数据库名称、用户和 SSL/TLS 模式。例如,host=<host> port=5432 database=stackrox user=stackrox sslmode=verify-ca。
不支持通过 PgBouncer 的连接。
2.4.4. CA 证书 复制链接链接已复制到粘贴板!
如果您的外部数据库使用由私有或不受信任的证书颁发机构(CA)发布的证书,您可能需要指定 CA 证书,以便 Central 信任数据库证书。您可以使用 Central 自定义资源配置中的 TLS 块来添加它。
推荐的资源指南是通过执行集中测试在给定数量命名空间中创建以下对象来实现的:
- 10 个部署,有 3 个 pod 副本处于睡眠状态,挂载 4 个 secret、4 个配置映射
- 10 个服务,每个服务都指向之前部署的 TCP/8080 和 TCP/8443 端口
- 1 个路由指向上一个服务的第一个路由
- 包含 2048 个随机字符串字符的 10 个 secret
- 10 个配置映射包含 2048 个随机字符串字符
在分析结果的过程中,部署数量被识别为增加使用资源的主要因素。并且,我们正在对所需资源的估算使用部署数量。
3.1. 中央服务(自助管理) 复制链接链接已复制到粘贴板!
如果您使用 Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service),则不需要查看 Central 服务的要求,因为它们由红帽管理。您只需要查看安全集群服务的要求。
Central 服务包含以下组件:
- Central
- Central DB
- StackRox Scanner
- Scanner V4
3.1.1. Central 复制链接链接已复制到粘贴板!
3.1.1.1. 内存和 CPU 要求 复制链接链接已复制到粘贴板!
下表列出了运行 Central 所需的最小内存和 CPU 值。要确定大小调整,请考虑以下数据:
- 在连接到单个 Central 部署的所有安全集群中监控部署的总数
- 并发 Web 门户用户数量
| 部署 | 并发 Web 门户用户 | CPU | 内存 |
|---|---|---|---|
| < 25,000 | 1 个用户 | 2 个内核 | 8 GiB |
| < 25,000 | < 5 个用户 | 2 个内核 | 8 GiB |
| < 50,000 | 1 个用户 | 2 个内核 | 12 GiB |
| < 50,000 | < 5 个用户 | 6 个内核 | 16 GiB |
3.1.2. Central DB 复制链接链接已复制到粘贴板!
3.1.2.1. 内存和 CPU 要求 复制链接链接已复制到粘贴板!
下表列出了运行 Central DB 所需的最小内存和 CPU 值。要确定大小调整,请考虑以下数据:
- 在连接到单个 Central 部署的所有安全集群中监控部署的总数
- 并发 Web 门户用户数量
| 部署 | 并发 Web 门户用户 | CPU | 内存 |
|---|---|---|---|
| < 25,000 | 1 个用户 | 12 个内核 | 32 GiB |
| < 25,000 | < 5 个用户 | 24 个内核 | 32 GiB |
| < 50,000 | 1 个用户 | 16 个内核 | 32 GiB |
| < 50,000 | < 5 个用户 | 32 个内核 | 32 GiB |
3.1.3. StackRox Scanner 复制链接链接已复制到粘贴板!
下表列出了 Central 集群中 StackRox Scanner 部署所需的最小内存和 CPU 值。表包括在所有安全集群中部署的唯一镜像数量。
| 唯一镜像数量 | Replicas | CPU | 内存 |
|---|---|---|---|
| < 100 | 1 个副本 | 1 个内核 | 1.5 GiB |
| < 500 | 1 个副本 | 2 个内核 | 2.5 GiB |
| < 2000 | 2 个副本 | 2 个内核 | 2.5 GiB |
| < 5000 | 3 个副本 | 2 个内核 | 2.5 GiB |
3.1.4. scanner V4 复制链接链接已复制到粘贴板!
下表列出了 Central 集群中 Scanner V4 部署所需的最小内存和 CPU 值。表包括在所有安全集群中部署的唯一镜像数量。
3.1.4.1. scanner V4 Indexer 复制链接链接已复制到粘贴板!
| 唯一镜像数量 | Replicas | CPU | 内存 |
|---|---|---|---|
| < 100 | 1 | 2 个内核 | 0.5 GiB |
| < 500 | 1 | 2 个内核 | 0.5 GiB |
| < 2000 | 2 | 3 个内核 | 1 GiB |
| < 5000 | 2 | 5 个内核 | 1 GiB |
| < 10000 | 3 | 6 个内核 | 1.5 GiB |
3.1.4.2. 扫描程序 V4 匹配器 复制链接链接已复制到粘贴板!
| 唯一镜像数量 | Replicas | CPU | 内存 |
|---|---|---|---|
| < 100 | 1 | 1 个内核 | 1.3 GiB |
| < 500 | 1 | 1 个内核 | 1.4 GiB |
| < 2000 | 2 | 3 个内核 | 1.5 GiB |
| < 5000 | 2 | 3 个内核 | 1.6 GiB |
| < 10000 | 3 | 3 个内核 | 1.7 GiB |
3.1.4.3. Scanner V4 DB 复制链接链接已复制到粘贴板!
| 唯一镜像数量 | Replicas | CPU | 内存 |
|---|---|---|---|
| < 100 | 1 | 1 个内核 | 4.5 GiB |
| < 500 | 1 | 3 个内核 | 5 GiB |
| < 2000 | 1 | 6 个内核 | 6 GiB |
| < 5000 | 1 | 6 个内核 | 6 GiB |
| < 10000 | 1 | 8 个内核 | 6 GiB |
3.2. 安全的集群服务 复制链接链接已复制到粘贴板!
安全集群服务包含以下组件:
- Sensor
- 准入控制器
Collector
注意本页中不包含收集器组件。默认资源要求列出了在默认的资源要求页面中。
3.2.1. Sensor 复制链接链接已复制到粘贴板!
Sensor 监控 Kubernetes 和 OpenShift Container Platform 集群。这些服务目前部署到单个部署中,该服务处理与 Kubernetes API 的交互,并与 Collector 协调。
3.2.2. 内存和 CPU 要求 复制链接链接已复制到粘贴板!
下表列出了在安全集群中运行的 Sensor 所需的最小内存和 CPU 值。
| 部署 | CPU | 内存 |
|---|---|---|
| < 25,000 | 2 个内核 | 10 GiB |
| < 50,000 | 2 个内核 | 20 GiB |
3.2.3. 准入控制器 复制链接链接已复制到粘贴板!
Admission 控制器可防止用户创建违反您配置策略的工作负载。
3.2.4. 内存和 CPU 要求 复制链接链接已复制到粘贴板!
下表列出了在安全集群中运行的准入控制器所需的最小内存和 CPU 值。
| 部署 | CPU | 内存 |
|---|---|---|
| < 25,000 | 0.5 个内核 | 300 MiB |
| < 50,000 | 0.5 个内核 | 600 MiB |
第 4 章 在 Red Hat OpenShift 上安装 RHACS 复制链接链接已复制到粘贴板!
4.1. 在 Red Hat OpenShift 上为 RHACS 安装 Central 服务 复制链接链接已复制到粘贴板!
Central 是包含 RHACS 应用程序管理界面和服务的资源。它处理数据持久性、API 交互和 RHACS 门户访问。您可以使用同一中实例来保护多个 OpenShift Container Platform 或 Kubernetes 集群。
您可以使用以下方法之一在 OpenShift Container Platform 或 Kubernetes 集群上安装 Central:
- 使用 Operator 安装
- 使用 Helm chart 安装
-
使用
roxctlCLI 安装(除非有需要使用它的特定安装需要)
4.1.1. 使用 Operator 安装 Central 复制链接链接已复制到粘贴板!
要使用 Operator 安装 Central,您首先安装 Operator,然后使用它在要安装 Central 的集群中安装 RHACS。
4.1.1.1. 安装过程中使用的 Operator 注解 复制链接链接已复制到粘贴板!
RHACS 使用附加到自定义资源(CR)的注解,以便在使用 Operator 执行安装时,特定配置项目的默认值由 Operator 根据当前环境在运行时决定,允许之前配置的项目的值保留。
对于某些配置项,使用静态默认值进行安装是理想的选择。从 RHACS 版本 4.8 开始,Operator 可以添加附加到您应用到集群的 CR 的注解。这些注解允许 Operator 之前被保留并在以后重新应用,即使全新安装的默认行为已经改变。总之,RHACS 使用注解来持久保留运行时默认值。这意味着 Operator 在运行时决定特定配置设置的默认值。
例如,在版本 4.8 及更高版本中,如果没有为启用 Scanner V4 指定一个值,则默认行为是启用 Scanner V4。但是,如果在 CR 中配置了值,如 disable,RHACS 将使用该值。在 Scanner V4 示例中,在 4.7 版本中默认禁用 Scanner V4。当使用 Operator 更新至 4.8 版本时,禁用设置会保留并禁用 Scanner V4。
注解采用 feature-defaults.platform.stackrox.io/<identifier> 的形式。例如,feature-defaults.platform.stackrox.io/scannerV4 是注解,它允许 Operator 在升级到 RHACS 版本 4.8 期间保留默认的 Scanner V4 启用切换稳定。
不要更改或删除这些注解。
使用 OpenShift Container Platform 提供的 OperatorHub 是安装 Red Hat Advanced Cluster Security for Kubernetes 的最简单方法。
先决条件
- 您可以使用具有 Operator 安装权限的账户访问 OpenShift Container Platform 集群。
- 您必须使用 OpenShift Container Platform 4.12 或更高版本。有关支持的平台和架构的详情,请查看 Red Hat Advanced Cluster Security for Kubernetes 支持列表。有关 RHACS 的生命周期支持信息,请参阅 Red Hat Advanced Cluster Security for Kubernetes 支持政策。
流程
- 在 Web 控制台中,进入 Operators → OperatorHub 页面。
- 如果没有显示 Red Hat Advanced Cluster Security for Kubernetes,在 Filter by keyword 框中输入 Advanced Cluster Security 来查找 Red Hat Advanced Cluster Security for Kubernetes Operator。
- 选择 Red Hat Advanced Cluster Security for Kubernetes Operator 查看详情页面。
- 阅读 Operator 的信息,然后点 Install。
在 Install Operator 页面中:
- 保留安装模式的默认值 All namespaces on the cluster。
- 选择要在其中为 Installed namespace 字段安装 Operator 的特定命名空间。在 rhacs-operator 命名空间中安装 Red Hat Advanced Cluster Security for Kubernetes Operator。
为更新批准选择自动或手工。
如果选择自动更新,当有新版 Operator 可用时,Operator Lifecycle Manager(OLM)会自动升级 Operator 的运行实例。
如果选择手动更新,则当有新版 Operator 可用时,OLM 会创建更新请求。作为集群管理员,您必须手动批准更新请求,才能将 Operator 更新至最新版本。
重要如果选择手动更新,在更新安装了 Central 的集群中的 RHACS Operator 时,您必须更新所有安全集群中的 RHACS Operator。安装 Central 的安全集群和集群必须具有相同的版本,以确保最佳功能。
- 点 Install。
验证
- 安装完成后,进入 Operators → Installed Operators,以验证 Red Hat Advanced Cluster Security for Kubernetes Operator 的状态为 Succeeded。
将 Operator 安装到 rhacs-operator 项目后,您可以使用已安装的 Operator 安装、配置和部署 Central 自定义资源(CR)到 stackrox 项目中。
4.1.1.2.1. 为基础架构节点配置 RHACS Operator 复制链接链接已复制到粘贴板!
要在基础架构节点上部署 Red Hat Advanced Cluster Security for Kubernetes (RHACS) Operator,您可以修改其订阅 YAML 使其包含 nodeSelector 和 tolerations,以确保正确调度其 pod。
流程
在使用以下内容应用 Operator Lifecycle Manager (OLM)订阅前,为基础架构节点配置 RHACS Operator,例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存 YAML 文件,并使用 OpenShift CLI (
oc)应用该文件。
应用 YAML 文件时,您可以为 RHACS Operator 更新订阅。这会配置可调度 RHACS Operator pod 的位置。rhacs-operator 命名空间是 RHACS Operator 的指定位置。
4.1.1.3. 使用 Operator 方法安装 Central 复制链接链接已复制到粘贴板!
Red Hat Advanced Cluster Security for Kubernetes 的主要组件名为 Central。您可以使用 Central 自定义资源在 OpenShift Container Platform 上安装 Central。您只需要部署 Central 一次,并使用同一 Central 安装监控多个独立集群。
-
当您首次安装 Red Hat Advanced Cluster Security for Kubernetes 时,您必须首先安装
Central自定义资源,因为SecuredCluster自定义资源安装取决于 Central 生成的证书。 -
红帽建议在专用项目中安装 Red Hat Advanced Cluster Security for Kubernetes
Central自定义资源。不要在安装 Red Hat Advanced Cluster Security for Kubernetes Operator 的项目中安装它。另外,不要将其安装到任何名称以kube、openshift或redhat开头的项目中,以及在istio-system项目中。
先决条件
- 您必须使用 OpenShift Container Platform 4.12 或更高版本。有关支持的平台和架构的详情,请查看 Red Hat Advanced Cluster Security for Kubernetes 支持列表。有关 RHACS 的生命周期支持信息,请参阅 Red Hat Advanced Cluster Security for Kubernetes 支持政策。
流程
- 在 OpenShift Container Platform web 控制台中进入 Operators → Installed Operators 页面。
- 从安装的 Operator 列表中选择 Red Hat Advanced Cluster Security for Kubernetes Operator。
如果您在推荐的命名空间中安装了 Operator,OpenShift Container Platform 会将项目列为
rhacs-operator。选择 Project: rhacs-operator → Create project。注意-
如果在不同的命名空间中安装了 Operator,OpenShift Container Platform 将列出该命名空间的名称,而不是
rhacs-operator。
-
如果在不同的命名空间中安装了 Operator,OpenShift Container Platform 将列出该命名空间的名称,而不是
-
输入新项目名称(如
stackrox),然后点 Create。红帽建议您使用stackrox作为项目名称。 - 在 Provided APIs 部分下,选择 Central。点 Create Central。
可选:如果您使用声明性配置,在 Configure via: 旁边点 YAML 视图 并添加声明性配置的信息,如下例所示:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
输入您的
Central自定义资源的名称并添加您要应用的任何标签。否则,接受可用选项的默认值。 您可以为 Central 配置可用选项:
中央组件设置:
Expand 设置 描述 管理员密码
包含管理员密码的 secret。如果您不希望 RHACS 为您生成密码,则使用此字段。
公开
使用路由、负载均衡器或节点端口公开 Central 的设置。请参阅"在 Red Hat OpenShift 上安装 RHACS 的 Central 服务"部分中的
central.exposure.<parameter> 信息。面向用户的 TLS 证书 secret
如果要在 Central 中终止 TLS 并提供自定义服务器证书,请使用此字段。
监控
为 Central 配置监控端点。请参阅"在 Red Hat OpenShift 上安装 RHACS 的 Central 服务"部分中的
central.exposeMonitoring参数。Central DB 设置
Central DB 的设置,包括数据持久性。请参阅"在 Red Hat OpenShift 上安装 RHACS 的 Central 服务"部分中的
central.db.<parameter> 信息。Resources
如果您需要覆盖内存和 CPU 资源的默认设置,请在咨询文档后使用这些字段。如需更多信息,请参阅"安装"章节中的"RHAC"和"推荐资源要求"部分的"默认资源要求"。
容限(Tolerations)
使用此参数将 Central 配置为仅在特定节点上运行。请参阅"在 Red Hat OpenShift 上安装 RHACS 的 Central 服务"部分中的
central.tolerations参数。主机别名
使用此参数配置额外的主机名以在 pod 的主机文件中解析。
- 扫描程序组件 设置: StackRox Scanner 的设置。请参阅"在 Red Hat OpenShift 上安装 RHACS 的 Central 服务"部分中的"Scanner"表。
扫描程序 V4 组件 设置: Scanner V4 扫描程序(默认扫描程序)的设置。请参阅"在 Red Hat OpenShift 上安装 RHACS 的 Central 服务"部分中的"Scanner V4"表。
您可以为 Scanner V4 配置以下选项:
Expand 设置 描述 Indexer
对镜像进行索引并创建发现报告的过程。您可以配置副本、自动扩展、资源和容限。在更改默认资源值前,请参阅"Installation"一章中的"Default resource requirements for RHACS"和"Recommended 资源要求"部分中的"Scanner V4"部分。
matcher
对来自索引器的报告执行漏洞匹配的过程,与 Scanner V4 DB 中存储的漏洞数据相关。您可以配置副本、自动扩展、资源和容限。在更改默认资源值前,请参阅"Installation"一章中的"Default resource requirements for RHACS"和"Recommended 资源要求"部分中的"Scanner V4"部分。
DB
存储 Scanner V4 信息的数据库,包括漏洞数据和索引报告。您可以配置持久性、资源和容限。如果使用 Scanner V4,则 Central 集群中需要一个持久性卷声明(PVC)。在安全集群中强烈建议使用 PVC 以获得最佳结果。在更改默认资源值前,请参阅"Installation"一章中的"Default resource requirements for RHACS"和"Recommended 资源要求"部分中的"Scanner V4"部分。
- Egress :出站网络流量的设置,包括 RHACS 是否应该在线(连接)或离线(断开连接)模式运行。
- tls: 使用此字段添加额外的可信根证书颁发机构(CA)。
网络 :要在网络级别提供安全性,RHACS 在安装了 Central 的命名空间中创建默认
NetworkPolicy资源。要创建和管理自己的网络策略,在 policies 部分选择 Disabled。默认情况下,此选项为 Enabled。警告禁用创建默认网络策略可能会破坏 RHACS 组件之间的通信。如果禁用创建默认策略,则必须创建自己的网络策略来允许此通信。
高级配置 :您可以使用这些字段执行以下操作:
- 指定额外的镜像 pull secret
- 添加自定义环境变量来为受管 pod 的容器设置
- 启用 Red Hat OpenShift 监控
- 点 Create。
如果使用集群范围代理,Red Hat Advanced Cluster Security for Kubernetes 会使用该代理配置连接到外部服务。
后续步骤
- 验证中央安装。
- 可选:配置中央选项。
-
生成包含集群 secret 的 init 捆绑包,它允许在
Central和SecuredCluster资源之间的通信。您需要下载这个捆绑包,使用它来在您要保护的集群中生成资源,并安全地存储它。 - 在您要监控的每个集群中安装安全集群服务。
4.1.1.4. 在 PostgreSQL 实例中置备数据库 复制链接链接已复制到粘贴板!
此步骤是可选的。您可以使用现有的 PostgreSQL 基础架构为 RHACS 置备数据库。使用本节中的说明来配置 PostgreSQL 数据库环境,创建用户、数据库、架构、角色和授予所需的权限。
流程
创建一个新用户:
CREATE USER stackrox WITH PASSWORD <password>;
CREATE USER stackrox WITH PASSWORD <password>;Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建数据库:
CREATE DATABASE stackrox;
CREATE DATABASE stackrox;Copy to Clipboard Copied! Toggle word wrap Toggle overflow 连接到数据库:
\connect stackrox
\connect stackroxCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建用户模式:
CREATE SCHEMA stackrox;
CREATE SCHEMA stackrox;Copy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)撤销公共的权利:
REVOKE CREATE ON SCHEMA public FROM PUBLIC; REVOKE USAGE ON SCHEMA public FROM PUBLIC; REVOKE ALL ON DATABASE stackrox FROM PUBLIC;
REVOKE CREATE ON SCHEMA public FROM PUBLIC; REVOKE USAGE ON SCHEMA public FROM PUBLIC; REVOKE ALL ON DATABASE stackrox FROM PUBLIC;Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建角色:
CREATE ROLE readwrite;
CREATE ROLE readwrite;Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为角色授予连接权限:
GRANT CONNECT ON DATABASE stackrox TO readwrite;
GRANT CONNECT ON DATABASE stackrox TO readwrite;Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为
readwrite角色添加所需的权限:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
readwrite角色分配给stackrox用户:GRANT readwrite TO stackrox;
GRANT readwrite TO stackrox;Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1.1.5. 使用 Operator 安装带有外部数据库的 Central 复制链接链接已复制到粘贴板!
Red Hat Advanced Cluster Security for Kubernetes 的主要组件名为 Central。您可以使用 Central 自定义资源在 OpenShift Container Platform 上安装 Central。您只需要部署 Central 一次,并使用同一 Central 安装监控多个独立集群。
当您首次安装 Red Hat Advanced Cluster Security for Kubernetes 时,您必须首先安装 Central 自定义资源,因为 SecuredCluster 自定义资源安装取决于 Central 生成的证书。
有关 RHACS 数据库的更多信息,请参阅 数据库覆盖范围。
先决条件
您必须使用 OpenShift Container Platform 4.12 或更高版本。如需有关支持的 OpenShift Container Platform 版本的更多信息,请参阅 Red Hat Advanced Cluster Security for Kubernetes 支持列表。
注意postgres 15 是推荐的和支持的版本。红帽弃用了对 Postgres 13 的支持,并将在新版本的 RHACS 中删除。
- 如需详细要求,请参阅附加资源部分中的"使用外部数据库的要求"。
流程
- 在 OpenShift Container Platform web 控制台中进入 Operators → Installed Operators 页面。
- 从安装的 Operator 列表中选择 Red Hat Advanced Cluster Security for Kubernetes Operator。
如果您在推荐的命名空间中安装了 Operator,OpenShift Container Platform 会将项目列为
rhacs-operator。选择 Project: rhacs-operator → Create project。警告-
如果您在不同的命名空间中安装了 Operator,则 OpenShift Container Platform 会显示该命名空间的名称,而不是
rhacs-operator。 -
红帽建议在专用项目中安装 Red Hat Advanced Cluster Security for Kubernetes
Central自定义资源。不要在安装 Red Hat Advanced Cluster Security for Kubernetes Operator 的项目中安装它。另外,不要将其安装到任何名称以kube、openshift或redhat开头的项目中,以及在istio-system项目中。
-
如果您在不同的命名空间中安装了 Operator,则 OpenShift Container Platform 会显示该命名空间的名称,而不是
-
输入新项目名称(如
stackrox),然后点 Create。红帽建议您使用stackrox作为项目名称。 使用 OpenShift Container Platform Web 控制台或终端在部署的命名空间中创建密码 secret。
-
在 OpenShift Container Platform web 控制台中进入 Workloads → Secrets 页面。使用密钥
password和值创建一个 Key/Value secret,作为纯文本文件的路径,其中包含调配数据库的超级用户密码。 或者,在终端中运行以下命令:
oc create secret generic external-db-password \ --from-file=password=<password.txt>
$ oc create secret generic external-db-password \1 --from-file=password=<password.txt>2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
在 OpenShift Container Platform web 控制台中进入 Workloads → Secrets 页面。使用密钥
- 返回到 OpenShift Container Platform Web 控制台中的 Red Hat Advanced Cluster Security for Kubernetes operator 页面。在 Provided APIs 部分下,选择 Central。点 Create Central。
- 可选:如果您使用声明性配置,在 Configure via: 旁边点 YAML 视图。
添加声明性配置的信息,如下例所示:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
输入您的
Central自定义资源的名称并添加您要应用的任何标签。 - 进入 Central Component Settings → Central DB Settings。
-
对于 Administrator Password,将引用的 secret 指定为
external-db-password(或之前创建的密码的 secret 名称)。 -
对于 Connection String,以
keyword=value格式指定连接字符串,例如 host=<host> port=5432 database=stackrox user=stackrox sslmode=verify-ca -
对于 Persistence → PersistentVolumeClaim → Claim Name,请删除
central-db。 如果需要,您可以指定证书颁发机构,以便在数据库证书和 Central 之间信任。要添加此功能,进入 YAML 视图并在顶级 spec 下添加一个 TLS 块,如下例所示:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点 Create。
如果使用集群范围代理,Red Hat Advanced Cluster Security for Kubernetes 会使用该代理配置连接到外部服务。
后续步骤
- 验证中央安装。
- 可选:配置中央选项。
-
生成包含集群 secret 的 init 捆绑包,它允许在
Central和SecuredCluster资源之间的通信。您需要下载这个捆绑包,使用它来在您要保护的集群中生成资源,并安全地存储它。 - 在您要监控的每个集群中安装安全集群服务。
4.1.1.6. 使用 Operator 方法验证中央安装 复制链接链接已复制到粘贴板!
安装中心后,登录到 RHACS 门户以验证中央安装是否成功。
流程
- 在 OpenShift Container Platform web 控制台中进入 Operators → Installed Operators 页面。
- 从安装的 Operator 列表中选择 Red Hat Advanced Cluster Security for Kubernetes Operator。
- 选择 Central 选项卡。
-
从 Centrals 列表中,选择
stackrox-central-services以查看其详细信息。 要获取
admin用户的密码,您可以:- 点 Admin Password Secret Reference 下的链接。
使用 Red Hat OpenShift CLI 输入 Admin Credentials Info 下列出的命令:
oc -n stackrox get secret central-htpasswd -o go-template='{{index .data "password" | base64decode}}'$ oc -n stackrox get secret central-htpasswd -o go-template='{{index .data "password" | base64decode}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用 Red Hat OpenShift CLI 命令查找到 RHACS 门户的链接:
oc -n stackrox get route central -o jsonpath="{.status.ingress[0].host}"$ oc -n stackrox get route central -o jsonpath="{.status.ingress[0].host}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 另外,您可以执行以下命令,使用 Red Hat Advanced Cluster Security for Kubernetes web 控制台来查找到 RHACS 门户的链接:
- 前往 Networking → Routes。
- 找到 central 路由,再点 Location 列下的 RHACS 门户链接。
-
使用用户名 admin 和密码您在上一步中检索的密码登录 RHACS 门户。在完全配置 RHACS 前(例如,您拥有
Central资源,并至少安装并配置一个SecuredCluster资源),仪表板中没有可用的数据。SecuredCluster资源可以在与Central资源相同的集群中安装和配置。使用SecuredCluster资源的集群与 Red Hat Advanced Cluster Management (RHACM)中的受管集群类似。
后续步骤
- 可选:配置中央设置。
-
生成包含集群 secret 的 init 捆绑包或 CRS,允许
Central和SecuredCluster资源之间的通信。您需要下载此文件,使用它来在您要保护的集群中生成资源,并安全地存储该文件。 - 在您要监控的每个集群中安装安全集群服务。
4.1.2. 使用 Helm chart 安装 Central 复制链接链接已复制到粘贴板!
您可以使用 Helm chart 安装 Central,而无需自定义任何自定义,使用默认值,或使用带有额外自定义配置参数的 Helm chart。
4.1.2.1. 使用 Helm chart 安装 Central,而无需自定义 复制链接链接已复制到粘贴板!
您可以在没有自定义的情况下在集群中安装 RHACS。您必须添加 Helm Chart 仓库并安装 central-services Helm Chart,以安装 Central 和 Scanner 的集中组件。
4.1.2.1.1. 添加 Helm Chart 仓库 复制链接链接已复制到粘贴板!
流程
添加 RHACS chart 存储库。
helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/
$ helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Red Hat Advanced Cluster Security for Kubernetes 的 Helm 仓库包括用于安装不同组件的 Helm chart,包括:
用于安装集中组件(Central 和 Scanner)的中央服务Helm Chart(
central-services)。注意您只部署集中式组件一次,并可使用同一安装监控多个独立集群。
安全集群服务 Helm Chart (
secured-cluster-services),用于安装 per-cluster 和 per-node 组件(Sensor、Admission Controller、Collector 和 Scanner-slim)。注意将 per-cluster 组件部署到要监控的每个集群中,并在要监控的所有节点中部署 per-node 组件。
验证
运行以下命令来验证添加的 chart 存储库:
helm search repo -l rhacs/
$ helm search repo -l rhacs/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1.2.1.2. 在不自定义的情况下安装 central-services Helm chart 复制链接链接已复制到粘贴板!
使用以下说明安装 central-services Helm Chart 以部署集中组件(Central 和 Scanner)。
先决条件
-
您必须有权访问 Red Hat Container Registry。有关从
registry.redhat.io下载镜像的详情,请参考 Red Hat Container Registry Authentication。
流程
运行以下命令安装 Central 服务并使用一个路由来公开 Central:
helm install -n stackrox \ --create-namespace stackrox-central-services rhacs/central-services \ --set imagePullSecrets.username=<username> \ --set imagePullSecrets.password=<password> \ --set central.exposure.route.enabled=true
$ helm install -n stackrox \ --create-namespace stackrox-central-services rhacs/central-services \ --set imagePullSecrets.username=<username> \1 --set imagePullSecrets.password=<password> \2 --set central.exposure.route.enabled=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,运行以下命令安装 Central 服务并使用一个负载均衡器来公开 Central:
helm install -n stackrox \ --create-namespace stackrox-central-services rhacs/central-services \ --set imagePullSecrets.username=<username> \ --set imagePullSecrets.password=<password> \ --set central.exposure.loadBalancer.enabled=true
$ helm install -n stackrox \ --create-namespace stackrox-central-services rhacs/central-services \ --set imagePullSecrets.username=<username> \1 --set imagePullSecrets.password=<password> \2 --set central.exposure.loadBalancer.enabled=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,运行以下命令安装 Central 服务并使用一个端口转发来公开 Central:
helm install -n stackrox \ --create-namespace stackrox-central-services rhacs/central-services \ --set imagePullSecrets.username=<username> \ --set imagePullSecrets.password=<password>
$ helm install -n stackrox \ --create-namespace stackrox-central-services rhacs/central-services \ --set imagePullSecrets.username=<username> \1 --set imagePullSecrets.password=<password>2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如果要在需要代理连接到外部服务的集群中安装 Red Hat Advanced Cluster Security for Kubernetes,则必须使用
proxyConfig参数指定代理配置。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果您已在安装的命名空间中创建了一个或多个镜像 pull secret,而不是使用用户名和密码,您可以使用
--set imagePullSecrets.useExisting="<pull-secret-1;pull-secret-2>"。 不要使用镜像 pull secret:
-
如果您要从
quay.io/stackrox-io或不需要身份验证的专用网络中的 registry 拉取镜像。使用--set imagePullSecrets.allowNone=true,而不是指定用户名和密码。 -
如果您已经在安装的命名空间中的默认服务帐户中配置了镜像 pull secret。使用
--set imagePullSecrets.useFromDefaultServiceAccount=true,而不是指定用户名和密码。
-
如果您要从
安装命令的输出包括:
- 自动生成的管理员密码。
- 关于存储所有配置值的说明。
- Helm 生成的任何警告。
4.1.2.1.3. 检索自动生成的证书颁发机构 复制链接链接已复制到粘贴板!
安装 RHACS 时,证书颁发机构(CA)会自动生成并存储在集群中的 Kubernetes secret 中。如果稍后使用 Helm 更改安装,您可能需要提供此 CA。例如,启用安装时最初禁用的 RHACS 组件需要您提供此 CA。
自动生成的 CA 存储在 secret 中,它通常类似于 stackrox-generated-suffix,其中 suffix 是随机生成的字符串。
要检索 CA,并在 helm upgrade 命令需要时将其导出到 generated-values.yaml 文件中,例如运行以下命令:
kubectl -n <namespace> get secret stackrox-generated-<suffix> \
-o go-template='{{ index .data "generated-values.yaml" }}' | \
base64 --decode >generated-values.yaml
$ kubectl -n <namespace> get secret stackrox-generated-<suffix> \
-o go-template='{{ index .data "generated-values.yaml" }}' | \
base64 --decode >generated-values.yaml
此文件可能包含敏感数据,因此将其存储在安全的地方。
如果您在更改配置后使用 helm upgrade 命令,您可能需要提供此 CA。例如,要更新您的系统并启用 Scanner V4,请运行以下命令:
helm upgrade -n stackrox stackrox-central-services rhacs/central-services --reuse-values \ -f <path_to_generated-values.yaml> \ --set scannerV4.disable=false
$ helm upgrade -n stackrox stackrox-central-services rhacs/central-services --reuse-values \
-f <path_to_generated-values.yaml> \
--set scannerV4.disable=false
4.1.2.2. 使用带有自定义的 Helm chart 安装 Central 复制链接链接已复制到粘贴板!
您可以使用 helm install 和 helm upgrade 命令的 Helm Chart 配置参数在 Red Hat OpenShift 集群上安装 RHACS。您可以使用 --set 选项或创建 YAML 配置文件来指定这些参数。
创建以下文件来配置 Helm chart 来安装 Red Hat Advanced Cluster Security for Kubernetes:
-
公共配置文件
values-public.yaml:使用此文件保存所有非敏感配置选项。 -
专用配置文件
values-private.yaml:使用此文件保存所有敏感配置选项。确保您安全地存储这个文件。 -
配置文件
declarative-config-values.yaml:如果您使用声明性配置将声明性配置挂载添加到 Central,请创建此文件。
4.1.2.2.1. 专用配置文件 复制链接链接已复制到粘贴板!
本节列出了 values-private.yaml 文件的可配置参数。这些参数没有默认值。
4.1.2.2.1.1. 镜像 pull secret 复制链接链接已复制到粘贴板!
从 registry 中拉取镜像所需的凭证取决于以下因素:
如果使用自定义 registry,您必须指定这些参数:
-
imagePullSecrets.username -
imagePullSecrets.password -
image.registry
-
如果不使用用户名和密码登录到自定义 registry,您必须指定以下参数之一:
-
imagePullSecrets.allowNone -
imagePullSecrets.useExisting -
imagePullSecrets.useFromDefaultServiceAccount
-
| 参数 | Description |
|---|---|
|
| 用于登录到 registry 的帐户的用户名。 |
|
| 用于登录到 registry 的帐户的密码。 |
|
|
如果您使用自定义 registry,且允许在没有凭证的情况下拉取镜像,请使用 |
|
|
以逗号分隔的 secret 列表作为值。例如, |
|
|
如果您已经在目标命名空间中配置了具有足够范围的镜像 pull secret 的默认服务帐户,请使用 |
4.1.2.2.1.2. 代理配置 复制链接链接已复制到粘贴板!
如果要在需要代理连接到外部服务的集群中安装 Red Hat Advanced Cluster Security for Kubernetes,则必须使用 proxyConfig 参数指定代理配置。例如:
| 参数 | Description |
|---|---|
|
| 您的代理配置。 |
4.1.2.2.1.3. Central 复制链接链接已复制到粘贴板!
Central 的可配置参数。
对于新安装,您可以跳过以下参数:
-
central.jwtSigner.key -
central.serviceTLS.cert -
central.serviceTLS.key -
central.adminPassword.value -
central.adminPassword.htpasswd -
central.db.serviceTLS.cert -
central.db.serviceTLS.key -
central.db.password.value - 当您没有为这些参数指定值时,Helm Chart 会为它们自动生成值。
-
如果要修改这些值,您可以使用
helm upgrade命令并使用--set选项指定值。
对于设置管理员密码,您只能使用 central.adminPassword.value 或 central.adminPassword.htpasswd,但不能同时使用两者。
| 参数 | Description |
|---|---|
|
| RHACS 应该用来签名 JSON Web 令牌(JWT)的私钥以进行身份验证。 |
|
| Central 服务应用于部署中心的内部证书。 |
|
| Central 服务应使用的内部证书的私钥。 |
|
| Central 应该使用的用户面向用户的证书。RHACS 将此证书用于 RHACS 门户。
|
|
| Central 应使用面向用户的证书的私钥。
|
|
| Central 数据库的连接密码。 |
|
| 用于登录到 RHACS 的管理员密码。 |
|
| 用于登录到 RHACS 的管理员密码。此密码以散列格式存储,使用 bcrypt。 |
|
| Central DB 服务应用于部署 Central DB 的内部证书。 |
|
| Central DB 服务应使用的内部证书的私钥。 |
|
| 用于连接到 Central DB 的密码。 |
如果使用 central.adminPassword.htpasswd 参数,则必须使用 bcrypt 编码的密码哈希。您可以运行 htpasswd -nB admin 命令来生成密码哈希。例如,
htpasswd: | admin:<bcrypt-hash>
htpasswd: |
admin:<bcrypt-hash>
4.1.2.2.1.4. 扫描程序 复制链接链接已复制到粘贴板!
StackRox Scanner 和 Scanner V4 的可配置参数。
对于新的安装,您可以跳过以下参数,以及 Helm Chart 自动生成值。否则,如果您升级到新版本,请指定以下参数的值:
-
scanner.dbPassword.value -
scanner.serviceTLS.cert -
scanner.serviceTLS.key -
scanner.dbServiceTLS.cert -
scanner.dbServiceTLS.key -
scannerV4.db.password.value -
scannerV4.indexer.serviceTLS.cert -
scannerV4.indexer.serviceTLS.key -
scannerV4.matcher.serviceTLS.cert -
scannerV4.matcher.serviceTLS.key -
scannerV4.db.serviceTLS.cert -
scannerV4.db.serviceTLS.key
| 参数 | Description |
|---|---|
|
| 用于通过 Scanner 数据库进行身份验证的密码。不要修改此参数,因为 RHACS 会在内部自动创建和使用其值。 |
|
| StackRox Scanner 服务应用于部署 StackRox Scanner 的内部证书。 |
|
| Scanner 服务使用的内部证书的私钥。 |
|
| Scanner-db 服务应用于部署 Scanner 数据库的内部证书。 |
|
| Scanner-db 服务应使用的内部证书的私钥。 |
|
| 用于通过 Scanner V4 数据库进行身份验证的密码。不要修改此参数,因为 RHACS 会在内部自动创建和使用其值。 |
|
| Scanner V4 DB 服务应用于部署 Scanner V4 数据库的内部证书。 |
|
| Scanner V4 DB 服务应使用的内部证书的私钥。 |
|
| Scanner V4 服务应用于部署 Scanner V4 Indexer 的内部证书。 |
|
| Scanner V4 Indexer 应该使用的内部证书的私钥。 |
|
| Scanner V4 服务应用于部署 Scanner V4 Matcher 的内部证书。 |
|
| Scanner V4 Matcher 应该使用的内部证书的私钥。 |
4.1.2.2.2. 公共配置文件 复制链接链接已复制到粘贴板!
本节列出了 values-public.yaml 文件的可配置参数。
4.1.2.2.2.1. 镜像 pull secret 复制链接链接已复制到粘贴板!
镜像拉取 secret 是从 registry 中拉取镜像所需的凭证。
| 参数 | Description |
|---|---|
|
|
如果您使用自定义 registry,且允许在没有凭证的情况下拉取镜像,请使用 |
|
|
以逗号分隔的 secret 列表作为值。例如, |
|
|
如果您已经在目标命名空间中配置了具有足够范围的镜像 pull secret 的默认服务帐户,请使用 |
4.1.2.2.2.2. Image 复制链接链接已复制到粘贴板!
镜像声明配置来设置主 registry,Helm Chart 用来为 central.image,scanner.image,scanner.dbImage,scannerV4.image, 和 scannerV4.db.image 参数解析镜像。
| 参数 | Description |
|---|---|
|
|
镜像 registry 的地址。使用主机名,如 |
4.1.2.2.2.3. 策略作为代码 复制链接链接已复制到粘贴板!
作为代码的策略,可将 RHACS 配置为与 Argo CD 等持续交付工具(如 Argo CD)一起工作,以跟踪、管理并应用您从 RHACS 门户写入或修改的策略。您可以配置 Argo CD 或其他工具,将策略作为代码资源应用到安装 RHACS 的同一命名空间。
| 参数 | 描述 |
|---|---|
|
|
默认情况下,值为 |
4.1.2.2.2.4. 环境变量 复制链接链接已复制到粘贴板!
Red Hat Advanced Cluster Security for Kubernetes 会自动检测集群环境,并为 env.openshift、env.istio 和 env.platform 设置值。仅设置这些值来覆盖自动集群环境检测。
| 参数 | Description |
|---|---|
|
|
使用 |
|
|
使用 |
|
|
安装 RHACS 的平台。将其值设为 |
|
|
使用 |
4.1.2.2.2.5. 其他可信证书颁发机构 复制链接链接已复制到粘贴板!
RHACS 自动引用要信任的系统根证书。当 Central、StackRox Scanner 或 Scanner V4 必须联系到使用您机构中授权或全局可信合作伙伴机构发布的证书的服务,您可以使用以下参数来指定对这些服务的信任:
| 参数 | Description |
|---|---|
|
| 指定要信任的根证书颁发机构的 PEM 编码证书。 |
4.1.2.2.2.6. 默认网络策略 复制链接链接已复制到粘贴板!
要在网络级别提供安全性,RHACS 在安装了 Central 的命名空间中创建默认 NetworkPolicy 资源。这些网络策略允许在特定端口上到特定组件的入站网络数据。如果您不希望 RHACS 创建这些策略,则将此参数设置为 Disabled。默认值为 Enabled。
禁用创建默认网络策略可能会破坏 RHACS 组件之间的通信。如果禁用创建默认策略,则必须创建自己的网络策略来允许此通信。
| 参数 | 描述 |
|---|---|
|
|
指定 RHACS 是否已创建默认网络策略来允许组件之间的通信。要创建自己的网络策略,请将此参数设置为 |
4.1.2.2.2.7. Central 复制链接链接已复制到粘贴板!
Central 的可配置参数。
-
用于公开外部访问的中央部署。您必须指定一个参数,可以是
central.exposure.loadBalancer、central.exposure.nodePort或central.exposure.route。如果没有为这些参数指定任何值,您必须手动公开 Central,或使用端口转发(port-forwarding)访问它。
下表包含外部 PostgreSQL 数据库的设置。
| 参数 | Description |
|---|---|
|
| 挂载用于声明配置的配置映射。 |
|
| 挂载用于声明配置的 secret。 |
|
| Central 的端点配置选项。 |
|
| 如果节点选择器选择污点节点,请使用此参数指定 taint toleration key、value 和 effect。此参数主要用于基础架构节点。 |
|
| 如果节点选择器选择污点节点,请使用此参数指定 taint toleration key、value 和 effect。此参数主要用于基础架构节点。 |
|
|
指定 |
|
|
用于覆盖 Central 镜像的全局 |
|
|
覆盖默认 Central 镜像名称( |
|
|
覆盖 Central 镜像默认标签的自定义镜像标签。如果在新安装过程中指定了自己的镜像标签,则您必须在运行 |
|
|
Central 镜像的完整参考,包括 registry 地址、镜像名称和镜像标签。为此参数设置值会覆盖 |
|
| Central 的内存请求。 |
|
| Central 的 CPU 请求。 |
|
| Central 的内存限值。 |
|
| Central 的 CPU 限制。 |
|
|
使用 |
|
| 要公开 Central 的端口号。默认端口号为 443。 |
|
|
使用 |
|
| 要公开 Central 的端口号。当您跳过此参数时,OpenShift Container Platform 会自动分配一个端口号。如果您使用节点端口公开 RHACS,红帽建议您不要指定端口号。 |
|
|
使用 |
|
| 使用此参数指定用于 Central 的 passthrough 路由的自定义主机名。保留为不设置,以接受 OpenShift Container Platform 提供的默认值。此参数仅适用于 OpenShift Container Platform 集群。 |
|
|
把它设置为 |
|
| 使用此参数指定用于 Central 的重新加密路由的自定义主机名。保留为不设置,以接受 OpenShift Container Platform 提供的默认值。此参数仅适用于 OpenShift Container Platform 集群。 |
|
| 使用此参数指定 PEM 编码的证书链,该链可能用来建立完整的信任链。默认情况下,OpenShift Container Platform 提供证书颁发机构。此参数仅适用于 OpenShift Container Platform 集群。 |
|
| 使用此参数指定路由上提供的 PEM 编码证书。OpenShift Container Platform 证书颁发机构签署默认证书。此参数仅适用于 OpenShift Container Platform 集群。 |
|
| 使用此参数指定最终目标的 CA 证书,即 Central。OpenShift Container Platform 路由器使用此证书对安全连接执行健康检查。默认情况下,Central 提供证书颁发机构。 |
|
| 使用此参数指定路由上提供的证书的 PEM 编码私钥。OpenShift Container Platform 证书颁发机构签署默认证书。此参数仅适用于 OpenShift Container Platform 集群。 |
|
|
使用 |
|
|
用于连接到数据库的 Central 的连接字符串。这仅在将
|
|
| 与要建立的数据库的最小连接数。 |
|
| 与要建立的数据库的连接数上限。 |
|
| 单个查询或事务的毫秒可以针对数据库处于活跃状态。 |
|
| 用于中央 DB 的 postgresql.conf,如 PostgreSQL 文档中的"添加资源"中所述。 |
|
| 用于 Central DB 的 pg_hba.conf,如 PostgreSQL 文档中的 "Additional resources" 所述。 |
|
|
将节点选择器标签指定为 |
|
|
一个自定义 registry,用于覆盖 Central DB 镜像的全局 |
|
|
覆盖默认中央 DB 镜像名称( |
|
|
覆盖 Central DB 镜像默认标签的自定义镜像标签。如果在新安装过程中指定了自己的镜像标签,则您必须在运行 |
|
|
Central DB 镜像的完整参考,包括 registry 地址、镜像名称和镜像标签。为此参数设置值会覆盖 |
|
| Central DB 的内存请求。 |
|
| Central DB 的 CPU 请求。 |
|
| Central DB 的内存限值。 |
|
| Central 数据库的 CPU 限制。 |
|
| RHACS 应该创建数据库卷的节点上的路径。红帽不推荐使用这个选项。 |
|
| 您要使用的持久性卷声明(PVC)的名称。 |
|
|
使用 |
|
| 由指定声明管理的持久性卷的大小(以 GiB 为单位)。 |
4.1.2.2.2.8. StackRox Scanner 复制链接链接已复制到粘贴板!
下表列出了 StackRox Scanner 的可配置参数。StackRox Scanner 已被弃用。
| 参数 | Description |
|---|---|
|
|
使用 |
|
|
指定 |
|
|
为 StackRox Scanner 部署创建的副本数。当您将其与 |
|
|
为 StackRox Scanner 配置日志级别。红帽建议您不要更改默认的日志级别值( |
|
|
将节点选择器标签指定为 |
|
| 如果节点选择器选择污点节点,请使用此参数为 StackRox Scanner 指定污点容限键、值和效果。此参数主要用于基础架构节点。 |
|
|
使用 |
|
| 自动扩展的最小副本数。 |
|
| 自动扩展的最大副本数。 |
|
| StackRox Scanner 的内存请求。 |
|
| StackRox Scanner 的 CPU 请求。 |
|
| StackRox Scanner 的内存限值。 |
|
| StackRox Scanner 的 CPU 限制。 |
|
| StackRox Scanner 数据库部署的内存请求。 |
|
| StackRox Scanner 数据库部署的 CPU 请求。 |
|
| StackRox Scanner 数据库部署的内存限值。 |
|
| StackRox Scanner 数据库部署的 CPU 限制。 |
|
| StackRox Scanner 镜像的自定义 registry。 |
|
|
覆盖默认 StackRox Scanner 镜像名称( |
|
| StackRox Scanner DB 镜像的自定义 registry。 |
|
|
覆盖默认 StackRox Scanner DB 镜像名称( |
|
|
将节点选择器标签指定为 |
|
| 如果节点选择器选择污点节点,请使用此参数为 StackRox Scanner DB 指定污点容限键、值和效果。此参数主要用于基础架构节点。 |
4.1.2.2.2.9. Scanner V4 复制链接链接已复制到粘贴板!
下表列出了 Scanner V4 的可配置参数。
| 参数 | 描述 |
|---|---|
|
|
为 Scanner V4 管理持久性数据的 PVC 名称。默认情况下,对于 Central,系统会创建一个 PVC,并使用默认值 |
|
| 为 Scanner V4 管理持久性数据的 PVC 大小。 |
|
| 用于 PVC 的存储类的名称。如果您的集群没有配置默认存储类,则必须为此参数提供一个值。 |
|
| 以下值有效:
如果没有指定值,则默认发生以下行为:
|
|
|
指定 |
|
|
为 Scanner V4 Indexer 部署创建的副本数。当您将它与 |
|
|
为 Scanner V4 Indexer 配置日志级别。红帽建议您不要更改默认的日志级别值( |
|
|
将节点选择器标签指定为 |
|
| 如果节点选择器选择污点节点,请使用此参数为 Scanner V4 Indexer 指定污点容限键、值和效果。此参数主要用于基础架构节点。 |
|
|
使用 |
|
| 自动扩展的最小副本数。 |
|
| 自动扩展的最大副本数。 |
|
| Scanner V4 Indexer 的内存请求。 |
|
| Scanner V4 Indexer 的 CPU 请求。 |
|
| Scanner V4 Indexer 的内存限值。 |
|
| Scanner V4 Indexer 的 CPU 限制。 |
|
|
为 Scanner V4 Matcher 部署创建的副本数。当您将其与 |
|
|
红帽建议您不要更改默认的日志级别值( |
|
|
将节点选择器标签指定为 |
|
| 如果节点选择器选择污点节点,请使用此参数为 Scanner V4 Matcher 指定污点容限键、值和效果。此参数主要用于基础架构节点。 |
|
|
使用 |
|
| 自动扩展的最小副本数。 |
|
| 自动扩展的最大副本数。 |
|
| Scanner V4 Matcher 的内存请求。 |
|
| Scanner V4 Matcher 的 CPU 请求。 |
|
| Scanner V4 数据库部署的内存请求。 |
|
| Scanner V4 数据库部署的 CPU 请求。 |
|
| Scanner V4 数据库部署的内存限值。 |
|
| Scanner V4 数据库部署的 CPU 限制。 |
|
|
将节点选择器标签指定为 |
|
| 如果节点选择器选择污点节点,请使用此参数为 Scanner V4 DB 指定污点容限键、值和效果。此参数主要用于基础架构节点。 |
|
| Scanner V4 DB 镜像的自定义 registry。 |
|
|
覆盖默认 Scanner V4 DB 镜像名称( |
|
| Scanner V4 镜像的自定义 registry。 |
|
|
覆盖默认 Scanner V4 镜像名称( |
4.1.2.2.2.10. 自定义 复制链接链接已复制到粘贴板!
使用这些参数为 RHACS 创建的所有对象指定附加属性。
| 参数 | Description |
|---|---|
|
| 附加到所有对象的自定义标签。 |
|
| 附加到所有对象的自定义注解。 |
|
| 附加到所有部署的自定义标签。 |
|
| 附加到所有部署的自定义注解。 |
|
| 所有对象中所有容器的自定义环境变量。 |
|
| 附加到 Central 创建的所有对象的自定义标签。 |
|
| 附加到中央创建的所有对象的自定义注解。 |
|
| 附加到所有中央部署的自定义标签。 |
|
| 附加到所有中央部署的自定义注解。 |
|
| 所有中央容器的自定义环境变量。 |
|
| 附加到 Scanner 创建的所有对象的自定义标签。 |
|
| 附加到 Scanner 创建的所有对象的自定义注解。 |
|
| 附加到所有 Scanner 部署的自定义标签。 |
|
| 附加到所有 Scanner 部署的自定义注解。 |
|
| 所有 Scanner 容器的自定义环境变量。 |
|
| 附加到 Scanner DB 创建的所有对象的自定义标签。 |
|
| 附加到 Scanner DB 创建的所有对象的自定义注解。 |
|
| 附加到所有 Scanner DB 部署的自定义标签。 |
|
| 附加到所有 Scanner DB 部署的自定义注解。 |
|
| 所有 Scanner DB 容器的自定义环境变量。 |
|
| 附加到 Scanner V4 Indexer 创建并放入属于它们的 pod 的所有对象的自定义标签。 |
|
| 附加到 Scanner V4 Indexer 创建并属于它们的 pod 的所有对象的自定义注解。 |
|
| 附加到 Scanner V4 Indexer 创建并放入属于它们的 pod 的所有对象的自定义标签。 |
|
| 附加到 Scanner V4 Indexer 创建并属于它们的 pod 的所有对象的自定义注解。 |
|
| 所有 Scanner V4 Indexer 容器以及属于它们的 pod 的自定义环境变量。 |
|
| 附加到 Scanner V4 Matcher 创建并属于它们的 pod 的所有对象的自定义标签。 |
|
| 附加到 Scanner V4 Matcher 创建并属于它们的 pod 的所有对象的自定义注解。 |
|
| 附加到 Scanner V4 Matcher 创建并属于它们的 pod 的所有对象的自定义标签。 |
|
| 附加到 Scanner V4 Matcher 创建并属于它们的 pod 的所有对象的自定义注解。 |
|
| 所有 Scanner V4 Matcher 容器以及属于它们的 pod 的自定义环境变量。 |
|
| 附加到 Scanner V4 DB 创建并属于它们的 pod 的所有对象的自定义标签。 |
|
| 附加到 Scanner V4 DB 创建并属于它们的 pod 的所有对象的自定义注解。 |
|
| 附加到 Scanner V4 DB 创建并属于它们的 pod 的所有对象的自定义标签。 |
|
| 附加到 Scanner V4 DB 创建并属于它们的 pod 的所有对象的自定义注解。 |
|
| 所有 Scanner V4 DB 容器以及属于它们的 pod 的自定义环境变量。 |
您还可以使用:
-
customize.other.service/*.labels和customize.other.service/*.annotations参数,为所有对象指定标签和注解。 -
或者,提供特定的服务名称,例如
customize.other.service/central-loadbalancer.labels和customize.other.service/central-loadbalancer.annotations作为参数,并设置它们的值。
4.1.2.2.2.11. 高级自定义 复制链接链接已复制到粘贴板!
本节中指定的参数仅用于信息。红帽不支持带有修改的命名空间和发行版本名称的 RHACS 实例。
| 参数 | Description |
|---|---|
|
|
使用 |
|
|
使用 |
4.1.2.2.3. 声明性配置值 复制链接链接已复制到粘贴板!
要使用声明性配置,您必须创建一个 YAML 文件(在这个示例中,名为 "declarative-config-values.yaml")),以将声明性配置挂载添加到 Central。此文件用于 Helm 安装。
流程
使用以下示例创建 YAML 文件(本例中为
declarative-config-values.yaml):Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
安装 Central 服务 Helm chart,如"安装 central-services Helm Chart"中所述,引用
declarative-config-values.yaml文件。
4.1.2.2.4. 安装 central-services Helm chart 复制链接链接已复制到粘贴板!
配置 values-public.yaml 和 values-private.yaml 文件后,安装 central-services Helm Chart 来部署集中式组件(Central 和 Scanner)。
流程
运行以下命令:
helm install -n stackrox --create-namespace \ stackrox-central-services rhacs/central-services \ -f <path_to_values_public.yaml> -f <path_to_values_private.yaml>
$ helm install -n stackrox --create-namespace \ stackrox-central-services rhacs/central-services \ -f <path_to_values_public.yaml> -f <path_to_values_private.yaml>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 使用
-f选项指定 YAML 配置文件的路径。
可选:如果使用声明性配置,请将 -f <path_to_declarative-config-values.yaml 添加到此命令,以便在 Central 中挂载声明性配置文件。
4.1.2.3. 在部署 central-services Helm Chart 后更改配置选项 复制链接链接已复制到粘贴板!
在部署 central-services Helm Chart 后,您可以对任何配置选项进行更改。
当使用 helm upgrade 命令进行更改时,会应用以下准则和要求:
-
您还可以使用
--set或--set-file参数指定配置值。但是,这些选项不会被保存,每当您进行更改时,您必须手动指定所有选项。 有些更改(如启用新组件)需要为组件发布新证书。因此,在进行这些更改时,您必须提供 CA。
-
如果 CA 在初始安装过程中由 Helm Chart 生成,则必须从集群中检索这些值,并将其提供给
helm upgrade命令。central-servicesHelm Chart 的安装后备注包括用于检索自动生成的值的命令。 -
如果 CA 在 Helm Chart 之外生成,并在安装
central-servicesChart 的过程中提供,那么您必须在使用helm upgrade命令时再次执行该操作,例如,使用带有helm upgrade命令的--reuse-values标志。
-
如果 CA 在初始安装过程中由 Helm Chart 生成,则必须从集群中检索这些值,并将其提供给
流程
-
使用新值更新
values-public.yaml和values-private.yaml配置文件。 运行
helm upgrade命令并使用-f选项指定配置文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 如果您修改了没有包括在
values_public.yaml和values_private.yaml文件中的值,请包含--reuse-values参数。
4.1.3. 使用 roxctl CLI 安装 Central 复制链接链接已复制到粘贴板!
对于生产环境,红帽建议使用 Operator 或 Helm chart 安装 RHACS。除非有需要使用此方法的特定安装需要,否则不要使用 roxctl 安装方法。
4.1.3.1. 安装 roxctl CLI 复制链接链接已复制到粘贴板!
要安装 Red Hat Advanced Cluster Security for Kubernetes,您必须下载二进制文件来安装 roxctl CLI。您可以在 Linux、Windows 或 macOS 上安装 roxctl。
4.1.3.1.1. 在 Linux 中安装 roxctl CLI 复制链接链接已复制到粘贴板!
您可以按照以下流程在 Linux 上安装 roxctl CLI 二进制文件。
用于 Linux 的 roxctl CLI 可用于 amd 64、rm64、 ppc64le 和 s390x 架构。
流程
确定目标操作系统的
roxctl架构:arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 下载
roxctlCLI:curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Linux/roxctl${arch}"$ curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Linux/roxctl${arch}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使
roxctl二进制文件可执行:chmod +x roxctl
$ chmod +x roxctlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
roxctl二进制文件放到PATH中的目录中:要查看您的
PATH,请执行以下命令:echo $PATH
$ echo $PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证您已安装的
roxctl版本:roxctl version
$ roxctl versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1.3.1.2. 在 macOS 上安装 roxctl CLI 复制链接链接已复制到粘贴板!
您可以按照以下流程在 macOS 中安装 roxctl CLI 二进制文件。
macOS 的 roxctl CLI 可用于 amd64 和 arm64 架构。
流程
确定目标操作系统的
roxctl架构:arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 下载
roxctlCLI:curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Darwin/roxctl${arch}"$ curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Darwin/roxctl${arch}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从二进制文件中删除所有扩展属性:
xattr -c roxctl
$ xattr -c roxctlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使
roxctl二进制文件可执行:chmod +x roxctl
$ chmod +x roxctlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
roxctl二进制文件放到PATH中的目录中:要查看您的
PATH,请执行以下命令:echo $PATH
$ echo $PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证您已安装的
roxctl版本:roxctl version
$ roxctl versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1.3.1.3. 在 Windows 上安装 roxctl CLI 复制链接链接已复制到粘贴板!
您可以按照以下流程在 Windows 上安装 roxctl CLI 二进制文件。
用于 Windows 的 roxctl CLI 可用于 amd64 架构。
流程
下载
roxctlCLI:curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Windows/roxctl.exe
$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Windows/roxctl.exeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证您已安装的
roxctl版本:roxctl version
$ roxctl versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1.3.2. 使用交互式安装程序 复制链接链接已复制到粘贴板!
使用交互式安装程序为您的环境生成所需的 secret、部署配置和部署脚本。
流程
运行交互式 install 命令:
roxctl central generate interactive
$ roxctl central generate interactiveCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要使用
roxctlCLI 安装 RHACS 会创建 PodSecurityPolicy (PSP)对象,以便向后兼容。如果要在 Kubernetes 版本 1.25 及更新版本上,或在 OpenShift Container Platform version 4.12 和更新版本上安装 RHACS,则必须禁用 PSP 对象的创建。要做到这一点,对于roxctl central generate和roxctl sensor generate命令,将--enable-pod-security-policies选项设置为false。按 Enter 接受提示的默认值或根据需要输入自定义值。以下示例显示了交互式安装程序提示:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 如果要添加自定义 TLS 证书,请提供 PEM 编码证书的文件路径。当您指定自定义证书时,交互式安装程序还会提示您为您要使用的自定义证书提供 PEM 私钥。
- 2
- 如果您正在运行 Kubernetes 版本 1.25 或更高版本,请将此值设置为
false。 - 3
- 有关对身份验证和授权使用声明配置的更多信息,请参阅 Red Hat Advanced Cluster Security for Kubernetes 中的"管理 RBAC"中的"Declarative configuration for authentication and authorization resources"。
- 4
- 要使用 RHACS 门户,您必须使用路由(负载均衡器或节点端口)公开中。
- 5
- 有关对身份验证和授权使用声明配置的更多信息,请参阅 Red Hat Advanced Cluster Security for Kubernetes 中的"管理 RBAC"中的"Declarative configuration for authentication and authorization resources"。
警告在 OpenShift Container Platform 中,对于 hostPath 卷,您必须修改 SELinux 策略以允许访问主机和容器共享的目录。这是因为 SELinux 默认阻止目录共享。要修改 SELinux 策略,请运行以下命令:
sudo chcon -Rt svirt_sandbox_file_t <full_volume_path>
$ sudo chcon -Rt svirt_sandbox_file_t <full_volume_path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 但是,红帽不推荐修改 SELinux 策略,而是在 OpenShift Container Platform 上安装时使用 PVC。
在完成时,安装程序会创建一个名为 central-bundle 的文件夹,其中包含用于部署 Central 所需的 YAML 清单和脚本。另外,它显示了您需要运行的脚本的屏幕说明,以部署其他可信证书颁发机构、中部和扫描器,以及登录 RHACS 门户的身份验证说明(如果您回答提示时未提供密码)。
4.1.3.3. 运行中央安装脚本 复制链接链接已复制到粘贴板!
运行交互式安装程序后,您可以运行 setup.sh 脚本来安装 Central。
流程
运行
setup.sh脚本来配置镜像 registry 访问:./central-bundle/central/scripts/setup.sh
$ ./central-bundle/central/scripts/setup.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建所需资源:
oc create -R -f central-bundle/central
$ oc create -R -f central-bundle/centralCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查部署进度:
oc get pod -n stackrox -w
$ oc get pod -n stackrox -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Central 运行后,找到 RHACS 门户 IP 地址并在浏览器中打开。根据您在回答提示时选择的风险,请使用以下方法之一获取 IP 地址。
Expand 公开方法 命令 地址 Example Route(路由)
oc -n stackrox get route central在输出中
HOST/PORT列下的地址https://central-stackrox.example.route节点端口
oc get node -owide && oc -n stackrox get svc central-loadbalancer任何节点的 IP 或主机名,在服务显示的端口中
https://198.51.100.0:31489Load Balancer
oc -n stackrox get svc central-loadbalancer在端口 443 上为服务显示 EXTERNAL-IP 或主机名
https://192.0.2.0无
central-bundle/central/scripts/port-forward.sh 8443https://localhost:8443https://localhost:8443
如果您在互动安装过程中选择了自动生成的密码,您可以运行以下命令将其记录到 Central:
cat central-bundle/password
$ cat central-bundle/password
4.2. 使用 Operator 为 RHACS 配置 Central 配置选项 复制链接链接已复制到粘贴板!
在使用 Operator 安装 Central 实例时,您可以配置可选设置。
4.2.1. 使用 Operator 的中央配置选项 复制链接链接已复制到粘贴板!
当您创建 Central 实例时,Operator 列出了 Central 自定义资源的以下配置选项。
下表包含外部 PostgreSQL 数据库的设置。
4.2.1.1. Central 设置 复制链接链接已复制到粘贴板!
| 参数 | Description |
|---|---|
|
|
指定在 |
|
| 默认情况下,Central 仅提供内部 TLS 证书,这意味着您需要在入口或负载均衡器级别处理 TLS 终止。如果要在 Central 中终止 TLS 并提供自定义服务器证书,您可以指定包含证书和私钥的 secret。 |
|
|
将此参数设置为 |
|
| 如果节点选择器选择污点节点,请使用此参数指定 taint toleration key、value 和 effect。此参数主要用于基础架构节点。 |
|
| 使用此参数将主机和 IP 地址注入 pod 的主机文件中。 |
|
|
把它设置为 |
|
| 使用此参数为您的负载均衡器指定自定义端口。 |
|
| 使用这个参数为您的负载均衡器指定保留的静态 IP 地址。 |
|
|
把它设置为 |
|
| 使用此参数指定用于 Central 的 passthrough 路由的自定义主机名。保留为不设置,以接受 OpenShift Container Platform 提供的默认值。 |
|
|
把它设置为 |
|
| 使用此参数指定用于 Central 的重新加密路由的自定义主机名。保留为不设置,以接受 OpenShift Container Platform 提供的默认值。 |
|
| 使用此参数指定 PEM 编码的证书链,该链可能用来建立完整的信任链。默认情况下,OpenShift Container Platform 提供证书颁发机构。 |
|
| 使用此参数指定路由上提供的 PEM 编码证书。OpenShift Container Platform 证书颁发机构签署默认证书。 |
|
| 使用此参数指定最终目标的 CA 证书,即 Central。OpenShift Container Platform 路由器使用此证书对安全连接执行健康检查。默认情况下,Central 提供证书颁发机构。 |
|
| 使用此参数指定路由上提供的证书的 PEM 编码私钥。OpenShift Container Platform 证书颁发机构签署默认证书。 |
|
|
把它设置为 |
|
| 使用此选项指定显式节点端口。 |
|
|
使用 |
|
| 如果您希望此组件只在特定节点上运行,您可以使用此参数来配置节点选择器。 |
|
| 使用此参数覆盖 Central 的默认资源限值。 |
|
| 使用此参数覆盖 Central 的默认资源请求。 |
|
| 使用此参数指定 Central 镜像的镜像 pull secret。 |
|
|
在 |
|
|
设置此参数不会部署 Central DB,Central 将使用指定的连接字符串进行连接。如果为此参数指定值,还必须为
|
|
| 如果节点选择器选择污点节点,请使用此参数为 Central DB 指定污点容限键、值和效果。此参数主要用于基础架构节点。 |
|
| 使用此参数将主机和 IP 地址注入 pod 的主机文件中。 |
|
| 指定将持久数据存储在主机上的主机路径。红帽不推荐使用它。如果需要使用主机路径,则必须将其与节点选择器一起使用。 |
|
|
要管理的持久性数据的 PVC 名称。如果没有具有指定名称的 PVC,则会创建它。如果没有设置,则默认值为 |
|
| 通过声明创建持久性卷的大小。默认情况下会自动生成。 |
|
| 用于 PVC 的存储类的名称。如果您的集群没有配置默认存储类,则必须为此参数提供一个值。 |
|
| 使用此参数覆盖 Central 和 Central DB 之间的默认最小连接池大小。默认值为 10。 |
|
| 使用此参数覆盖 Central 和 Central DB 之间的默认最大连接池大小。默认值为 90。确保这个值不超过 Central DB 支持的最大连接数:
|
|
| 使用此参数覆盖 Central DB 的默认资源限值。 |
|
| 使用此参数覆盖 Central DB 的默认资源请求。 |
|
| 如果您希望此组件只在特定节点上运行,您可以使用此参数来配置节点选择器。 |
4.2.1.2. Operator 的 stackrox Scanner 设置 复制链接链接已复制到粘贴板!
| 参数 | Description |
|---|---|
|
| 如果您希望此扫描程序仅在特定节点上运行,您可以使用此参数来配置节点选择器。 |
|
| 如果节点选择器选择污点节点,请使用此参数为 StackRox Scanner 指定污点容限键、值和效果。此参数主要用于基础架构节点。 |
|
| 使用此参数将主机和 IP 地址注入 pod 的主机文件中。 |
|
| 使用此参数覆盖 StackRox Scanner 的默认资源限值。 |
|
| 使用此参数覆盖 StackRox Scanner 的默认资源请求。 |
|
| 启用后,分析器副本数量会根据指定的限值来动态管理。 |
|
| 指定分析器自动扩展配置中使用的最大副本 |
|
| 指定在分析器自动扩展配置中使用的最小副本 |
|
| 禁用自动扩展时,副本数始终配置为与此值匹配。 |
|
| 如果您希望此组件只在特定节点上运行,您可以使用此参数来配置节点选择器。 |
|
| 如果节点选择器选择污点节点,请使用此参数为 StackRox Scanner DB 指定污点容限键、值和效果。此参数主要用于基础架构节点。 |
|
| 使用此参数将主机和 IP 地址注入 pod 的主机文件中。 |
|
| 使用此参数覆盖 StackRox Scanner DB 的默认资源限值。 |
|
| 使用此参数覆盖 StackRox Scanner DB 的默认资源请求。 |
|
|
使用 |
|
| 如果您不想部署 StackRox Scanner,您可以使用此参数禁用它。如果您禁用 StackRox Scanner,则本节中的所有其他设置都无效。 |
4.2.1.3. Operator 的扫描程序 V4 设置 复制链接链接已复制到粘贴板!
| 参数 | 描述 |
|---|---|
|
| 如果您希望此组件只在特定节点上运行,您可以使用此参数来配置节点选择器。 |
|
| 如果节点选择器选择污点节点,请使用此参数为 Scanner V4 DB 指定污点容限键、值和效果。此参数主要用于基础架构节点。 |
|
| 使用此参数将主机和 IP 地址注入 pod 的主机文件中。 |
|
| 使用此参数覆盖 Scanner V4 DB 的默认资源限值。 |
|
| 使用此参数覆盖 Scanner V4 DB 的默认资源请求。 |
|
|
为 Scanner V4 管理持久性数据的 PVC 名称。默认值为 |
|
| 为 Scanner V4 管理持久性数据的 PVC 大小。 |
|
| 用于 PVC 的存储类的名称。如果您的集群没有配置默认存储类,则必须为此参数提供一个值。 |
|
| 如果您希望此组件只在特定节点上运行,您可以使用此参数来配置节点选择器。 |
|
| 如果节点选择器选择污点节点,请使用此参数为 Scanner V4 Indexer 指定污点容限键、值和效果。此参数主要用于基础架构节点。 |
|
| 使用此参数将主机和 IP 地址注入 pod 的主机文件中。 |
|
| 使用此参数覆盖 Scanner V4 Indexer 的默认资源限值。 |
|
| 使用此参数覆盖 Scanner V4 Indexer 的默认资源请求。 |
|
| 启用后,Scanner V4 Indexer 副本的数量会根据指定的限值来动态管理。 |
|
| 指定 Scanner V4 Indexer 自动扩展配置中使用的最大副本。 |
|
| 指定 Scanner V4 Indexer 自动扩展配置中使用的最小副本。 |
|
| 当 Scanner V4 Indexer 禁用自动扩展时,副本数始终配置为与这个值匹配。 |
|
| 如果您希望此组件只在特定节点上运行,您可以使用此参数来配置节点选择器。 |
|
| 如果节点选择器选择污点节点,请使用此参数为 Scanner V4 Matcher 指定污点容限键、值和效果。此参数主要用于基础架构节点。 |
|
| 使用此参数将主机和 IP 地址注入 pod 的主机文件中。 |
|
| 使用此参数覆盖 Scanner V4 Matcher 的默认资源限值。 |
|
| 使用此参数覆盖 Scanner V4 Matcher 的默认资源请求。 |
|
| 启用后,Scanner V4 Matcher 副本的数量会根据指定的限值来动态管理。 |
|
| 指定 Scanner V4 Matcher 自动扩展配置中使用的最大副本。 |
|
| 指定 Scanner V4 Matcher 自动扩展配置中使用的最小副本。 |
|
| 当 Scanner V4 Matcher 禁用自动扩展时,副本数始终配置为与这个值匹配。 |
|
|
为 Scanner V4 配置监控端点。监控端点允许其他服务从与 Prometheus 兼容的格式提供的 Scanner V4 收集指标。使用 |
|
|
如果没有指定此设置,则会为新安装启用 Scanner V4。对于来自较早版本的更新,如果之前还没有启用,则在升级中不会启用 Scanner V4。要禁用 Scanner V4,设置为 |
4.2.1.4. 常规设置和各种设置 复制链接链接已复制到粘贴板!
| 参数 | 描述 |
|---|---|
|
| 允许为 Central 部署指定自定义注解。 |
|
| 用于配置环境变量的高级设置。 |
|
| 配置 RHACS 是否应该以在线或离线模式运行。在离线模式下,禁用对漏洞定义和内核模块的自动更新。 |
|
|
指定 |
|
|
如果将此选项设置为 |
|
|
要在网络级别提供安全性,RHACS 在安装了 Central 的命名空间中创建默认 警告 禁用创建默认网络策略可能会破坏 RHACS 组件之间的通信。如果禁用创建默认策略,则必须创建自己的网络策略来允许此通信。 |
|
| 请参阅"使用带有 overlays 的 Operator 自定义安装"。 |
|
| 要信任的安全集群的其他可信 CA 证书。这些证书通常用于使用私有证书颁发机构与服务集成。 |
4.2.2. 使用带有 overlay 的 Operator 自定义安装 复制链接链接已复制到粘贴板!
了解如何使用带有 overlay 的 Operator 方法定制 RHACS 安装。
4.2.2.1. overlays 复制链接链接已复制到粘贴板!
当 Central 或 SecuredCluster 自定义资源不公开某些低级别配置选项时,您可以使用 .spec.overlays 字段进行调整。使用此字段修改由这些自定义资源生成的 Kubernetes 资源。
.spec.overlays 字段包含一系列补丁,按列出的顺序应用。这些补丁由 Operator 在部署到集群前由 Kubernetes 资源进行处理。
Central 和 SecuredCluster 中的 .spec.overlays 字段允许用户以任意方式修改低级别 Kubernetes 资源。只有在通过 SecuredCluster 或 Central 自定义资源不可用时,才使用此功能。
对 .spec.overlays 功能的支持主要受限制,因为它授予对 Kubernetes 资源进行内部化和高度特定修改的能力,这可能会显著地从一个实施到另一个实现。这种定制的定制增加了超越标准使用方案的复杂性,从而难以提供广泛的支持。每个修改都是唯一的,在产品的不同版本和配置中都无法预测地与 Kubernetes 系统交互。这种可变性意味着故障排除和保证这些自定义的稳定性需要一定程度的专业知识和理解,特定于每个个人设置。因此,虽然此功能可以支持定制 Kubernetes 资源来满足精确的需求,但必须假定为确保配置的兼容性和稳定性,特别是在升级或更改底层产品的过程中。
以下示例显示了覆盖的结构:
4.2.2.1.1. 添加覆盖 复制链接链接已复制到粘贴板!
对于自定义,您可以在 Central 或 SecuredCluster 自定义资源中添加覆盖。使用 OpenShift CLI (oc)或 OpenShift Container Platform Web 控制台进行修改。
如果覆盖没有按预期工作,请检查 RHACS Operator 日志是否有语法错误或问题记录。
4.2.2.2. 覆盖示例 复制链接链接已复制到粘贴板!
4.2.2.2.1. 为 Central ServiceAccount 指定 EKS pod 角色 ARN 复制链接链接已复制到粘贴板!
为 中央 ServiceAccount 添加 Amazon Elastic Kubernetes Service (EKS) pod 角色 Amazon Resource Name (ARN)注解,如下例所示:
4.2.2.2.2. 将环境变量注入到中央部署中 复制链接链接已复制到粘贴板!
将环境变量注入 中央 部署中,如下例所示:
4.2.2.2.3. 使用入口规则扩展网络策略 复制链接链接已复制到粘贴板!
为端口 999 流量在 allow-ext-to-central 网络策略中添加入站规则,如下例所示:
4.2.2.2.4. 修改 ConfigMap 数据 复制链接链接已复制到粘贴板!
修改 central-endpoints ConfigMap 数据,如下例所示:
本例演示了如何 覆盖数据 下的单个项目(文件)。
按照以下步骤按照以下步骤操作:
-
使用 verbatim
键,而不是值。这有助于通过换行或引号等字符,以便不会受到影响。 -
您必须转义
path键中文件名中的点,或者您可以将路径写为data["endpoints.yaml"]。
4.2.2.2.5. 将容器添加到 中央 部署中 复制链接链接已复制到粘贴板!
在 中央 部署中添加新容器,如下例所示:
RHACS 在安装过程中使用特殊工件,它允许 Central 与您要添加的安全集群安全通信。在 4.7 发行前,RHACS 使用 init 捆绑包 专门用于启动安全通信频道。从 4.7 开始,RHACS 提供了对称为 集群注册 secret (CRSes)的 init 捆绑包的替代选择。
集群注册 secret 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
集群注册 secret (CRS)提供改进的安全性,并更易于使用。CRS 包含单个令牌,可在使用 Operator 和 Helm 安装方法安装 RHACS 时使用。
CRSes 提供更高的安全性,因为它们仅用于注册新的安全集群。如果泄漏,则 init 捆绑包中的证书和密钥可用于模拟安全集群中运行的服务。相反,CRS 中的证书和密钥只能用于 注册 新集群。
在使用 CRS 设置集群后,特定于服务的证书由 Central 发布并发送到新的安全集群。这些服务证书用于 Central 和安全集群之间的通信。因此,可以在集群注册后撤销 CRS,而无需断开安全集群。
您可在安装过程中使用 init 捆绑包或集群注册 secret (CRS)。但是,RHACS 尚不提供使用门户创建 CRS 的方法。因此,您必须使用 roxctl CLI 创建 CRS。
在设置安全集群前,您必须创建一个 init 捆绑包或 CRS。然后,安全集群使用此捆绑包或 CRS 与 Central 进行身份验证。您可以使用 RHACS 门户或 roxctl CLI 创建 init 捆绑包。如果使用 CRS,则必须使用 roxctl CLI 创建它。
然后,您可以使用 OpenShift Container Platform Web 控制台或 oc 或 kubectl CLI 应用 init 捆绑包或 CRS。如果使用 Helm 安装 RHACS,在运行 helm install 命令时提供 init 捆绑包或 CRS。
您必须具有 Admin 用户角色才能创建 init 捆绑包或 CRS。
4.3.1. 生成 init 捆绑包 复制链接链接已复制到粘贴板!
4.3.1.1. 使用 RHACS 门户生成 init 捆绑包 复制链接链接已复制到粘贴板!
您可以使用 RHACS 门户创建包含 secret 的 init 捆绑包。
您必须具有 Admin 用户角色才能创建 init 捆绑包。
流程
- 查找 RHACS 门户的地址,如"使用 Operator 方法验证中心安装"中所述。
- 登录到 RHACS 门户。
- 如果您没有安全集群或现有的 init 捆绑包,则会出现 Platform Configuration → Clusters 页面。点 Create init bundle。
- 为集群 init 捆绑包输入一个名称。
- 选择您的平台。
- 选择用于安全集群的安装方法: Operator 或 Helm Chart。
点 Download 生成并下载 init 捆绑包,该捆绑包以 YAML 文件的形式创建。如果您使用相同的安装方法,您可以使用一个 init 捆绑包及其对应 YAML 文件用于所有安全集群。
重要安全地存储此捆绑包,因为它包含 secret。
- 使用它来应用 init 捆绑包,在安全集群中创建资源。
- 在每个集群中安装安全的集群服务。
4.3.1.2. 使用 roxctl CLI 生成 init 捆绑包 复制链接链接已复制到粘贴板!
您可以使用 roxctl CLI 创建带有 secret 的 init 捆绑包。
您必须具有 Admin 用户角色才能创建 init 捆绑包。
先决条件
您已配置了
ROX_API_TOKEN和ROX_CENTRAL_ADDRESS环境变量:运行以下命令设置
ROX_API_TOKEN:export ROX_API_TOKEN=<api_token>
$ export ROX_API_TOKEN=<api_token>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令设置
ROX_CENTRAL_ADDRESS环境变量:export ROX_CENTRAL_ADDRESS=<address>:<port_number>
$ export ROX_CENTRAL_ADDRESS=<address>:<port_number>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
流程
要为 Helm 安装生成包含 secret 的集群 init 捆绑包,请运行以下命令:
roxctl -e "$ROX_CENTRAL_ADDRESS" \ central init-bundles generate <cluster_init_bundle_name> --output \ cluster_init_bundle.yaml
$ roxctl -e "$ROX_CENTRAL_ADDRESS" \ central init-bundles generate <cluster_init_bundle_name> --output \ cluster_init_bundle.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要为 Operator 安装生成包含 secret 的集群 init 捆绑包,请运行以下命令:
roxctl -e "$ROX_CENTRAL_ADDRESS" \ central init-bundles generate <cluster_init_bundle_name> --output-secrets \ cluster_init_bundle.yaml
$ roxctl -e "$ROX_CENTRAL_ADDRESS" \ central init-bundles generate <cluster_init_bundle_name> --output-secrets \ cluster_init_bundle.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要确保您安全地存储此捆绑包,因为它包含 secret。您可以使用同一捆绑包来设置多个安全集群。
4.3.2. 在安全集群中应用 init 捆绑包 复制链接链接已复制到粘贴板!
在配置安全集群前,您必须使用以下方法应用 init 捆绑包,以便在集群中创建所需的资源。应用 init 捆绑包允许安全集群上的服务与 Central 通信。
如果使用 Helm chart 安装,请不要执行此步骤。使用 Helm 完成安装 ; 请参阅"使用 Helm chart 在安全集群中安装 RHACS"。
先决条件
- 您必须生成了一个包含 secret 的 init 捆绑包。
-
您必须在要安装安全集群服务的集群中创建了
stackrox项目或命名空间。不需要为项目使用stackrox,但请确保在扫描集群时不会报告 RHACS 进程的漏洞。
流程
要创建资源,请只执行以下步骤之一:
-
使用 OpenShift Container Platform Web 控制台创建资源:在 OpenShift Container Platform Web 控制台中,确保您位于
stackrox命名空间中。在顶部菜单中,点 + 打开 Import YAML 页面。您可以拖动 init 捆绑包文件或将其内容复制并粘贴到编辑器中,然后点 Create。命令完成后,显示显示collector-tls、sensor-tls和admission-control-tls资源已创建。 使用 Red Hat OpenShift CLI 创建资源:使用 Red Hat OpenShift CLI,运行以下命令来创建资源:
oc create -f <init_bundle.yaml> \ -n <stackrox>
$ oc create -f <init_bundle.yaml> \1 -n <stackrox>2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3.3. 生成集群注册 secret (CRS) 复制链接链接已复制到粘贴板!
4.3.3.1. 使用 roxctl CLI 生成 CRS 复制链接链接已复制到粘贴板!
您可以使用 roxctl CLI 创建集群注册 secret。
您必须具有 Admin 用户角色才能创建 CRS。
先决条件
您已配置了
ROX_API_TOKEN和ROX_CENTRAL_ADDRESS环境变量:运行以下命令设置
ROX_API_TOKEN:export ROX_API_TOKEN=<api_token>
$ export ROX_API_TOKEN=<api_token>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令设置
ROX_CENTRAL_ADDRESS环境变量:export ROX_CENTRAL_ADDRESS=<address>:<port_number>
$ export ROX_CENTRAL_ADDRESS=<address>:<port_number>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
流程
要生成 CRS,请运行以下命令:
roxctl -e "$ROX_CENTRAL_ADDRESS" \ central crs generate <crs_name> \ --output <file_name>
$ roxctl -e "$ROX_CENTRAL_ADDRESS" \ central crs generate <crs_name> \1 --output <file_name>2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要确保您安全地存储这个文件,因为它包含 secret。您可以使用同一文件来设置多个安全集群。您无法检索之前生成的 CR。
根据您选择的输出,命令可能会返回有关 CRS 和 YAML 文件的一些 INFO 消息。
输出示例
4.3.4. 在安全集群中应用集群注册 secret (CRS) 复制链接链接已复制到粘贴板!
在配置安全集群前,您必须将 CRS 应用到集群。应用 CR 后,安全集群上的服务可以与 Central 安全地通信。
如果使用 Helm chart 安装,请不要执行此步骤。使用 Helm 完成安装 ; 请参阅"使用 Helm chart 在安全集群中安装 RHACS"。
先决条件
- 您必须已生成一个 CRS。
流程
要创建资源,请只执行以下步骤之一:
-
使用 OpenShift Container Platform Web 控制台创建资源:在 OpenShift Container Platform Web 控制台中,进入
stackrox项目或您要安装安全集群服务的项目。在顶部菜单中,点 + 打开 Import YAML 页面。您可以将 CRS 文件或者复制并粘贴到编辑器中,然后点 Create。当命令完成后,显示名为cluster-registration-secret的 secret 被创建。 使用 Red Hat OpenShift CLI 创建资源:使用 Red Hat OpenShift CLI,运行以下命令来创建资源:
oc create -f <file_name.yaml> \ -n <stackrox>
$ oc create -f <file_name.yaml> \1 -n <stackrox>2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3.5. 后续步骤 复制链接链接已复制到粘贴板!
- 在您要监控的所有集群中安装 RHACS 安全集群服务。
4.4. 在 Red Hat OpenShift 上为 RHACS 安装安全集群服务 复制链接链接已复制到粘贴板!
您可以使用以下方法之一在安全集群中安装 RHACS:
- 使用 Operator 安装
- 使用 Helm chart 安装
-
使用
roxctlCLI 安装(除非您有特定的安装需要使用它)
4.4.1. 使用 Operator 在安全集群中安装 RHACS 复制链接链接已复制到粘贴板!
要使用 Operator 安装 RHACS,您首先安装 Operator,然后使用它来在安全集群中安装 RHACS。
4.4.1.1. 安装过程中使用的 Operator 注解 复制链接链接已复制到粘贴板!
RHACS 使用附加到自定义资源(CR)的注解,以便在使用 Operator 执行安装时,特定配置项目的默认值由 Operator 根据当前环境在运行时决定,允许之前配置的项目的值保留。
对于某些配置项,使用静态默认值进行安装是理想的选择。从 RHACS 版本 4.8 开始,Operator 可以添加附加到您应用到集群的 CR 的注解。这些注解允许 Operator 之前被保留并在以后重新应用,即使全新安装的默认行为已经改变。总之,RHACS 使用注解来持久保留运行时默认值。这意味着 Operator 在运行时决定特定配置设置的默认值。
例如,在版本 4.8 及更高版本中,如果没有为启用 Scanner V4 指定一个值,则默认行为是启用 Scanner V4。但是,如果在 CR 中配置了值,如 disable,RHACS 将使用该值。在 Scanner V4 示例中,在 4.7 版本中默认禁用 Scanner V4。当使用 Operator 更新至 4.8 版本时,禁用设置会保留并禁用 Scanner V4。
注解采用 feature-defaults.platform.stackrox.io/<identifier> 的形式。例如,feature-defaults.platform.stackrox.io/scannerV4 是注解,它允许 Operator 在升级到 RHACS 版本 4.8 期间保留默认的 Scanner V4 启用切换稳定。
不要更改或删除这些注解。
4.4.1.2. 安装安全的集群服务 复制链接链接已复制到粘贴板!
您可以使用 Operator 在集群中安装 Secured Cluster 服务,它会创建 SecuredCluster 自定义资源。您必须在要监控的环境中的每个集群中安装 Secured Cluster 服务。
安装 Red Hat Advanced Cluster Security for Kubernetes 时:
-
如果您是首次安装 RHACS,您必须首先安装
Central自定义资源,因为SecuredCluster自定义资源安装依赖于 Central 生成的证书。 -
不要在名称以
kube、openshift或redhat开头的项目中安装SecuredCluster,或在istio-system项目中安装 SecuredCluster。 -
如果要在同时托管 Central 的集群中安装 RHACS
SecuredCluster自定义资源,请确保将其安装到与 Central 相同的命名空间中安装。 -
如果要在没有主机 Central 的集群中安装 Red Hat Advanced Cluster Security for Kubernetes
SecuredCluster自定义资源,红帽建议您在自己的项目中安装 Red Hat Advanced Cluster Security for KubernetesSecuredCluster自定义资源,而不是在您安装了 Red Hat Advanced Cluster Security for Kubernetes Operator 的项目中。
先决条件
- 如果使用 OpenShift Container Platform,您必须安装 4.12 或更高版本。
- 您已在要保护的集群中安装了 RHACS Operator,称为安全集群。
-
您已生成了 init 捆绑包或集群注册 secret (CRS),并将其应用到推荐的
stackrox命名空间中的集群。
流程
- 在安全集群的 OpenShift Container Platform Web 控制台中,进入 Operators → Installed Operators 页面。
- 点 RHACS Operator。
如果您在推荐的命名空间中安装了 Operator,OpenShift Container Platform 会将项目列为
rhacs-operator。注意-
如果在不同的命名空间中安装了 Operator,OpenShift Container Platform 将列出该命名空间的名称,而不是
rhacs-operator。
-
如果在不同的命名空间中安装了 Operator,OpenShift Container Platform 将列出该命名空间的名称,而不是
- 点 Installed Operators。
-
应用 init 捆绑包或 CRS 时,您应该已创建了
stackrox命名空间。通过验证菜单中的 Project:stackrox 已被选中,确保您位于此命名空间中。 - 在 Provided APIs 中,单击 Secured Cluster。
- 点 Create SecuredCluster。
在 Configure via 字段中选择以下选项之一:
- 表单视图 :如果要使用屏幕字段配置安全集群且不需要更改任何其他字段,则使用这个选项。
- YAML 视图 :使用此视图使用 YAML 文件设置安全集群。YAML 文件显示在窗口中,您可以在其中编辑字段。如果您选择这个选项,请在完成编辑完该文件时,点 Create。
- 如果使用 Form view,请通过接受或编辑默认名称来输入新项目名称。默认值为 stackrox-secured-cluster-services。
- 可选:为集群添加任何标签。
-
输入您的
SecuredCluster自定义资源的唯一名称。 对于 Central 端点,请输入您的 Central 实例的地址。例如,如果 Central 位于
https://central.example.com,则将中央端点指定为central.example.com。-
只有在安装了 Central 的同一集群中安装安全集群服务时,才使用
central.stackrox.svc:443的默认值。 - 在配置多个集群时,不要使用默认值。反之,在为每个集群配置 Central Endpoint 值时使用主机名。
-
只有在安装了 Central 的同一集群中安装安全集群服务时,才使用
- 对于剩余的字段,接受默认值或配置自定义值(如果需要)。例如,如果您使用自定义证书或不可信 CA,您可能需要配置 TLS。如需更多信息,请参阅"使用 Operator 为 RHACS 配置安全集群服务选项"。
- 点 Create。
在短暂暂停后,Secured Clusters 页面会显示
stackrox-secured-cluster-services的状态。您可能会看到以下条件:- Conditions: Deployed, Initialized: 已安装安全集群服务,安全集群与 Central 通信。
- 条件 : Initialized, Irreconcilable :安全集群没有与 Central 通信。确保将在 RHACS Web 门户中创建的 init 捆绑包应用到安全集群。
后续步骤
- 配置额外的安全集群设置(可选)。
- 验证安装。
4.4.2. 使用 Helm chart 在安全集群中安装 RHACS 复制链接链接已复制到粘贴板!
您可以使用没有自定义的 Helm chart、使用默认值或配置参数自定义的 Helm chart 在安全集群中安装 RHACS。
4.4.2.1. 使用 Helm chart 在安全集群中安装 RHACS 复制链接链接已复制到粘贴板!
4.4.2.1.1. 添加 Helm Chart 仓库 复制链接链接已复制到粘贴板!
流程
添加 RHACS chart 存储库。
helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/
$ helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Red Hat Advanced Cluster Security for Kubernetes 的 Helm 仓库包括用于安装不同组件的 Helm chart,包括:
用于安装集中组件(Central 和 Scanner)的中央服务Helm Chart(
central-services)。注意您只部署集中式组件一次,并可使用同一安装监控多个独立集群。
安全集群服务 Helm Chart (
secured-cluster-services),用于安装 per-cluster 和 per-node 组件(Sensor、Admission Controller、Collector 和 Scanner-slim)。注意将 per-cluster 组件部署到要监控的每个集群中,并在要监控的所有节点中部署 per-node 组件。
验证
运行以下命令来验证添加的 chart 存储库:
helm search repo -l rhacs/
$ helm search repo -l rhacs/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用以下说明安装 secure-cluster-services Helm chart,以部署 per-cluster 和 per-node 组件(Sensor、Admission controller、Collector 和 Scanner-slim)。
先决条件
- 您必须已为集群生成 RHACS init 捆绑包或 CRS。
-
您必须有权访问 Red Hat Container Registry 和 pull secret 进行身份验证。有关从
registry.redhat.io下载镜像的详情,请参考 Red Hat Container Registry Authentication。 - 您必须具有公开 Central 服务的地址。
流程
在 OpenShift Container Platform 集群中运行以下命令之一:
如果使用 init 捆绑包,请运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果使用 CRS,请运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.2.2. 使用自定义配置 secured-cluster-services Helm chart 复制链接链接已复制到粘贴板!
本节论述了可用于 helm install 和 helm upgrade 命令的 Helm Chart 配置参数。您可以使用 --set 选项或创建 YAML 配置文件来指定这些参数。
创建以下文件来配置 Helm chart 来安装 Red Hat Advanced Cluster Security for Kubernetes:
-
公共配置文件
values-public.yaml:使用此文件保存所有非敏感配置选项。 -
专用配置文件
values-private.yaml:使用此文件保存所有敏感配置选项。确保您安全地存储这个文件。
在使用 secured-cluster-services Helm Chart 时,不要修改属于 chart 的 values.yaml 文件。
4.4.2.2.1. 配置参数 复制链接链接已复制到粘贴板!
| 参数 | Description |
|---|---|
|
| 集群的名称。 |
|
|
Central 端点的地址。如果使用一个支持非 gRPC 的负载均衡器,请使用带有 |
|
| Sensor 端点的地址,包括端口号。 |
|
| Sensor 容器的镜像拉取策略。 |
|
| Sensor 使用的内部服务到服务 TLS 证书。 |
|
| Sensor 使用的内部服务到服务 TLS 证书密钥。 |
|
| Sensor 容器的内存请求。使用此参数覆盖默认值。 |
|
| Sensor 容器的 CPU 请求。使用此参数覆盖默认值。 |
|
| Sensor 容器的内存限值。使用此参数覆盖默认值。 |
|
| Sensor 容器的 CPU 限制。使用此参数覆盖默认值。 |
|
|
将节点选择器标签指定为 |
|
| 如果节点选择器选择污点节点,请使用此参数指定污点容限键、值和 Sensor 的效果。此参数主要用于基础架构节点。 |
|
|
|
|
| Collector 镜像的名称。 |
|
| 用于主镜像的 registry 地址。 |
|
| 用于 Collector 镜像的 registry 地址。 |
|
| 用于 Scanner 镜像的 registry 地址。 |
|
| 用于 Scanner DB 镜像的 registry 地址。 |
|
| 用于 Scanner V4 镜像的 registry 地址。 |
|
| 用于 Scanner V4 DB 镜像的 registry 地址。 |
|
|
|
|
| Collector 镜像的镜像拉取策略。 |
|
|
使用 |
|
|
使用 |
|
|
|
|
| Collector 容器的镜像拉取策略。 |
|
| Compliance 容器的镜像拉取策略。 |
|
|
如果指定了 |
|
| Collector 容器的内存请求。使用此参数覆盖默认值。 |
|
| Collector 容器的 CPU 请求。使用此参数覆盖默认值。 |
|
| Collector 容器的内存限值。使用此参数覆盖默认值。 |
|
| Collector 容器的 CPU 限制。使用此参数覆盖默认值。 |
|
| Compliance 容器的内存请求。使用此参数覆盖默认值。 |
|
| Compliance 容器的 CPU 请求。使用此参数覆盖默认值。 |
|
| Compliance 容器的内存限值。使用此参数覆盖默认值。 |
|
| Compliance 容器的 CPU 限制。使用此参数覆盖默认值。 |
|
| Collector 使用的内部服务到服务的 TLS 证书。 |
|
| Collector 使用的内部服务到服务的 TLS 证书密钥。 |
|
|
此设置控制 Kubernetes 是否配置为联系 Red Hat Advanced Cluster Security for Kubernetes,并带有 |
|
|
当您将此参数设置为 |
|
|
此设置控制集群是否被配置为联系 Red Hat Advanced Cluster Security for Kubernetes,带有 |
|
| 此设置控制 Red Hat Advanced Cluster Security for Kubernetes 是否评估策略 ; 如果禁用了策略,则会自动接受所有 AdmissionReview 请求。 |
|
|
此设置控制准入控制服务的行为。您必须把 |
|
|
如果将这个选项设置为 |
|
|
将它设置为 |
|
|
在将其标记为失败前,使用此参数指定 RHACS 必须等待准入审核的最大秒数。如果准入 Webhook 在超时时间结束前没有收到请求的信息,它会失败,但处于打开状态时,它仍然允许操作成功。例如,准入控制器允许创建部署,即使扫描超时,RHACS 无法确定部署是否违反了策略。从版本 4.5 开始,红帽将 RHACS 准入控制器 webhook 的默认超时设置从 20 秒减少到 10 秒,从而导致 |
|
| Admission Control 容器的内存请求。使用此参数覆盖默认值。 |
|
| Admission Control 容器的 CPU 请求。使用此参数覆盖默认值。 |
|
| Admission Control 容器的内存限值。使用此参数覆盖默认值。 |
|
| Admission Control 容器的 CPU 限制。使用此参数覆盖默认值。 |
|
|
将节点选择器标签指定为 |
|
| 如果节点选择器选择污点节点,请使用此参数指定污点容限键、值以及 Admission Control 的效果。此参数主要用于基础架构节点。 |
|
|
如果准入控制器 Webhook 需要特定的 |
|
| Admission Control 使用的内部服务到服务的 TLS 证书。 |
|
| Admission Control 使用的内部服务对服务的 TLS 证书密钥。 |
|
|
使用此参数覆盖默认的 |
|
|
如果指定了 |
|
|
指定 |
|
|
指定 |
|
|
已弃用。如果要使用 slim Collector 镜像部署 Collector,请指定 |
|
| Sensor 的资源规格。 |
|
| Admission 控制器的资源规格。 |
|
| Collector 的资源规格。 |
|
| Collector 的 Compliance 容器的资源规格。 |
|
|
如果将此选项设置为 |
|
|
如果将此选项设置为 |
|
|
如果将此选项设置为 |
|
| 如果节点选择器选择污点节点,请使用此参数为 Scanner DB 指定污点容限键、值和效果。 |
|
| Collector 的 Compliance 容器的资源规格。 |
|
| 通过设置此参数,您可以修改扫描程序日志级别。使用这个选项仅用于故障排除目的。 |
|
|
如果将此选项设置为 |
|
| 自动扩展的最小副本数。默认值为 2。 |
|
| 自动扩展的最大副本数。默认值为 5。 |
|
|
将节点选择器标签指定为 |
|
| 如果节点选择器选择污点节点,请使用此参数为 Scanner 指定污点容限键、值和效果。 |
|
|
将节点选择器标签指定为 |
|
| 如果节点选择器选择污点节点,请使用此参数为 Scanner DB 指定污点容限键、值和效果。 |
|
| Scanner 容器的内存请求。使用此参数覆盖默认值。 |
|
| Scanner 容器的 CPU 请求。使用此参数覆盖默认值。 |
|
| Scanner 容器的内存限值。使用此参数覆盖默认值。 |
|
| Scanner 容器的 CPU 限制。使用此参数覆盖默认值。 |
|
| Scanner DB 容器的内存请求。使用此参数覆盖默认值。 |
|
| Scanner DB 容器的 CPU 请求。使用此参数覆盖默认值。 |
|
| Scanner DB 容器的内存限值。使用此参数覆盖默认值。 |
|
| Scanner DB 容器的 CPU 限制。使用此参数覆盖默认值。 |
|
|
如果将此选项设置为 |
|
|
为了在网络级别提供安全性,RHACS 在安装了安全集群资源的命名空间中创建默认 警告 禁用创建默认网络策略可能会破坏 RHACS 组件之间的通信。如果禁用创建默认策略,则必须创建自己的网络策略来允许此通信。 |
4.4.2.2.1.1. 环境变量 复制链接链接已复制到粘贴板!
您可以采用以下格式指定 Sensor 和 Admission Controller 的环境变量:
customize:
envVars:
ENV_VAR1: "value1"
ENV_VAR2: "value2"
customize:
envVars:
ENV_VAR1: "value1"
ENV_VAR2: "value2"
通过 customize 设置,您可以为此 Helm Chart 创建的所有对象指定自定义 Kubernetes 元数据(标签和注解)以及工作负载的其他 pod 标签、Pod 注解和容器环境变量。
配置是分层的,在更通用范围(例如,所有对象)中定义的元数据被覆盖为更通用范围的元数据(例如,仅适用于 Sensor 部署)。
4.4.2.2.2. 使用自定义安装 secured-cluster-services Helm chart 复制链接链接已复制到粘贴板!
配置 values-public.yaml 和 values-private.yaml 文件后,安装 secure-cluster-services Helm chart 以部署针对每个集群和每个节点组件:
- Sensor
- 准入控制器
- Collector
- scanner:当安装了 StackRox Scanner 时,对于安全集群是可选的
- scanner DB:当安装了 StackRox Scanner 时,对于安全集群是可选的
- 扫描程序 V4 Indexer 和 Scanner V4 DB:在安装 Scanner V4 时对于安全集群是可选的
先决条件
- 您必须已为集群生成 RHACS init 捆绑包。
-
您必须有权访问 Red Hat Container Registry 和 pull secret 进行身份验证。有关从
registry.redhat.io下载镜像的详情,请参考 Red Hat Container Registry Authentication。 - 您必须有用于公开 Central 服务的地址和端口号。
流程
运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
要使用持续集成(CI)系统部署 secure-cluster-services Helm Chart,请将 init 捆绑包 YAML 文件作为环境变量传递给 helm install 命令:
helm install ... -f <(echo "$INIT_BUNDLE_YAML_SECRET")
$ helm install ... -f <(echo "$INIT_BUNDLE_YAML_SECRET")
- 1
- 如果您使用 base64 编码变量,请使用
helm install … -f <(echo "$INIT_BUNDLE_YAML_SECRET" | base64 --decode)命令。
4.4.2.3. 在部署 secure-cluster-services Helm chart 后更改配置选项 复制链接链接已复制到粘贴板!
在部署 secure-cluster-services Helm Chart 后,您可以对任何配置选项进行更改。
当使用 helm upgrade 命令进行更改时,会应用以下准则和要求:
-
您还可以使用
--set或--set-file参数指定配置值。但是,这些选项不会被保存,每当您进行更改时,您必须手动指定所有选项。 有些更改(如启用新组件)需要为组件发布新证书。因此,在进行这些更改时,您必须提供 CA。
-
如果 CA 在初始安装过程中由 Helm Chart 生成,则必须从集群中检索这些值,并将其提供给
helm upgrade命令。central-servicesHelm Chart 的安装后备注包括用于检索自动生成的值的命令。 -
如果 CA 在 Helm Chart 之外生成,并在安装
central-servicesChart 的过程中提供,那么您必须在使用helm upgrade命令时再次执行该操作,例如,使用带有helm upgrade命令的--reuse-values标志。
-
如果 CA 在初始安装过程中由 Helm Chart 生成,则必须从集群中检索这些值,并将其提供给
流程
-
使用新值更新
values-public.yaml和values-private.yaml配置文件。 运行
helm upgrade命令并使用-f选项指定配置文件:helm upgrade -n stackrox \ stackrox-secured-cluster-services rhacs/secured-cluster-services \ --reuse-values \ -f <path_to_values_public.yaml> \ -f <path_to_values_private.yaml>
$ helm upgrade -n stackrox \ stackrox-secured-cluster-services rhacs/secured-cluster-services \ --reuse-values \1 -f <path_to_values_public.yaml> \ -f <path_to_values_private.yaml>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 如果您修改了没有包括在
values_public.yaml和values_private.yaml文件中的值,请包含--reuse-values参数。
4.4.3. 使用 roxctl CLI 在安全集群中安装 RHACS 复制链接链接已复制到粘贴板!
此方法也称为清单安装方法。
先决条件
-
如果您计划使用
roxctlCLI 命令来生成传感器安装脚本使用的文件,则已安装了roxctlCLI。 - 您已生成了传感器安装脚本将使用的文件。
流程
- 在 OpenShift Container Platform 安全集群中,通过运行传感器安装脚本来部署 Sensor 组件。
4.4.3.1. 安装 roxctl CLI 复制链接链接已复制到粘贴板!
您必须首先下载二进制文件。您可以在 Linux、Windows 或 macOS 上安装 roxctl。
4.4.3.1.1. 在 Linux 中安装 roxctl CLI 复制链接链接已复制到粘贴板!
您可以按照以下流程在 Linux 上安装 roxctl CLI 二进制文件。
用于 Linux 的 roxctl CLI 可用于 amd 64、rm64、 ppc64le 和 s390x 架构。
流程
确定目标操作系统的
roxctl架构:arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 下载
roxctlCLI:curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Linux/roxctl${arch}"$ curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Linux/roxctl${arch}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使
roxctl二进制文件可执行:chmod +x roxctl
$ chmod +x roxctlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
roxctl二进制文件放到PATH中的目录中:要查看您的
PATH,请执行以下命令:echo $PATH
$ echo $PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证您已安装的
roxctl版本:roxctl version
$ roxctl versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.3.1.2. 在 macOS 上安装 roxctl CLI 复制链接链接已复制到粘贴板!
您可以按照以下流程在 macOS 中安装 roxctl CLI 二进制文件。
macOS 的 roxctl CLI 可用于 amd64 和 arm64 架构。
流程
确定目标操作系统的
roxctl架构:arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 下载
roxctlCLI:curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Darwin/roxctl${arch}"$ curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Darwin/roxctl${arch}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从二进制文件中删除所有扩展属性:
xattr -c roxctl
$ xattr -c roxctlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使
roxctl二进制文件可执行:chmod +x roxctl
$ chmod +x roxctlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
roxctl二进制文件放到PATH中的目录中:要查看您的
PATH,请执行以下命令:echo $PATH
$ echo $PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证您已安装的
roxctl版本:roxctl version
$ roxctl versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.3.1.3. 在 Windows 上安装 roxctl CLI 复制链接链接已复制到粘贴板!
您可以按照以下流程在 Windows 上安装 roxctl CLI 二进制文件。
用于 Windows 的 roxctl CLI 可用于 amd64 架构。
流程
下载
roxctlCLI:curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Windows/roxctl.exe
$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Windows/roxctl.exeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证您已安装的
roxctl版本:roxctl version
$ roxctl versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.3.2. 安装传感器(Sensor) 复制链接链接已复制到粘贴板!
要监控集群,您必须部署 Sensor。您必须将 Sensor 部署到要监控的每个集群中。此安装方法也称为清单安装方法。
要使用清单安装方法执行安装,请只按照以下步骤之一 操作:
- 使用 RHACS Web 门户下载集群捆绑包,然后提取并运行传感器脚本。
-
使用
roxctlCLI 为 OpenShift Container Platform 集群生成所需的 sensor 配置,并将其与 Central 实例关联。
先决条件
- 您必须已安装了 Central 服务,或者您可以通过选择 Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service)上的 ACS 实例 来访问 Central 服务。
4.4.3.2.1. 使用 Web 门户的清单安装方法 复制链接链接已复制到粘贴板!
流程
- 在 RHACS 门户中的安全集群中,进入 Platform Configuration → Clusters。
- 选择 Secure a cluster → Legacy installation method。
- 为集群指定一个名称。
根据您要部署 Sensor 的位置,为字段提供适当的值。
- 如果您要在同一集群中部署 Sensor,请接受所有字段的默认值。
-
如果您要部署到不同的集群中,请将
central.stackrox.svc:443替换为负载均衡器、节点端口或其他地址,包括端口号,可以被其他集群访问。 如果您使用一个支持非 gRPC 的负载均衡器,如 HAProxy、AWS Application Load Balancer (ALB) 或 AWS Elastic Load Balancing (ELB),请使用 WebSocket Secure (
wss) 协议。使用ws:-
使用
wss://为地址加上前缀。 -
在地址后添加端口号,例如
ws://stackrox-central.example.com:443。
-
使用
- 点 Next 以继续 Sensor 设置。
点 Download YAML File and Keys 下载集群捆绑包(zip 归档)。
重要集群捆绑包 zip 存档包括每个集群的唯一配置和密钥。不要在另一个集群中重复使用相同的文件。
从可访问被监控的集群的系统中,从集群捆绑包中提取并运行
sensor脚本:unzip -d sensor sensor-<cluster_name>.zip
$ unzip -d sensor sensor-<cluster_name>.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow ./sensor/sensor.sh
$ ./sensor/sensor.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您收到部署 Sensor 所需的权限的警告,请按照屏幕说明操作,或联系集群管理员寻求帮助。
部署 Sensor 后,它会联系中心并提供集群信息。
4.4.3.2.2. 使用 roxctl CLI 安装清单 复制链接链接已复制到粘贴板!
流程
运行以下命令,为 OpenShift Container Platform 集群生成所需的传感器配置,并将其与您的 Central 实例关联:
roxctl sensor generate openshift --openshift-version <ocp_version> --name <cluster_name> --central "$ROX_ENDPOINT"
$ roxctl sensor generate openshift --openshift-version <ocp_version> --name <cluster_name> --central "$ROX_ENDPOINT"1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 对于
--openshift-version选项,请指定集群的主 OpenShift Container Platform 版本号。例如,为 OpenShift Container Platform 版本3.x指定3,为 OpenShift Container Platform 版本4.x指定4。
从可访问被监控的集群的系统中,从集群捆绑包中提取并运行
sensor脚本:unzip -d sensor sensor-<cluster_name>.zip
$ unzip -d sensor sensor-<cluster_name>.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow ./sensor/sensor.sh
$ ./sensor/sensor.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您收到部署 Sensor 所需的权限的警告,请按照屏幕说明操作,或联系集群管理员寻求帮助。
部署 Sensor 后,它会联系中心并提供集群信息。
验证
返回 RHACS 门户并检查部署是否成功。如果成功,当在 Platform Configuration → Clusters 中查看集群列表时,集群状态会显示一个绿色勾号和 Healthy 状态。如果您没有看到绿色勾选标记,请使用以下命令检查问题:
在 OpenShift Container Platform 中输入以下命令:
oc get pod -n stackrox -w
$ oc get pod -n stackrox -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Kubernetes 上,输入以下命令:
kubectl get pod -n stackrox -w
$ kubectl get pod -n stackrox -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- 点 Finish 关闭窗口。
安装后,Sensor 开始向 RHACS 报告安全信息,RHACS 门户仪表板开始显示部署、镜像和策略违反情况。
4.5. 使用 Operator 为 RHACS 配置安全 Cluster 服务选项 复制链接链接已复制到粘贴板!
当使用 Operator 安装安全的 Cluster 服务时,您可以配置可选设置。
4.5.1. 安全集群服务配置选项 复制链接链接已复制到粘贴板!
当您创建 Central 实例时,Operator 列出了 Central 自定义资源的以下配置选项。
4.5.1.1. 所需的配置设置 复制链接链接已复制到粘贴板!
| 参数 | Description |
|---|---|
|
|
用于连接的 Central 实例的端点,包括端口号。如果使用一个支持非 gRPC 的负载均衡器,请使用带有 |
|
| 此集群的唯一名称,显示在 RHACS 门户中。使用此参数设置名称后,您无法再次更改它。要更改名称,您必须删除并重新创建对象。 |
4.5.1.2. 准入控制器设置 复制链接链接已复制到粘贴板!
| 参数 | Description |
|---|---|
|
|
指定 |
|
|
指定 |
|
|
指定 |
|
| 如果您希望此组件只在特定节点上运行,您可以使用此参数配置节点选择器。 |
|
| 如果节点选择器选择污点节点,请使用此参数指定污点容限键、值以及 Admission Control 的效果。此参数主要用于基础架构节点。 |
|
| 使用此参数将主机和 IP 地址注入 pod 的主机文件中。 |
|
| 使用此参数覆盖准入控制器的默认资源限值。 |
|
| 使用此参数覆盖准入控制器的默认资源请求。 |
|
| 使用以下值之一配置绕过准入控制器强制:
默认值为 |
|
| 使用以下值之一指定准入控制器是否必须连接到镜像扫描程序:
默认值为 |
|
|
在将其标记为失败前,使用此参数指定 RHACS 必须等待准入审核的最大秒数。如果准入 Webhook 在超时时间结束前没有收到请求的信息,它会失败,但处于打开状态时,它仍然允许操作成功。例如,准入控制器允许创建部署,即使扫描超时,RHACS 无法确定部署是否违反了策略。从版本 4.5 开始,红帽将 RHACS 准入控制器 webhook 的默认超时设置从 20 秒减少到 10 秒,从而导致 |
4.5.1.3. Operator 的扫描程序配置设置 复制链接链接已复制到粘贴板!
使用 Scanner 配置设置修改集成的 OpenShift 镜像 registry 的本地集群扫描程序。
| 参数 | Description |
|---|---|
|
|
将节点选择器标签指定为 |
|
| 如果节点选择器选择污点节点,请使用此参数为 Scanner 指定污点容限键、值和效果。 |
|
| 使用此参数将主机和 IP 地址注入 pod 的主机文件中。 |
|
| Scanner 容器的内存请求。使用此参数覆盖默认值。 |
|
| Scanner 容器的 CPU 请求。使用此参数覆盖默认值。 |
|
| Scanner 容器的内存限值。使用此参数覆盖默认值。 |
|
| Scanner 容器的 CPU 限制。使用此参数覆盖默认值。 |
|
|
如果将此选项设置为 |
|
|
自动扩展的最小副本数。默认值为 |
|
|
自动扩展的最大副本数。默认值为 |
|
|
默认副本数。默认值为 |
|
| 如果节点选择器选择污点节点,请使用此参数为 Scanner 指定污点容限键、值和效果。 |
|
|
将节点选择器标签指定为 |
|
| 使用此参数将主机和 IP 地址注入 pod 的主机文件中。 |
|
| Scanner DB 容器的内存请求。使用此参数覆盖默认值。 |
|
| Scanner DB 容器的 CPU 请求。使用此参数覆盖默认值。 |
|
| Scanner DB 容器的内存限值。使用此参数覆盖默认值。 |
|
| Scanner DB 容器的 CPU 限制。使用此参数覆盖默认值。 |
|
| 如果节点选择器选择污点节点,请使用此参数为 Scanner DB 指定污点容限键、值和效果。 |
|
|
如果将此选项设置为 |
|
| 如果您希望此组件只在特定节点上运行,您可以使用此参数来配置节点选择器。 |
|
| 如果节点选择器选择污点节点,请使用此参数为 Scanner V4 DB 指定污点容限键、值和效果。此参数主要用于基础架构节点。 |
|
| 使用此参数覆盖 Scanner V4 DB 的默认资源限值。 |
|
| 使用此参数覆盖 Scanner V4 DB 的默认资源请求。 |
|
|
为 Scanner V4 管理持久性数据的 PVC 名称。如果集群中存在默认存储类,您可以使用 PVC。如果不存在默认存储类,且没有特别在 |
|
| 为 Scanner V4 管理持久性数据的 PVC 大小。 |
|
| 用于 PVC 的存储类的名称。如果您的集群没有使用默认存储类配置,且没有为此参数提供值,则使用临时存储。 |
|
| 如果您希望此组件只在特定节点上运行,您可以使用此参数来配置节点选择器。 |
|
| 如果节点选择器选择污点节点,请使用此参数为 Scanner V4 Indexer 指定污点容限键、值和效果。此参数主要用于基础架构节点。 |
|
| 使用此参数覆盖 Scanner V4 Indexer 的默认资源限值。 |
|
| 使用此参数覆盖 Scanner V4 Indexer 的默认资源请求。 |
|
| 启用后,Scanner V4 Indexer 副本的数量会根据指定的限值来动态管理。 |
|
| 指定 Scanner V4 Indexer 自动扩展配置中使用的最大副本。 |
|
| 指定 Scanner V4 Indexer 自动扩展配置中使用的最小副本。 |
|
| 当 Scanner V4 Indexer 禁用自动扩展时,副本数始终配置为与这个值匹配。 |
|
|
为 Scanner V4 配置监控端点。监控端点允许其他服务从与 Prometheus 兼容的格式提供的 Scanner V4 收集指标。使用 |
|
| 启用 Scanner V4。有效值为:
*
*
* |
4.5.1.4. 镜像配置 复制链接链接已复制到粘贴板!
在使用自定义 registry 时使用镜像配置设置。
| 参数 | Description |
|---|---|
|
| 拉取镜像时考虑的其他镜像 pull secret。 |
4.5.1.5. 针对每个节点的设置 复制链接链接已复制到粘贴板!
针对每个节点的设置为在集群中的节点上运行的组件定义了一组配置设置,用于保护集群的安全。这些组件是 Collector 和 Compliance。
| 参数 | Description |
|---|---|
|
|
系统级数据收集的方法。默认值为 |
|
|
用于 Collector 的镜像类型。您可以将它指定为 |
|
| 使用此参数覆盖 Collector 的默认资源限值。 |
|
| 使用此参数覆盖 Collector 的默认资源请求。 |
|
| 使用此参数覆盖 Compliance 的默认资源请求。 |
|
| 使用此参数覆盖 Compliance 的默认资源限值。 |
|
|
为确保集群活动的全面监控,Red Hat Advanced Cluster Security for Kubernetes 会在集群中的每个节点上运行服务,包括污点节点。如果您不希望此行为,将此参数设置为 |
4.5.1.6. Sensor 配置 复制链接链接已复制到粘贴板!
此配置定义了 Sensor 组件的设置,该组件的设置在集群的一个节点上运行。
| 参数 | Description |
|---|---|
|
| 如果您希望 Sensor 仅在特定节点上运行,您可以配置节点选择器。 |
|
| 如果节点选择器选择污点节点,请使用此参数指定污点容限键、值和 Sensor 的效果。此参数主要用于基础架构节点。 |
|
| 使用此参数将主机和 IP 地址注入 pod 的主机文件中。 |
|
| 使用这个参数覆盖 Sensor 的默认资源限值。 |
|
| 使用这个参数覆盖 Sensor 的默认资源请求。 |
4.5.1.7. 常规设置和各种设置 复制链接链接已复制到粘贴板!
| 参数 | 描述 |
|---|---|
|
| 允许为 Central 部署指定自定义注解。 |
|
| 用于配置环境变量的高级设置。 |
|
| 配置 Red Hat Advanced Cluster Security for Kubernetes 是否应该以在线或离线模式运行。在离线模式下,禁用对漏洞定义和内核模块的自动更新。 |
|
|
把它设置为 |
|
|
为了在网络级别提供安全性,RHACS 在安装了安全集群资源的命名空间中创建默认 警告 禁用创建默认网络策略可能会破坏 RHACS 组件之间的通信。如果禁用创建默认策略,则必须创建自己的网络策略来允许此通信。 |
|
| 请参阅"使用带有 overlays 的 Operator 自定义安装"。 |
|
| 安全集群的其他可信 CA 证书。这些证书在使用私有证书颁发机构与服务集成时使用。 |
4.5.2. 使用带有 overlay 的 Operator 自定义安装 复制链接链接已复制到粘贴板!
了解如何使用带有 overlay 的 Operator 方法定制 RHACS 安装。
4.5.2.1. overlays 复制链接链接已复制到粘贴板!
当 Central 或 SecuredCluster 自定义资源不公开某些低级别配置选项时,您可以使用 .spec.overlays 字段进行调整。使用此字段修改由这些自定义资源生成的 Kubernetes 资源。
.spec.overlays 字段包含一系列补丁,按列出的顺序应用。这些补丁由 Operator 在部署到集群前由 Kubernetes 资源进行处理。
Central 和 SecuredCluster 中的 .spec.overlays 字段允许用户以任意方式修改低级别 Kubernetes 资源。只有在通过 SecuredCluster 或 Central 自定义资源不可用时,才使用此功能。
对 .spec.overlays 功能的支持主要受限制,因为它授予对 Kubernetes 资源进行内部化和高度特定修改的能力,这可能会显著地从一个实施到另一个实现。这种定制的定制增加了超越标准使用方案的复杂性,从而难以提供广泛的支持。每个修改都是唯一的,在产品的不同版本和配置中都无法预测地与 Kubernetes 系统交互。这种可变性意味着故障排除和保证这些自定义的稳定性需要一定程度的专业知识和理解,特定于每个个人设置。因此,虽然此功能可以支持定制 Kubernetes 资源来满足精确的需求,但必须假定为确保配置的兼容性和稳定性,特别是在升级或更改底层产品的过程中。
以下示例显示了覆盖的结构:
4.5.2.1.1. 添加覆盖 复制链接链接已复制到粘贴板!
对于自定义,您可以在 Central 或 SecuredCluster 自定义资源中添加覆盖。使用 OpenShift CLI (oc)或 OpenShift Container Platform Web 控制台进行修改。
如果覆盖没有按预期工作,请检查 RHACS Operator 日志是否有语法错误或问题记录。
4.5.2.2. 覆盖示例 复制链接链接已复制到粘贴板!
4.5.2.2.1. 为 Central ServiceAccount 指定 EKS pod 角色 ARN 复制链接链接已复制到粘贴板!
为 中央 ServiceAccount 添加 Amazon Elastic Kubernetes Service (EKS) pod 角色 Amazon Resource Name (ARN)注解,如下例所示:
4.5.2.2.2. 将环境变量注入到中央部署中 复制链接链接已复制到粘贴板!
将环境变量注入 中央 部署中,如下例所示:
4.5.2.2.3. 使用入口规则扩展网络策略 复制链接链接已复制到粘贴板!
为端口 999 流量在 allow-ext-to-central 网络策略中添加入站规则,如下例所示:
4.5.2.2.4. 修改 ConfigMap 数据 复制链接链接已复制到粘贴板!
修改 central-endpoints ConfigMap 数据,如下例所示:
本例演示了如何 覆盖数据 下的单个项目(文件)。
按照以下步骤按照以下步骤操作:
-
使用 verbatim
键,而不是值。这有助于通过换行或引号等字符,以便不会受到影响。 -
您必须转义
path键中文件名中的点,或者您可以将路径写为data["endpoints.yaml"]。
4.5.2.2.5. 将容器添加到 中央 部署中 复制链接链接已复制到粘贴板!
在 中央 部署中添加新容器,如下例所示:
4.6. 验证 Red Hat OpenShift 上的 RHACS 安装 复制链接链接已复制到粘贴板!
提供验证 RHACS 是否已正确安装的步骤。
4.6.1. 验证安装 复制链接链接已复制到粘贴板!
安装完成后,运行几个存在安全漏洞的应用程序并进入 RHACS 门户来评估安全评估和策略违反情况的结果。
以下部分中列出的示例应用程序包含关键漏洞,它们旨在验证 Red Hat Advanced Cluster Security for Kubernetes 的构建和部署时间评估功能。
验证安装:
根据您的暴露的方法查找 RHACS 门户地址:
对于路由:
oc get route central -n stackrox
$ oc get route central -n stackroxCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于负载均衡器:
oc get service central-loadbalancer -n stackrox
$ oc get service central-loadbalancer -n stackroxCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于端口转发:
运行以下命令:
oc port-forward svc/central 18443:443 -n stackrox
$ oc port-forward svc/central 18443:443 -n stackroxCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
进入
https://localhost:18443/。
使用 Red Hat OpenShift CLI 创建新项目:
oc new-project test
$ oc new-project testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用关键漏洞启动一些应用程序:
oc run shell --labels=app=shellshock,team=test-team \ --image=quay.io/stackrox-io/docs:example-vulnerables-cve-2014-6271 -n test oc run samba --labels=app=rce \ --image=quay.io/stackrox-io/docs:example-vulnerables-cve-2017-7494 -n test
$ oc run shell --labels=app=shellshock,team=test-team \ --image=quay.io/stackrox-io/docs:example-vulnerables-cve-2014-6271 -n test $ oc run samba --labels=app=rce \ --image=quay.io/stackrox-io/docs:example-vulnerables-cve-2017-7494 -n testCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Red Hat Advanced Cluster Security for Kubernetes 会在向集群提交后自动扫描这些部署以了解安全风险和策略违反情况。进入 RHACS 门户以查看违反情况。您可以使用默认用户名 admin 和生成的密码登录到 RHACS 门户。
第 5 章 在其他平台上安装 RHACS 复制链接链接已复制到粘贴板!
5.1. 在其他平台上安装 RHACS 的高级别概述 复制链接链接已复制到粘贴板!
Red Hat Advanced Cluster Security for Kubernetes (RHACS)在 Amazon Elastic Kubernetes Service (Amazon EKS)、Google Kubernetes Engine (Google GKE)和 Microsoft Azure Kubernetes Service (Microsoft AKS)等平台上提供自我管理的 RHACS 的安全服务。
安装前:
以下列表提供了安装步骤的高级概述:
-
使用 Helm chart 或
roxctlCLI 在集群中安装 Central 服务。 - 生成并应用 init 捆绑包。
- 在每个安全集群中安装安全的集群资源。
5.2. 在其他平台上为 RHACS 安装 Central 服务 复制链接链接已复制到粘贴板!
Central 是包含 RHACS 应用程序管理界面和服务的资源。它处理数据持久性、API 交互和 RHACS 门户访问。您可以使用同一中实例来保护多个 OpenShift Container Platform 或 Kubernetes 集群。
您可以使用以下方法之一安装 Central:
- 使用 Helm chart 安装
-
使用
roxctlCLI 安装(除非有需要使用它的特定安装需要)
5.2.1. 使用 Helm chart 安装 Central 复制链接链接已复制到粘贴板!
您可以使用 Helm chart 安装 Central,而无需自定义任何自定义,使用默认值,或使用带有额外自定义配置参数的 Helm chart。
5.2.1.1. 使用 Helm chart 安装 Central,而无需自定义 复制链接链接已复制到粘贴板!
您可以在没有自定义的情况下在 Red Hat OpenShift 集群上安装 RHACS。您必须添加 Helm Chart 仓库并安装 central-services Helm Chart,以安装 Central 和 Scanner 的集中组件。
5.2.1.1.1. 添加 Helm Chart 仓库 复制链接链接已复制到粘贴板!
流程
添加 RHACS chart 存储库。
helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/
$ helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Red Hat Advanced Cluster Security for Kubernetes 的 Helm 仓库包括用于安装不同组件的 Helm chart,包括:
用于安装集中组件(Central 和 Scanner)的中央服务Helm Chart(
central-services)。注意您只部署集中式组件一次,并可使用同一安装监控多个独立集群。
安全集群服务 Helm Chart (
secured-cluster-services),用于安装 per-cluster 和 per-node 组件(Sensor、Admission Controller、Collector 和 Scanner-slim)。注意将 per-cluster 组件部署到要监控的每个集群中,并在要监控的所有节点中部署 per-node 组件。
验证
运行以下命令来验证添加的 chart 存储库:
helm search repo -l rhacs/
$ helm search repo -l rhacs/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.1.1.2. 在不自定义的情况下安装 central-services Helm chart 复制链接链接已复制到粘贴板!
使用以下说明安装 central-services Helm Chart 以部署集中组件(Central 和 Scanner)。
先决条件
-
您必须有权访问 Red Hat Container Registry。有关从
registry.redhat.io下载镜像的详情,请参考 Red Hat Container Registry Authentication。
流程
运行以下命令安装 Central 服务并使用一个路由来公开 Central:
helm install -n stackrox \ --create-namespace stackrox-central-services rhacs/central-services \ --set imagePullSecrets.username=<username> \ --set imagePullSecrets.password=<password> \ --set central.exposure.route.enabled=true
$ helm install -n stackrox \ --create-namespace stackrox-central-services rhacs/central-services \ --set imagePullSecrets.username=<username> \1 --set imagePullSecrets.password=<password> \2 --set central.exposure.route.enabled=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,运行以下命令安装 Central 服务并使用一个负载均衡器来公开 Central:
helm install -n stackrox \ --create-namespace stackrox-central-services rhacs/central-services \ --set imagePullSecrets.username=<username> \ --set imagePullSecrets.password=<password> \ --set central.exposure.loadBalancer.enabled=true
$ helm install -n stackrox \ --create-namespace stackrox-central-services rhacs/central-services \ --set imagePullSecrets.username=<username> \1 --set imagePullSecrets.password=<password> \2 --set central.exposure.loadBalancer.enabled=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,运行以下命令安装 Central 服务并使用一个端口转发来公开 Central:
helm install -n stackrox \ --create-namespace stackrox-central-services rhacs/central-services \ --set imagePullSecrets.username=<username> \ --set imagePullSecrets.password=<password>
$ helm install -n stackrox \ --create-namespace stackrox-central-services rhacs/central-services \ --set imagePullSecrets.username=<username> \1 --set imagePullSecrets.password=<password>2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如果要在需要代理连接到外部服务的集群中安装 Red Hat Advanced Cluster Security for Kubernetes,则必须使用
proxyConfig参数指定代理配置。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果您已在安装的命名空间中创建了一个或多个镜像 pull secret,而不是使用用户名和密码,您可以使用
--set imagePullSecrets.useExisting="<pull-secret-1;pull-secret-2>"。 不要使用镜像 pull secret:
-
如果您要从
quay.io/stackrox-io或不需要身份验证的专用网络中的 registry 拉取镜像。使用--set imagePullSecrets.allowNone=true,而不是指定用户名和密码。 -
如果您已经在安装的命名空间中的默认服务帐户中配置了镜像 pull secret。使用
--set imagePullSecrets.useFromDefaultServiceAccount=true,而不是指定用户名和密码。
-
如果您要从
安装命令的输出包括:
- 自动生成的管理员密码。
- 关于存储所有配置值的说明。
- Helm 生成的任何警告。
5.2.1.1.3. 检索自动生成的证书颁发机构 复制链接链接已复制到粘贴板!
安装 RHACS 时,证书颁发机构(CA)会自动生成并存储在集群中的 Kubernetes secret 中。如果稍后使用 Helm 更改安装,您可能需要提供此 CA。例如,启用安装时最初禁用的 RHACS 组件需要您提供此 CA。
自动生成的 CA 存储在 secret 中,它通常类似于 stackrox-generated-suffix,其中 suffix 是随机生成的字符串。
要检索 CA,并在 helm upgrade 命令需要时将其导出到 generated-values.yaml 文件中,例如运行以下命令:
kubectl -n <namespace> get secret stackrox-generated-<suffix> \
-o go-template='{{ index .data "generated-values.yaml" }}' | \
base64 --decode >generated-values.yaml
$ kubectl -n <namespace> get secret stackrox-generated-<suffix> \
-o go-template='{{ index .data "generated-values.yaml" }}' | \
base64 --decode >generated-values.yaml
此文件可能包含敏感数据,因此将其存储在安全的地方。
如果您在更改配置后使用 helm upgrade 命令,您可能需要提供此 CA。例如,要更新您的系统并启用 Scanner V4,请运行以下命令:
helm upgrade -n stackrox stackrox-central-services rhacs/central-services --reuse-values \ -f <path_to_generated-values.yaml> \ --set scannerV4.disable=false
$ helm upgrade -n stackrox stackrox-central-services rhacs/central-services --reuse-values \
-f <path_to_generated-values.yaml> \
--set scannerV4.disable=false
5.2.1.2. 使用带有自定义的 Helm chart 安装 Central 复制链接链接已复制到粘贴板!
您可以使用 helm install 和 helm upgrade 命令的 Helm Chart 配置参数在 Red Hat OpenShift 集群上安装 RHACS。您可以使用 --set 选项或创建 YAML 配置文件来指定这些参数。
创建以下文件来配置 Helm chart 来安装 Red Hat Advanced Cluster Security for Kubernetes:
-
公共配置文件
values-public.yaml:使用此文件保存所有非敏感配置选项。 -
专用配置文件
values-private.yaml:使用此文件保存所有敏感配置选项。确保您安全地存储这个文件。 -
配置文件
declarative-config-values.yaml:如果您使用声明性配置将声明性配置挂载添加到 Central,请创建此文件。
5.2.1.2.1. 专用配置文件 复制链接链接已复制到粘贴板!
本节列出了 values-private.yaml 文件的可配置参数。这些参数没有默认值。
5.2.1.2.1.1. 镜像 pull secret 复制链接链接已复制到粘贴板!
从 registry 中拉取镜像所需的凭证取决于以下因素:
如果使用自定义 registry,您必须指定这些参数:
-
imagePullSecrets.username -
imagePullSecrets.password -
image.registry
-
如果不使用用户名和密码登录到自定义 registry,您必须指定以下参数之一:
-
imagePullSecrets.allowNone -
imagePullSecrets.useExisting -
imagePullSecrets.useFromDefaultServiceAccount
-
| 参数 | Description |
|---|---|
|
| 用于登录到 registry 的帐户的用户名。 |
|
| 用于登录到 registry 的帐户的密码。 |
|
|
如果您使用自定义 registry,且允许在没有凭证的情况下拉取镜像,请使用 |
|
|
以逗号分隔的 secret 列表作为值。例如, |
|
|
如果您已经在目标命名空间中配置了具有足够范围的镜像 pull secret 的默认服务帐户,请使用 |
5.2.1.2.1.2. 代理配置 复制链接链接已复制到粘贴板!
如果要在需要代理连接到外部服务的集群中安装 Red Hat Advanced Cluster Security for Kubernetes,则必须使用 proxyConfig 参数指定代理配置。例如:
| 参数 | Description |
|---|---|
|
| 您的代理配置。 |
5.2.1.2.1.3. Central 复制链接链接已复制到粘贴板!
Central 的可配置参数。
对于新安装,您可以跳过以下参数:
-
central.jwtSigner.key -
central.serviceTLS.cert -
central.serviceTLS.key -
central.adminPassword.value -
central.adminPassword.htpasswd -
central.db.serviceTLS.cert -
central.db.serviceTLS.key -
central.db.password.value - 当您没有为这些参数指定值时,Helm Chart 会为它们自动生成值。
-
如果要修改这些值,您可以使用
helm upgrade命令并使用--set选项指定值。
对于设置管理员密码,您只能使用 central.adminPassword.value 或 central.adminPassword.htpasswd,但不能同时使用两者。
| 参数 | Description |
|---|---|
|
| RHACS 应该用来签名 JSON Web 令牌(JWT)的私钥以进行身份验证。 |
|
| Central 服务应用于部署中心的内部证书。 |
|
| Central 服务应使用的内部证书的私钥。 |
|
| Central 应该使用的用户面向用户的证书。RHACS 将此证书用于 RHACS 门户。
|
|
| Central 应使用面向用户的证书的私钥。
|
|
| Central 数据库的连接密码。 |
|
| 用于登录到 RHACS 的管理员密码。 |
|
| 用于登录到 RHACS 的管理员密码。此密码以散列格式存储,使用 bcrypt。 |
|
| Central DB 服务应用于部署 Central DB 的内部证书。 |
|
| Central DB 服务应使用的内部证书的私钥。 |
|
| 用于连接到 Central DB 的密码。 |
如果使用 central.adminPassword.htpasswd 参数,则必须使用 bcrypt 编码的密码哈希。您可以运行 htpasswd -nB admin 命令来生成密码哈希。例如,
htpasswd: | admin:<bcrypt-hash>
htpasswd: |
admin:<bcrypt-hash>
5.2.1.2.1.4. 扫描程序 复制链接链接已复制到粘贴板!
StackRox Scanner 和 Scanner V4 的可配置参数。
对于新的安装,您可以跳过以下参数,以及 Helm Chart 自动生成值。否则,如果您升级到新版本,请指定以下参数的值:
-
scanner.dbPassword.value -
scanner.serviceTLS.cert -
scanner.serviceTLS.key -
scanner.dbServiceTLS.cert -
scanner.dbServiceTLS.key -
scannerV4.db.password.value -
scannerV4.indexer.serviceTLS.cert -
scannerV4.indexer.serviceTLS.key -
scannerV4.matcher.serviceTLS.cert -
scannerV4.matcher.serviceTLS.key -
scannerV4.db.serviceTLS.cert -
scannerV4.db.serviceTLS.key
| 参数 | Description |
|---|---|
|
| 用于通过 Scanner 数据库进行身份验证的密码。不要修改此参数,因为 RHACS 会在内部自动创建和使用其值。 |
|
| StackRox Scanner 服务应用于部署 StackRox Scanner 的内部证书。 |
|
| Scanner 服务使用的内部证书的私钥。 |
|
| Scanner-db 服务应用于部署 Scanner 数据库的内部证书。 |
|
| Scanner-db 服务应使用的内部证书的私钥。 |
|
| 用于通过 Scanner V4 数据库进行身份验证的密码。不要修改此参数,因为 RHACS 会在内部自动创建和使用其值。 |
|
| Scanner V4 DB 服务应用于部署 Scanner V4 数据库的内部证书。 |
|
| Scanner V4 DB 服务应使用的内部证书的私钥。 |
|
| Scanner V4 服务应用于部署 Scanner V4 Indexer 的内部证书。 |
|
| Scanner V4 Indexer 应该使用的内部证书的私钥。 |
|
| Scanner V4 服务应用于部署 Scanner V4 Matcher 的内部证书。 |
|
| Scanner V4 Matcher 应该使用的内部证书的私钥。 |
5.2.1.2.2. 公共配置文件 复制链接链接已复制到粘贴板!
本节列出了 values-public.yaml 文件的可配置参数。
5.2.1.2.2.1. 镜像 pull secret 复制链接链接已复制到粘贴板!
镜像拉取 secret 是从 registry 中拉取镜像所需的凭证。
| 参数 | Description |
|---|---|
|
|
如果您使用自定义 registry,且允许在没有凭证的情况下拉取镜像,请使用 |
|
|
以逗号分隔的 secret 列表作为值。例如, |
|
|
如果您已经在目标命名空间中配置了具有足够范围的镜像 pull secret 的默认服务帐户,请使用 |
5.2.1.2.2.2. Image 复制链接链接已复制到粘贴板!
镜像声明配置来设置主 registry,Helm Chart 用来为 central.image,scanner.image,scanner.dbImage,scannerV4.image, 和 scannerV4.db.image 参数解析镜像。
| 参数 | Description |
|---|---|
|
|
镜像 registry 的地址。使用主机名,如 |
5.2.1.2.2.3. 策略作为代码 复制链接链接已复制到粘贴板!
作为代码的策略,可将 RHACS 配置为与 Argo CD 等持续交付工具(如 Argo CD)一起工作,以跟踪、管理并应用您从 RHACS 门户写入或修改的策略。您可以配置 Argo CD 或其他工具,将策略作为代码资源应用到安装 RHACS 的同一命名空间。
| 参数 | 描述 |
|---|---|
|
|
默认情况下,值为 |
5.2.1.2.2.4. 环境变量 复制链接链接已复制到粘贴板!
Red Hat Advanced Cluster Security for Kubernetes 会自动检测集群环境,并为 env.openshift、env.istio 和 env.platform 设置值。仅设置这些值来覆盖自动集群环境检测。
| 参数 | Description |
|---|---|
|
|
使用 |
|
|
使用 |
|
|
安装 RHACS 的平台。将其值设为 |
|
|
使用 |
5.2.1.2.2.5. 其他可信证书颁发机构 复制链接链接已复制到粘贴板!
RHACS 自动引用要信任的系统根证书。当 Central、StackRox Scanner 或 Scanner V4 必须联系到使用您机构中授权或全局可信合作伙伴机构发布的证书的服务,您可以使用以下参数来指定对这些服务的信任:
| 参数 | Description |
|---|---|
|
| 指定要信任的根证书颁发机构的 PEM 编码证书。 |
5.2.1.2.2.6. 默认网络策略 复制链接链接已复制到粘贴板!
要在网络级别提供安全性,RHACS 在安装了 Central 的命名空间中创建默认 NetworkPolicy 资源。这些网络策略允许在特定端口上到特定组件的入站网络数据。如果您不希望 RHACS 创建这些策略,则将此参数设置为 Disabled。默认值为 Enabled。
禁用创建默认网络策略可能会破坏 RHACS 组件之间的通信。如果禁用创建默认策略,则必须创建自己的网络策略来允许此通信。
| 参数 | 描述 |
|---|---|
|
|
指定 RHACS 是否已创建默认网络策略来允许组件之间的通信。要创建自己的网络策略,请将此参数设置为 |
5.2.1.2.2.7. Central 复制链接链接已复制到粘贴板!
Central 的可配置参数。
-
用于公开外部访问的中央部署。您必须指定一个参数,可以是
central.exposure.loadBalancer、central.exposure.nodePort或central.exposure.route。如果没有为这些参数指定任何值,您必须手动公开 Central,或使用端口转发(port-forwarding)访问它。
下表包含外部 PostgreSQL 数据库的设置。
| 参数 | Description |
|---|---|
|
| 挂载用于声明配置的配置映射。 |
|
| 挂载用于声明配置的 secret。 |
|
| Central 的端点配置选项。 |
|
| 如果节点选择器选择污点节点,请使用此参数指定 taint toleration key、value 和 effect。此参数主要用于基础架构节点。 |
|
| 如果节点选择器选择污点节点,请使用此参数指定 taint toleration key、value 和 effect。此参数主要用于基础架构节点。 |
|
|
指定 |
|
|
用于覆盖 Central 镜像的全局 |
|
|
覆盖默认 Central 镜像名称( |
|
|
覆盖 Central 镜像默认标签的自定义镜像标签。如果在新安装过程中指定了自己的镜像标签,则您必须在运行 |
|
|
Central 镜像的完整参考,包括 registry 地址、镜像名称和镜像标签。为此参数设置值会覆盖 |
|
| Central 的内存请求。 |
|
| Central 的 CPU 请求。 |
|
| Central 的内存限值。 |
|
| Central 的 CPU 限制。 |
|
|
使用 |
|
| 要公开 Central 的端口号。默认端口号为 443。 |
|
|
使用 |
|
| 要公开 Central 的端口号。当您跳过此参数时,OpenShift Container Platform 会自动分配一个端口号。如果您使用节点端口公开 RHACS,红帽建议您不要指定端口号。 |
|
|
使用 |
|
| 使用此参数指定用于 Central 的 passthrough 路由的自定义主机名。保留为不设置,以接受 OpenShift Container Platform 提供的默认值。此参数仅适用于 OpenShift Container Platform 集群。 |
|
|
把它设置为 |
|
| 使用此参数指定用于 Central 的重新加密路由的自定义主机名。保留为不设置,以接受 OpenShift Container Platform 提供的默认值。此参数仅适用于 OpenShift Container Platform 集群。 |
|
| 使用此参数指定 PEM 编码的证书链,该链可能用来建立完整的信任链。默认情况下,OpenShift Container Platform 提供证书颁发机构。此参数仅适用于 OpenShift Container Platform 集群。 |
|
| 使用此参数指定路由上提供的 PEM 编码证书。OpenShift Container Platform 证书颁发机构签署默认证书。此参数仅适用于 OpenShift Container Platform 集群。 |
|
| 使用此参数指定最终目标的 CA 证书,即 Central。OpenShift Container Platform 路由器使用此证书对安全连接执行健康检查。默认情况下,Central 提供证书颁发机构。 |
|
| 使用此参数指定路由上提供的证书的 PEM 编码私钥。OpenShift Container Platform 证书颁发机构签署默认证书。此参数仅适用于 OpenShift Container Platform 集群。 |
|
|
使用 |
|
|
用于连接到数据库的 Central 的连接字符串。这仅在将
|
|
| 与要建立的数据库的最小连接数。 |
|
| 与要建立的数据库的连接数上限。 |
|
| 单个查询或事务的毫秒可以针对数据库处于活跃状态。 |
|
| 用于中央 DB 的 postgresql.conf,如 PostgreSQL 文档中的"添加资源"中所述。 |
|
| 用于 Central DB 的 pg_hba.conf,如 PostgreSQL 文档中的 "Additional resources" 所述。 |
|
|
将节点选择器标签指定为 |
|
|
一个自定义 registry,用于覆盖 Central DB 镜像的全局 |
|
|
覆盖默认中央 DB 镜像名称( |
|
|
覆盖 Central DB 镜像默认标签的自定义镜像标签。如果在新安装过程中指定了自己的镜像标签,则您必须在运行 |
|
|
Central DB 镜像的完整参考,包括 registry 地址、镜像名称和镜像标签。为此参数设置值会覆盖 |
|
| Central DB 的内存请求。 |
|
| Central DB 的 CPU 请求。 |
|
| Central DB 的内存限值。 |
|
| Central 数据库的 CPU 限制。 |
|
| RHACS 应该创建数据库卷的节点上的路径。红帽不推荐使用这个选项。 |
|
| 您要使用的持久性卷声明(PVC)的名称。 |
|
|
使用 |
|
| 由指定声明管理的持久性卷的大小(以 GiB 为单位)。 |
5.2.1.2.2.8. StackRox Scanner 复制链接链接已复制到粘贴板!
下表列出了 StackRox Scanner 的可配置参数。StackRox Scanner 已被弃用。
| 参数 | Description |
|---|---|
|
|
使用 |
|
|
指定 |
|
|
为 StackRox Scanner 部署创建的副本数。当您将其与 |
|
|
为 StackRox Scanner 配置日志级别。红帽建议您不要更改默认的日志级别值( |
|
|
将节点选择器标签指定为 |
|
| 如果节点选择器选择污点节点,请使用此参数为 StackRox Scanner 指定污点容限键、值和效果。此参数主要用于基础架构节点。 |
|
|
使用 |
|
| 自动扩展的最小副本数。 |
|
| 自动扩展的最大副本数。 |
|
| StackRox Scanner 的内存请求。 |
|
| StackRox Scanner 的 CPU 请求。 |
|
| StackRox Scanner 的内存限值。 |
|
| StackRox Scanner 的 CPU 限制。 |
|
| StackRox Scanner 数据库部署的内存请求。 |
|
| StackRox Scanner 数据库部署的 CPU 请求。 |
|
| StackRox Scanner 数据库部署的内存限值。 |
|
| StackRox Scanner 数据库部署的 CPU 限制。 |
|
| StackRox Scanner 镜像的自定义 registry。 |
|
|
覆盖默认 StackRox Scanner 镜像名称( |
|
| StackRox Scanner DB 镜像的自定义 registry。 |
|
|
覆盖默认 StackRox Scanner DB 镜像名称( |
|
|
将节点选择器标签指定为 |
|
| 如果节点选择器选择污点节点,请使用此参数为 StackRox Scanner DB 指定污点容限键、值和效果。此参数主要用于基础架构节点。 |
5.2.1.2.2.9. scanner V4 复制链接链接已复制到粘贴板!
下表列出了 Scanner V4 的可配置参数。
| 参数 | 描述 |
|---|---|
|
|
为 Scanner V4 管理持久性数据的 PVC 名称。默认情况下,对于 Central,系统会创建一个 PVC,并使用默认值 |
|
| 为 Scanner V4 管理持久性数据的 PVC 大小。 |
|
| 用于 PVC 的存储类的名称。如果您的集群没有配置默认存储类,则必须为此参数提供一个值。 |
|
| 以下值有效:
如果没有指定值,则默认发生以下行为:
|
|
|
指定 |
|
|
为 Scanner V4 Indexer 部署创建的副本数。当您将它与 |
|
|
为 Scanner V4 Indexer 配置日志级别。红帽建议您不要更改默认的日志级别值( |
|
|
将节点选择器标签指定为 |
|
| 如果节点选择器选择污点节点,请使用此参数为 Scanner V4 Indexer 指定污点容限键、值和效果。此参数主要用于基础架构节点。 |
|
|
使用 |
|
| 自动扩展的最小副本数。 |
|
| 自动扩展的最大副本数。 |
|
| Scanner V4 Indexer 的内存请求。 |
|
| Scanner V4 Indexer 的 CPU 请求。 |
|
| Scanner V4 Indexer 的内存限值。 |
|
| Scanner V4 Indexer 的 CPU 限制。 |
|
|
为 Scanner V4 Matcher 部署创建的副本数。当您将其与 |
|
|
红帽建议您不要更改默认的日志级别值( |
|
|
将节点选择器标签指定为 |
|
| 如果节点选择器选择污点节点,请使用此参数为 Scanner V4 Matcher 指定污点容限键、值和效果。此参数主要用于基础架构节点。 |
|
|
使用 |
|
| 自动扩展的最小副本数。 |
|
| 自动扩展的最大副本数。 |
|
| Scanner V4 Matcher 的内存请求。 |
|
| Scanner V4 Matcher 的 CPU 请求。 |
|
| Scanner V4 数据库部署的内存请求。 |
|
| Scanner V4 数据库部署的 CPU 请求。 |
|
| Scanner V4 数据库部署的内存限值。 |
|
| Scanner V4 数据库部署的 CPU 限制。 |
|
|
将节点选择器标签指定为 |
|
| 如果节点选择器选择污点节点,请使用此参数为 Scanner V4 DB 指定污点容限键、值和效果。此参数主要用于基础架构节点。 |
|
| Scanner V4 DB 镜像的自定义 registry。 |
|
|
覆盖默认 Scanner V4 DB 镜像名称( |
|
| Scanner V4 镜像的自定义 registry。 |
|
|
覆盖默认 Scanner V4 镜像名称( |
5.2.1.2.2.10. 自定义 复制链接链接已复制到粘贴板!
使用这些参数为 RHACS 创建的所有对象指定附加属性。
| 参数 | Description |
|---|---|
|
| 附加到所有对象的自定义标签。 |
|
| 附加到所有对象的自定义注解。 |
|
| 附加到所有部署的自定义标签。 |
|
| 附加到所有部署的自定义注解。 |
|
| 所有对象中所有容器的自定义环境变量。 |
|
| 附加到 Central 创建的所有对象的自定义标签。 |
|
| 附加到中央创建的所有对象的自定义注解。 |
|
| 附加到所有中央部署的自定义标签。 |
|
| 附加到所有中央部署的自定义注解。 |
|
| 所有中央容器的自定义环境变量。 |
|
| 附加到 Scanner 创建的所有对象的自定义标签。 |
|
| 附加到 Scanner 创建的所有对象的自定义注解。 |
|
| 附加到所有 Scanner 部署的自定义标签。 |
|
| 附加到所有 Scanner 部署的自定义注解。 |
|
| 所有 Scanner 容器的自定义环境变量。 |
|
| 附加到 Scanner DB 创建的所有对象的自定义标签。 |
|
| 附加到 Scanner DB 创建的所有对象的自定义注解。 |
|
| 附加到所有 Scanner DB 部署的自定义标签。 |
|
| 附加到所有 Scanner DB 部署的自定义注解。 |
|
| 所有 Scanner DB 容器的自定义环境变量。 |
|
| 附加到 Scanner V4 Indexer 创建并放入属于它们的 pod 的所有对象的自定义标签。 |
|
| 附加到 Scanner V4 Indexer 创建并属于它们的 pod 的所有对象的自定义注解。 |
|
| 附加到 Scanner V4 Indexer 创建并放入属于它们的 pod 的所有对象的自定义标签。 |
|
| 附加到 Scanner V4 Indexer 创建并属于它们的 pod 的所有对象的自定义注解。 |
|
| 所有 Scanner V4 Indexer 容器以及属于它们的 pod 的自定义环境变量。 |
|
| 附加到 Scanner V4 Matcher 创建并属于它们的 pod 的所有对象的自定义标签。 |
|
| 附加到 Scanner V4 Matcher 创建并属于它们的 pod 的所有对象的自定义注解。 |
|
| 附加到 Scanner V4 Matcher 创建并属于它们的 pod 的所有对象的自定义标签。 |
|
| 附加到 Scanner V4 Matcher 创建并属于它们的 pod 的所有对象的自定义注解。 |
|
| 所有 Scanner V4 Matcher 容器以及属于它们的 pod 的自定义环境变量。 |
|
| 附加到 Scanner V4 DB 创建并属于它们的 pod 的所有对象的自定义标签。 |
|
| 附加到 Scanner V4 DB 创建并属于它们的 pod 的所有对象的自定义注解。 |
|
| 附加到 Scanner V4 DB 创建并属于它们的 pod 的所有对象的自定义标签。 |
|
| 附加到 Scanner V4 DB 创建并属于它们的 pod 的所有对象的自定义注解。 |
|
| 所有 Scanner V4 DB 容器以及属于它们的 pod 的自定义环境变量。 |
您还可以使用:
-
customize.other.service/*.labels和customize.other.service/*.annotations参数,为所有对象指定标签和注解。 -
或者,提供特定的服务名称,例如
customize.other.service/central-loadbalancer.labels和customize.other.service/central-loadbalancer.annotations作为参数,并设置它们的值。
5.2.1.2.2.11. 高级自定义 复制链接链接已复制到粘贴板!
本节中指定的参数仅用于信息。红帽不支持带有修改的命名空间和发行版本名称的 RHACS 实例。
| 参数 | Description |
|---|---|
|
|
使用 |
|
|
使用 |
5.2.1.2.3. 声明性配置值 复制链接链接已复制到粘贴板!
要使用声明性配置,您必须创建一个 YAML 文件(在这个示例中,名为 "declarative-config-values.yaml")),以将声明性配置挂载添加到 Central。此文件用于 Helm 安装。
流程
使用以下示例创建 YAML 文件(本例中为
declarative-config-values.yaml):Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
安装 Central 服务 Helm chart,如"安装 central-services Helm Chart"中所述,引用
declarative-config-values.yaml文件。
5.2.1.2.4. 安装 central-services Helm chart 复制链接链接已复制到粘贴板!
配置 values-public.yaml 和 values-private.yaml 文件后,安装 central-services Helm Chart 来部署集中式组件(Central 和 Scanner)。
流程
运行以下命令:
helm install -n stackrox --create-namespace \ stackrox-central-services rhacs/central-services \ -f <path_to_values_public.yaml> -f <path_to_values_private.yaml>
$ helm install -n stackrox --create-namespace \ stackrox-central-services rhacs/central-services \ -f <path_to_values_public.yaml> -f <path_to_values_private.yaml>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 使用
-f选项指定 YAML 配置文件的路径。
可选:如果使用声明性配置,请将 -f <path_to_declarative-config-values.yaml 添加到此命令,以便在 Central 中挂载声明性配置文件。
5.2.1.3. 在部署 central-services Helm Chart 后更改配置选项 复制链接链接已复制到粘贴板!
在部署 central-services Helm Chart 后,您可以对任何配置选项进行更改。
当使用 helm upgrade 命令进行更改时,会应用以下准则和要求:
-
您还可以使用
--set或--set-file参数指定配置值。但是,这些选项不会被保存,每当您进行更改时,您必须手动指定所有选项。 有些更改(如启用新组件)需要为组件发布新证书。因此,在进行这些更改时,您必须提供 CA。
-
如果 CA 在初始安装过程中由 Helm Chart 生成,则必须从集群中检索这些值,并将其提供给
helm upgrade命令。central-servicesHelm Chart 的安装后备注包括用于检索自动生成的值的命令。 -
如果 CA 在 Helm Chart 之外生成,并在安装
central-servicesChart 的过程中提供,那么您必须在使用helm upgrade命令时再次执行该操作,例如,使用带有helm upgrade命令的--reuse-values标志。
-
如果 CA 在初始安装过程中由 Helm Chart 生成,则必须从集群中检索这些值,并将其提供给
流程
-
使用新值更新
values-public.yaml和values-private.yaml配置文件。 运行
helm upgrade命令并使用-f选项指定配置文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 如果您修改了没有包括在
values_public.yaml和values_private.yaml文件中的值,请包含--reuse-values参数。
5.2.2. 使用 roxctl CLI 安装 Central 复制链接链接已复制到粘贴板!
对于生产环境,红帽建议使用 Operator 或 Helm chart 安装 RHACS。除非有需要使用此方法的特定安装需要,否则不要使用 roxctl 安装方法。
5.2.2.1. 安装 roxctl CLI 复制链接链接已复制到粘贴板!
要安装 Red Hat Advanced Cluster Security for Kubernetes,您必须下载二进制文件来安装 roxctl CLI。您可以在 Linux、Windows 或 macOS 上安装 roxctl。
5.2.2.1.1. 在 Linux 中安装 roxctl CLI 复制链接链接已复制到粘贴板!
您可以按照以下流程在 Linux 上安装 roxctl CLI 二进制文件。
用于 Linux 的 roxctl CLI 可用于 amd 64、rm64、 ppc64le 和 s390x 架构。
流程
确定目标操作系统的
roxctl架构:arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 下载
roxctlCLI:curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Linux/roxctl${arch}"$ curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Linux/roxctl${arch}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使
roxctl二进制文件可执行:chmod +x roxctl
$ chmod +x roxctlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
roxctl二进制文件放到PATH中的目录中:要查看您的
PATH,请执行以下命令:echo $PATH
$ echo $PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证您已安装的
roxctl版本:roxctl version
$ roxctl versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.2.1.2. 在 macOS 上安装 roxctl CLI 复制链接链接已复制到粘贴板!
您可以按照以下流程在 macOS 中安装 roxctl CLI 二进制文件。
macOS 的 roxctl CLI 可用于 amd64 和 arm64 架构。
流程
确定目标操作系统的
roxctl架构:arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 下载
roxctlCLI:curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Darwin/roxctl${arch}"$ curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Darwin/roxctl${arch}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从二进制文件中删除所有扩展属性:
xattr -c roxctl
$ xattr -c roxctlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使
roxctl二进制文件可执行:chmod +x roxctl
$ chmod +x roxctlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
roxctl二进制文件放到PATH中的目录中:要查看您的
PATH,请执行以下命令:echo $PATH
$ echo $PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证您已安装的
roxctl版本:roxctl version
$ roxctl versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.2.1.3. 在 Windows 上安装 roxctl CLI 复制链接链接已复制到粘贴板!
您可以按照以下流程在 Windows 上安装 roxctl CLI 二进制文件。
用于 Windows 的 roxctl CLI 可用于 amd64 架构。
流程
下载
roxctlCLI:curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Windows/roxctl.exe
$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Windows/roxctl.exeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证您已安装的
roxctl版本:roxctl version
$ roxctl versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.2.2. 使用交互式安装程序 复制链接链接已复制到粘贴板!
使用交互式安装程序为您的环境生成所需的 secret、部署配置和部署脚本。
流程
运行交互式 install 命令:
roxctl central generate interactive
$ roxctl central generate interactiveCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要使用
roxctlCLI 安装 RHACS 会创建 PodSecurityPolicy (PSP)对象,以便向后兼容。如果要在 Kubernetes 版本 1.25 及更新版本上,或在 OpenShift Container Platform version 4.12 和更新版本上安装 RHACS,则必须禁用 PSP 对象的创建。要做到这一点,对于roxctl central generate和roxctl sensor generate命令,将--enable-pod-security-policies选项设置为false。按 Enter 接受提示的默认值或根据需要输入自定义值。以下示例显示了交互式安装程序提示:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 如果要添加自定义 TLS 证书,请提供 PEM 编码证书的文件路径。当您指定自定义证书时,交互式安装程序还会提示您为您要使用的自定义证书提供 PEM 私钥。
- 2
- 如果您正在运行 Kubernetes 版本 1.25 或更高版本,请将此值设置为
false。 - 3
- 有关对身份验证和授权使用声明配置的更多信息,请参阅 Red Hat Advanced Cluster Security for Kubernetes 中的"管理 RBAC"中的"Declarative configuration for authentication and authorization resources"。
- 4
- 要使用 RHACS 门户,您必须使用路由(负载均衡器或节点端口)公开中。
- 5
- 有关对身份验证和授权使用声明配置的更多信息,请参阅 Red Hat Advanced Cluster Security for Kubernetes 中的"管理 RBAC"中的"Declarative configuration for authentication and authorization resources"。
警告在 OpenShift Container Platform 中,对于 hostPath 卷,您必须修改 SELinux 策略以允许访问主机和容器共享的目录。这是因为 SELinux 默认阻止目录共享。要修改 SELinux 策略,请运行以下命令:
sudo chcon -Rt svirt_sandbox_file_t <full_volume_path>
$ sudo chcon -Rt svirt_sandbox_file_t <full_volume_path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 但是,红帽不推荐修改 SELinux 策略,而是在 OpenShift Container Platform 上安装时使用 PVC。
在完成时,安装程序会创建一个名为 central-bundle 的文件夹,其中包含用于部署 Central 所需的 YAML 清单和脚本。另外,它显示了您需要运行的脚本的屏幕说明,以部署其他可信证书颁发机构、中部和扫描器,以及登录 RHACS 门户的身份验证说明(如果您回答提示时未提供密码)。
5.2.2.3. 运行中央安装脚本 复制链接链接已复制到粘贴板!
运行交互式安装程序后,您可以运行 setup.sh 脚本来安装 Central。
流程
运行
setup.sh脚本来配置镜像 registry 访问:./central-bundle/central/scripts/setup.sh
$ ./central-bundle/central/scripts/setup.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建所需资源:
oc create -R -f central-bundle/central
$ oc create -R -f central-bundle/centralCopy to Clipboard Copied! Toggle word wrap Toggle overflow
kubectl create -R -f central-bundle/central
$ kubectl create -R -f central-bundle/central
检查部署进度:
oc get pod -n stackrox -w
$ oc get pod -n stackrox -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow
kubectl get pod -n stackrox -w
$ kubectl get pod -n stackrox -w
在 Central 运行后,找到 RHACS 门户 IP 地址并在浏览器中打开。根据您在回答提示时选择的风险,请使用以下方法之一获取 IP 地址。
Expand 公开方法 命令 地址 Example Route(路由)
oc -n stackrox get route central在输出中
HOST/PORT列下的地址https://central-stackrox.example.route节点端口
oc get node -owide && oc -n stackrox get svc central-loadbalancer任何节点的 IP 或主机名,在服务显示的端口中
https://198.51.100.0:31489Load Balancer
oc -n stackrox get svc central-loadbalancer在端口 443 上为服务显示 EXTERNAL-IP 或主机名
https://192.0.2.0无
central-bundle/central/scripts/port-forward.sh 8443https://localhost:8443https://localhost:8443
如果您在互动安装过程中选择了自动生成的密码,您可以运行以下命令将其记录到 Central:
cat central-bundle/password
$ cat central-bundle/password
5.3. 在其他平台上为 RHACS 生成并应用 init 捆绑包或集群注册 secret 复制链接链接已复制到粘贴板!
RHACS 在安装过程中使用特殊工件,它允许 Central 与您要添加的安全集群安全通信。在 4.7 发行前,RHACS 使用 init 捆绑包 专门用于启动安全通信频道。从 4.7 开始,RHACS 提供了对称为 集群注册 secret (CRSes)的 init 捆绑包的替代选择。
集群注册 secret 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
集群注册 secret (CRS)提供改进的安全性,并更易于使用。CRS 包含单个令牌,可在使用 Operator 和 Helm 安装方法安装 RHACS 时使用。
CRSes 提供更高的安全性,因为它们仅用于注册新的安全集群。如果泄漏,则 init 捆绑包中的证书和密钥可用于模拟安全集群中运行的服务。相反,CRS 中的证书和密钥只能用于 注册 新集群。
在使用 CRS 设置集群后,特定于服务的证书由 Central 发布并发送到新的安全集群。这些服务证书用于 Central 和安全集群之间的通信。因此,可以在集群注册后撤销 CRS,而无需断开安全集群。
目前,支持在安装过程中使用 init 捆绑包或集群注册 secret (CRS)。但是,RHACS 尚不提供使用门户创建 CRS 的方法。因此,您必须使用 roxctl CLI 创建 CRS。
在使用 Operator 或 Helm 安装方法安装 RHACS 时,您可以使用 CRSes。
在设置安全集群前,您必须创建一个 init 捆绑包或 CRS。然后,安全集群使用此捆绑包或 CRS 与 Central 进行身份验证。您可以使用 RHACS 门户或 roxctl CLI 创建 init 捆绑包。如果使用 CRS,则必须使用 roxctl CLI 创建它。
然后,您可以使用 OpenShift Container Platform Web 控制台或 oc 或 kubectl CLI 应用 init 捆绑包或 CRS。如果使用 Helm 安装 RHACS,在运行 helm install 命令时提供 init 捆绑包或 CRS。
您必须具有 Admin 用户角色才能创建 init 捆绑包。
5.3.1. 生成 init 捆绑包 复制链接链接已复制到粘贴板!
5.3.1.1. 使用 RHACS 门户生成 init 捆绑包 复制链接链接已复制到粘贴板!
您可以使用 RHACS 门户创建包含 secret 的 init 捆绑包。
您必须具有 Admin 用户角色才能创建 init 捆绑包。
流程
- 查找 RHACS 门户的地址,如"使用 Operator 方法验证中心安装"中所述。
- 登录到 RHACS 门户。
- 如果您没有安全集群或现有的 init 捆绑包,则会出现 Platform Configuration → Clusters 页面。点 Create init bundle。
- 为集群 init 捆绑包输入一个名称。
- 选择您的平台。
- 选择用于安全集群的安装方法: Operator 或 Helm Chart。
点 Download 生成并下载 init 捆绑包,该捆绑包以 YAML 文件的形式创建。如果您使用相同的安装方法,您可以使用一个 init 捆绑包及其对应 YAML 文件用于所有安全集群。
重要安全地存储此捆绑包,因为它包含 secret。
- 使用它来应用 init 捆绑包,在安全集群中创建资源。
- 在每个集群中安装安全的集群服务。
5.3.1.2. 使用 roxctl CLI 生成 init 捆绑包 复制链接链接已复制到粘贴板!
您可以使用 roxctl CLI 创建带有 secret 的 init 捆绑包。
您必须具有 Admin 用户角色才能创建 init 捆绑包。
先决条件
您已配置了
ROX_API_TOKEN和ROX_CENTRAL_ADDRESS环境变量:运行以下命令设置
ROX_API_TOKEN:export ROX_API_TOKEN=<api_token>
$ export ROX_API_TOKEN=<api_token>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令设置
ROX_CENTRAL_ADDRESS环境变量:export ROX_CENTRAL_ADDRESS=<address>:<port_number>
$ export ROX_CENTRAL_ADDRESS=<address>:<port_number>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
流程
要为 Helm 安装生成包含 secret 的集群 init 捆绑包,请运行以下命令:
roxctl -e "$ROX_CENTRAL_ADDRESS" \ central init-bundles generate <cluster_init_bundle_name> --output \ cluster_init_bundle.yaml
$ roxctl -e "$ROX_CENTRAL_ADDRESS" \ central init-bundles generate <cluster_init_bundle_name> --output \ cluster_init_bundle.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要为 Operator 安装生成包含 secret 的集群 init 捆绑包,请运行以下命令:
roxctl -e "$ROX_CENTRAL_ADDRESS" \ central init-bundles generate <cluster_init_bundle_name> --output-secrets \ cluster_init_bundle.yaml
$ roxctl -e "$ROX_CENTRAL_ADDRESS" \ central init-bundles generate <cluster_init_bundle_name> --output-secrets \ cluster_init_bundle.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要确保您安全地存储此捆绑包,因为它包含 secret。您可以使用同一捆绑包来设置多个安全集群。
5.3.1.3. 在安全集群中应用 init 捆绑包 复制链接链接已复制到粘贴板!
在配置安全集群前,您必须使用以下方法应用 init 捆绑包,以便在集群中创建所需的资源。应用 init 捆绑包允许安全集群上的服务与 Central 通信。
如果使用 Helm chart 安装,请不要执行此步骤。使用 Helm 完成安装 ; 请参阅"使用 Helm chart 在安全集群中安装 RHACS"。
先决条件
- 您必须生成了一个包含 secret 的 init 捆绑包。
-
您必须在要安装安全集群服务的集群中创建了
stackrox项目或命名空间。不需要为项目使用stackrox,但请确保在扫描集群时不会报告 RHACS 进程的漏洞。
流程
要创建资源,请只执行以下步骤之一:
-
使用 OpenShift Container Platform Web 控制台创建资源:在 OpenShift Container Platform Web 控制台中,确保您位于
stackrox命名空间中。在顶部菜单中,点 + 打开 Import YAML 页面。您可以拖动 init 捆绑包文件或将其内容复制并粘贴到编辑器中,然后点 Create。命令完成后,显示显示collector-tls、sensor-tls和admission-control-tls资源已创建。 使用 Red Hat OpenShift CLI 创建资源:使用 Red Hat OpenShift CLI,运行以下命令来创建资源:
oc create -f <init_bundle.yaml> \ -n <stackrox>
$ oc create -f <init_bundle.yaml> \1 -n <stackrox>2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
kubectlCLI,运行以下命令来创建资源:kubectl create namespace stackrox kubectl create -f <init_bundle.yaml> \ -n <stackrox>
$ kubectl create namespace stackrox1 $ kubectl create -f <init_bundle.yaml> \2 -n <stackrox>3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3.2. 生成 CRS 复制链接链接已复制到粘贴板!
5.3.2.1. 使用 roxctl CLI 生成 CRS 复制链接链接已复制到粘贴板!
您可以使用 roxctl CLI 创建集群注册 secret。
您必须具有 Admin 用户角色才能创建 CRS。
先决条件
您已配置了
ROX_API_TOKEN和ROX_CENTRAL_ADDRESS环境变量:运行以下命令设置
ROX_API_TOKEN:export ROX_API_TOKEN=<api_token>
$ export ROX_API_TOKEN=<api_token>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令设置
ROX_CENTRAL_ADDRESS环境变量:export ROX_CENTRAL_ADDRESS=<address>:<port_number>
$ export ROX_CENTRAL_ADDRESS=<address>:<port_number>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
流程
要生成 CRS,请运行以下命令:
roxctl -e "$ROX_CENTRAL_ADDRESS" \ central crs generate <crs_name> \ --output <file_name>
$ roxctl -e "$ROX_CENTRAL_ADDRESS" \ central crs generate <crs_name> \1 --output <file_name>2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要确保您安全地存储这个文件,因为它包含 secret。您可以使用同一文件来设置多个安全集群。您无法检索之前生成的 CR。
根据您选择的输出,命令可能会返回有关 CRS 和 YAML 文件的一些 INFO 消息。
输出示例
5.3.2.2. 在安全集群中应用集群注册 secret (CRS) 复制链接链接已复制到粘贴板!
在配置安全集群前,您必须将 CRS 应用到集群。应用 CR 后,安全集群上的服务可以与 Central 安全地通信。
如果使用 Helm chart 安装,请不要执行此步骤。使用 Helm 完成安装 ; 请参阅"使用 Helm chart 在安全集群中安装 RHACS"。
先决条件
- 您必须已生成一个 CRS。
流程
要创建资源,请只执行以下步骤之一:
-
使用 OpenShift Container Platform Web 控制台创建资源:在 OpenShift Container Platform Web 控制台中,进入
stackrox项目或您要安装安全集群服务的项目。在顶部菜单中,点 + 打开 Import YAML 页面。您可以将 CRS 文件或者复制并粘贴到编辑器中,然后点 Create。当命令完成后,显示名为cluster-registration-secret的 secret 被创建。 使用 Red Hat OpenShift CLI 创建资源:使用 Red Hat OpenShift CLI,运行以下命令来创建资源:
oc create -f <file_name.yaml> \ -n <stackrox>
$ oc create -f <file_name.yaml> \1 -n <stackrox>2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
kubectlCLI,运行以下命令来创建资源:kubectl create namespace stackrox kubectl create -f <file_name.yaml> \ -n <stackrox>
$ kubectl create namespace stackrox1 $ kubectl create -f <file_name.yaml> \2 -n <stackrox>3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3.3. 后续步骤 复制链接链接已复制到粘贴板!
- 在您要监控的所有集群中安装 RHACS 安全集群服务。
5.4. 在其他平台上为 RHACS 安装安全集群服务 复制链接链接已复制到粘贴板!
您可以在安全集群中安装 Red Hat Advanced Cluster Security for Kubernetes (RHACS):
- Amazon Elastic Kubernetes Service (Amazon EKS)
- Google Kubernetes Engine (GKE)
- Microsoft Azure Kubernetes Service (Microsoft AKS)
5.4.1. 使用 Helm chart 在安全集群中安装 RHACS 复制链接链接已复制到粘贴板!
您可以使用没有自定义的 Helm chart、使用默认值或配置参数自定义的 Helm chart 在安全集群中安装 RHACS。
5.4.1.1. 使用 Helm chart 在安全集群中安装 RHACS 复制链接链接已复制到粘贴板!
5.4.1.1.1. 添加 Helm Chart 仓库 复制链接链接已复制到粘贴板!
流程
添加 RHACS chart 存储库。
helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/
$ helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Red Hat Advanced Cluster Security for Kubernetes 的 Helm 仓库包括用于安装不同组件的 Helm chart,包括:
用于安装集中组件(Central 和 Scanner)的中央服务Helm Chart(
central-services)。注意您只部署集中式组件一次,并可使用同一安装监控多个独立集群。
安全集群服务 Helm Chart (
secured-cluster-services),用于安装 per-cluster 和 per-node 组件(Sensor、Admission Controller、Collector 和 Scanner-slim)。注意将 per-cluster 组件部署到要监控的每个集群中,并在要监控的所有节点中部署 per-node 组件。
验证
运行以下命令来验证添加的 chart 存储库:
helm search repo -l rhacs/
$ helm search repo -l rhacs/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用以下说明安装 secure-cluster-services Helm chart,以部署 per-cluster 和 per-node 组件(Sensor、Admission controller、Collector 和 Scanner-slim)。
先决条件
- 您必须已为集群生成 RHACS init 捆绑包或 CRS。
-
您必须有权访问 Red Hat Container Registry 和 pull secret 进行身份验证。有关从
registry.redhat.io下载镜像的详情,请参考 Red Hat Container Registry Authentication。 - 您必须具有公开 Central 服务的地址。
流程
在 OpenShift Container Platform 集群中运行以下命令之一:
如果使用 init 捆绑包,请运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果使用 CRS,请运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.1.2. 使用自定义配置 secured-cluster-services Helm chart 复制链接链接已复制到粘贴板!
本节论述了可用于 helm install 和 helm upgrade 命令的 Helm Chart 配置参数。您可以使用 --set 选项或创建 YAML 配置文件来指定这些参数。
创建以下文件来配置 Helm chart 来安装 Red Hat Advanced Cluster Security for Kubernetes:
-
公共配置文件
values-public.yaml:使用此文件保存所有非敏感配置选项。 -
专用配置文件
values-private.yaml:使用此文件保存所有敏感配置选项。确保您安全地存储这个文件。
在使用 secured-cluster-services Helm Chart 时,不要修改属于 chart 的 values.yaml 文件。
5.4.1.2.1. 配置参数 复制链接链接已复制到粘贴板!
| 参数 | Description |
|---|---|
|
| 集群的名称。 |
|
|
Central 端点的地址。如果使用一个支持非 gRPC 的负载均衡器,请使用带有 |
|
| Sensor 端点的地址,包括端口号。 |
|
| Sensor 容器的镜像拉取策略。 |
|
| Sensor 使用的内部服务到服务 TLS 证书。 |
|
| Sensor 使用的内部服务到服务 TLS 证书密钥。 |
|
| Sensor 容器的内存请求。使用此参数覆盖默认值。 |
|
| Sensor 容器的 CPU 请求。使用此参数覆盖默认值。 |
|
| Sensor 容器的内存限值。使用此参数覆盖默认值。 |
|
| Sensor 容器的 CPU 限制。使用此参数覆盖默认值。 |
|
|
将节点选择器标签指定为 |
|
| 如果节点选择器选择污点节点,请使用此参数指定污点容限键、值和 Sensor 的效果。此参数主要用于基础架构节点。 |
|
|
|
|
| Collector 镜像的名称。 |
|
| 用于主镜像的 registry 地址。 |
|
| 用于 Collector 镜像的 registry 地址。 |
|
| 用于 Scanner 镜像的 registry 地址。 |
|
| 用于 Scanner DB 镜像的 registry 地址。 |
|
| 用于 Scanner V4 镜像的 registry 地址。 |
|
| 用于 Scanner V4 DB 镜像的 registry 地址。 |
|
|
|
|
| Collector 镜像的镜像拉取策略。 |
|
|
使用 |
|
|
使用 |
|
|
|
|
| Collector 容器的镜像拉取策略。 |
|
| Compliance 容器的镜像拉取策略。 |
|
|
如果指定了 |
|
| Collector 容器的内存请求。使用此参数覆盖默认值。 |
|
| Collector 容器的 CPU 请求。使用此参数覆盖默认值。 |
|
| Collector 容器的内存限值。使用此参数覆盖默认值。 |
|
| Collector 容器的 CPU 限制。使用此参数覆盖默认值。 |
|
| Compliance 容器的内存请求。使用此参数覆盖默认值。 |
|
| Compliance 容器的 CPU 请求。使用此参数覆盖默认值。 |
|
| Compliance 容器的内存限值。使用此参数覆盖默认值。 |
|
| Compliance 容器的 CPU 限制。使用此参数覆盖默认值。 |
|
| Collector 使用的内部服务到服务的 TLS 证书。 |
|
| Collector 使用的内部服务到服务的 TLS 证书密钥。 |
|
|
此设置控制 Kubernetes 是否配置为联系 Red Hat Advanced Cluster Security for Kubernetes,并带有 |
|
|
当您将此参数设置为 |
|
|
此设置控制集群是否被配置为联系 Red Hat Advanced Cluster Security for Kubernetes,带有 |
|
| 此设置控制 Red Hat Advanced Cluster Security for Kubernetes 是否评估策略 ; 如果禁用了策略,则会自动接受所有 AdmissionReview 请求。 |
|
|
此设置控制准入控制服务的行为。您必须把 |
|
|
如果将这个选项设置为 |
|
|
将它设置为 |
|
|
在将其标记为失败前,使用此参数指定 RHACS 必须等待准入审核的最大秒数。如果准入 Webhook 在超时时间结束前没有收到请求的信息,它会失败,但处于打开状态时,它仍然允许操作成功。例如,准入控制器允许创建部署,即使扫描超时,RHACS 无法确定部署是否违反了策略。从版本 4.5 开始,红帽将 RHACS 准入控制器 webhook 的默认超时设置从 20 秒减少到 10 秒,从而导致 |
|
| Admission Control 容器的内存请求。使用此参数覆盖默认值。 |
|
| Admission Control 容器的 CPU 请求。使用此参数覆盖默认值。 |
|
| Admission Control 容器的内存限值。使用此参数覆盖默认值。 |
|
| Admission Control 容器的 CPU 限制。使用此参数覆盖默认值。 |
|
|
将节点选择器标签指定为 |
|
| 如果节点选择器选择污点节点,请使用此参数指定污点容限键、值以及 Admission Control 的效果。此参数主要用于基础架构节点。 |
|
|
如果准入控制器 Webhook 需要特定的 |
|
| Admission Control 使用的内部服务到服务的 TLS 证书。 |
|
| Admission Control 使用的内部服务对服务的 TLS 证书密钥。 |
|
|
使用此参数覆盖默认的 |
|
|
如果指定了 |
|
|
指定 |
|
|
指定 |
|
|
已弃用。如果要使用 slim Collector 镜像部署 Collector,请指定 |
|
| Sensor 的资源规格。 |
|
| Admission 控制器的资源规格。 |
|
| Collector 的资源规格。 |
|
| Collector 的 Compliance 容器的资源规格。 |
|
|
如果将此选项设置为 |
|
|
如果将此选项设置为 |
|
|
如果将此选项设置为 |
|
| 如果节点选择器选择污点节点,请使用此参数为 Scanner DB 指定污点容限键、值和效果。 |
|
| Collector 的 Compliance 容器的资源规格。 |
|
| 通过设置此参数,您可以修改扫描程序日志级别。使用这个选项仅用于故障排除目的。 |
|
|
如果将此选项设置为 |
|
| 自动扩展的最小副本数。默认值为 2。 |
|
| 自动扩展的最大副本数。默认值为 5。 |
|
|
将节点选择器标签指定为 |
|
| 如果节点选择器选择污点节点,请使用此参数为 Scanner 指定污点容限键、值和效果。 |
|
|
将节点选择器标签指定为 |
|
| 如果节点选择器选择污点节点,请使用此参数为 Scanner DB 指定污点容限键、值和效果。 |
|
| Scanner 容器的内存请求。使用此参数覆盖默认值。 |
|
| Scanner 容器的 CPU 请求。使用此参数覆盖默认值。 |
|
| Scanner 容器的内存限值。使用此参数覆盖默认值。 |
|
| Scanner 容器的 CPU 限制。使用此参数覆盖默认值。 |
|
| Scanner DB 容器的内存请求。使用此参数覆盖默认值。 |
|
| Scanner DB 容器的 CPU 请求。使用此参数覆盖默认值。 |
|
| Scanner DB 容器的内存限值。使用此参数覆盖默认值。 |
|
| Scanner DB 容器的 CPU 限制。使用此参数覆盖默认值。 |
|
|
如果将此选项设置为 |
|
|
为了在网络级别提供安全性,RHACS 在安装了安全集群资源的命名空间中创建默认 警告 禁用创建默认网络策略可能会破坏 RHACS 组件之间的通信。如果禁用创建默认策略,则必须创建自己的网络策略来允许此通信。 |
5.4.1.2.1.1. 环境变量 复制链接链接已复制到粘贴板!
您可以采用以下格式指定 Sensor 和 Admission Controller 的环境变量:
customize:
envVars:
ENV_VAR1: "value1"
ENV_VAR2: "value2"
customize:
envVars:
ENV_VAR1: "value1"
ENV_VAR2: "value2"
通过 customize 设置,您可以为此 Helm Chart 创建的所有对象指定自定义 Kubernetes 元数据(标签和注解)以及工作负载的其他 pod 标签、Pod 注解和容器环境变量。
配置是分层的,在更通用范围(例如,所有对象)中定义的元数据被覆盖为更通用范围的元数据(例如,仅适用于 Sensor 部署)。
5.4.1.2.2. 使用自定义安装 secured-cluster-services Helm chart 复制链接链接已复制到粘贴板!
配置 values-public.yaml 和 values-private.yaml 文件后,安装 secure-cluster-services Helm chart 以部署针对每个集群和每个节点组件:
- Sensor
- 准入控制器
- Collector
- scanner:当安装了 StackRox Scanner 时,对于安全集群是可选的
- scanner DB:当安装了 StackRox Scanner 时,对于安全集群是可选的
- 扫描程序 V4 Indexer 和 Scanner V4 DB:在安装 Scanner V4 时对于安全集群是可选的
先决条件
- 您必须已为集群生成 RHACS init 捆绑包。
-
您必须有权访问 Red Hat Container Registry 和 pull secret 进行身份验证。有关从
registry.redhat.io下载镜像的详情,请参考 Red Hat Container Registry Authentication。 - 您必须有用于公开 Central 服务的地址和端口号。
流程
运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
要使用持续集成(CI)系统部署 secure-cluster-services Helm Chart,请将 init 捆绑包 YAML 文件作为环境变量传递给 helm install 命令:
helm install ... -f <(echo "$INIT_BUNDLE_YAML_SECRET")
$ helm install ... -f <(echo "$INIT_BUNDLE_YAML_SECRET")
- 1
- 如果您使用 base64 编码变量,请使用
helm install … -f <(echo "$INIT_BUNDLE_YAML_SECRET" | base64 --decode)命令。
5.4.1.3. 在部署 secure-cluster-services Helm chart 后更改配置选项 复制链接链接已复制到粘贴板!
在部署 secure-cluster-services Helm Chart 后,您可以对任何配置选项进行更改。
当使用 helm upgrade 命令进行更改时,会应用以下准则和要求:
-
您还可以使用
--set或--set-file参数指定配置值。但是,这些选项不会被保存,每当您进行更改时,您必须手动指定所有选项。 有些更改(如启用新组件)需要为组件发布新证书。因此,在进行这些更改时,您必须提供 CA。
-
如果 CA 在初始安装过程中由 Helm Chart 生成,则必须从集群中检索这些值,并将其提供给
helm upgrade命令。central-servicesHelm Chart 的安装后备注包括用于检索自动生成的值的命令。 -
如果 CA 在 Helm Chart 之外生成,并在安装
central-servicesChart 的过程中提供,那么您必须在使用helm upgrade命令时再次执行该操作,例如,使用带有helm upgrade命令的--reuse-values标志。
-
如果 CA 在初始安装过程中由 Helm Chart 生成,则必须从集群中检索这些值,并将其提供给
流程
-
使用新值更新
values-public.yaml和values-private.yaml配置文件。 运行
helm upgrade命令并使用-f选项指定配置文件:helm upgrade -n stackrox \ stackrox-secured-cluster-services rhacs/secured-cluster-services \ --reuse-values \ -f <path_to_values_public.yaml> \ -f <path_to_values_private.yaml>
$ helm upgrade -n stackrox \ stackrox-secured-cluster-services rhacs/secured-cluster-services \ --reuse-values \1 -f <path_to_values_public.yaml> \ -f <path_to_values_private.yaml>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 如果您修改了没有包括在
values_public.yaml和values_private.yaml文件中的值,请包含--reuse-values参数。
5.4.2. 使用 roxctl CLI 在安全集群中安装 RHACS 复制链接链接已复制到粘贴板!
要使用 CLI 在安全集群中安装 RHACS,请执行以下步骤:
-
安装
roxctlCLI - 安装 Sensor。
5.4.2.1. 安装 roxctl CLI 复制链接链接已复制到粘贴板!
您必须首先下载二进制文件。您可以在 Linux、Windows 或 macOS 上安装 roxctl。
5.4.2.1.1. 在 Linux 中安装 roxctl CLI 复制链接链接已复制到粘贴板!
您可以按照以下流程在 Linux 上安装 roxctl CLI 二进制文件。
用于 Linux 的 roxctl CLI 可用于 amd 64、rm64、 ppc64le 和 s390x 架构。
流程
确定目标操作系统的
roxctl架构:arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 下载
roxctlCLI:curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Linux/roxctl${arch}"$ curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Linux/roxctl${arch}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使
roxctl二进制文件可执行:chmod +x roxctl
$ chmod +x roxctlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
roxctl二进制文件放到PATH中的目录中:要查看您的
PATH,请执行以下命令:echo $PATH
$ echo $PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证您已安装的
roxctl版本:roxctl version
$ roxctl versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.2.1.2. 在 macOS 上安装 roxctl CLI 复制链接链接已复制到粘贴板!
您可以按照以下流程在 macOS 中安装 roxctl CLI 二进制文件。
macOS 的 roxctl CLI 可用于 amd64 和 arm64 架构。
流程
确定目标操作系统的
roxctl架构:arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 下载
roxctlCLI:curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Darwin/roxctl${arch}"$ curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Darwin/roxctl${arch}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从二进制文件中删除所有扩展属性:
xattr -c roxctl
$ xattr -c roxctlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使
roxctl二进制文件可执行:chmod +x roxctl
$ chmod +x roxctlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
roxctl二进制文件放到PATH中的目录中:要查看您的
PATH,请执行以下命令:echo $PATH
$ echo $PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证您已安装的
roxctl版本:roxctl version
$ roxctl versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.2.1.3. 在 Windows 上安装 roxctl CLI 复制链接链接已复制到粘贴板!
您可以按照以下流程在 Windows 上安装 roxctl CLI 二进制文件。
用于 Windows 的 roxctl CLI 可用于 amd64 架构。
流程
下载
roxctlCLI:curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Windows/roxctl.exe
$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.8.6/bin/Windows/roxctl.exeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证您已安装的
roxctl版本:roxctl version
$ roxctl versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.2.2. 安装传感器(Sensor) 复制链接链接已复制到粘贴板!
要监控集群,您必须部署 Sensor。您必须将 Sensor 部署到要监控的每个集群中。此安装方法也称为清单安装方法。
要使用清单安装方法执行安装,请只按照以下步骤之一 操作:
- 使用 RHACS Web 门户下载集群捆绑包,然后提取并运行传感器脚本。
-
使用
roxctlCLI 为 OpenShift Container Platform 集群生成所需的 sensor 配置,并将其与 Central 实例关联。
先决条件
- 您必须已安装了 Central 服务,或者您可以通过选择 Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service)上的 ACS 实例 来访问 Central 服务。
5.4.2.2.1. 使用 Web 门户的清单安装方法 复制链接链接已复制到粘贴板!
流程
- 在 RHACS 门户中的安全集群中,进入 Platform Configuration → Clusters。
- 选择 Secure a cluster → Legacy installation method。
- 为集群指定一个名称。
根据您要部署 Sensor 的位置,为字段提供适当的值。
- 如果您要在同一集群中部署 Sensor,请接受所有字段的默认值。
-
如果您要部署到不同的集群中,请将
central.stackrox.svc:443替换为负载均衡器、节点端口或其他地址,包括端口号,可以被其他集群访问。 如果您使用一个支持非 gRPC 的负载均衡器,如 HAProxy、AWS Application Load Balancer (ALB) 或 AWS Elastic Load Balancing (ELB),请使用 WebSocket Secure (
wss) 协议。使用ws:-
使用
wss://为地址加上前缀。 -
在地址后添加端口号,例如
ws://stackrox-central.example.com:443。
-
使用
- 点 Next 以继续 Sensor 设置。
点 Download YAML File and Keys 下载集群捆绑包(zip 归档)。
重要集群捆绑包 zip 存档包括每个集群的唯一配置和密钥。不要在另一个集群中重复使用相同的文件。
从可访问被监控的集群的系统中,从集群捆绑包中提取并运行
sensor脚本:unzip -d sensor sensor-<cluster_name>.zip
$ unzip -d sensor sensor-<cluster_name>.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow ./sensor/sensor.sh
$ ./sensor/sensor.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您收到部署 Sensor 所需的权限的警告,请按照屏幕说明操作,或联系集群管理员寻求帮助。
部署 Sensor 后,它会联系中心并提供集群信息。
5.4.2.2.2. 使用 roxctl CLI 安装清单 复制链接链接已复制到粘贴板!
流程
运行以下命令,为 OpenShift Container Platform 集群生成所需的传感器配置,并将其与您的 Central 实例关联:
roxctl sensor generate openshift --openshift-version <ocp_version> --name <cluster_name> --central "$ROX_ENDPOINT"
$ roxctl sensor generate openshift --openshift-version <ocp_version> --name <cluster_name> --central "$ROX_ENDPOINT"1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 对于
--openshift-version选项,请指定集群的主 OpenShift Container Platform 版本号。例如,为 OpenShift Container Platform 版本3.x指定3,为 OpenShift Container Platform 版本4.x指定4。
从可访问被监控的集群的系统中,从集群捆绑包中提取并运行
sensor脚本:unzip -d sensor sensor-<cluster_name>.zip
$ unzip -d sensor sensor-<cluster_name>.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow ./sensor/sensor.sh
$ ./sensor/sensor.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您收到部署 Sensor 所需的权限的警告,请按照屏幕说明操作,或联系集群管理员寻求帮助。
部署 Sensor 后,它会联系中心并提供集群信息。
验证
返回 RHACS 门户并检查部署是否成功。如果成功,当在 Platform Configuration → Clusters 中查看集群列表时,集群状态会显示一个绿色勾号和 Healthy 状态。如果您没有看到绿色勾选标记,请使用以下命令检查问题:
在 Kubernetes 上,输入以下命令:
kubectl get pod -n stackrox -w
$ kubectl get pod -n stackrox -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- 点 Finish 关闭窗口。
安装后,Sensor 开始向 RHACS 报告安全信息,RHACS 门户仪表板开始显示部署、镜像和策略违反情况。
5.5. 在其他平台上验证 RHACS 安装 复制链接链接已复制到粘贴板!
提供验证 RHACS 是否已正确安装的步骤。
5.5.1. 验证安装 复制链接链接已复制到粘贴板!
安装完成后,运行几个存在安全漏洞的应用程序并进入 RHACS 门户来评估安全评估和策略违反情况的结果。
以下部分中列出的示例应用程序包含关键漏洞,它们旨在验证 Red Hat Advanced Cluster Security for Kubernetes 的构建和部署时间评估功能。
验证安装:
根据您的暴露的方法查找 RHACS 门户地址:
对于负载均衡器:
kubectl get service central-loadbalancer -n stackrox
$ kubectl get service central-loadbalancer -n stackroxCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于端口转发:
运行以下命令:
kubectl port-forward svc/central 18443:443 -n stackrox
$ kubectl port-forward svc/central 18443:443 -n stackroxCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
进入
https://localhost:18443/。
新建命名空间:
kubectl create namespace test
$ kubectl create namespace testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用关键漏洞启动一些应用程序:
kubectl run shell --labels=app=shellshock,team=test-team \ --image=quay.io/stackrox-io/docs:example-vulnerables-cve-2014-6271 -n test kubectl run samba --labels=app=rce \ --image=quay.io/stackrox-io/docs:example-vulnerables-cve-2017-7494 -n test
$ kubectl run shell --labels=app=shellshock,team=test-team \ --image=quay.io/stackrox-io/docs:example-vulnerables-cve-2014-6271 -n test $ kubectl run samba --labels=app=rce \ --image=quay.io/stackrox-io/docs:example-vulnerables-cve-2017-7494 -n testCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Red Hat Advanced Cluster Security for Kubernetes 会在向集群提交后自动扫描这些部署以了解安全风险和策略违反情况。进入 RHACS 门户以查看违反情况。您可以使用默认用户名 admin 和生成的密码登录到 RHACS 门户。
安装 Red Hat Advanced Cluster Security for Kubernetes 时,它会创建:
-
如果选择了 Operator 安装方法,一个名为
rhacs-operator的命名空间,Operator 将在这个命名空间中安装 -
名为
stackrox的命名空间,或者您创建的 Central 和 SecuredCluster 自定义资源的另外一个命名空间 -
所有组件的
PodSecurityPolicy和 Kubernetes 基于角色的访问控制 (RBAC) 对象 - 命名空间上的额外标签,用于生成的网络策略
- 一个应用程序自定义资源定义 (CRD),如果它不存在
卸载 Red Hat Advanced Cluster Security for Kubernetes 涉及删除所有这些项目。
6.1. 删除命名空间 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Container Platform 或 Kubernetes 命令行界面删除 Red Hat Advanced Cluster Security for Kubernetes 创建的命名空间。
流程
删除
stackrox命名空间:在 OpenShift Container Platform 中:
oc delete namespace stackrox
$ oc delete namespace stackroxCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 Kubernetes:
kubectl delete namespace stackrox
$ kubectl delete namespace stackroxCopy to Clipboard Copied! Toggle word wrap Toggle overflow
如果您在不同的命名空间中安装了 RHACS,请在 delete 命令中使用该命名空间的名称。
6.2. 删除全局资源 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Container Platform 或 Kubernetes 命令行界面(CLI)删除 Red Hat Advanced Cluster Security for Kubernetes (RHACS)创建的全局资源。
流程
要使用 OpenShift Container Platform CLI 删除全局资源,请执行以下步骤:
检索所有与 StackRox 相关的集群角色、集群角色绑定、角色、角色绑定和 PSP,然后运行以下命令来删除它们:
oc get clusterrole,clusterrolebinding,role,rolebinding,psp -o name | grep stackrox | xargs oc delete --wait
$ oc get clusterrole,clusterrolebinding,role,rolebinding,psp -o name | grep stackrox | xargs oc delete --waitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您可能会收到
错误:服务器在 RHACS 4.4 及更新的版本中没有资源类型 "psp"错误消息,因为 Pod 安全策略(PSP)已被弃用。在版本 1.25 中,PSPs 已从 Kubernetes 版本中删除,但使用旧的 Kubernetes 版本的集群除外。运行以下命令,删除使用
app.kubernetes.io/name=stackrox标记的自定义安全性上下文约束(SCC):oc delete scc -l "app.kubernetes.io/name=stackrox"
$ oc delete scc -l "app.kubernetes.io/name=stackrox"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您可能会在 RHACS 4.4 及更新的版本中收到
No resources found错误消息,因为这些版本中不再使用带有此标签的自定义 SCC。运行以下命令来删除名为
stackrox的ValidatingWebhookConfiguration对象:oc delete ValidatingWebhookConfiguration stackrox
$ oc delete ValidatingWebhookConfiguration stackroxCopy to Clipboard Copied! Toggle word wrap Toggle overflow
要使用 Kubernetes CLI 删除全局资源,请执行以下步骤:
检索所有与 StackRox 相关的集群角色、集群角色绑定、角色、角色绑定和 PSP,然后运行以下命令来删除它们:
kubectl get clusterrole,clusterrolebinding,role,rolebinding,psp -o name | grep stackrox | xargs kubectl delete --wait
$ kubectl get clusterrole,clusterrolebinding,role,rolebinding,psp -o name | grep stackrox | xargs kubectl delete --waitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您可能会收到
错误:服务器在 RHACS 4.4 及更新的版本中没有资源类型 "psp"错误消息,因为 Pod 安全策略(PSP)已被弃用。在版本 1.25 中,PSPs 已从 Kubernetes 版本中删除,但使用旧的 Kubernetes 版本的集群除外。运行以下命令来删除名为
stackrox的ValidatingWebhookConfiguration对象:kubectl delete ValidatingWebhookConfiguration stackrox
$ kubectl delete ValidatingWebhookConfiguration stackroxCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3. 删除标签和注解 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Container Platform 或 Kubernetes 命令行界面删除 Red Hat Advanced Cluster Security for Kubernetes 创建的标签和注解。
流程
删除标签和注解:
在 OpenShift Container Platform 中:
for namespace in $(oc get ns | tail -n +2 | awk '{print $1}'); do oc label namespace $namespace namespace.metadata.stackrox.io/id-; oc label namespace $namespace namespace.metadata.stackrox.io/name-; oc annotate namespace $namespace modified-by.stackrox.io/namespace-label-patcher-; done$ for namespace in $(oc get ns | tail -n +2 | awk '{print $1}'); do oc label namespace $namespace namespace.metadata.stackrox.io/id-; oc label namespace $namespace namespace.metadata.stackrox.io/name-; oc annotate namespace $namespace modified-by.stackrox.io/namespace-label-patcher-; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 Kubernetes:
for namespace in $(kubectl get ns | tail -n +2 | awk '{print $1}'); do kubectl label namespace $namespace namespace.metadata.stackrox.io/id-; kubectl label namespace $namespace namespace.metadata.stackrox.io/name-; kubectl annotate namespace $namespace modified-by.stackrox.io/namespace-label-patcher-; done$ for namespace in $(kubectl get ns | tail -n +2 | awk '{print $1}'); do kubectl label namespace $namespace namespace.metadata.stackrox.io/id-; kubectl label namespace $namespace namespace.metadata.stackrox.io/name-; kubectl annotate namespace $namespace modified-by.stackrox.io/namespace-label-patcher-; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow