$ helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/
您可以使用 Operator 或 Helm 图表在安全集群上安装 RHACS 云服务。您也可以使用 `roxctl` CLI 进行安装,但除非您有特定的安装需求,否则不建议使用此方法。
您已创建 Red Hat OpenShift 集群并在其上安装了 Operator。
在 RHACS 云服务的 ACS 控制台中,您已创建并下载了初始化包。
您已使用 `oc create` 命令应用初始化包。
安装过程中,您已记下**中央 API 端点**地址。您可以通过云控制台导航菜单选择**高级集群安全** → **ACS 实例**,然后单击您创建的 ACS 实例来查看此信息。
您可以使用 Operator 在集群上安装安全集群服务,它会创建SecuredCluster
自定义资源。您必须在要监控的环境中的每个集群上安装安全集群服务。
安装 Red Hat Advanced Cluster Security for Kubernetes 时
|
如果您使用的是 OpenShift Container Platform,则必须安装 4.12 或更高版本。
您已在要保护的集群(称为安全集群)上安装了 RHACS Operator。
您已生成初始化包并将其应用于集群。
在安全集群的 OpenShift Container Platform Web 控制台上,转到**Operators** → **已安装的 Operators**页面。
单击 RHACS Operator。
如果您已在推荐的命名空间中安装了 Operator,OpenShift Container Platform 会将项目列为rhacs-operator
。选择**项目:rhacs-operator** → **创建项目**。
|
输入新的项目名称(例如,stackrox
),然后单击**创建**。Red Hat 建议您使用stackrox
作为项目名称。
在**Operator 详情**页面中的中央导航菜单中单击**安全集群**。
单击**创建 SecuredCluster**。
在**通过以下方式配置**字段中选择以下选项之一
**表单视图**:如果您想使用屏幕上的字段来配置安全集群并且不需要更改任何其他字段,请使用此选项。
**YAML 视图**:使用此视图通过 YAML 文件设置安全集群。YAML 文件将显示在窗口中,您可以在其中编辑字段。如果您选择此选项,编辑完文件后,请单击**创建**。
如果您使用的是**表单视图**,请接受或编辑默认名称来输入新的项目名称。默认值为**stackrox-secured-cluster-services**。
可选:为集群添加任何标签。
为您的SecuredCluster
自定义资源输入一个唯一的名称。
对于**中央端点**,请输入您的 Central 实例的地址。例如,如果 Central 可通过https://central.example.com
访问,则将中央端点指定为central.example.com
。
对于 RHACS 云服务,请使用**中央 API 端点**地址。您可以通过选择 Red Hat Hybrid Cloud 控制台导航菜单中的**高级集群安全** → **ACS 实例**,然后单击您创建的 RHACS 实例来查看此信息。
仅当您在安装 Central 的同一集群中安装安全集群服务时,才使用默认值central.stackrox.svc:443
。
配置多个集群时,请勿使用默认值。而是使用主机名配置每个集群的**中央端点**值。
对于其余字段,请接受默认值或根据需要配置自定义值。例如,如果您使用的是自定义证书或不受信任的 CA,则可能需要配置 TLS。有关更多信息,请参阅“使用 Operator 为 RHACS 配置安全集群服务选项”。
单击**创建**。
短暂暂停后,**SecuredClusters**页面将显示stackrox-secured-cluster-services
的状态。您可能会看到以下条件
**条件:已部署、已初始化**:安全集群服务已安装,并且安全集群正在与 Central 通信。
**条件:已初始化、无法协调**:安全集群未与 Central 通信。确保您已将您在 RHACS Web 门户中创建的初始化包应用于安全集群。
配置其他安全集群设置(可选)。
验证安装。
您可以使用 Helm 图表在安全集群上安装 RHACS,无需自定义,使用默认值,或自定义配置参数。
首先,确保您已添加 Helm 图表存储库。
添加 RHACS 图表存储库。
$ helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/
Red Hat Advanced Cluster Security for Kubernetes 的 Helm 存储库包含用于安装不同组件的 Helm 图表,包括
用于安装集中式组件(Central 和 Scanner)的 Central 服务 Helm 图表 (central-services
)。
您只需部署一次集中式组件,就可以使用相同的安装来监控多个单独的集群。 |
用于安装每个集群和每个节点组件(Sensor、准入控制器、Collector 和 Scanner-slim)的安全集群服务 Helm 图表 (secured-cluster-services
)。
将每个集群组件部署到您要监控的每个集群中,并将每个节点组件部署到您要监控的所有节点中。 |
运行以下命令以验证已添加的图表存储库
$ helm search repo -l rhacs/
请按照以下说明安装 `secured-cluster-services` Helm chart,以部署每个集群和每个节点的组件(Sensor、准入控制器、Collector 和 Scanner-slim)。
您必须已为您的集群生成了 RHACS 初始化包。
您必须能够访问 Red Hat 容器注册表并拥有用于身份验证的 pull secret。有关从 `registry.redhat.io` 下载镜像的信息,请参阅 Red Hat 容器注册表身份验证。
您必须知道您要公开 Central 服务的地址。
在您的基于 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 容器注册表身份验证的 pull secret 的路径。 |
3 | 指定 Central 的地址和端口号。例如,`acs.domain.com:443`。 |
4 | 包含您的 Red Hat 容器注册表身份验证 pull secret 的用户名。 |
5 | 包含您的 Red Hat 容器注册表身份验证 pull secret 的密码。 |
在 OpenShift Container Platform 集群上运行以下命令:
$ 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 scanner.disable=false (4)
1 | 使用 `-f` 选项指定初始化包的路径。 |
2 | 使用 `-f` 选项指定 Red Hat 容器注册表身份验证的 pull secret 的路径。 |
3 | 指定 Central 的地址和端口号。例如,`acs.domain.com:443`。 |
4 | 将 `scanner.disable` 参数的值设置为 `false`,这意味着在安装过程中将启用 Scanner-slim。在 Kubernetes 中,安全的集群服务现在包含 Scanner-slim 作为可选组件。 |
您可以使用 `helm install` 和 `helm upgrade` 命令与 Helm chart 配置参数一起使用。使用 `--set` 选项或创建 YAML 配置文件来指定这些参数。
创建以下文件以配置用于安装 Red Hat Advanced Cluster Security for Kubernetes 的 Helm chart:
公共配置文件 `values-public.yaml`:使用此文件保存所有非敏感配置选项。
私有配置文件 `values-private.yaml`:使用此文件保存所有敏感配置选项。确保安全地存储此文件。
使用 `secured-cluster-services` Helm chart 时,请勿更改 chart 中包含的 `values.yaml` 文件。 |
参数 | 描述 | ||
---|---|---|---|
|
您的集群名称。 |
||
|
Central 端点的地址。如果您使用的是非 gRPC 兼容的负载均衡器,请使用 WebSocket 协议,并在端点地址前加上 `wss://`。配置多个集群时,请使用主机名作为地址。例如,`central.example.com`。 |
||
|
Sensor 端点的地址,包括端口号。 |
||
|
Sensor 容器的镜像拉取策略。 |
||
|
Sensor 使用的内部服务间 TLS 证书。 |
||
|
Sensor 使用的内部服务间 TLS 证书密钥。 |
||
|
Sensor 容器的内存请求。使用此参数可覆盖默认值。 |
||
|
Sensor 容器的 CPU 请求。使用此参数可覆盖默认值。 |
||
|
Sensor 容器的内存限制。使用此参数可覆盖默认值。 |
||
|
Sensor 容器的 CPU 限制。使用此参数可覆盖默认值。 |
||
|
指定节点选择器标签为 `label-key: label-value`,以强制 Sensor 仅调度到具有指定标签的节点上。 |
||
|
如果节点选择器选择了受污染的节点,请使用此参数为 Sensor 指定污点容忍键、值和效果。此参数主要用于基础架构节点。 |
||
|
`main` 镜像的名称。 |
||
|
Collector 镜像的名称。 |
||
|
您正在为 `main` 镜像使用的注册表的地址。 |
||
|
您正在为 Collector 镜像使用的注册表的地址。 |
||
|
您正在为 Scanner 镜像使用的注册表的地址。 |
||
|
您正在为 Scanner DB 镜像使用的注册表的地址。 |
||
|
您正在为 Scanner V4 镜像使用的注册表的地址。 |
||
|
您正在为 Scanner V4 DB 镜像使用的注册表的地址。 |
||
|
`main` 镜像的镜像拉取策略。 |
||
|
Collector 镜像的镜像拉取策略。 |
||
|
要使用的 `main` 镜像的标签。 |
||
|
要使用的 `collector` 镜像的标签。 |
||
|
`CORE_BPF` 或 `NO_COLLECTION`。 |
||
|
Collector 容器的镜像拉取策略。 |
||
|
Compliance 容器的镜像拉取策略。 |
||
|
如果指定 `false`,则将容忍度应用于 Collector,并且 Collector pod 可以调度到所有带有污点的节点上。如果将其指定为 `true`,则不应用任何容忍度,并且 Collector pod 不会调度到带有污点的节点上。 |
||
|
Collector 容器的内存请求。使用此参数可覆盖默认值。 |
||
|
Collector 容器的 CPU 请求。使用此参数可覆盖默认值。 |
||
|
Collector 容器的内存限制。使用此参数可覆盖默认值。 |
||
|
Collector 容器的 CPU 限制。使用此参数可覆盖默认值。 |
||
|
Compliance 容器的内存请求。使用此参数可覆盖默认值。 |
||
|
Compliance 容器的 CPU 请求。使用此参数可覆盖默认值。 |
||
|
Compliance 容器的内存限制。使用此参数可覆盖默认值。 |
||
|
Compliance 容器的 CPU 限制。使用此参数可覆盖默认值。 |
||
|
Collector 使用的内部服务间 TLS 证书。 |
||
|
Collector 使用的内部服务间 TLS 证书密钥。 |
||
|
此设置控制是否将 Kubernetes 配置为使用 `AdmissionReview` 请求与 Red Hat Advanced Cluster Security for Kubernetes 联系以获取工作负载创建事件。 |
||
|
将此参数设置为 |
||
|
此设置控制集群是否配置为使用 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 chart 以部署以下每个集群和每个节点的组件
Sensor
准入控制器
收集器
Scanner:安装 StackRox Scanner 时,安全集群可选。
Scanner DB:安装 StackRox Scanner 时,安全集群可选。
Scanner V4 Indexer 和 Scanner V4 DB:安装 Scanner V4 时,安全集群可选。
您必须已为您的集群生成了 RHACS 初始化包。
您必须能够访问 Red Hat 容器注册表并拥有用于身份验证的 pull secret。有关从 `registry.redhat.io` 下载镜像的信息,请参阅 Red Hat 容器注册表身份验证。
您必须拥有您正在公开 Central 服务的地址和端口号。
运行以下命令
$ 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 容器注册表身份验证 pull secret 的用户名。 |
3 | 包含您的 Red Hat 容器注册表身份验证 pull secret 的密码。 |
要使用持续集成 (CI) 系统部署
|
部署secured-cluster-services
Helm chart 后,您可以更改任何配置选项。
使用helm upgrade
命令进行更改时,适用以下准则和要求
您也可以使用--set
或--set-file
参数指定配置值。但是,这些选项不会保存,您必须在每次进行更改时手动再次指定所有选项。
某些更改(例如启用 Scanner V4 等新组件)需要为该组件颁发新的证书。因此,您必须在进行这些更改时提供 CA。
如果 CA 是在初始安装期间由 Helm chart 生成的,则必须从集群中自动检索这些生成的数值,并将其提供给helm upgrade
命令。central-services
Helm chart 的安装后说明包括一个用于检索自动生成的数值的命令。
如果 CA 是在 Helm chart 之外生成的,并在安装central-services
chart 期间提供,则在使用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 网络门户下载集群包,然后提取并运行 sensor 脚本。
使用roxctl
CLI 为您的 OpenShift Container Platform 集群生成所需的传感器配置,并将其与您的 Central 实例关联。
您必须已安装 Central 服务,或者您可以通过在 Red Hat Advanced Cluster Security Cloud Service (RHACS 云服务) 上选择您的**ACS 实例**来访问 Central 服务。
在您的安全集群中,在 RHACS 门户中,转到**平台配置** → **集群**。
选择**保护集群** → **旧版安装方法**。
为集群指定一个名称。
根据您部署传感器的 位置,为字段提供相应的值。
如果您在同一集群中部署传感器,则接受所有字段的默认值。
如果您部署到不同的集群,请将central.stackrox.svc:443
替换为负载均衡器、节点端口或其他地址(包括端口号),该地址可从其他集群访问。
如果您使用的是不支持 gRPC 的负载均衡器,例如 HAProxy、AWS Application Load Balancer (ALB) 或 AWS Elastic Load Balancing (ELB),请使用 WebSocket 安全 (wss
) 协议。要使用wss
在地址前添加wss://
。
在地址后添加端口号,例如wss://stackrox-central.example.com:443
。
单击**下一步**继续进行传感器设置。
单击**下载 YAML 文件和密钥**以下载集群包(zip 压缩文件)。
集群包 zip 压缩文件包含每个集群的唯一配置和密钥。请勿在另一个集群中重复使用相同的文件。 |
从具有访问受监控集群权限的系统中,解压缩并运行集群包中的sensor
脚本。
$ unzip -d sensor sensor-<cluster_name>.zip
$ ./sensor/sensor.sh
如果您收到警告,提示您没有部署传感器的所需权限,请按照屏幕上的说明操作,或联系您的集群管理员寻求帮助。
传感器部署后,它会联系 Central 并提供集群信息。
通过运行以下命令为您的 OpenShift Container Platform 集群生成所需的传感器配置,并将其与您的 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
如果您收到警告,提示您没有部署传感器的所需权限,请按照屏幕上的说明操作,或联系您的集群管理员寻求帮助。
传感器部署后,它会联系 Central 并提供集群信息。
返回 RHACS 门户并检查部署是否成功。如果成功,当您在**平台配置** → **集群**中查看集群列表时,集群状态将显示绿色复选标记和**健康**状态。如果您没有看到绿色复选标记,请使用以下命令检查问题。
在 OpenShift Container Platform 上,输入以下命令:
$ oc get pod -n stackrox -w
在 Kubernetes 上,输入以下命令:
$ kubectl get pod -n stackrox -w
单击**完成**关闭窗口。
安装后,传感器开始向 RHACS 报告安全信息,RHACS 门户仪表板开始显示您已安装传感器的集群中的部署、镜像和策略违规。
验证安装,确保您的安全集群可以与 ACS 实例通信。