$ helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/
您可以在以下平台的安全集群上安装 Red Hat Advanced Cluster Security for Kubernetes (RHACS)
Amazon Elastic Kubernetes Service (Amazon EKS)
Google Kubernetes Engine (GKE)
Microsoft Azure Kubernetes Service (Microsoft AKS)
您可以使用 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,包括:
中央服务 Helm Chart (central-services
) 用于安装集中式组件(中央和扫描器)。
您只需部署一次集中式组件,即可使用相同的安装来监控多个独立集群。 |
安全集群服务 Helm Chart (secured-cluster-services
) 用于安装每个集群和每个节点的组件(传感器、准入控制器、收集器和精简扫描器)。
将每个集群组件部署到您要监控的每个集群中,并将每个节点组件部署到您要监控的所有节点中。 |
运行以下命令以验证已添加的 Chart 仓库
$ helm search repo -l rhacs/
请按照以下说明安装 `secured-cluster-services` Helm chart,以部署每个集群和每个节点的组件(Sensor、准入控制器、Collector 和 Scanner-slim)。
您必须已为您的集群生成 RHACS 初始化包。
您必须能够访问 Red Hat 容器注册表并拥有用于身份验证的拉取密钥。有关从 `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 容器注册表身份验证的拉取密钥的路径。 |
3 | 指定 Central 的地址和端口号。例如,`acs.domain.com:443`。 |
4 | 包含您用于 Red Hat 容器注册表身份验证的拉取密钥的用户名。 |
5 | 包含您用于 Red Hat 容器注册表身份验证的拉取密钥的密码。 |
本节介绍您可以与 `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。 |
||
|
将此参数设置为 `false` 时,Red Hat Advanced Cluster Security for Kubernetes 会以一种导致 Kubernetes API 服务器不发送对象更新事件的方式创建 `ValidatingWebhookConfiguration`。由于对象更新的量通常高于对象创建,因此将其保留为 `false` 可以限制准入控制服务的负载,并降低准入控制服务出现故障的可能性。 |
||
|
此设置控制是否将集群配置为使用针对 Kubernetes `exec` 和 `portforward` 事件的 `AdmissionReview` 请求联系 Red Hat Advanced Cluster Security for Kubernetes。RHACS 不支持在 OpenShift Container Platform 3.11 上使用此功能。 |
||
|
此设置控制 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
准入控制器
收集器
扫描器:安装 StackRox 扫描器时,受保护集群可选
扫描器数据库:安装 StackRox 扫描器时,受保护集群可选
扫描器 V4 索引器和扫描器 V4 数据库:安装扫描器 V4 时,受保护集群可选
您必须已为您的集群生成 RHACS 初始化包。
您必须能够访问 Red Hat 容器注册表并拥有用于身份验证的拉取密钥。有关从 `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 容器注册表身份验证的拉取密钥的用户名。 |
3 | 包含您用于 Red Hat 容器注册表身份验证的拉取密钥的密码。 |
要使用持续集成 (CI) 系统部署
|
部署secured-cluster-services
Helm 图表后,您可以更改任何配置选项。
使用helm upgrade
命令进行更改时,适用以下指南和要求
您也可以使用--set
或--set-file
参数指定配置值。但是,这些选项不会保存,您必须在每次进行更改时手动再次指定所有选项。
某些更改(例如启用扫描器 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 的位置,为这些字段提供适当的值。
如果您在同一个集群中部署 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 集群生成所需的 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 的集群中的部署、镜像和策略违规。