$ helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/
您可以使用以下方法之一在安全集群上安装 RHACS
使用 Operator 安装
使用 Helm chart 安装
使用 `roxctl` CLI 安装(除非您有特定的安装需求,否则请不要使用此方法)
您可以使用 Operator 在集群上安装安全集群服务,它会创建 `SecuredCluster` 自定义资源。您必须在您想要监控的环境中的每个集群上安装安全集群服务。
安装 Red Hat Advanced Cluster Security for Kubernetes 时
|
如果您使用的是 OpenShift Container Platform,则必须安装 4.12 或更高版本。
您已在要保护的集群(称为安全集群)上安装了 RHACS Operator。
您已生成初始化包并将其应用于集群。
在安全集群的 OpenShift Container Platform Web 控制台中,转到**Operators** → **Installed Operators** 页面。
点击 RHACS Operator。
如果您已在推荐的命名空间中安装了 Operator,OpenShift Container Platform 会将项目列为rhacs-operator
。选择**Project: rhacs-operator** → **Create project**。
|
输入新的项目名称(例如,stackrox
),然后点击**Create**。Red Hat 建议您使用stackrox
作为项目名称。
在**Operator details**页面的中央导航菜单中点击**Secured Cluster**。
点击**Create SecuredCluster**。
在**Configure via**字段中选择以下选项之一:
**Form view**:如果您想使用屏幕上的字段配置安全集群并且不需要更改任何其他字段,请使用此选项。
**YAML view**:使用此视图通过 YAML 文件设置安全集群。YAML 文件显示在窗口中,您可以在其中编辑字段。如果您选择此选项,编辑完文件后,请点击**Create**。
如果您使用的是**Form view**,请接受或编辑默认名称来输入新的项目名称。默认值为**stackrox-secured-cluster-services**。
可选:为集群添加任何标签。
为您的SecuredCluster
自定义资源输入一个唯一的名称。
对于**Central Endpoint**,请输入您的 Central 实例的地址。例如,如果 Central 可通过https://central.example.com
访问,则将中心端点指定为central.example.com
。
仅当您在安装 Central 的同一集群中安装安全集群服务时,才使用默认值central.stackrox.svc:443
。
配置多个集群时,请勿使用默认值。配置每个集群的**Central Endpoint**值时,请改用主机名。
对于其余字段,请接受默认值或根据需要配置自定义值。例如,如果您使用自定义证书或不受信任的 CA,则可能需要配置 TLS。有关更多信息,请参见“使用 Operator 配置 RHACS 的安全集群服务选项”。
点击**Create**。
短暂暂停后,**SecuredClusters**页面将显示stackrox-secured-cluster-services
的状态。您可能会看到以下状态:
**Conditions: Deployed, Initialized**:安全集群服务已安装,并且安全集群正在与 Central 通信。
**Conditions: Initialized, Irreconcilable**:安全集群未与 Central 通信。确保您已将您在 RHACS Web 门户中创建的初始化包应用于安全集群。
配置其他安全集群设置(可选)。
验证安装。
您可以使用 Helm Chart 在安全集群上安装 RHACS,无需自定义,使用默认值,或自定义配置参数。
添加 RHACS Chart 仓库。
$ helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/
Red Hat Advanced Cluster Security for Kubernetes 的 Helm 仓库包含用于安装不同组件的 Helm Chart,包括:
Central 服务 Helm Chart(central-services
),用于安装集中式组件(Central 和 Scanner)。
您只需部署一次集中式组件,即可使用相同的安装来监控多个单独的集群。 |
安全集群服务 Helm Chart(secured-cluster-services
),用于安装每个集群和每个节点的组件(Sensor、Admission Controller、Collector 和 Scanner-slim)。
将每个集群的组件部署到您要监控的每个集群中,并将每个节点的组件部署到您要监控的所有节点中。 |
运行以下命令以验证已添加的 Chart 仓库:
$ helm search repo -l rhacs/
请按照以下说明安装secured-cluster-services
Helm Chart 以部署每个集群和每个节点的组件(Sensor、Admission controller、Collector 和 Scanner-slim)。
您必须为您的集群生成 RHACS 初始化包。
您必须能够访问 Red Hat Container Registry 和用于身份验证的拉取密钥。有关从registry.redhat.io
下载镜像的信息,请参见Red Hat Container Registry 身份验证。
您必须知道您正在公开 Central 服务的地址。
在 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 Container Registry 身份验证的拉取密钥的路径。 |
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
:使用此文件保存所有敏感配置选项。确保安全地存储此文件。
使用 |
参数 | 描述 | ||
---|---|---|---|
|
您的集群名称。 |
||
|
Central 端点的地址。如果您使用的是不支持 gRPC 的负载均衡器,请使用 WebSocket 协议,并在端点地址前添加 |
||
|
Sensor 端点的地址,包括端口号。 |
||
|
Sensor 容器的镜像拉取策略。 |
||
|
Sensor 使用的内部服务间 TLS 证书。 |
||
|
Sensor 使用的内部服务间 TLS 证书密钥。 |
||
|
Sensor 容器的内存请求。使用此参数可覆盖默认值。 |
||
|
Sensor容器的CPU请求。使用此参数可覆盖默认值。 |
||
|
Sensor容器的内存限制。使用此参数可覆盖默认值。 |
||
|
Sensor容器的CPU限制。使用此参数可覆盖默认值。 |
||
|
指定节点选择器标签为 |
||
|
如果节点选择器选择了受污染的节点,请使用此参数为Sensor指定污点容忍键、值和效果。此参数主要用于基础设施节点。 |
||
|
|
||
|
Collector镜像的名称。 |
||
|
您用于main镜像的注册表的地址。 |
||
|
您用于Collector镜像的注册表的地址。 |
||
|
您用于Scanner镜像的注册表的地址。 |
||
|
您用于Scanner DB镜像的注册表的地址。 |
||
|
您用于Scanner V4镜像的注册表的地址。 |
||
|
您用于Scanner V4 DB镜像的注册表的地址。 |
||
|
|
||
|
Collector镜像的镜像拉取策略。 |
||
|
要使用的 |
||
|
要使用的 |
||
|
|
||
|
Collector容器的镜像拉取策略。 |
||
|
Compliance容器的镜像拉取策略。 |
||
|
如果指定为 |
||
|
Collector容器的内存请求。使用此参数可覆盖默认值。 |
||
|
Collector容器的CPU请求。使用此参数可覆盖默认值。 |
||
|
Collector容器的内存限制。使用此参数可覆盖默认值。 |
||
|
Collector容器的CPU限制。使用此参数可覆盖默认值。 |
||
|
Compliance容器的内存请求。使用此参数可覆盖默认值。 |
||
|
Compliance容器的CPU请求。使用此参数可覆盖默认值。 |
||
|
Compliance容器的内存限制。使用此参数可覆盖默认值。 |
||
|
Compliance容器的CPU限制。使用此参数可覆盖默认值。 |
||
|
Collector使用的内部服务间TLS证书。 |
||
|
Collector使用的内部服务间TLS证书密钥。 |
||
|
此设置控制是否将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 的合规性容器的资源规范。 |
||
|
如果将此选项设置为 |
||
|
如果将此选项设置为 |
||
|
如果将此选项设置为 |
||
|
如果节点选择器选择了带有污点的节点,请使用此参数为 Scanner DB 指定污点容忍键、值和效果。 |
||
|
Collector 的合规性容器的资源规范。 |
||
|
设置此参数允许您修改扫描程序日志级别。仅出于故障排除目的使用此选项。 |
||
|
如果将此选项设置为 |
||
|
自动缩放的最小副本数。默认为 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
准入控制器
Collector
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 身份验证。
您必须拥有您正在公开 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 Container Registry 身份验证的拉取密钥的用户名。 |
3 | 包含您用于 Red Hat Container Registry 身份验证的拉取密钥的密码。 |
要使用持续集成 (CI) 系统部署
|
部署 secured-cluster-services
Helm 图表后,您可以更改任何配置选项。
使用 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
命令时必须再次执行此操作,例如,使用--reuse-values
标志与helm upgrade
命令一起使用。
使用新值更新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 参数。 |
此方法也称为清单安装方法。
如果您计划使用roxctl
CLI 命令生成传感器安装脚本使用的文件,则您已安装roxctl
CLI。
您已生成传感器安装脚本将使用的文件。
在 OpenShift Container Platform 安全集群上,通过运行传感器安装脚本部署 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 门户下载集群包,然后提取并运行传感器脚本。
使用roxctl
CLI 为您的 OpenShift Container Platform 集群生成所需的传感器配置,并将其与您的 Central 实例关联。
您必须已安装 Central 服务,或者您可以通过在 Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service) 上选择您的**ACS 实例**来访问 Central 服务。
在您的安全集群中,在 RHACS 门户中,转到**平台配置** → **集群**。
选择**保护集群** → **旧版安装方法**。
指定集群的名称。
根据您部署 Sensor 的位置,为字段提供适当的值。
如果您在同一集群中部署 Sensor,请接受所有字段的默认值。
如果您部署到其他集群,请将central.stackrox.svc:443
替换为负载均衡器、节点端口或其他地址(包括端口号),该地址可从其他集群访问。
如果您使用的是不支持 gRPC 的负载均衡器,例如 HAProxy、AWS Application Load Balancer (ALB) 或 AWS Elastic Load Balancing (ELB),请使用 WebSocket Secure (wss
) 协议。要使用wss
在地址前加上wss://
。
在地址后添加端口号,例如wss://stackrox-central.example.com:443
。
单击**下一步**继续进行 Sensor 设置。
单击**下载 YAML 文件和密钥**以下载集群包(zip 存档)。
集群包 zip 存档包含每个集群的唯一配置和密钥。请勿在另一个集群中重复使用相同的文件。 |
从具有访问受监控集群权限的系统中,提取并运行集群包中的sensor
脚本。
$ unzip -d sensor sensor-<cluster_name>.zip
$ ./sensor/sensor.sh
如果您收到有关您没有部署 Sensor 所需权限的警告,请按照屏幕上的说明操作,或联系您的集群管理员寻求帮助。
部署 Sensor 后,它会联系 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
如果您收到有关您没有部署 Sensor 所需权限的警告,请按照屏幕上的说明操作,或联系您的集群管理员寻求帮助。
部署 Sensor 后,它会联系 Central 并提供集群信息。
返回 RHACS 门户并检查部署是否成功。如果成功,当您在**平台配置** → **集群**中查看集群列表时,集群状态将显示绿色复选标记和**健康**状态。如果您没有看到绿色复选标记,请使用以下命令检查问题。
在 OpenShift Container Platform 上,输入以下命令。
$ oc get pod -n stackrox -w
在 Kubernetes 上,输入以下命令。
$ kubectl get pod -n stackrox -w
单击**完成**以关闭窗口。
安装后,Sensor 开始向 RHACS 报告安全信息,RHACS 门户仪表板开始显示您已安装 Sensor 的集群中的部署、镜像和策略冲突。