$ helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/
您可以使用以下方法之一在安全集群上安装 RHACS 云服务:
使用 Helm chart
使用 `roxctl` CLI(除非您有使用它的特定安装需求,否则请不要使用此方法)
您可以使用 Helm chart(无自定义)、使用 Helm chart(使用默认值)或使用自定义配置参数的 Helm chart 在安全集群上安装 RHACS。
首先,请确保您已添加 Helm chart 仓库。
添加 RHACS charts 仓库。
$ helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/
Red Hat Advanced Cluster Security for Kubernetes 的 Helm 仓库包含用于安装不同组件的 Helm chart,包括:
安全集群服务 Helm chart(`secured-cluster-services`),用于安装每个集群和每个节点的组件(传感器、准入控制器、收集器和 Scanner-slim)。
将每个集群组件部署到您想要监控的每个集群中,并将每个节点组件部署到您想要监控的所有节点中。 |
运行以下命令以验证已添加的图表存储库
$ helm search repo -l rhacs/
使用以下说明安装 `secured-cluster-services` Helm 图表以部署每个集群和每个节点的组件(传感器、准入控制器、收集器和 Scanner-slim)。
您必须为您的集群生成 RHACS 初始化包。
您必须能够访问 Red Hat Container Registry 并拥有用于身份验证的拉取密钥。有关从 `registry.redhat.io` 下载镜像的信息,请参阅 Red Hat Container Registry 身份验证。
您必须拥有 **中央 API 端点** 地址。您可以通过在 Red Hat Hybrid Cloud Console 导航菜单中选择 **高级集群安全** → **ACS 实例**,然后单击您创建的 ACS 实例来查看此信息。
在您的基于 Kubernetes 的集群上运行以下命令
$ helm install -n stackrox --create-namespace \
stackrox-secured-cluster-services rhacs/secured-cluster-services \
-f <path_to_cluster_init_bundle.yaml> \(1)
-f <path_to_pull_secret.yaml> \(2)
--set clusterName=<name_of_the_secured_cluster> \
--set centralEndpoint=<endpoint_of_central_service> (3)
--set imagePullSecrets.username=<your redhat.com username> \(4)
--set imagePullSecrets.password=<your redhat.com password>(5)
1 | 使用 `-f` 选项指定初始化包的路径。 |
2 | 使用 `-f` 选项指定 Red Hat Container Registry 身份验证的拉取密钥的路径。 |
3 | 输入 **中央 API 端点** 地址。您可以通过在 Red Hat Hybrid Cloud Console 导航菜单中选择 **高级集群安全** → **ACS 实例**,然后单击您创建的 RHACS 实例来查看此信息。 |
4 | 包含用于 Red Hat Container Registry 身份验证的拉取密钥的用户名。 |
5 | 包含用于 Red Hat Container Registry 身份验证的拉取密钥的密码。 |
本节介绍您可以与 `helm install` 和 `helm upgrade` 命令一起使用的 Helm 图表配置参数。您可以使用 `--set` 选项或创建 YAML 配置文件来指定这些参数。
创建以下文件以配置用于安装 Red Hat Advanced Cluster Security for Kubernetes 的 Helm 图表
公共配置文件 `values-public.yaml`:使用此文件保存所有非敏感配置选项。
私有配置文件 `values-private.yaml`:使用此文件保存所有敏感配置选项。确保安全地存储此文件。
使用 `secured-cluster-services` Helm 图表时,请勿修改图表中包含的 `values.yaml` 文件。 |
参数 | 描述 | ||
---|---|---|---|
|
您的集群名称。 |
||
|
中央端点的地址。如果您使用的是不支持 gRPC 的负载均衡器,请使用 WebSocket 协议,并在端点地址前添加 `wss://`。配置多个集群时,请使用地址的主机名。例如,`central.example.com`。 |
||
|
传感器的端点地址,包括端口号。 |
||
|
传感器的容器镜像拉取策略。 |
||
|
传感器使用的内部服务间 TLS 证书。 |
||
|
传感器使用的内部服务间 TLS 证书密钥。 |
||
|
传感器的容器内存请求。使用此参数覆盖默认值。 |
||
|
传感器的容器 CPU 请求。使用此参数覆盖默认值。 |
||
|
传感器的容器内存限制。使用此参数覆盖默认值。 |
||
|
传感器的容器 CPU 限制。使用此参数覆盖默认值。 |
||
|
指定节点选择器标签为 `label-key: label-value` 以强制传感器仅调度到具有指定标签的节点上。 |
||
|
如果节点选择器选择了受污染的节点,请使用此参数为传感器指定污点容忍密钥、值和效果。此参数主要用于基础设施节点。 |
||
|
`main` 镜像的名称。 |
||
|
收集器镜像的名称。 |
||
|
您正在使用的 `main` 镜像的注册表地址。 |
||
|
您正在使用的收集器镜像的注册表地址。 |
||
|
您正在使用的扫描器镜像的注册表地址。 |
||
|
您正在使用的扫描器数据库镜像的注册表地址。 |
||
|
您正在使用的扫描器 V4 镜像的注册表地址。 |
||
|
您正在使用的扫描器 V4 数据库镜像的注册表地址。 |
||
|
`main` 镜像的镜像拉取策略。 |
||
|
收集器镜像的镜像拉取策略。 |
||
|
要使用的 `main` 镜像的标签。 |
||
|
要使用的 `collector` 镜像的标签。 |
||
|
`CORE_BPF` 或 `NO_COLLECTION`。 |
||
|
收集器容器的镜像拉取策略。 |
||
|
合规性容器的镜像拉取策略。 |
||
|
如果指定 `false`,则将容差应用于收集器,并且收集器 Pod 可以调度到所有带有污点的节点上。如果指定为 `true`,则不应用任何容差,并且收集器 Pod 不会调度到带有污点的节点上。 |
||
|
收集器容器的内存请求。使用此参数覆盖默认值。 |
||
|
收集器容器的 CPU 请求。使用此参数覆盖默认值。 |
||
|
收集器容器的内存限制。使用此参数覆盖默认值。 |
||
|
收集器容器的 CPU 限制。使用此参数覆盖默认值。 |
||
|
合规性容器的内存请求。使用此参数覆盖默认值。 |
||
|
合规性容器的 CPU 请求。使用此参数覆盖默认值。 |
||
|
合规性容器的内存限制。使用此参数覆盖默认值。 |
||
|
合规性容器的 CPU 限制。使用此参数覆盖默认值。 |
||
|
收集器使用的内部服务间 TLS 证书。 |
||
|
收集器使用的内部服务间 TLS 证书密钥。 |
||
|
此设置控制是否将 Kubernetes 配置为使用 |
||
|
将此参数设置为 |
||
|
此设置控制集群是否配置为使用 |
||
|
此设置控制 Red Hat Advanced Cluster Security for Kubernetes 是否评估策略;如果将其禁用,则所有 AdmissionReview 请求都会自动接受。 |
||
|
此设置控制准入控制服务的行为。必须将 |
||
|
如果将此选项设置为 |
||
|
将其设置为 |
||
|
使用此参数指定 RHACS 在将准入审查标记为故障打开之前必须等待的最长时间(以秒为单位)。如果准入 Webhook 在超时期结束之前未收到其请求的信息,则它会失败,但在故障打开状态下,它仍然允许操作成功。例如,即使扫描超时且 RHACS 无法确定部署是否违反了策略,准入控制器也会允许创建部署。从 4.5 版开始,Red Hat 将 RHACS 准入控制器 Webhook 的默认超时设置从 20 秒减少到 10 秒,从而在 |
||
|
准入控制容器的内存请求。使用此参数可覆盖默认值。 |
||
|
准入控制容器的 CPU 请求。使用此参数可覆盖默认值。 |
||
|
准入控制容器的内存限制。使用此参数可覆盖默认值。 |
||
|
准入控制容器的 CPU 限制。使用此参数可覆盖默认值。 |
||
|
将节点选择器标签指定为 |
||
|
如果节点选择器选择了受污染的节点,请使用此参数为准入控制指定污点容忍度键、值和效果。此参数主要用于基础架构节点。 |
||
|
准入控制使用的内部服务到服务 TLS 证书。 |
||
|
准入控制使用的内部服务到服务 TLS 证书密钥。 |
||
|
使用此参数可覆盖默认的 |
||
|
如果指定 |
||
|
指定 |
||
|
指定 |
||
|
已弃用。如果您想使用精简的 Collector 镜像来部署 Collector,请指定 |
||
|
Sensor 的资源规范。 |
||
|
准入控制器的资源规范。 |
||
|
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会在安装安全集群资源的命名空间中创建默认的
|
配置values-public.yaml
和values-private.yaml
文件后,安装secured-cluster-services
Helm 图表以部署以下每个集群和每个节点的组件。
Sensor
准入控制器
收集器
Scanner:安装 StackRox Scanner 的安全集群可选
Scanner DB:安装 StackRox Scanner 的安全集群可选
Scanner V4 Indexer 和 Scanner V4 DB:安装 Scanner V4 的安全集群可选
您必须为您的集群生成 RHACS 初始化包。
您必须能够访问 Red Hat Container Registry 并拥有用于身份验证的拉取密钥。有关从 `registry.redhat.io` 下载镜像的信息,请参阅 Red Hat Container Registry 身份验证。
您必须拥有中央 API 端点地址。您可以通过从 Red Hat Hybrid Cloud Console 导航菜单中选择高级集群安全→ACS 实例,然后单击您创建的 RHACS 实例来查看此信息。
运行以下命令
$ 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)
--set imagePullSecrets.username=<username> \(2)
--set imagePullSecrets.password=<password> (3)
1 | 使用-f 选项指定 YAML 配置文件的路径。 |
2 | 包含用于 Red Hat Container Registry 身份验证的拉取密钥的用户名。 |
3 | 包含用于 Red Hat Container Registry 身份验证的拉取密钥的密码。 |
要使用持续集成 (CI) 系统部署
|
部署secured-cluster-services
Helm 图表后,您可以更改任何配置选项。
使用helm upgrade
命令进行更改时,适用以下指南和要求。
您也可以使用--set
或--set-file
参数指定配置值。但是,这些选项不会保存,您必须在每次更改时手动再次指定所有选项。
某些更改(例如启用 Scanner V4 等新组件)需要为该组件颁发新的证书。因此,您必须在进行这些更改时提供 CA。
如果 CA 是在初始安装期间由 Helm 图表生成的,则必须从集群中自动检索这些生成的的值,并将其提供给helm upgrade
命令。central-services
Helm 图表的安装后说明包括一个用于检索自动生成的值的命令。
如果 CA 是在 Helm 图表外部生成的,并在安装central-services
图表期间提供,则在使用helm upgrade
命令时必须再次执行此操作,例如,通过使用helm upgrade
命令的--reuse-values
标志。
使用新值更新values-public.yaml
和values-private.yaml
配置文件。
运行helm upgrade
命令并使用-f
选项指定配置文件。
$ 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>
1 | 如果您修改了values_public.yaml 和values_private.yaml 文件中未包含的值,请包含--reuse-values 参数。 |
要使用 CLI 在安全集群上安装 RHACS,请执行以下步骤。
安装roxctl
CLI。
安装 Sensor。
您必须首先下载二进制文件。您可以在 Linux、Windows 或 macOS 上安装roxctl
。
您可以使用以下步骤在 Linux 上安装roxctl
CLI 二进制文件。
适用于 Linux 的 |
确定目标操作系统的roxctl
架构。
$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
下载roxctl
CLI。
$ curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.6.1/bin/Linux/roxctl${arch}"
使roxctl
二进制文件可执行。
$ chmod +x roxctl
将roxctl
二进制文件放在您的PATH
上的目录中。
要检查您的PATH
,请执行以下命令。
$ echo $PATH
验证您已安装的roxctl
版本。
$ roxctl version
您可以使用以下步骤在 macOS 上安装roxctl
CLI 二进制文件。
适用于 macOS 的 |
确定目标操作系统的roxctl
架构。
$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
下载roxctl
CLI。
$ curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.6.1/bin/Darwin/roxctl${arch}"
移除二进制文件中的所有扩展属性
$ xattr -c roxctl
使roxctl
二进制文件可执行。
$ chmod +x roxctl
将roxctl
二进制文件放在您的PATH
上的目录中。
要检查您的PATH
,请执行以下命令。
$ echo $PATH
验证您已安装的roxctl
版本。
$ roxctl version
要监控集群,必须部署 Sensor。您必须在要监控的每个集群中部署 Sensor。此安装方法也称为清单安装方法。
要使用清单安装方法执行安装,请仅遵循以下步骤中的一个
使用 RHACS Web 门户下载集群包,然后解压并运行 sensor 脚本。
使用roxctl
CLI 为您的 OpenShift Container Platform 集群生成所需的 Sensor 配置,并将其与您的 Central 实例关联。
您必须已经安装了 Central 服务,或者您可以通过在 Red Hat Advanced Cluster Security Cloud Service (RHACS 云服务) 上选择您的ACS 实例来访问 Central 服务。
在您的安全集群中,在 RHACS 门户中,转到平台配置→集群。
选择保护集群→旧版安装方法。
指定集群的名称。
根据您部署 Sensor 的位置,为字段提供适当的值。
输入 **中央 API 端点** 地址。您可以通过在 Red Hat Hybrid Cloud Console 导航菜单中选择 **高级集群安全** → **ACS 实例**,然后单击您创建的 RHACS 实例来查看此信息。
单击下一步继续进行 Sensor 设置。
单击下载 YAML 文件和密钥以下载集群包(zip 压缩文件)。
集群包 zip 压缩文件包含每个集群的唯一配置和密钥。请勿在其他集群中重复使用相同的文件。 |
从能够访问受监控集群的系统中,解压并运行集群包中的sensor
脚本。
$ unzip -d sensor sensor-<cluster_name>.zip
$ ./sensor/sensor.sh
如果您收到警告,提示您没有部署 Sensor 的必需权限,请按照屏幕上的说明操作,或联系您的集群管理员寻求帮助。
部署 Sensor 后,它会联系 Central 并提供集群信息。
通过运行以下命令,为您的 OpenShift Container Platform 集群生成所需的 Sensor 配置,并将其与您的 Central 实例关联。
$ roxctl sensor generate openshift --openshift-version <ocp_version> --name <cluster_name> --central "$ROX_ENDPOINT" (1)
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
$ ./sensor/sensor.sh
如果您收到警告,提示您没有部署 Sensor 的必需权限,请按照屏幕上的说明操作,或联系您的集群管理员寻求帮助。
部署 Sensor 后,它会联系 Central 并提供集群信息。
返回 RHACS 门户并检查部署是否成功。如果成功,当您在平台配置→集群中查看集群列表时,集群状态会显示绿色勾号和健康状态。如果您没有看到绿色勾号,请使用以下命令检查问题
在 Kubernetes 上,输入以下命令
$ kubectl get pod -n stackrox -w
单击完成关闭窗口。
安装后,Sensor 开始向 RHACS 报告安全信息,RHACS 门户仪表板开始显示您已安装 Sensor 的集群中的部署、镜像和策略冲突。