5.5. 在 Red Hat OpenShift 上为 RHACS 云服务安装安全集群资源
您可以使用 Operator 在安全集群中安装 ACSCS。
确保您已执行以下步骤:
- 创建 OpenShift Container Platform 集群并在其上安装 Operator。
- 在 ACSCS 中的 ACS 控制台中,您已创建并下载 init 捆绑包。
-
您可以使用
oc create
命令应用 init 捆绑包。 -
在安装过程中,您记下 了 Central API 端点,包括地址和端口号。您可以从云控制台导航菜单中选择 Advanced Cluster Security
ACS Instances 来查看此信息,然后点您创建的 ACS 实例。
您可以使用以下方法之一在安全集群中安装 RHACS:
- 使用 Operator
- 使用 Helm chart
-
使用
roxctl
CLI (除非有需要使用它的特定安装需要)
5.5.1. 使用 Operator 在安全集群中安装 RHACS 复制链接链接已复制到粘贴板!
5.5.1.1. 安装安全的集群服务 复制链接链接已复制到粘贴板!
您可以使用 SecuredCluster
自定义资源在集群中安装安全的集群服务。您必须在要监控的环境中的每个集群中安装安全集群服务。
安装安全的集群服务时,也会安装 Collector。要在具有统一可扩展固件接口(UEFI)以及启用了安全引导机制的系统中安装 Collector,您必须使用 eBPF 探测,因为内核模块没有被签名,且 UEFI 固件无法加载未签名的软件包。收集器在启动时用来识别安全引导状态,并切换到 eBPF 探测(如果需要)。
先决条件
- 如果使用 OpenShift Container Platform,您必须安装版本 4.6 或更高版本。
- 已安装 RHACS Operator。
- 您已生成 init 捆绑包并将其应用到集群。
流程
-
在 OpenShift Container Platform web 控制台中进入到 Operators
Installed Operators 页面。 - 点 RHACS Operator。
- 从 Operator 详情页面的中央导航菜单中点 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:443
。central.stackrox.svc:443
的默认值只有您在同一集群中安装了安全集群服务和 Central 时才可以正常工作。在配置多个集群时,不要使用默认值。反之,在为每个集群配置 Central Endpoint 值时使用主机名。-
对于 ACSCS,请使用 Central API 端点,包括地址和端口号。您可以从云控制台导航菜单中选择 Advanced Cluster Security
ACS Instances 来查看此信息,然后点您创建的 ACS 实例。 -
只有在您在同一集群中安装安全集群服务和 Central 时,才使用
central.stackrox.svc:443
。
-
对于 ACSCS,请使用 Central API 端点,包括地址和端口号。您可以从云控制台导航菜单中选择 Advanced Cluster Security
- 接受默认值或配置自定义值(如果需要)。例如,如果您使用自定义证书或不受信任的 CA,您可能需要配置 TLS。
- 点 Create。
后续步骤
- 可选:配置其他安全的集群设置。
- 验证安装。
5.5.2. 使用 Helm chart 在安全集群中安装 ACSCS 复制链接链接已复制到粘贴板!
您可以使用没有自定义的 Helm chart、使用默认值或配置参数自定义的 Helm chart 在安全集群中安装 RHACS。
首先,确保添加 Helm Chart 仓库。
5.5.2.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,包括:
安全集群服务 Helm Chart (
secured-cluster-services
) 用于安装针对每个集群(Sensor 和 Admission 控制器)和针对每个节点(Collector) 的组件。注意将 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.5.2.2. 使用 Helm chart 在安全集群中安装 ACSCS 复制链接链接已复制到粘贴板!
使用以下说明安装 secure-cluster-services
Helm chart,以部署 per-cluster 和 per-node 组件(Sensor、Admission controller 和 Collector)。
要在具有统一可扩展固件接口(UEFI)以及启用了安全引导机制的系统中安装 Collector,您必须使用 eBPF 探测,因为内核模块没有被签名,且 UEFI 固件无法加载未签名的软件包。收集器在启动时用来识别安全引导状态,并切换到 eBPF 探测(如果需要)。
前提条件
- 您必须为集群生成 RHACS init 捆绑包。
-
您必须具有 Central API 端点,包括地址和端口号。您可以从云控制台导航菜单中选择 Advanced Cluster Security
ACS Instances 来查看此信息,然后点您创建的 ACS 实例。
5.5.2.3. 使用自定义配置 secured-cluster-services Helm chart 复制链接链接已复制到粘贴板!
您可以将 Helm Chart 配置参数与 helm install
和 helm upgrade
命令一起使用。使用 --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.5.2.3.1. 配置参数 复制链接链接已复制到粘贴板!
参数 | Description |
---|---|
| 集群的名称。 |
|
Central 端点的地址,包括端口号。如果使用一个支持非 gRPC 的负载均衡器,请使用带有 |
| Sensor 端点的地址,包括端口号。 |
| Sensor 容器的镜像拉取策略。 |
| Sensor 使用的内部服务到服务 TLS 证书。 |
| Sensor 使用的内部服务到服务 TLS 证书密钥。 |
| Sensor 容器的内存请求。使用此参数覆盖默认值。 |
| Sensor 容器的 CPU 请求。使用此参数覆盖默认值。 |
| Sensor 容器的内存限值。使用此参数覆盖默认值。 |
| Sensor 容器的 CPU 限制。使用此参数覆盖默认值。 |
|
将节点选择器标签指定为 |
| 如果节点选择器选择污点节点,请使用此参数指定污点容限键、值和 Sensor 的效果。此参数主要用于基础架构节点。 |
|
|
| Collector 镜像的名称。 |
| 用于主镜像的 registry 地址。 |
| 用于 Collector 镜像的 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 请求。 |
|
此设置控制准入控制服务的行为。您必须把 |
|
如果将这个选项设置为 |
|
将它设置为 |
| 在评估准入检查请求时,Red Hat Advanced Cluster Security for Kubernetes 应该等待的最大时间(以秒为单位)。使用它来设置启用镜像扫描时的请求超时。如果镜像扫描的运行时间超过指定时间,Red Hat Advanced Cluster Security for Kubernetes 接受了请求。 |
| Admission Control 容器的内存请求。使用此参数覆盖默认值。 |
| Admission Control 容器的 CPU 请求。使用此参数覆盖默认值。 |
| Admission Control 容器的内存限值。使用此参数覆盖默认值。 |
| Admission Control 容器的 CPU 限制。使用此参数覆盖默认值。 |
|
将节点选择器标签指定为 |
| 如果节点选择器选择污点节点,请使用此参数指定污点容限键、值以及 Admission Control 的效果。此参数主要用于基础架构节点。 |
| 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 限制。使用此参数覆盖默认值。 |
5.5.2.3.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.5.2.3.2. 安装 secured-cluster-services Helm chart 复制链接链接已复制到粘贴板!
配置 values-public.yaml
和 values-private.yaml
文件后,安装 secure-cluster-services
Helm chart 以部署 per-cluster 和 per-node 组件(Sensor、Admission controller 和 Collector)。
要在具有统一可扩展固件接口(UEFI)以及启用了安全引导机制的系统中安装 Collector,您必须使用 eBPF 探测,因为内核模块没有被签名,且 UEFI 固件无法加载未签名的软件包。收集器在启动时用来识别安全引导状态,并切换到 eBPF 探测(如果需要)。
前提条件
- 您必须为集群生成 RHACS init 捆绑包。
-
您必须具有 Central API 端点,包括地址和端口号。您可以从云控制台导航菜单中选择 Advanced Cluster Security
ACS Instances 来查看此信息,然后点您创建的 ACS 实例。
流程
运行以下命令:
helm install -n stackrox --create-namespace \ stackrox-secured-cluster-services rhacs/secured-cluster-services \ -f <name_of_cluster_init_bundle.yaml> \ -f <path_to_values_public.yaml> -f <path_to_values_private.yaml>
$ helm install -n stackrox --create-namespace \ stackrox-secured-cluster-services rhacs/secured-cluster-services \ -f <name_of_cluster_init_bundle.yaml> \ -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 配置文件的路径。
要使用持续集成(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.5.2.4. 在部署 secure-cluster-services Helm chart 后更改配置选项 复制链接链接已复制到粘贴板!
在部署 secure-cluster-services
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
- 您必须指定
--reuse-values
参数,否则 Helm upgrade 命令重置所有之前配置的设置。
注意您还可以使用
--set
或--set-file
参数指定配置值。但是,这些选项不会被保存,需要您在每次进行更改时手动指定所有选项。
5.5.3. 使用 roxctl CLI 在安全集群中安装 RHACS 复制链接链接已复制到粘贴板!
要使用 CLI 在安全集群中安装 RHACS,请执行以下步骤:
-
安装
roxctl
CLI。 - 安装 Sensor。
5.5.3.1. 安装 roxctl CLI 复制链接链接已复制到粘贴板!
您必须首先下载二进制文件。您可以在 Linux、Windows 或 macOS 上安装 roxctl
。
5.5.3.1.1. 在 Linux 中安装 roxctl CLI 复制链接链接已复制到粘贴板!
您可以按照以下流程在 Linux 上安装 roxctl
CLI 二进制文件。
流程
下载
roxctl
CLI 的最新版本:curl -O https://mirror.openshift.com/pub/rhacs/assets/3.73.5/bin/Linux/roxctl
$ curl -O https://mirror.openshift.com/pub/rhacs/assets/3.73.5/bin/Linux/roxctl
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使
roxctl
二进制文件可执行:chmod +x roxctl
$ chmod +x roxctl
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
roxctl
二进制文件放到PATH
中的目录中:要查看您的
PATH
,请执行以下命令:echo $PATH
$ echo $PATH
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证您已安装的
roxctl
版本:roxctl version
$ roxctl version
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5.3.1.2. 在 macOS 上安装 roxctl CLI 复制链接链接已复制到粘贴板!
您可以按照以下流程在 macOS 中安装 roxctl
CLI 二进制文件。
流程
下载
roxctl
CLI 的最新版本:curl -O https://mirror.openshift.com/pub/rhacs/assets/3.73.5/bin/Darwin/roxctl
$ curl -O https://mirror.openshift.com/pub/rhacs/assets/3.73.5/bin/Darwin/roxctl
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从二进制文件中删除所有扩展属性:
xattr -c roxctl
$ xattr -c roxctl
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使
roxctl
二进制文件可执行:chmod +x roxctl
$ chmod +x roxctl
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
roxctl
二进制文件放到PATH
中的目录中:要查看您的
PATH
,请执行以下命令:echo $PATH
$ echo $PATH
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证您已安装的
roxctl
版本:roxctl version
$ roxctl version
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5.3.1.3. 在 Windows 上安装 roxctl CLI 复制链接链接已复制到粘贴板!
您可以按照以下流程在 Windows 上安装 roxctl
CLI 二进制文件。
流程
下载
roxctl
CLI 的最新版本:curl -O https://mirror.openshift.com/pub/rhacs/assets/3.73.5/bin/Windows/roxctl.exe
$ curl -O https://mirror.openshift.com/pub/rhacs/assets/3.73.5/bin/Windows/roxctl.exe
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证您已安装的
roxctl
版本:roxctl version
$ roxctl version
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5.3.2. 安装传感器(Sensor) 复制链接链接已复制到粘贴板!
要监控集群,您必须部署 Sensor。您必须将 Sensor 部署到要监控的每个集群中。以下步骤描述使用 RHACS 门户添加传感器。
先决条件
- 您必须已安装了 Central 服务,或者可以访问 Red Hat Advanced Cluster Security Cloud Service (ACSCS)上的中央服务。
流程
-
在 RHACS 门户,进入到 Platform Configuration
Clusters。 - 选择 + New Cluster。
- 为集群指定一个名称。
根据您要部署 Sensor 的位置,为字段提供适当的值。
-
输入 Central API 端点,包括地址和端口号。您可以通过选择 Advanced Cluster Security
ACS Instances,然后点您创建的 ACS 实例,在 Red Hat Hybrid Cloud Console 中再次查看此信息。
-
输入 Central API 端点,包括地址和端口号。您可以通过选择 Advanced Cluster Security
- 点 Next 以继续 Sensor 设置。
点 Download YAML File and Keys 下载集群捆绑包(zip 归档)。
重要集群捆绑包 zip 存档包括每个集群的唯一配置和密钥。不要在另一个集群中重复使用相同的文件。
在可以访问受监控的集群的系统中,解压缩并从集群捆绑包中运行
sensor
脚本:unzip -d sensor sensor-<cluster_name>.zip
$ unzip -d sensor sensor-<cluster_name>.zip
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ./sensor/sensor.sh
$ ./sensor/sensor.sh
Copy 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 -w
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 点 Finish 关闭窗口。
安装后,Sensor 开始向 RHACS 报告安全信息,RHACS 门户仪表板开始显示部署、镜像和策略违反情况。