This documentation is for a release that is no longer maintained.
You can select a different version or view all RHACS documentation.配置
为 Kubernetes 配置 Red Hat Advanced Cluster Security
摘要
第 1 章 添加自定义证书 复制链接链接已复制到粘贴板!
了解如何将自定义 TLS 证书与 Red Hat Advanced Cluster Security for Kubernetes 搭配使用。设置证书后,用户和 API 客户端在连接到 Central 时无需绕过证书安全警告。
1.1. 添加自定义安全证书 复制链接链接已复制到粘贴板!
您可以在安装过程中或现有 Red Hat Advanced Cluster Security for Kubernetes 部署应用安全证书。
1.1.1. 添加自定义证书的先决条件 复制链接链接已复制到粘贴板!
先决条件
- 您必须已经有 PEM 编码的私钥和证书文件。
证书文件应当以可读的块开头和结尾。例如:
-----BEGIN CERTIFICATE----- MIICLDCCAdKgAwIBAgIBADAKBggqhkjOPQQDAjB9MQswCQYDVQQGEwJCRTEPMA0G ... l4wOuDwKQa+upc8GftXE2C//4mKANBC6It01gUaTIpo= -----END CERTIFICATE-----
-----BEGIN CERTIFICATE----- MIICLDCCAdKgAwIBAgIBADAKBggqhkjOPQQDAjB9MQswCQYDVQQGEwJCRTEPMA0G ... l4wOuDwKQa+upc8GftXE2C//4mKANBC6It01gUaTIpo= -----END CERTIFICATE-----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 证书文件可以包含单一(leaf)证书,也可以是证书链。
警告- 如果证书不直接由可信 root 签名,则必须提供完整的证书链,包括任何中间证书。
- 链中的所有证书都必须按顺序排列,因此 leaf certificate 是第一个证书,root 证书是链中的最后一个。
- 如果您使用不全局信任的自定义证书,还必须将 Sensor 配置为信任您的自定义证书。
1.1.2. 在新安装过程中添加自定义证书 复制链接链接已复制到粘贴板!
流程
如果要使用 Helm 安装 Red Hat Advanced Cluster Security for Kubernetes:
在
values-private.yaml文件中添加自定义证书及其密钥:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在安装过程中提供配置文件:
helm install -n stackrox --create-namespace stackrox-central-services rhacs/central-services -f values-private.yaml
$ helm install -n stackrox --create-namespace stackrox-central-services rhacs/central-services -f values-private.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
如果您要使用
roxctlCLI 安装 Red Hat Advanced Cluster Security for Kubernetes,请在运行安装程序时提供证书和密钥文件:对于非互动安装程序,使用
--default-tls-cert和--default-tls-key选项:roxctl central generate --default-tls-cert "cert.pem" --default-tls-key "key.pem"
$ roxctl central generate --default-tls-cert "cert.pem" --default-tls-key "key.pem"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于交互式安装程序,在输入提示答案时提供证书和密钥文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.3. 为现有实例添加自定义证书 复制链接链接已复制到粘贴板!
流程
如果使用 Helm 安装 Red Hat Advanced Cluster Security for Kubernetes:
在
values-private.yaml文件中添加自定义证书及其密钥:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
helm upgrade命令并提供更新的配置文件:helm upgrade -n stackrox --create-namespace stackrox-central-services rhacs/central-services -f values-private.yaml
$ helm upgrade -n stackrox --create-namespace stackrox-central-services rhacs/central-services -f values-private.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
如果使用
roxctlCLI 安装了 Red Hat Advanced Cluster Security for Kubernetes:从 PEM 编码的密钥和证书文件创建并应用 TLS secret:
oc -n stackrox create secret tls central-default-tls-cert \ --cert <server_cert.pem> \ --key <server_key.pem> \ --dry-run -o yaml | oc apply -f -
$ oc -n stackrox create secret tls central-default-tls-cert \ --cert <server_cert.pem> \ --key <server_key.pem> \ --dry-run -o yaml | oc apply -f -Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行此命令后,Central 会自动应用新的密钥和证书,而无需重启 pod。传播更改最多可能需要一分钟。
1.1.4. 为现有实例更新自定义证书 复制链接链接已复制到粘贴板!
如果您将自定义证书用于 Central,您可以执行以下步骤来更新证书。
流程
删除现有的自定义证书的 secret:
oc delete secret central-default-tls-cert
$ oc delete secret central-default-tls-certCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建新 secret:
oc -n stackrox create secret tls central-default-tls-cert \ --cert <server_cert.pem> \ --key <server_key.pem> \ --dry-run -o yaml | oc apply -f -
$ oc -n stackrox create secret tls central-default-tls-cert \ --cert <server_cert.pem> \ --key <server_key.pem> \ --dry-run -o yaml | oc apply -f -Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 重启 Central 容器。
1.1.4.1. 重启 Central 容器 复制链接链接已复制到粘贴板!
您可以通过终止 Central 容器或删除 Central pod 重启 Central 容器。
流程
运行以下命令以终止 Central 容器:
注意您必须等待至少 1 分钟,直到 OpenShift Container Platform 传播您的更改并重启 Central 容器。
oc -n stackrox exec deploy/central -c central -- kill 1
$ oc -n stackrox exec deploy/central -c central -- kill 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,运行以下命令来删除 Central pod:
oc -n stackrox delete pod -lapp=central
$ oc -n stackrox delete pod -lapp=centralCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2. 配置 Sensor 以信任自定义证书 复制链接链接已复制到粘贴板!
如果您使用不全局信任的自定义证书,您必须将 Sensor 配置为信任您的自定义证书。否则,您可能会收到错误。特定类型的错误可能因您的设置以及您使用的证书而有所不同。通常,它是一个 x509 验证 相关错误。
如果您使用全局可信证书,则不需要将 Sensor 配置为信任您的自定义证书。
1.2.1. 下载传感器捆绑包 复制链接链接已复制到粘贴板!
Sensor 捆绑包包括安装 Sensor 所需的配置文件和脚本。您可以从 RHACS 门户下载 Sensor 捆绑包。
流程
- 进入 RHACS 门户。
- 进入 Platform Configuration → Clusters。
- 点 New Cluster 并指定集群的名称。
如果您要在同一集群中部署 Sensor,请接受所有字段的默认值。否则,如果您部署到另一个集群,将地址
central.stackrox.svc:443替换为负载均衡器、节点端口或其他地址(包括端口号),可以从您要安装的其他集群访问。注意如果您使用一个支持非gRPC 的负载均衡器,如 HAProxy、AWS Application Load Balancer(ALB)或 AWS Elastic Load Balancing(ELB)使用 WebSocket Secure(
wss)协议。使用ws:-
使用
wss://和前缀 -
在地址后添加端口号,例如
ws://stackrox-central.example.com:443。
-
使用
- 点 Next 继续。
- 点 Download YAML File and Keys。
1.2.2. 在部署新的传感器时将 Sensor 配置为信任自定义证书 复制链接链接已复制到粘贴板!
先决条件
- 您已下载 Sensor 捆绑包。
流程
如果您使用
sensor.sh脚本:解压 Sensor 捆绑包:
unzip -d sensor sensor-<cluster_name>.zip
$ unzip -d sensor sensor-<cluster_name>.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
sensor.sh脚本:./sensor/sensor.sh
$ ./sensor/sensor.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 当您运行传感器(
./sensor/sensor/sensor.sh)脚本时,证书会被自动应用。在运行sensor.sh脚本前,您还可以将额外的自定义证书放在sensor/additional-cas/目录中。
如果您不使用
sensor.sh脚本:解压 Sensor 捆绑包:
unzip -d sensor sensor-<cluster_name>.zip
$ unzip -d sensor sensor-<cluster_name>.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建 secret:
./sensor/ca-setup-sensor.sh -d sensor/additional-cas/
$ ./sensor/ca-setup-sensor.sh -d sensor/additional-cas/1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 使用
-d选项指定包含自定义证书的目录。
注意如果得到 "secret already exists" 错误消息,请使用
-u选项重新运行脚本:./sensor/ca-setup-sensor.sh -d sensor/additional-cas/ -u
$ ./sensor/ca-setup-sensor.sh -d sensor/additional-cas/ -uCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用 YAML 文件继续 Sensor 部署。
1.2.3. 配置现有 Sensor 信任自定义证书 复制链接链接已复制到粘贴板!
先决条件
- 您已下载 Sensor 捆绑包。
流程
解压 Sensor 捆绑包:
unzip -d sensor sensor-<cluster_name>.zip
$ unzip -d sensor sensor-<cluster_name>.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建 secret:
./sensor/ca-setup-sensor.sh -d sensor/additional-cas/
$ ./sensor/ca-setup-sensor.sh -d sensor/additional-cas/1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 使用
-d选项指定包含自定义证书的目录。
注意如果得到 "secret already exists" 错误消息,请使用
-u选项重新运行脚本:./sensor/ca-setup-sensor.sh -d sensor/additional-cas/ -u
$ ./sensor/ca-setup-sensor.sh -d sensor/additional-cas/ -uCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用 YAML 文件继续 Sensor 部署。
如果将证书添加到现有的传感器中,您必须重启 Sensor 容器。
1.2.3.1. 重启 Sensor 容器 复制链接链接已复制到粘贴板!
您可以通过终止容器或删除 Sensor pod 来重启 Sensor 容器。
流程
运行以下命令以终止 Sensor 容器:
注意您必须等待 1 分钟,直到 OpenShift Container Platform 或 Kubernetes 传播您的更改并重启 Sensor 容器。
在 OpenShift Container Platform 中:
oc -n stackrox deploy/sensor -c sensor -- kill 1
$ oc -n stackrox deploy/sensor -c sensor -- kill 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 Kubernetes:
kubectl -n stackrox deploy/sensor -c sensor -- kill 1
$ kubectl -n stackrox deploy/sensor -c sensor -- kill 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
或者,运行以下命令来删除 Sensor pod:
在 OpenShift Container Platform 中:
oc -n stackrox delete pod -lapp=sensor
$ oc -n stackrox delete pod -lapp=sensorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 Kubernetes:
kubectl -n stackrox delete pod -lapp=sensor
$ kubectl -n stackrox delete pod -lapp=sensorCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 2 章 添加可信证书颁发机构 复制链接链接已复制到粘贴板!
了解如何将自定义可信证书颁发机构添加到 Red Hat Advanced Cluster Security for Kubernetes 中。
如果您在网络或自签名证书中使用企业证书颁发机构(CA),您必须将 CA 的 root 证书作为可信根 CA 添加到 Red Hat Advanced Cluster Security for Kubernetes。
添加可信根 CA 允许:
- 与其他工具集成时,用于信任远程服务器的中央和扫描器。
- 信任用于中部的自定义证书。
您可以在安装过程中或现有部署中添加其他 CA。
您必须首先在部署了 Central 的集群中配置可信 CA,然后将更改传播到 Scanner 和 Sensor。
2.1. 配置其他 CA 复制链接链接已复制到粘贴板!
添加自定义 CA:
流程
下载
ca-setup.sh脚本。注意-
如果要进行新安装,您可以在 central-
bundle/central/脚本。scripts/ca-setup.sh脚本中找到 scripts 目录中的 ca-setup.sh -
您必须在登录 OpenShift Container Platform 集群的同一终端中运行
ca-setup.sh脚本。
-
如果要进行新安装,您可以在 central-
使
ca-setup.sh脚本可执行:chmod +x ca-setup.sh
$ chmod +x ca-setup.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加:
单个证书,使用
-f(文件)选项:./ca-setup.sh -f <certificate>
$ ./ca-setup.sh -f <certificate>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意- 您必须使用 PEM 编码的证书文件(使用任何扩展)。
-
您还可以使用
-u(更新)选项以及-f选项来更新之前添加的任何证书。
一次性多个证书,移动一个目录中的所有证书,然后使用
-d(目录)选项:./ca-setup.sh -d <directory_name>
$ ./ca-setup.sh -d <directory_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意-
您必须使用带有
.crt扩展名的 PEM 编码证书文件。 - 每个文件必须仅包含单个证书。
-
您还可以使用
-u(更新)选项以及-d选项来更新之前添加的任何证书。
-
您必须使用带有
2.2. 传播更改 复制链接链接已复制到粘贴板!
配置可信 CA 后,您必须使 Red Hat Advanced Cluster Security for Kubernetes 服务信任它们。
- 如果您在安装后配置了可信 CA,则必须重启 Central。
- 另外,如果您还添加了与镜像 registry 集成的证书,您必须重启 Central 和 Scanner。
2.2.1. 重启 Central 容器 复制链接链接已复制到粘贴板!
您可以通过终止 Central 容器或删除 Central pod 重启 Central 容器。
流程
运行以下命令以终止 Central 容器:
注意您必须等待至少 1 分钟,直到 OpenShift Container Platform 传播您的更改并重启 Central 容器。
oc -n stackrox exec deploy/central -c central -- kill 1
$ oc -n stackrox exec deploy/central -c central -- kill 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,运行以下命令来删除 Central pod:
oc -n stackrox delete pod -lapp=central
$ oc -n stackrox delete pod -lapp=centralCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.2. 重启 Scanner 容器 复制链接链接已复制到粘贴板!
您可以通过删除 pod 来重启 Scanner 容器。
流程
运行以下命令以删除 Scanner pod:
在 OpenShift Container Platform 中:
oc delete pod -n stackrox -l app=scanner
$ oc delete pod -n stackrox -l app=scannerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 Kubernetes:
kubectl delete pod -n stackrox -l app=scanner
$ kubectl delete pod -n stackrox -l app=scannerCopy to Clipboard Copied! Toggle word wrap Toggle overflow
添加可信 CA 和配置中心后,该 CA 包含在您创建的任何新的 Sensor 部署捆绑包中。
- 如果在连接到中央时现有 Sensor 报告问题,您必须生成一个 Sensor 部署 YAML 文件并更新现有集群。
如果您要使用
sensor.sh脚本部署新的 Sensor,请在运行sensor.sh脚本前运行以下命令:./ca-setup-sensor.sh -d ./additional-cas/
$ ./ca-setup-sensor.sh -d ./additional-cas/Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 如果要使用 Helm 部署新的 Sensor,则不需要运行任何其他脚本。
第 3 章 缓解内部证书 复制链接链接已复制到粘贴板!
Red Hat Advanced Cluster Security for Kubernetes 的每个组件使用 X.509 证书来向其他组件验证自己。这些证书具有过期日期,必须在其过期前重新发布它们。您可以在 RHACS 门户的 Platform Configuration → Clusters 视图中查看证书过期日期。
3.1. 缓解 Central 的内部证书 复制链接链接已复制到粘贴板!
中央使用内置服务器证书以在与其他 Red Hat Advanced Cluster Security for Kubernetes 服务通信时进行身份验证。此证书与您的中央安装是唯一的。RHACS 门户在中央证书即将过期时显示信息横幅。
信息横幅仅显示证书到期日期前 15 天。
先决条件
-
要重新发出证书,必须具有
ServiceIdentity资源的写入权限。
流程
- 点击横幅链接下载 YAML 配置文件,该文件包含一个新的 OpenShift Container Platform secret,包括证书和密钥值。
将新的 YAML 配置文件应用到已安装 Central 的集群。
oc apply -f <secret_file.yaml>
$ oc apply -f <secret_file.yaml>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 重启 Central 以应用更改。
3.1.1. 重启 Central 容器 复制链接链接已复制到粘贴板!
您可以通过终止 Central 容器或删除 Central pod 重启 Central 容器。
流程
运行以下命令以终止 Central 容器:
注意您必须等待至少 1 分钟,直到 OpenShift Container Platform 传播您的更改并重启 Central 容器。
oc -n stackrox exec deploy/central -c central -- kill 1
$ oc -n stackrox exec deploy/central -c central -- kill 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,运行以下命令来删除 Central pod:
oc -n stackrox delete pod -lapp=central
$ oc -n stackrox delete pod -lapp=centralCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. 为扫描器返回内部证书 复制链接链接已复制到粘贴板!
扫描程序具有一个内置证书,用于与中央通信。
RHACS 门户在 Scanner 证书即将过期时显示信息横幅。
信息横幅仅显示证书到期日期前 15 天。
先决条件
-
要重新发出证书,必须具有
ServiceIdentity资源的写入权限。
流程
- 点击横幅链接下载 YAML 配置文件,该文件包含一个新的 OpenShift Container Platform secret,包括证书和密钥值。
将新的 YAML 配置文件应用到安装 Scanner 的集群。
oc apply -f <secret_file.yaml>
$ oc apply -f <secret_file.yaml>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 重启扫描器以应用更改。
3.2.1. 重启 Scanner 和 Scanner DB 容器 复制链接链接已复制到粘贴板!
您可以通过删除 pod 来重启 Scanner 和 Scanner DB 容器。
流程
要删除 Scanner 和 Scanner DB pod,请运行以下命令:
在 OpenShift Container Platform 中:
oc delete pod -n stackrox -l app=scanner; oc -n stackrox delete pod -l app=scanner-db
$ oc delete pod -n stackrox -l app=scanner; oc -n stackrox delete pod -l app=scanner-dbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 Kubernetes:
kubectl delete pod -n stackrox -l app=scanner; kubectl -n stackrox delete pod -l app=scanner-db
$ kubectl delete pod -n stackrox -l app=scanner; kubectl -n stackrox delete pod -l app=scanner-dbCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3. 缓解 Sensor、Collector 和 Admission Controller 的内部证书 复制链接链接已复制到粘贴板!
sensor、Collector 和 Admission Controller 使用证书相互通信,并与 Central 进行通信。
要替换证书,请使用以下方法之一:
- 在安全集群中创建、下载和安装 init 捆绑包。
-
使用自动升级功能。自动执行升级仅适用于使用
roxctlCLI 的静态清单部署。
3.3.1. 使用 init 捆绑包缓解用于安全集群的内部证书 复制链接链接已复制到粘贴板!
安全的集群包含 Collector、Sensor 和 Admission Control 组件。这些组件在与其他 Red Hat Advanced Cluster Security for Kubernetes 组件通信时,使用内置的服务器证书进行验证。
RHACS 门户在中央证书即将过期时显示信息横幅。
信息横幅仅显示证书到期日期前 15 天。
先决条件
-
要重新发出证书,必须具有
ServiceIdentity资源的写入权限。
安全地存储此捆绑包,因为它包含 secret。您可以在多个安全集群中使用相同的捆绑包。
流程
使用 RHACS 门户生成 init 捆绑包:
- 选择 Platform Configuration → Clusters。
- 单击 Manage Tokens。
- 导航到 Authentication Tokens 部分,再单击 Cluster Init Bundle。
- 点击 Generate bundle。
- 为集群 init 捆绑包输入一个名称并点 Generate。
- 要下载生成的捆绑包,请点击 Download Kubernetes secrets file。
要使用
roxctlCLI 生成 init 捆绑包,请运行以下命令:roxctl -e <endpoint> -p <admin_password> central init-bundle generate <bundle_name> --output-secrets init-bundle.yaml
$ roxctl -e <endpoint> -p <admin_password> central init-bundle generate <bundle_name> --output-secrets init-bundle.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
后续步骤
要在每个安全集群中创建必要的资源,请运行以下命令:
oc -n stackrox apply -f <init-bundle.yaml>
$ oc -n stackrox apply -f <init-bundle.yaml>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3.2. 使用自动升级为安全集群提供内部证书 复制链接链接已复制到粘贴板!
您可以使用自动升级为 Sensor、Collector 和 Admission Controller 重新发布内部证书。
自动升级仅适用于使用 roxctl CLI 基于静态清单的部署。请参阅安装一章中的"安装中心"一节中的" 安装中心 "。
先决条件
- 您必须为所有集群启用自动升级。
-
要重新发出证书,必须具有
ServiceIdentity资源的写入权限。
流程
- 在 RHACS 门户,导航到 Platform Configuration → Clusters。
- 在 Clusters 视图中,选择一个 Cluster 以查看其详情。
- 在集群详情面板中,使用自动升级选择到应用凭证 的链接。
应用自动升级时,Red Hat Advanced Cluster Security for Kubernetes 在所选集群中创建新凭证。但是,您仍然会看到一个通知。当每个 Red Hat Advanced Cluster Security for Kubernetes 服务在服务重启后使用新凭证时,通知会生效。
第 4 章 添加安全通知 复制链接链接已复制到粘贴板!
使用 Red Hat Advanced Cluster Security for Kubernetes,您可以添加安全通知用户登录时看到它们。您还可以在 RHACS 门户顶部或末尾设置机构范围内消息或不声明者。
此消息可以提醒企业政策,并通知员工相应策略。或者,您可能想出于法律原因显示这些消息,例如,警告用户对其操作的审计。
4.1. 添加自定义登录信息 复制链接链接已复制到粘贴板!
在登录警告或未格式的用户显示其操作结果前会显示警告信息。
先决条件
-
您必须具有
具有读取权限的Config角色,才能查看登录消息配置选项。 -
您必须具有具有修改、启用或禁用登录信息的带
写权限的Config角色。
流程
- 在 RHACS 门户网站中,导航至 Platform Configuration → System Configuration。
- 在 System Configuration 视图标头中点击 Edit。
- 在 Login Configuration 部分输入您的登录信息。
- 要启用登录信息,在 Login Configuration 部分打开切换。
- 点击 Save。
第 5 章 启用离线模式 复制链接链接已复制到粘贴板!
您可以通过启用离线模式,将 Red Hat Advanced Cluster Security for Kubernetes 用于没有连接到互联网的集群。在离线模式下,Red Hat Advanced Cluster Security for Kubernetes 组件无法连接到互联网上的地址或主机。
Red Hat Advanced Cluster Security for Kubernetes 不会确定用户提供的主机名、IP 地址或其他资源是否在互联网上。例如,如果您尝试与互联网上托管的 Docker registry 集成,Red Hat Advanced Cluster Security for Kubernetes 不会阻断这个请求。
以离线模式部署和操作 Red Hat Advanced Cluster Security for Kubernetes:
- 下载 RHACS 镜像并在您的集群中安装它们。如果使用 OpenShift Container Platform,您可以使用 Operator Lifecycle Manager(OLM) 和 OperatorHub 将镜像下载到连接到互联网的工作站。然后,工作站会将镜像推送到已连接的安全集群的镜像 registry 中。对于其他平台,您可以使用 Skopeo 或 Docker 等程序从远程 registry 中拉取镜像并将其推送到您自己的私有注册表,如 直接下载镜像 中所述。
- 在安装过程中启用离线模式。
- (可选)通过上传新的定义文件,Routinely 更新 Scanner 的漏洞列表。
- (可选)当需要时,通过上传新的内核支持软件包在更多内核版本中添加对运行时集合的支持。
您只能在安装过程中启用离线模式,而不在升级过程中启用。
5.1. 下载镜像以供离线使用 复制链接链接已复制到粘贴板!
5.1.1. 直接下载镜像 复制链接链接已复制到粘贴板!
您可以手动拉取、重新标记并将 Red Hat Advanced Cluster Security for Kubernetes 镜像推送到 registry。镜像捆绑包当前版本的镜像有:
-
registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:3.70.2 -
registry.redhat.io/advanced-cluster-security/rhacs-scanner-rhel8:3.70.2 -
registry.redhat.io/advanced-cluster-security/rhacs-scanner-db-rhel8:3.70.2 -
registry.redhat.io/advanced-cluster-security/rhacs-collector-rhel8:3.70.2 -
registry.redhat.io/advanced-cluster-security/rhacs-collector-slim-rhel8:3.70.2
5.1.1.1. 重新标记镜像 复制链接链接已复制到粘贴板!
您可以使用 Docker 命令行界面下载和重新标记镜像。
在重新标记镜像时,您必须维护镜像的名称和标签。例如,使用:
docker tag registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:3.70.2 <your_registry>/rhacs-main-rhel8:3.70.2
$ docker tag registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:3.70.2 <your_registry>/rhacs-main-rhel8:3.70.2
和不要像以下示例一样重新标记:
docker tag registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:3.70.2 <your_registry>/other-name:latest
$ docker tag registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:3.70.2 <your_registry>/other-name:latest
流程
登录到 registry:
docker login registry.redhat.io
$ docker login registry.redhat.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow 拉取镜像:
docker pull <image>
$ docker pull <image>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新标记镜像:
docker tag <image> <new_image>
$ docker tag <image> <new_image>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将更新的镜像推送到 registry:
docker push <new_image>
$ docker push <new_image>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2. 在安装过程中启用离线模式 复制链接链接已复制到粘贴板!
您可在安装 Red Hat Advanced Cluster Security for Kubernetes 的过程中启用离线模式。
5.2.1. 使用 Helm 配置启用离线模式 复制链接链接已复制到粘贴板!
当您在安装过程中使用 Helm chart 安装 Red Hat Advanced Cluster Security for Kubernetes 时,您可以启用离线模式。
流程
-
安装 central-services Helm chart 时,在
values-public.yaml配置文件中将env.offlineMode环境变量的值设置为true。 -
安装 secure-cluster-services Helm Chart 时,在
values-public.yaml配置文件中将config.offlineMode参数的值设置为true。
5.2.2. 使用 roxctl CLI 启用离线模式 复制链接链接已复制到粘贴板!
当您使用 roxctl CLI 安装 Red Hat Advanced Cluster Security for Kubernetes 时,您可以启用离线模式。
流程
如果您使用默认互联网连接的 registry 以外的 registry(
registry.redhat.io),在回答镜像以使用提示时提供推送 Red Hat Advanced Cluster Security for Kubernetes 镜像的位置:Enter main image to use (if unset, the default will be used): <your_registry>/rhacs-main-rhel8:3.70.2
Enter main image to use (if unset, the default will be used): <your_registry>/rhacs-main-rhel8:3.70.2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意默认镜像取决于您的提示
Enter 默认容器镜像设置的回答:如果您输入rhacs,则默认镜像为registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:3.70.2。Enter Scanner DB image to use (if unset, the default will be used): <your_registry>/rhacs-scanner-db-rhel8:3.70.2
Enter Scanner DB image to use (if unset, the default will be used): <your_registry>/rhacs-scanner-db-rhel8:3.70.2Copy to Clipboard Copied! Toggle word wrap Toggle overflow Enter Scanner image to use (if unset, the default will be used): <your_registry>/rhacs-scanner-rhel8:3.70.2
Enter Scanner image to use (if unset, the default will be used): <your_registry>/rhacs-scanner-rhel8:3.70.2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要启用离线模式,在回答
Enter 时输入:true,以在离线模式下运行 StackRoxEnter whether to run StackRox in offline mode, which avoids reaching out to the internet (default: "false"): true
Enter whether to run StackRox in offline mode, which avoids reaching out to the internet (default: "false"): trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 之后,当您在 RHACS 门户的 Platform Configuration → Clusters 视图中将 Sensor 添加到远程集群中时,您必须在 Collector Image Repository 字段中指定 Collector 镜像名称。
5.3. 在离线模式下更新 Scanner 定义 复制链接链接已复制到粘贴板!
扫描程序包含本地漏洞定义数据库。当 Red Hat Advanced Cluster Security for Kubernetes 以常规模式运行(连接到互联网)时,Scanner 从互联网获取一个新的漏洞定义,并更新其数据库。
但是,当您以离线模式使用 Red Hat Advanced Cluster Security for Kubernetes 时,您必须手动更新扫描器定义,方法是将其上传到 Central。
当 Red Hat Advanced Cluster Security for Kubernetes 以离线模式运行时,Scanner 会检查来自 Central 的新定义。如果有新定义,则 Scanner 从 Central 下载新定义,将其标记为默认值,然后使用更新的定义来扫描镜像。
在离线模式中更新定义:
- 下载定义。
- 将定义上传到 Central。
5.3.1. 下载扫描器定义 复制链接链接已复制到粘贴板!
如果您以离线模式运行 Red Hat Advanced Cluster Security for Kubernetes,您可以下载 Scanner 使用的漏洞定义数据库,然后将其上传到 Central。
先决条件
- 要下载扫描器定义,您需要有连入互联网的系统。
5.3.2. 将定义上传到中央 复制链接链接已复制到粘贴板!
要将 Scanner 定义上传到 Central,您可以使用 API 令牌或管理员密码。红帽建议在生产环境中使用身份验证令牌,因为每个令牌被分配了特定的访问控制权限。
5.3.2.1. 使用 API 令牌将定义上传到中 复制链接链接已复制到粘贴板!
您可以使用 API 令牌上传 Scanner 用于中的漏洞定义数据库。
先决条件
- 您必须具有具有管理员角色的 API 令牌。
-
已安装
roxctl命令行界面(CLI)。
流程
设置
ROX_API_TOKEN和ROX_CENTRAL_ADDRESS环境变量:export ROX_API_TOKEN=<api_token>
$ export ROX_API_TOKEN=<api_token>Copy to Clipboard Copied! Toggle word wrap Toggle overflow export ROX_CENTRAL_ADDRESS=<address>:<port_number>
$ export ROX_CENTRAL_ADDRESS=<address>:<port_number>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来上传定义文件:
roxctl scanner upload-db \ -e "$ROX_CENTRAL_ADDRESS" \ --scanner-db-file=<compressed_scanner_definitions.zip>
$ roxctl scanner upload-db \ -e "$ROX_CENTRAL_ADDRESS" \ --scanner-db-file=<compressed_scanner_definitions.zip>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3.2.2. 使用管理员密码将定义上传到中 复制链接链接已复制到粘贴板!
您可以使用 Red Hat Advanced Cluster Security for Kubernetes 管理员密码将 Scanner 使用的漏洞定义数据库上传到 Central。
先决条件
- 您必须具有管理员密码。
-
已安装
roxctl命令行界面(CLI)。
流程
设置
ROX_CENTRAL_ADDRESS环境变量:export ROX_CENTRAL_ADDRESS=<address>:<port_number>
$ export ROX_CENTRAL_ADDRESS=<address>:<port_number>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来上传定义文件:
roxctl scanner upload-db \ -p <your_administrator_password> \ -e "$ROX_CENTRAL_ADDRESS" \ --scanner-db-file=<compressed_scanner_definitions.zip>
$ roxctl scanner upload-db \ -p <your_administrator_password> \ -e "$ROX_CENTRAL_ADDRESS" \ --scanner-db-file=<compressed_scanner_definitions.zip>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4. 更新内核支持离线模式的软件包 复制链接链接已复制到粘贴板!
收集器会监控安全集群中每个节点的运行时活动。要监控活动,Collector 需要探测。这些探测是特定于主机上安装的 Linux 内核版本的内核模块或 eBPF 程序。Collector 镜像包含一组内置探测。
当 Red Hat Advanced Cluster Security for Kubernetes 以常规模式运行(连接到互联网)时,如果所需的探测没有构建,则 Collector 会自动下载新的探测。
在离线模式下,您可以手动下载所有最新和支持的 Linux 内核版本包含探测的软件包,并将其上传到 Central。然后收集器从中央下载这些探测。
收集器会按照以下顺序检查新的探测。它检查:
- 现有 Collector 镜像。
- 内核支持软件包(如果您已上传一个到中)。
- 互联网上可用的红帽操作服务器。Collector 使用中央的网络连接来检查并下载探测。
如果 Collector 在检查后没有获得新的探测,它会报告 CrashLoopBackoff 事件。
如果您的网络配置限制了出站流量,您可以手动下载包含所有最新支持的 Linux 内核版本的探测的软件包,并将它们上传到 Central。然后收集器从中央下载这些探测,从而避免任何出站互联网访问。
5.4.1. 下载内核支持软件包 复制链接链接已复制到粘贴板!
如果您以离线模式运行 Red Hat Advanced Cluster Security for Kubernetes,您可以下载包含所有最新和支持的 Linux 内核版本的探测的软件包,然后将其上传到 Central。
流程
- 从 https://install.stackrox.io/collector/support-packages/index.html 查看并下载可用的支持软件包。内核支持软件包列表根据 Red Hat Advanced Cluster Security for Kubernetes 版本对软件包进行分类。
5.4.2. 将内核支持软件包上传到 Central 复制链接链接已复制到粘贴板!
您可以将包含所有最新支持的 Linux 内核版本及支持的 Linux 内核版本的内核支持软件包上传到 Central。
先决条件
- 您必须具有具有管理员角色的 API 令牌。
-
已安装
roxctl命令行界面(CLI)。
流程
设置
ROX_API_TOKEN和ROX_CENTRAL_ADDRESS环境变量:export ROX_API_TOKEN=<api_token>
$ export ROX_API_TOKEN=<api_token>Copy to Clipboard Copied! Toggle word wrap Toggle overflow export ROX_CENTRAL_ADDRESS=<address>:<port_number>
$ export ROX_CENTRAL_ADDRESS=<address>:<port_number>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来上传内核支持软件包:
roxctl collector support-packages upload <package_file> \ -e "$ROX_CENTRAL_ADDRESS"
$ roxctl collector support-packages upload <package_file> \ -e "$ROX_CENTRAL_ADDRESS"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 当您上传包含之前上传到中心的内容的新支持软件包时,只会上传新文件。
当您上传一个新支持软件包,其中包含名称相同的名称但与 Central 上存在的内容不同的文件时,
roxctl会显示一个警告信息,且不会覆盖文件。-
您可以将
--overwrite选项与 upload 命令一起使用来覆盖文件。
-
您可以将
- 当您上传包含所需探测的支持软件包时,中央不会向互联网发出任何出站请求(到互联网)以下载这个探测。中心使用 support 软件包中的探测。
第 6 章 启用警报数据保留 复制链接链接已复制到粘贴板!
了解如何为 Red Hat Advanced Cluster Security for Kubernetes 警报配置保留周期。
使用 Red Hat Advanced Cluster Security for Kubernetes,您可以配置时间以保持历史警报存储。Red Hat Advanced Cluster Security for Kubernetes 随后会在指定时间后删除旧的警报。
通过自动删除不再需要的警报,您可以节约存储成本。
您可以配置保留周期的警报包括:
- 运行时警报,以及未解析(active)并解决。
- 不应用到当前部署的过时的部署时间警报。
- 数据保留设置会被默认启用。您可在安装后更改这些设置。
- 当您升级 Red Hat Advanced Cluster Security for Kubernetes 时,除非之前启用了数据保留设置,否则不会应用数据保留设置。
- 您可以使用 RHACS 门户或 API 配置警报保留设置。
- 删除的进程每小时运行一次。目前,您无法更改此设置。
6.1. 配置警报数据保留 复制链接链接已复制到粘贴板!
您可以使用 RHACS 门户配置警报保留设置。
先决条件
-
您必须具有
的具有读写权限Config角色来配置数据保留。
流程
- 在 RHACS 门户网站中,导航至 Platform Configuration → System Configuration。
- 在 System Configuration 视图标头中点击 Edit。
在 Data Retention Configuration 项中更新每种数据类型的天数:
- 所有运行时冲突
- 已解析 Deploy-Phase Violations
- 用于删除部署的运行时冲突
镜像没有长部署
注意要永久保存数据类型,请将保留周期设置为
0天。
- 点击 Save。
要使用 Red Hat Advanced Cluster Security for Kubernetes API 配置警报数据保留,请参阅 API 参考文档中的 ConfigService 组中的 PutConfig API 和相关的 API。
第 7 章 通过 HTTP 公开 RHACS 门户 复制链接链接已复制到粘贴板!
启用未加密的 HTTP 服务器,以通过入口控制器、第 7 层负载均衡器、Istio 或其他解决方案公开 RHACS 门户。
如果您使用 ingress 控制器、Istio 或 7 层负载均衡器来首选未加密的 HTTP 后端,您可以配置 Red Hat Advanced Cluster Security for Kubernetes 通过 HTTP 公开 RHACS 门户。这样,RHACS 门户可以通过纯文本后端获得。
要通过 HTTP 公开 RHACS 门户,您必须使用 ingress 控制器、第 7 层负载均衡器或 Istio 来使用 HTTPS 加密外部流量。不安全,使用普通 HTTP 将 RHACS 门户直接公开给外部客户端。
您可以在安装过程中或现有部署通过 HTTP 公开 RHACS 门户。
7.1. 先决条件 复制链接链接已复制到粘贴板!
要指定 HTTP 端点,必须使用 <
endpoints_spec>。它是单个端点规格的逗号分隔列表,格式为 <type>@<addr>:<port>,其中:-
type是grpc或http。在大多数用例中,把http用作类型。对于高级用例,您可以使用grpc或者省略其值。如果省略类型为的值,您可以在代理中配置两个端点,一个用于 gRPC,另一个用于 HTTP。这两个端点都指向 Central 上的相同公开 HTTP 端口。但是,大多数代理不支持在同一外部端口上同时提供 gRPC 和 HTTP 流量。 -
addr是要公开的 Central 的 IP 地址。如果您需要一个 HTTP 端点(只能通过端口转发来访问),您可以省略它,或者使用localhost或127.0.0.1。 -
端口是要公开的 Central 的端口。 以下是几个有效的 <
endpoints_spec>值:-
8080 -
http@8080 -
:8081 -
grpc@:8081 -
localhost:8080 -
http@localhost:8080 -
http@8080,grpc@8081 -
8080, gRPC@:8081, http@0.0.0.0:8082
-
-
7.2. 在安装过程中通过 HTTP 公开 RHACS 门户 复制链接链接已复制到粘贴板!
如果要使用 roxctl CLI 安装 Red Hat Advanced Cluster Security for Kubernetes,请使用 --plaintext-endpoints 选项和 roxctl central generate interactive 命令在安装过程中启用 HTTP 服务器。
流程
运行以下命令在互动安装过程中指定 HTTP 端点:
roxctl central generate interactive \ --plaintext-endpoints=<endpoints_spec>
$ roxctl central generate interactive \ --plaintext-endpoints=<endpoints_spec>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 以 <
type>@<addr>:<port> 形式的端点规格。详情请查看先决条件部分。
7.3. 通过 HTTP 公开 RHACS 门户以查找现有部署 复制链接链接已复制到粘贴板!
您可以在现有 Red Hat Advanced Cluster Security for Kubernetes 部署中启用 HTTP 服务器。
流程
创建补丁并定义
ROX_PLAINTEXT_ENDPOINTS环境变量:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 以 <
type>@<addr>:<port> 形式的端点规格。详情请查看先决条件部分。
将
ROX_PLAINTEXT_ENDPOINTS环境变量添加到中央部署中:oc -n stackrox patch deploy/central -p "$CENTRAL_PLAINTEXT_PATCH"
$ oc -n stackrox patch deploy/central -p "$CENTRAL_PLAINTEXT_PATCH"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 8 章 为安全集群配置自动升级 复制链接链接已复制到粘贴板!
您可以自动为每个安全集群进行升级过程,并从 RHACS 门户查看升级状态。
自动升级通过自动化升级每个安全集群的手动任务,更易于保持最新状态。
使用自动升级时,在所有受保护的集群中升级 Central、Sensor、Collector 和 Compliance 服务后,会自动升级到最新版本。
Red Hat Advanced Cluster Security for Kubernetes 还允许从 RHACS 门户对所有安全集群的集中管理。新的 Clusters 视图会显示有关所有安全集群、每个集群的 Sensor 版本以及升级状态信息的信息。您还可以使用此视图有选择地升级安全集群或更改其配置。
- 默认启用自动升级功能。
- 如果使用私有镜像 registry,您必须首先将 Sensor 和 Collector 镜像推送到私有 registry。
- Sensor 必须使用默认的 RBAC 权限运行。
- 自动升级不会保留您在集群中运行任何 Red Hat Advanced Cluster Security for Kubernetes 服务的补丁。但是,它会保留您添加到任何 Red Hat Advanced Cluster Security for Kubernetes 对象的所有标签和注解。
-
默认情况下,Red Hat Advanced Cluster Security for Kubernetes 在每个安全集群中创建一个名为
sensor-upgrader的服务帐户。此帐户具有高特权,但仅在升级过程中使用。如果您删除了这个帐户,Sensor 没有足够权限,且必须手动完成以后的升级。
8.1. 启用自动升级 复制链接链接已复制到粘贴板!
您可以为所有安全集群启用自动升级,将所有安全集群中的 Collector 和 Compliance 服务自动升级到最新的版本。
流程
- 在 RHACS 门户,导航到 Platform Configuration → Clusters。
打开 自动升级安全的集群 切换。
注意对于新安装,自动升级安全的集群 切换会被默认启用。
8.2. 禁用自动升级 复制链接链接已复制到粘贴板!
如果要手动管理安全集群升级,可以禁用自动升级。
流程
- 在 RHACS 门户,导航到 Platform Configuration → Clusters。
关闭 自动升级安全的集群 切换。
注意对于新安装,自动升级安全的集群 切换会被默认启用。
8.3. 自动升级状态 复制链接链接已复制到粘贴板!
Clusters 视图列出了所有集群及其升级状态。
| 升级状态 | 描述 |
|---|---|
| 使用 Central 版本最新 | 安全的集群正在运行与 Central 相同的版本。 |
| 可用升级 | 在 Sensor 和 Collector 中提供了新版本。 |
| 升级失败。重试升级。 | 以前的自动升级失败。 |
| 需要手动升级 | Sensor 和 Collector 版本早于 2.5.29.0 版本。您必须手动升级安全集群。 |
| pre-flight 检查完成 | 升级正在进行。在执行自动升级前,升级安装程序运行 pre-flight 检查。在 pre-flight 检查过程中,安装程序会验证是否满足某些条件,然后只启动升级过程。 |
8.4. 自动升级失败 复制链接链接已复制到粘贴板!
有时,Red Hat Advanced Cluster Security for Kubernetes 自动升级可能无法安装。当升级失败时,安全集群的状态消息将变为 Upgrade failed。重试 upgrade。要查看有关失败的更多信息并了解升级失败的原因,您可以在 Clusters 视图中检查安全集群行。
故障的一些常见原因如下:
- 由于缺少或不可调度的镜像,sensor-upgrader 部署可能无法运行。
-
pre-flight 检查可能会失败,无论由于 RBAC 权限不足,或者集群状态无法识别。如果您编辑了 Red Hat Advanced Cluster Security for Kubernetes 服务配置或
auto-upgrade.stackrox.io/component标签,则可能会出现这种情况。 执行升级时可能会有错误。如果发生这种情况,升级安装程序会自动尝试回滚升级。
注意有时,回滚也会失败。对于这种情况,请查看集群日志以识别问题或联系支持。
在识别并修复升级失败的根本原因后,您可以使用 Retry Upgrade 选项升级安全集群。
8.5. 从 RHACS 门户手动升级安全集群 复制链接链接已复制到粘贴板!
如果您不想启用自动升级,可以使用 Clusters 视图来管理安全集群升级。
手动触发安全集群的升级:
流程
- 在 RHACS 门户,导航到 Platform Configuration → Clusters。
- 选择您要升级的集群 升级状态列中的 Upgrade available 选项。
- 要一次升级多个集群,请为您要更新的集群选择 Cluster 列中的复选框。
- 单击 Upgrade。
第 9 章 为外部网络访问配置代理 复制链接链接已复制到粘贴板!
如果您的网络配置通过代理限制出站流量,您可以在 Red Hat Advanced Cluster Security for Kubernetes 中配置代理设置,以通过代理路由流量。
当您在 Red Hat Advanced Cluster Security for Kubernetes 中使用代理时:
- 来自 Central 和 Scanner 的所有传出 HTTP、HTTPS 和其他 TCP 流量都会通过代理。
- Central 和 Scanner 之间的流量不会通过代理。
- 代理配置不会影响到其他 Red Hat Advanced Cluster Security for Kubernetes 组件。
当您不使用离线模式时,在安全集群中运行的 Collector 需要在运行时下载额外的内核模块或 eBPF 探测:
- 收集器会尝试通过联系 Sensor 进行下载。
- 然后,Sensor 将此请求转发到 Central。
-
中心使用代理查找模块或探测
https://collector-modules.stackrox.io。
9.1. 在现有部署中配置代理 复制链接链接已复制到粘贴板!
要在现有部署中配置代理,您必须将 proxy-config secret 导出为 YAML 文件,在该文件中更新代理配置并将其上传为 secret。
流程
将现有的 secret 保存为 YAML 文件:
oc -n stackrox get secret proxy-config \ -o go-template='{{index .data "config.yaml" | \ base64decode}}{{"\n"}}' > /tmp/proxy-config.yaml$ oc -n stackrox get secret proxy-config \ -o go-template='{{index .data "config.yaml" | \ base64decode}}{{"\n"}}' > /tmp/proxy-config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 编辑 YAML 配置文件中要修改的字段,如在安装过程中配置代理中指定的字段。
保存更改后,运行以下命令替换 secret:
oc -n stackrox create secret generic proxy-config \ --from-file=config.yaml=/tmp/proxy-config.yaml -o yaml --dry-run | \ oc label -f - --local -o yaml app.kubernetes.io/name=stackrox | \ oc apply -f -
$ oc -n stackrox create secret generic proxy-config \ --from-file=config.yaml=/tmp/proxy-config.yaml -o yaml --dry-run | \ oc label -f - --local -o yaml app.kubernetes.io/name=stackrox | \ oc apply -f -Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要- 您必须至少等待 1 分钟,直到 OpenShift Container Platform 将更改传播到中央和扫描器。
- 如果在更改代理配置后看到传出连接有任何问题,您必须重启 Central 和 Scanner pod。
9.2. 在安装过程中配置代理 复制链接链接已复制到粘贴板!
当您使用 roxctl 命令行界面(CLI)或 Helm 安装 Red Hat Advanced Cluster Security for Kubernetes 时,您可以在安装过程中指定代理配置。
当您使用 roxctl central generate 命令运行安装程序时,安装程序会为您的环境生成 secret 和部署配置文件。您可以通过编辑生成的配置 secret(YAML)文件来配置代理。目前,您无法使用 roxctl CLI 配置代理。配置存储在 Kubernetes secret 中,它由 Central 和 Scanner 共享。
流程
从部署捆绑包目录打开配置文件
central/proxy-config-secret.yaml。注意如果使用 Helm,则配置文件位于
central/templates/proxy-config-secret.yaml中。在配置文件中编辑您要修改的字段:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 3 4 7 8 10 11
- 添加
是可选的,在用户名和密码http和 https 部分的开头和https部分。 - 2 6 9
url选项支持以下 URL 方案:-
HTTP://用于 HTTP 代理。 -
HTTPS://用于启用了 TLS 的 HTTP 代理。 -
socks5://for a SOCKS5 代理。
-
- 5
excludes列表可以包含 DNS 名称(带有或没有*通配符)、IP 地址或 CIDR 表示法中的 IP 块(例如10.0.0.0/8)。无论协议是什么,此列表中的值将应用于所有传出连接。- 1
stringData部分中的|-行表示配置数据的开头。注意-
第一次打开文件时,所有值都会被注释掉(使用位于行开头的
#号)。以双 hash 符号开头的行# #包含配置键的解释。 -
确保在编辑字段时,维护与
config.yaml 相关的两个空格的缩进级别:|-行。
-
第一次打开文件时,所有值都会被注释掉(使用位于行开头的
- 编辑配置文件后,您可以正常进行安装。更新的配置指示 Red Hat Advanced Cluster Security for Kubernetes 使用在提供的地址和端口号上运行的代理。
第 10 章 生成诊断捆绑包 复制链接链接已复制到粘贴板!
您可以生成诊断捆绑包并发送这些数据,以便支持团队深入了解 Red Hat Advanced Cluster Security for Kubernetes 组件的状态和健康状况。
红帽可能会要求您在调查 Red Hat Advanced Cluster Security for Kubernetes 的问题时发送诊断捆绑包。您可以生成诊断捆绑包,并在发送前检查其数据。
诊断捆绑包是未加密的,具体取决于环境中的集群数量,捆绑包大小介于 100 KB 和 1 MB 之间。始终使用加密通道将该数据传输回红帽。
10.1. 诊断捆绑包数据 复制链接链接已复制到粘贴板!
当您生成诊断捆绑包时,会包括以下数据:
- 中央堆配置文件.
- 系统日志:所有 Red Hat Advanced Cluster Security for Kubernetes 组件的日志(针对最后 20 分钟),以及最近崩溃的组件的日志(崩溃前最多 20 分钟)。系统日志取决于您的环境的大小。对于大型部署,数据只包含关键错误的组件的日志文件,如高重启计数。
- Red Hat Advanced Cluster Security for Kubernetes 组件的 YAML 定义:这些数据不包括 Kubernetes secret。
-
OpenShift Container Platform 或 Kubernetes 事件:关于与
stackrox命名空间中对象相关的事件的详细信息。 在线 Telemetry 数据,其中包括:
- 存储信息:有关数据库大小以及附加卷中可用空间量的详细信息。
- Red Hat Advanced Cluster Security for Kubernetes 组件健康信息:有关 Red Hat Advanced Cluster Security for Kubernetes 组件版本的详情、其内存用量以及任何报告的错误。
- coarse-grained usage statistics:有关 API 端点调用数的详细信息,并报告了错误状态。它不包括在 API 请求中发送的实际数据。
- 节点信息:有关每个安全集群中的节点的详细信息。它包括内核和操作系统版本、资源压力和污点。
- 环境信息:有关每个安全集群的详细信息,包括 Kubernetes 或 OpenShift Container Platform 版本、Istio 版本(如果适用)、云供应商类型和其他类似的信息。
10.2. 使用 RHACS 门户生成诊断捆绑包 复制链接链接已复制到粘贴板!
您可以使用 RHACS 门户上的系统健康仪表板生成诊断捆绑包。
先决条件
-
要生成诊断捆绑包,需要对
DebugLogs资源具有读权限。
流程
- 在 RHACS 门户,选择 Platform Configuration → System Health。
- 在 System Health view 标头上,单击 Generate Diagnostic Bundle。
- 对于 Filter by cluster 下拉菜单,选择您要为其生成诊断数据的集群。
- 对于 Filter by start time,请指定您要包含诊断数据的日期和时间(以 UTC 格式)。
- 单击 Download Diagnostic Bundle。
10.3. 使用 roxctl CLI 生成诊断捆绑包 复制链接链接已复制到粘贴板!
您可以使用 roxctl CLI 生成诊断捆绑包。
先决条件
-
要生成诊断捆绑包,需要对
DebugLogs资源具有读权限。
流程
运行以下命令以生成诊断捆绑包:
roxctl central debug download-diagnostics
$ roxctl central debug download-diagnosticsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 11 章 配置端点 复制链接链接已复制到粘贴板!
了解如何使用 YAML 配置文件为 Red Hat Advanced Cluster Security for Kubernetes(RHACS)配置端点。
您可以使用 YAML 配置文件来配置公开的端点。您可以使用此配置文件为 Red Hat Advanced Cluster Security for Kubernetes 定义一个或多个端点,并为每个端点自定义 TLS 设置,或者为特定端点禁用 TLS 设置。您还可以定义是否需要客户端身份验证,以及接受哪些客户端证书。
11.1. 自定义 YAML 配置 复制链接链接已复制到粘贴板!
Red Hat Advanced Cluster Security for Kubernetes 使用 YAML 配置作为 ConfigMap,使配置更易于更改和管理。
使用自定义 YAML 配置文件时,您可以为每个端点配置以下内容:
-
要使用的协议,如
HTTP、gRPC或两者。 - 启用或禁用 TLS。
- 指定服务器证书。
- 用于信任客户端身份验证的客户端证书颁发机构(CA)。
-
指定是否需要客户端证书验证(
mTLS)。
您可以使用配置文件在安装过程中或 Red Hat Advanced Cluster Security for Kubernetes 的现有实例中指定端点。但是,如果您公开默认端口 8443 以外的任何其他端口,您必须创建一个网络策略来允许这些额外端口上的流量。
以下是 Red Hat Advanced Cluster Security for Kubernetes 的 endpoint .yaml 配置文件示例:
- 1
- 使用
true在默认端口号8443上禁用暴露。默认值为false;将其更改为true可能会破坏现有的功能。 - 2
- 用于公开 Central 的额外端点列表。
- 3 7
- 要侦听的地址和端口号。如果使用
端点,您必须指定这个值。您可以使用格式端口、:port或address:port来指定值。例如,-
8080或:8080- 侦听所有接口的端口8080。 -
0.0.0.0:8080- 监听所有 IPv4(而非 IPv6 接口)的端口8080。 -
127.0.0.1:8080- 仅侦听本地环回设备上的端口8080。
-
- 4
- 用于指定端点的协议。可接受值为
http和grpc。如果您没有指定值,Central 会同时侦听指定端口上的 HTTP 和 gRPC 流量。如果要为 RHACS 门户公开端点,请使用http。但是,您无法将端点用于服务到服务通信或roxctlCLI,因为这些客户端需要 gRPC 和 HTTP。红帽建议不要指定这个键的值,以便为端点启用 HTTP 和 gRPC 协议。如果只想将端点限制为 Red Hat Advanced Cluster Security for Kubernetes 服务,请使用 clientAuth 选项。 - 5 8
- 使用它指定端点的 TLS 设置。如果没有指定值,Red Hat Advanced Cluster Security for Kubernetes 将启用带有以下所有嵌套键的默认设置的 TLS。
- 6
- 使用
true在指定的端点上禁用 TLS。默认值为false。当将其设置为true时,您无法为serverCerts和clientAuth指定值。 - 9
- 指定配置服务器 TLS 证书的源列表。
serverCerts列表是顺序独立,这意味着当没有匹配的 SNI(Server Name Indication)时,列表中的第一项决定中央使用的证书。您可以使用它指定多个证书,而 Central 会根据 SNI 自动选择正确的证书。可接受值为:-
默认: 如果存在,请使用已经配置的自定义 TLS 证书。 -
服务:使用 Red Hat Advanced Cluster Security for Kubernetes 生成的内部服务证书。
-
- 10
- 使用它配置启用了 TLS 的客户端证书验证的行为。
- 11
- 使用
true只允许具有有效客户端证书的客户端。默认值为false。您可以结合使用true和服务的certAuthorities设置来只允许 Red Hat Advanced Cluster Security for Kubernetes 服务连接到此端点。 - 12
- 用于验证客户端证书的 CA 列表。默认值为
["service", "user"]。certAuthorities列表是顺序独立,这意味着此列表中的项目的位置无关紧要。另外,将其设置为空列表[]会禁用端点的客户端证书身份验证,这与保留这个值没有不同。可接受值为:-
服务:用于 Red Hat Advanced Cluster Security for Kubernetes 生成的服务证书的 CA。 -
用户:由 PKI 身份验证提供程序配置的 CA.
-
11.2. 在新安装过程中配置端点 复制链接链接已复制到粘贴板!
当使用 roxctl CLI 安装 Red Hat Advanced Cluster Security for Kubernetes 时,它会创建一个名为 central-bundle 的文件夹,其中包含要部署的 YAML 清单和脚本。
流程
-
生成
central-bundle后,打开./central-bundle/central/02-endpoints-config.yaml文件。 -
在这个文件中,将自定义 YAML 配置添加到密钥
endpoints.yaml的data:部分。确保您为 YAML 配置维护 4 个空间缩进。 - 照常继续安装说明。Red Hat Advanced Cluster Security for Kubernetes 使用指定的配置。
如果您公开了默认端口 8443 以外的任何其他端口,您必须创建一个网络策略来允许这些额外端口上的流量。
11.3. 为现有实例配置端点 复制链接链接已复制到粘贴板!
您可以为 Red Hat Advanced Cluster Security for Kubernetes 的现有实例配置端点。
流程
下载现有的配置映射:
oc -n stackrox get cm/central-endpoints -o go-template='{{index .data "endpoints.yaml"}}' > <directory_path>/central_endpoints.yaml$ oc -n stackrox get cm/central-endpoints -o go-template='{{index .data "endpoints.yaml"}}' > <directory_path>/central_endpoints.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
在下载的
central_endpoints.yaml文件中,指定您的自定义 YAML 配置。 上传并应用修改后的
central_endpoints.yaml配置文件:oc -n stackrox create cm central-endpoints --from-file=endpoints.yaml=<directory-path>/central-endpoints.yaml -o yaml --dry-run | \ oc label -f - --local -o yaml app.kubernetes.io/name=stackrox | \ oc apply -f -
$ oc -n stackrox create cm central-endpoints --from-file=endpoints.yaml=<directory-path>/central-endpoints.yaml -o yaml --dry-run | \ oc label -f - --local -o yaml app.kubernetes.io/name=stackrox | \ oc apply -f -Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 重新启动 Central。
如果您公开了默认端口 8443 以外的任何其他端口,您必须创建一个网络策略来允许这些额外端口上的流量。
11.3.1. 重启 Central 容器 复制链接链接已复制到粘贴板!
您可以通过终止 Central 容器或删除 Central pod 重启 Central 容器。
流程
运行以下命令以终止 Central 容器:
注意您必须等待至少 1 分钟,直到 OpenShift Container Platform 传播您的更改并重启 Central 容器。
oc -n stackrox exec deploy/central -c central -- kill 1
$ oc -n stackrox exec deploy/central -c central -- kill 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,运行以下命令来删除 Central pod:
oc -n stackrox delete pod -lapp=central
$ oc -n stackrox delete pod -lapp=centralCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.4. 启用流量流通过自定义端口 复制链接链接已复制到粘贴板!
如果您要向同一集群或入口控制器中运行的另一个服务公开端口,则必须只允许从集群中的服务或入口控制器代理的流量。否则,如果您使用负载均衡器服务公开端口,您可能需要允许来自所有源的流量,包括外部来源。使用本节中所列的步骤来允许来自所有源的流量。
流程
克隆
allow-ext-to-centralKubernetes 网络策略:oc -n stackrox get networkpolicy.networking.k8s.io/allow-ext-to-central -o yaml > <directory_path>/allow-ext-to-central-custom-port.yaml
$ oc -n stackrox get networkpolicy.networking.k8s.io/allow-ext-to-central -o yaml > <directory_path>/allow-ext-to-central-custom-port.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用它作为创建网络策略的参考,在该策略中指定您要公开的端口号。确保在 YAML 文件的
metadata部分更改网络策略的名称,使其不会干扰内置的allow-ext-to-central策略。
第 12 章 使用 Prometheus 监控 复制链接链接已复制到粘贴板!
Prometheus 是一个开源监控和警报平台。您可以使用它监控 Red Hat Advanced Cluster Security for Kubernetes 的 Central 和 Sensor 组件的健康状态和可用性。
12.1. 启用监控 复制链接链接已复制到粘贴板!
在监控 Red Hat Advanced Cluster Security for Kubernetes 前,您必须启用监控。
流程
修补服务以公开端口号
9090。对 Sensor 服务进行补丁:
oc -n stackrox patch svc/sensor -p '{"spec":{"ports":[{"name":"monitoring","port":9090,"protocol":"TCP","targetPort":9090}]}}'$ oc -n stackrox patch svc/sensor -p '{"spec":{"ports":[{"name":"monitoring","port":9090,"protocol":"TCP","targetPort":9090}]}}'1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 如果使用 Kubernetes,请输入
kubectl而不是oc。
对中央服务进行补丁:
oc -n stackrox patch svc/central -p '{"spec":{"ports":[{"name":"monitoring","port":9090,"protocol":"TCP","targetPort":9090}]}}'$ oc -n stackrox patch svc/central -p '{"spec":{"ports":[{"name":"monitoring","port":9090,"protocol":"TCP","targetPort":9090}]}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
修改网络策略以允许入口。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 如果使用 Kubernetes,请输入
kubectl而不是oc。
12.1.1. 自定义默认端口 复制链接链接已复制到粘贴板!
要自定义 Red Hat Advanced Cluster Security for Kubernetes Central 和 Sensor 中 Prometheus 指标所使用的端口,您可以使用 ROX_METRICS_PORT 环境变量。
流程
设置
ROX_METRICS_PORT环境变量:oc -n stackrox set env deploy/central ROX_METRICS_PORT=<value>
$ oc -n stackrox set env deploy/central ROX_METRICS_PORT=<value>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 如果使用 Kubernetes,请输入
kubectl而不是oc。
您可以为 ROX_METRICS_PORT 环境变量指定 < value >:
-
禁用监控功能。 -
:<port_number> 把它绑定到通配符地址。 -
<address>:<port_number> 以使用特定地址和端口号。您还可以使用方括号指定 IPv6 地址,例如[2001:db8::1234]:9090。
第 13 章 配置审计日志记录 复制链接链接已复制到粘贴板!
Red Hat Advanced Cluster Security for Kubernetes 提供了审计日志记录功能,可用于检查 Red Hat Advanced Cluster Security for Kubernetes 中所做的所有更改。审计日志捕获所有 PUT 和 POST 事件,这些事件对 Red Hat Advanced Cluster Security for Kubernetes 进行了修改。使用此信息对问题进行故障排除,或者保留重要事件的记录,如角色和权限的更改。通过审计日志记录,您可以完整了解 Red Hat Advanced Cluster Security for Kubernetes 中发生的所有正常事件和异常事件。
默认情况下不启用审计日志记录。您必须手动启用审计日志记录。
目前,审计日志消息没有消息传送保证。
13.1. 启用审计日志记录 复制链接链接已复制到粘贴板!
当您启用审计日志日志记录时,每次有修改时,Red Hat Advanced Cluster Security for Kubernetes 都会向配置的系统发送 HTTP POST 信息(采用 JSON 格式)。
先决条件
- 配置 Splunk 或其他 Webhook 接收器,以处理 Red Hat Advanced Cluster Security for Kubernetes 日志消息。
-
您必须在角色的 Notifiers 资源中启用了
写入权限。
流程
- 在 RHACS 门户网站中,导航至 Platform Configuration → Integrations。
- 向下滚动到 Notifier Integrations 部分,然后选择 Generic Webhook 或 Splunk。
- 填写所需信息并打开 Enable Audit Logging 切换。
13.2. 审计日志消息示例 复制链接链接已复制到粘贴板!
日志消息的格式如下: