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 门户。
-
如果您没有安全集群,则会出现 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>
运行以下命令设置
ROX_CENTRAL_ADDRESS
环境变量:$ export ROX_CENTRAL_ADDRESS=<address>:<port_number>
步骤
要为 Helm 安装生成包含 secret 的集群 init 捆绑包,请运行以下命令:
$ roxctl -e "$ROX_CENTRAL_ADDRESS" \ central init-bundles generate <cluster_init_bundle_name> --output \ cluster_init_bundle.yaml
要为 Operator 安装生成包含 secret 的集群 init 捆绑包,请运行以下命令:
$ roxctl -e "$ROX_CENTRAL_ADDRESS" \ central init-bundles generate <cluster_init_bundle_name> --output-secrets \ cluster_init_bundle.yaml
重要确保您安全地存储此捆绑包,因为它包含 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> \1 -n <stackrox> 2
使用
kubectl
CLI,运行以下命令来创建资源:$ kubectl create namespace stackrox 1 $ kubectl create -f <init_bundle.yaml> \2 -n <stackrox> 3
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>
运行以下命令设置
ROX_CENTRAL_ADDRESS
环境变量:$ export ROX_CENTRAL_ADDRESS=<address>:<port_number>
流程
要生成 CRS,请运行以下命令:
$ roxctl -e "$ROX_CENTRAL_ADDRESS" \ central crs generate <crs_name> \ 1 --output <file_name> 2
重要确保您安全地存储这个文件,因为它包含 secret。您可以使用同一文件来设置多个安全集群。您无法检索之前生成的 CR。
根据您选择的输出,命令可能会返回有关 CRS 和 YAML 文件的一些 INFO 消息。
输出示例
INFO: Successfully generated new CRS INFO: INFO: Name: test-crs INFO: Created at: 2025-02-26T19:07:21Z INFO: Expires at: 2026-02-26T19:07:00Z INFO: Created By: sample-token INFO: ID: 9214a63f-7e0e-485a-baae-0757b0860ac9 # This is a StackRox Cluster Registration Secret (CRS). # It is used for setting up StackRox secured clusters. # NOTE: This file contains secret data that allows connecting new secured clusters to central, # and needs to be handled and stored accordingly. apiVersion: v1 data: crs: EXAMPLEZXlKMlpYSnphVzl1SWpveExDSkRRWE1pT2xzaUxTMHRMUzFDUlVkSlRpQkRSVkpVU1VaSlEwREXAMPLE= kind: Secret metadata: annotations: crs.platform.stackrox.io/created-at: "2025-02-26T19:07:21.800414339Z" crs.platform.stackrox.io/expires-at: "2026-02-26T19:07:00Z" crs.platform.stackrox.io/id: 9214a63f-7e0e-485a-baae-0757b0860ac9 crs.platform.stackrox.io/name: test-crs creationTimestamp: null name: cluster-registration-secret INFO: Then CRS needs to be stored securely, since it contains secrets. INFO: It is not possible to retrieve previously generated CRSs.
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> \1 -n <stackrox> 2
使用
kubectl
CLI,运行以下命令来创建资源:$ kubectl create namespace stackrox 1 $ kubectl create -f <file_name.yaml> \2 -n <stackrox> 3
5.3.3. 后续步骤
- 在您要监控的所有集群中安装 RHACS 安全集群服务。