...
spec:
central:
declarativeConfiguration:
configMaps:
- name: "<declarative-configs>" (1)
secrets:
- name: "<sensitive-declarative-configs>" (2)
...
中心是包含 RHACS 应用程序管理界面和服务的资源。它处理数据持久性、API 交互和 RHACS 门户访问。您可以使用相同的中心实例来保护多个 OpenShift Container Platform 或 Kubernetes 集群。
您可以使用以下方法之一在 OpenShift Container Platform 或 Kubernetes 集群上安装中心
使用 Operator 安装
使用 Helm 图表安装
使用roxctl
CLI 安装(除非您有使用它的特定安装需求,否则不要使用此方法)
使用 OpenShift Container Platform 提供的 OperatorHub 是安装用于 Kubernetes 的 Red Hat 高级集群安全的最简单方法。
您可以使用具有 Operator 安装权限的帐户访问 OpenShift Container Platform 集群。
您必须使用 OpenShift Container Platform 4.12 或更高版本。有关支持的平台和架构的信息,请参阅Red Hat 高级集群安全用于 Kubernetes 支持矩阵。有关 RHACS 的生命周期支持信息,请参阅Red Hat 高级集群安全用于 Kubernetes 支持策略。
在 Web 控制台中,转到**Operators** → **OperatorHub**页面。
如果未显示用于 Kubernetes 的 Red Hat 高级集群安全,请在**按关键字筛选**框中输入**高级集群安全**以查找用于 Kubernetes 的 Red Hat 高级集群安全 Operator。
选择**用于 Kubernetes 的 Red Hat 高级集群安全 Operator**以查看详细信息页面。
阅读有关 Operator 的信息,然后单击**安装**。
在**安装 Operator**页面上
将**安装模式**的默认值保留为**集群上的所有命名空间**。
在**已安装命名空间**字段中选择一个特定的命名空间来安装 Operator。将 Red Hat Advanced Cluster Security for Kubernetes Operator 安装到**rhacs-operator**命名空间。
为**更新审批**选择自动或手动更新。
如果您选择自动更新,当 Operator 的新版本可用时,Operator Lifecycle Manager (OLM) 会自动升级正在运行的 Operator 实例。
如果您选择手动更新,当 Operator 的新版本可用时,OLM 会创建一个更新请求。作为集群管理员,您必须手动批准更新请求才能将 Operator 更新到最新版本。
如果您选择手动更新,则在更新安装 Central 的集群中的 RHACS Operator 时,必须更新所有已保护集群中的 RHACS Operator。已保护集群和安装 Central 的集群必须具有相同的版本,以确保最佳功能。 |
点击**安装**。
安装完成后,转到**Operators** → **已安装 Operators**以验证 Red Hat Advanced Cluster Security for Kubernetes Operator 是否已列出,状态为**成功**。
您已将 Operator 安装到**rhacs-operator**项目中。使用该 Operator,安装、配置和部署Central
自定义资源到stackrox
项目。
Red Hat Advanced Cluster Security for Kubernetes 的主要组件称为 Central。您可以使用Central
自定义资源在 OpenShift Container Platform 上安装 Central。您只需部署一次 Central,即可使用相同的 Central 安装监控多个单独的集群。
|
您必须使用 OpenShift Container Platform 4.12 或更高版本。有关支持的平台和架构的信息,请参阅Red Hat 高级集群安全用于 Kubernetes 支持矩阵。有关 RHACS 的生命周期支持信息,请参阅Red Hat 高级集群安全用于 Kubernetes 支持策略。
在 OpenShift Container Platform Web 控制台中,转到**Operators** → **已安装 Operators**页面。
从已安装 Operators 列表中选择 Red Hat Advanced Cluster Security for Kubernetes Operator。
如果您已在推荐的命名空间中安装 Operator,OpenShift Container Platform 会将项目列为rhacs-operator
。选择**项目:rhacs-operator** → **创建项目**。
|
输入新的项目名称(例如stackrox
),然后单击**创建**。Red Hat 建议您使用stackrox
作为项目名称。
在**提供的 API**部分,选择**Central**。单击**创建 Central**。
可选:如果您使用的是声明性配置,在**通过以下方式配置:**旁边,单击**YAML 视图**并添加声明性配置的信息,例如以下示例所示
...
spec:
central:
declarativeConfiguration:
configMaps:
- name: "<declarative-configs>" (1)
secrets:
- name: "<sensitive-declarative-configs>" (2)
...
1 | 将<declarative-configs>替换为您正在使用的 ConfigMap 的名称。 |
2 | 将<sensitive-declarative-configs>替换为您正在使用的 Secret 的名称。 |
为您的Central
自定义资源输入一个名称,并添加您要应用的任何标签。否则,接受可用选项的默认值。
您可以配置 Central 的可用选项
Central 组件设置
设置 | 描述 |
---|---|
管理员密码 |
包含管理员密码的 Secret。如果您不希望 RHACS 为您生成密码,请使用此字段。 |
暴露 |
使用路由、负载均衡器或节点端口暴露 Central 的设置。请参阅“在 Red Hat OpenShift 上为 RHACS 安装 Central 服务”中的“公共配置文件”部分中的 |
面向用户的 TLS 证书 Secret |
如果您想在 Central 中终止 TLS 并提供自定义服务器证书,请使用此字段。 |
监控 |
配置 Central 的监控端点。请参阅“在 Red Hat OpenShift 上为 RHACS 安装 Central 服务”中的“公共配置文件”部分中的 |
Central 数据库设置 |
Central 数据库的设置,包括数据持久性。请参阅“在 Red Hat OpenShift 上为 RHACS 安装 Central 服务”中的“公共配置文件”部分中的 |
资源 |
如果您需要覆盖内存和 CPU 资源的默认设置,请参考文档后再使用这些字段。更多信息,请参阅“安装”章节中的“RHACS 的默认资源需求”和“RHACS 的推荐资源需求”部分。 |
容忍度 |
使用此参数配置 Central 仅在特定节点上运行。请参阅“在 Red Hat OpenShift 上为 RHACS 安装 Central 服务”中的“公共配置文件”部分中的 |
主机别名 |
使用此参数配置在 pod 的 hosts 文件中解析的其他主机名。 |
扫描器组件设置:默认扫描器的设置,也称为 StackRox 扫描器。请参阅“在 Red Hat OpenShift 上为 RHACS 安装 Central 服务”中的“公共配置文件”部分中的“扫描器”表。
扫描器 V4 组件设置:可选扫描器 V4 扫描器的设置,在 4.4 及更高版本中可用。目前默认情况下未启用。您可以启用 StackRox 扫描器和扫描器 V4 以同时使用。请参阅“在 Red Hat OpenShift 上为 RHACS 安装 Central 服务”中的“公共配置文件”部分中的“扫描器 V4”表。
启用扫描器 V4 后,您可以配置以下选项
设置 | 描述 |
---|---|
索引器 |
索引镜像并创建发现报告的过程。您可以配置副本和自动缩放、资源和容忍度。在更改默认资源值之前,请参阅“安装”章节中的“RHACS 的默认资源需求”和“RHACS 的推荐资源需求”部分中的“扫描器 V4”部分。 |
匹配器 |
执行索引器报告与存储在扫描器 V4 数据库中的漏洞数据之间的漏洞匹配的过程。您可以配置副本和自动缩放、资源和容忍度。在更改默认资源值之前,请参阅“安装”章节中的“RHACS 的默认资源需求”和“RHACS 的推荐资源需求”部分中的“扫描器 V4”部分。 |
数据库 |
此数据库存储 Scanner V4 的信息,包括漏洞数据和索引报告。您可以配置持久性、资源和容忍度。如果您使用的是 Scanner V4,则在 Central 集群上需要持久卷声明 (PVC)。强烈建议在安全集群上使用 PVC,以获得最佳结果。在更改默认资源值之前,请参阅“安装”章节中“RHACS 的默认资源需求”和“RHACS 的推荐资源需求”部分的“Scanner V4”部分。 |
出站流量 (Egress):出站网络流量的设置,包括 RHACS 应该在线(已连接)模式还是离线(已断开连接)模式下运行。
TLS:使用此字段添加其他受信任的根证书颁发机构 (CA)。
网络 (network):为了在网络级别提供安全,RHACS 在安装 Central 的命名空间中创建默认的 NetworkPolicy
资源。要创建和管理您自己的网络策略,请在策略 (policies) 部分选择禁用 (Disabled)。默认情况下,此选项为启用 (Enabled)。
禁用默认网络策略的创建可能会中断 RHACS 组件之间的通信。如果您禁用默认策略的创建,则必须创建您自己的网络策略以允许此通信。 |
高级配置 (Advanced configuration):您可以使用这些字段执行以下操作
指定其他镜像拉取密钥
添加要为托管 Pod 的容器设置的自定义环境变量
启用 Red Hat OpenShift 监控
点击创建 (Create)。
如果您使用的是集群范围代理,Red Hat Advanced Cluster Security for Kubernetes 将使用该代理配置来连接到外部服务。 |
验证 Central 安装。
可选:配置 Central 选项。
生成一个包含集群密钥的初始化包,该密钥允许Central
和SecuredCluster
资源之间进行通信。您需要下载此包,使用它在您要保护的集群上生成资源,并安全地存储它。
在您要监控的每个集群上安装安全集群服务。
此步骤是可选的。您可以使用现有的 PostgreSQL 基础设施为 RHACS 配置数据库。请使用本节中的说明来配置 PostgreSQL 数据库环境,创建用户、数据库、模式、角色以及授予所需的权限。
创建一个新用户
CREATE USER stackrox WITH PASSWORD <password>;
创建一个数据库
CREATE DATABASE stackrox;
连接到数据库
\connect stackrox
创建用户模式
CREATE SCHEMA stackrox;
(可选) 收回公共权限
REVOKE CREATE ON SCHEMA public FROM PUBLIC;
REVOKE USAGE ON SCHEMA public FROM PUBLIC;
REVOKE ALL ON DATABASE stackrox FROM PUBLIC;
创建一个角色
CREATE ROLE readwrite;
授予角色连接权限
GRANT CONNECT ON DATABASE stackrox TO readwrite;
向readwrite
角色添加所需权限
GRANT USAGE ON SCHEMA stackrox TO readwrite;
GRANT USAGE, CREATE ON SCHEMA stackrox TO readwrite;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA stackrox TO readwrite;
ALTER DEFAULT PRIVILEGES IN SCHEMA stackrox GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO readwrite;
GRANT USAGE ON ALL SEQUENCES IN SCHEMA stackrox TO readwrite;
ALTER DEFAULT PRIVILEGES IN SCHEMA stackrox GRANT USAGE ON SEQUENCES TO readwrite;
将readwrite
角色分配给stackrox
用户
GRANT readwrite TO stackrox;
Red Hat Advanced Cluster Security for Kubernetes 的主要组件称为 Central。您可以使用Central
自定义资源在 OpenShift Container Platform 上安装 Central。您只需部署一次 Central,即可使用相同的 Central 安装监控多个单独的集群。
首次安装 Red Hat Advanced Cluster Security for Kubernetes 时,必须先安装 |
有关 RHACS 数据库的更多信息,请参阅数据库覆盖范围。
您必须使用 OpenShift Container Platform 4.12 或更高版本。有关支持的 OpenShift Container Platform 版本的更多信息,请参阅Red Hat Advanced Cluster Security for Kubernetes 支持矩阵。
您的数据库实例中必须有一个支持 PostgreSQL 13 的数据库,以及一个具有以下权限的用户:
连接到数据库的权限。
模式上的Usage
和Create
权限。
模式中所有表上的Select
、Insert
、Update
和Delete
权限。
模式中所有序列上的Usage
权限。
在 OpenShift Container Platform Web 控制台中,转到**Operators** → **已安装 Operators**页面。
从已安装 Operators 列表中选择 Red Hat Advanced Cluster Security for Kubernetes Operator。
如果您已在推荐的命名空间中安装 Operator,OpenShift Container Platform 会将项目列为rhacs-operator
。选择**项目:rhacs-operator** → **创建项目**。
|
输入新的项目名称(例如stackrox
),然后单击**创建**。Red Hat 建议您使用stackrox
作为项目名称。
使用 OpenShift Container Platform Web 控制台或终端在已部署的命名空间中创建一个密码密钥。
在 OpenShift Container Platform Web 控制台上,转到工作负载 (Workloads) → 密钥 (Secrets)页面。创建一个键值密钥 (Key/Value secret),键为password
,值为包含已配置数据库超级用户密码的纯文本文件的路径。
或者,在您的终端中运行以下命令:
$ oc create secret generic external-db-password \(1)
--from-file=password=<password.txt> (2)
1 | 如果您使用的是 Kubernetes,请输入kubectl 代替oc 。 |
2 | 将password.txt 替换为包含纯文本密码的文件的路径。 |
返回到 OpenShift Container Platform Web 控制台中的 Red Hat Advanced Cluster Security for Kubernetes 运算符页面。在提供的 API (Provided APIs)部分,选择Central。点击创建 Central (Create Central)。
可选:如果您使用的是声明性配置,请在通过以下方式配置 (Configure via:)旁边点击YAML 视图 (YAML view)。
添加声明性配置的信息,例如以下示例所示:
...
spec:
central:
declarativeConfiguration:
configMaps:
- name: <declarative-configs> (1)
secrets:
- name: <sensitive-declarative-configs> (2)
...
1 | 将<declarative-configs>替换为您正在使用的 ConfigMap 的名称。 |
2 | 将<sensitive-declarative-configs>替换为您正在使用的 Secret 的名称。 |
为您的Central
自定义资源输入一个名称,并添加您想要应用的任何标签。
转到Central 组件设置 (Central Component Settings) → Central 数据库设置 (Central DB Settings)。
对于管理员密码 (Administrator Password),请将引用的密钥指定为external-db-password
(或先前创建的密码的密钥名称)。
对于连接字符串 (Connection String),请以keyword=value
格式指定连接字符串,例如,host=<host> port=5432 database=stackrox user=stackrox sslmode=verify-ca
对于持久性 (Persistence) → PersistentVolumeClaim → 声明名称 (Claim Name),请移除central-db
。
如有必要,您可以指定一个证书颁发机构,以便数据库证书和 Central 之间存在信任关系。要添加此项,请转到 YAML 视图并在顶级规范下添加 TLS 块,如下例所示:
spec:
tls:
additionalCAs:
- name: db-ca
content: |
<certificate>
点击创建 (Create)。
如果您使用的是集群范围代理,Red Hat Advanced Cluster Security for Kubernetes 将使用该代理配置来连接到外部服务。 |
验证 Central 安装。
可选:配置 Central 选项。
生成一个包含集群密钥的初始化包,该密钥允许Central
和SecuredCluster
资源之间进行通信。您需要下载此包,使用它在您要保护的集群上生成资源,并安全地存储它。
在您要监控的每个集群上安装安全集群服务。
Central 安装完成后,登录到 RHACS 门户以验证 Central 的成功安装。
在 OpenShift Container Platform Web 控制台中,转到**Operators** → **已安装 Operators**页面。
从已安装 Operators 列表中选择 Red Hat Advanced Cluster Security for Kubernetes Operator。
选择Central选项卡。
从Centrals列表中,选择stackrox-central-services
以查看其详细信息。
要获取admin
用户的密码,您可以:
点击管理员密码密钥引用 (Admin Password Secret Reference)下的链接。
使用 Red Hat OpenShift CLI 输入管理员凭据信息 (Admin Credentials Info)下列出的命令。
$ oc -n stackrox get secret central-htpasswd -o go-template='{{index .data "password" | base64decode}}'
使用 Red Hat OpenShift CLI 命令查找 RHACS 门户的链接。
$ oc -n stackrox get route central -o jsonpath="{.status.ingress[0].host}"
或者,您可以使用 Red Hat Advanced Cluster Security for Kubernetes Web 控制台通过执行以下命令来查找 RHACS 门户的链接:
转到网络 (Networking) → 路由 (Routes)。
找到central路由,然后点击位置 (Location)列下的 RHACS 门户链接。
使用用户名admin和您在上一步中检索到的密码登录到 RHACS 门户。在 RHACS 完全配置之前(例如,您已安装和配置了Central
资源和至少一个SecuredCluster
资源),仪表板中将没有可用数据。SecuredCluster
资源可以在与Central
资源相同的集群上安装和配置。具有SecuredCluster
资源的集群类似于 Red Hat Advanced Cluster Management (RHACM) 中的托管集群。
可选:配置中心设置。
生成一个包含集群密钥的初始化包,该密钥允许Central
和SecuredCluster
资源之间进行通信。您需要下载此包,使用它在您要保护的集群上生成资源,并安全地存储它。
在您要监控的每个集群上安装安全集群服务。
您可以使用 Helm Chart 安装 Central,无需任何自定义,使用默认值,或者使用带有附加配置参数自定义的 Helm Chart。
您可以无需任何自定义配置即可在集群上安装 RHACS。您必须添加 Helm chart 仓库并安装 `central-services` Helm chart 来安装 Central 和 Scanner 的集中式组件。
添加 RHACS charts 仓库。
$ helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/
Red Hat Advanced Cluster Security for Kubernetes 的 Helm 仓库包含用于安装不同组件的 Helm charts,包括:
Central services Helm chart(`central-services`)用于安装集中式组件(Central 和 Scanner)。
您只需部署一次集中式组件,即可使用相同的安装监控多个独立集群。 |
Secured Cluster Services Helm chart(`secured-cluster-services`)用于安装每个集群和每个节点的组件(Sensor、Admission Controller、Collector 和 Scanner-slim)。
将每个集群的组件部署到您想要监控的每个集群中,并将每个节点的组件部署到您想要监控的所有节点中。 |
运行以下命令以验证已添加的 chart 仓库
$ helm search repo -l rhacs/
使用以下说明安装 `central-services` Helm chart 来部署集中式组件(Central 和 Scanner)。
您必须能够访问 Red Hat Container Registry。有关从 `registry.redhat.io` 下载镜像的信息,请参见 Red Hat Container Registry 身份验证。
运行以下命令来安装 Central services 并使用路由公开 Central
$ helm install -n stackrox \
--create-namespace stackrox-central-services rhacs/central-services \
--set imagePullSecrets.username=<username> \(1)
--set imagePullSecrets.password=<password> \(2)
--set central.exposure.route.enabled=true
1 | 包含您的 Red Hat Container Registry 身份验证拉取密钥的用户名。 |
2 | 包含您的 Red Hat Container Registry 身份验证拉取密钥的密码。 |
或者,运行以下命令来安装 Central services 并使用负载均衡器公开 Central
$ helm install -n stackrox \
--create-namespace stackrox-central-services rhacs/central-services \
--set imagePullSecrets.username=<username> \(1)
--set imagePullSecrets.password=<password> \(2)
--set central.exposure.loadBalancer.enabled=true
1 | 包含您的 Red Hat Container Registry 身份验证拉取密钥的用户名。 |
2 | 包含您的 Red Hat Container Registry 身份验证拉取密钥的密码。 |
或者,运行以下命令来安装 Central services 并使用端口转发公开 Central
$ helm install -n stackrox \
--create-namespace stackrox-central-services rhacs/central-services \
--set imagePullSecrets.username=<username> \(1)
--set imagePullSecrets.password=<password> (2)
1 | 包含您的 Red Hat Container Registry 身份验证拉取密钥的用户名。 |
2 | 包含您的 Red Hat Container Registry 身份验证拉取密钥的密码。 |
|
安装命令的输出包括:
自动生成的管理员密码。
有关存储所有配置值的说明。
Helm 生成的任何警告。
您可以使用 Helm chart 配置参数以及 `helm install` 和 `helm upgrade` 命令在您的 Red Hat OpenShift 集群上自定义安装 RHACS。您可以使用 `--set` 选项或创建 YAML 配置文件来指定这些参数。
创建以下文件以配置用于安装 Red Hat Advanced Cluster Security for Kubernetes 的 Helm chart:
公共配置文件 `values-public.yaml`:使用此文件保存所有非敏感配置选项。
私有配置文件 `values-private.yaml`:使用此文件保存所有敏感配置选项。确保安全地存储此文件。
配置文件 `declarative-config-values.yaml`:如果您使用声明式配置将声明式配置挂载添加到 Central,则创建此文件。
本节列出了 `values-private.yaml` 文件的可配置参数。这些参数没有默认值。
从注册表拉取镜像所需的凭据取决于以下因素:
如果您使用的是自定义注册表,则必须指定这些参数:
imagePullSecrets.username
imagePullSecrets.password
image.registry
如果您不使用用户名和密码登录到自定义注册表,则必须指定以下参数之一:
imagePullSecrets.allowNone
imagePullSecrets.useExisting
imagePullSecrets.useFromDefaultServiceAccount
参数 | 描述 |
---|---|
|
用于登录注册表的帐户的用户名。 |
|
用于登录注册表的帐户的密码。 |
|
如果您使用的是自定义注册表并且它允许在没有凭据的情况下拉取镜像,则使用 `true`。 |
|
以逗号分隔的密钥列表作为值。例如,`secret1, secret2, secretN`。如果您已在目标命名空间中创建了具有给定名称的预先存在的镜像拉取密钥,则使用此选项。 |
|
如果您已在目标命名空间中的默认服务帐户中配置了具有足够范围的镜像拉取密钥,则使用 `true`。 |
如果您在需要代理才能连接到外部服务的集群中安装 Red Hat Advanced Cluster Security for Kubernetes,则必须使用 `proxyConfig` 参数指定您的代理配置。例如:
env:
proxyConfig: |
url: http://proxy.name:port
username: username
password: password
excludes:
- some.domain
参数 | 描述 |
---|---|
|
您的代理配置。 |
Central 的可配置参数。
对于新安装,您可以跳过以下参数:
central.jwtSigner.key
central.serviceTLS.cert
central.serviceTLS.key
central.adminPassword.value
central.adminPassword.htpasswd
central.db.serviceTLS.cert
central.db.serviceTLS.key
central.db.password.value
当您未为这些参数指定值时,Helm chart 会自动为其生成值。
如果您想修改这些值,可以使用 `helm upgrade` 命令并使用 `--set` 选项指定这些值。
对于设置管理员密码,您只能使用 `central.adminPassword.value` 或 `central.adminPassword.htpasswd`,但不能同时使用两者。 |
参数 | 描述 |
---|---|
|
RHACS 应用于签署用于身份验证的 JSON Web 令牌 (JWT) 的私钥。 |
|
Central 服务应用于部署 Central 的内部证书。 |
|
Central 服务应使用的内部证书的私钥。 |
|
Central 应使用的面向用户的证书。RHACS 使用此证书用于 RHACS 门户。
|
|
Central 应使用的面向用户的证书的私钥。
|
|
Central 数据库的连接密码。 |
|
登录 RHACS 的管理员密码。 |
|
登录 RHACS 的管理员密码。此密码使用 bcrypt 以哈希格式存储。 |
|
Central DB 服务部署 Central DB 时应使用的内部证书。 |
|
Central DB 服务应使用的内部证书的私钥。 |
|
连接到 Central DB 的密码。 |
如果您使用的是
|
StackRox 扫描器和扫描器 V4 的可配置参数。
对于新安装,您可以跳过以下参数,Helm 图表会自动为其生成值。否则,如果您要升级到新版本,请指定以下参数的值
scanner.dbPassword.value
scanner.serviceTLS.cert
scanner.serviceTLS.key
scanner.dbServiceTLS.cert
scanner.dbServiceTLS.key
scannerV4.db.password.value
scannerV4.indexer.serviceTLS.cert
scannerV4.indexer.serviceTLS.key
scannerV4.matcher.serviceTLS.cert
scannerV4.matcher.serviceTLS.key
scannerV4.db.serviceTLS.cert
scannerV4.db.serviceTLS.key
参数 | 描述 |
---|---|
|
用于与扫描器数据库进行身份验证的密码。请勿修改此参数,因为 RHACS 会在内部自动创建和使用其值。 |
|
StackRox 扫描器服务部署 StackRox 扫描器时应使用的内部证书。 |
|
扫描器服务应使用的内部证书的私钥。 |
|
Scanner-db 服务部署扫描器数据库时应使用的内部证书。 |
|
Scanner-db 服务应使用的内部证书的私钥。 |
|
用于与扫描器 V4 数据库进行身份验证的密码。请勿修改此参数,因为 RHACS 会在内部自动创建和使用其值。 |
|
扫描器 V4 数据库服务部署扫描器 V4 数据库时应使用的内部证书。 |
|
扫描器 V4 数据库服务应使用的内部证书的私钥。 |
|
扫描器 V4 服务部署扫描器 V4 索引器时应使用的内部证书。 |
|
扫描器 V4 索引器应使用的内部证书的私钥。 |
|
扫描器 V4 服务部署扫描器 V4 匹配器时应使用的内部证书。 |
|
扫描器 V4 匹配器应使用的内部证书的私钥。 |
本节列出了 values-public.yaml
文件的可配置参数。
镜像拉取密钥是从您的注册表拉取镜像所需的凭据。
参数 | 描述 |
---|---|
|
如果您使用的是自定义注册表并且它允许在没有凭据的情况下拉取镜像,则使用 `true`。 |
|
以逗号分隔的密钥列表作为值。例如, |
|
如果您已在目标命名空间中的默认服务帐户中配置了具有足够范围的镜像拉取密钥,则使用 `true`。 |
Image声明了设置主注册表的配置,Helm图表使用它来解析central.image
、scanner.image
、scanner.dbImage
、scannerV4.image
和scannerV4.db.image
参数的镜像。
参数 | 描述 |
---|---|
|
您的镜像注册表的地址。可以使用主机名,例如 |
Red Hat Advanced Cluster Security for Kubernetes 会自动检测您的集群环境并设置 env.openshift
、env.istio
和 env.platform
的值。仅当要覆盖自动集群环境检测时才设置这些值。
参数 | 描述 |
---|---|
|
在 OpenShift Container Platform 集群上安装并覆盖自动集群环境检测时,使用 |
|
在启用 Istio 的集群上安装并覆盖自动集群环境检测时,使用 |
|
您正在安装 RHACS 的平台。将其值设置为 |
|
使用 |
RHACS 自动引用系统根证书以进行信任。当 Central、StackRox 扫描器或扫描器 V4 必须联系使用由您组织或全球受信任的合作伙伴组织颁发的证书的服务时,您可以通过使用以下参数指定要信任的根证书颁发机构来添加对这些服务的信任
参数 | 描述 |
---|---|
|
指定要信任的根证书颁发机构的 PEM 编码证书。 |
为了在网络级别提供安全性,RHACS会在安装Central的命名空间中创建默认的NetworkPolicy
资源。这些网络策略允许在特定端口上对特定组件进行入口访问。如果您不希望 RHACS 创建这些策略,请将此参数设置为 Disabled
。默认值为 Enabled
。
禁用默认网络策略的创建可能会中断 RHACS 组件之间的通信。如果您禁用默认策略的创建,则必须创建您自己的网络策略以允许此通信。 |
参数 | 描述 |
---|---|
|
指定 RHACS 是否创建默认网络策略以允许组件之间进行通信。要创建您自己的网络策略,请将此参数设置为 |
Central 的可配置参数。
用于公开 Central 部署以进行外部访问。您必须指定一个参数,即 central.exposure.loadBalancer
、central.exposure.nodePort
或 central.exposure.route
。当您没有为这些参数指定任何值时,您必须手动公开 Central 或使用端口转发访问它。
下表包含外部 PostgreSQL 数据库的设置。
参数 | 描述 |
---|---|
|
挂载用于声明性配置的 ConfigMap。 |
|
挂载用于声明性配置的 Secret。 |
|
Central 的端点配置选项。 |
|
如果节点选择器选择了受污染的节点,请使用此参数为 Central 指定污点容忍键、值和效果。此参数主要用于基础设施节点。 |
|
如果节点选择器选择了受污染的节点,请使用此参数为 Central 指定污点容忍键、值和效果。此参数主要用于基础设施节点。 |
|
指定 |
|
覆盖 Central 镜像的全局 |
|
覆盖默认 Central 镜像名称 ( |
|
覆盖 Central 镜像的默认标签的自定义镜像标签。如果您在新安装期间指定了自己的镜像标签,则必须在使用 |
|
包含注册表地址、镜像名称和 Central 镜像镜像标签的完整引用。设置此参数的值将覆盖 |
|
Central 的内存请求。 |
|
Central 的 CPU 请求。 |
|
Central 的内存限制。 |
|
Central 的 CPU 限制。 |
|
使用 |
|
暴露 Central 的端口号。默认端口号为 443。 |
|
使用 |
|
暴露 Central 的端口号。跳过此参数时,OpenShift Container Platform 会自动分配端口号。Red Hat 建议如果使用节点端口暴露 RHACS,则不要指定端口号。 |
|
使用 |
|
使用 |
|
Central 用于连接到数据库的连接字符串。仅当
|
|
要建立到数据库的最小连接数。 |
|
要建立到数据库的最大连接数。 |
|
单个查询或事务对数据库保持活动的毫秒数。 |
|
用于 Central DB 的 postgresql.conf,如“附加资源”中的 PostgreSQL 文档中所述。 |
|
用于 Central DB 的 pg_hba.conf,如“附加资源”中的 PostgreSQL 文档中所述。 |
|
指定节点选择器标签为 |
|
覆盖 Central DB 镜像的全局 |
|
覆盖默认 Central DB 镜像名称 ( |
|
覆盖 Central DB 镜像的默认标签的自定义镜像标签。如果在新安装期间指定您自己的镜像标签,则必须在运行 |
|
包含注册表地址、镜像名称和 Central DB 镜像镜像标签的完整引用。设置此参数的值将覆盖 |
|
Central DB 的内存请求。 |
|
Central DB 的 CPU 请求。 |
|
Central DB 的内存限制。 |
|
Central DB 的 CPU 限制。 |
|
RHACS 应在节点上创建数据库卷的路径。Red Hat 不建议使用此选项。 |
|
您正在使用的持久卷声明 (PVC) 的名称。 |
|
使用 |
|
由指定声明管理的持久卷的大小(以 GiB 为单位)。 |
下表列出了 StackRox 扫描器的可配置参数。这是用于节点和平台扫描的扫描器。如果未启用扫描器 V4,则 StackRox 扫描器还会执行镜像扫描。从 4.4 版开始,可以启用扫描器 V4 来提供镜像扫描。有关扫描器 V4 参数,请参见下表。
参数 | 描述 |
---|---|
|
使用 |
|
指定 |
|
要为 StackRox 扫描器部署创建的副本数。当与 |
|
配置 StackRox 扫描器的日志级别。Red Hat 建议您不要更改默认日志级别值 ( |
|
指定节点选择器标签为 |
|
如果节点选择器选择了受污染的节点,请使用此参数为 StackRox 扫描器指定污点容忍键、值和效果。此参数主要用于基础设施节点。 |
|
使用 |
|
自动缩放的最小副本数。 |
|
自动缩放的最大副本数。 |
|
StackRox 扫描器的内存请求。 |
|
StackRox 扫描器的 CPU 请求。 |
|
StackRox 扫描器的内存限制。 |
|
StackRox 扫描器的 CPU 限制。 |
|
StackRox 扫描器数据库部署的内存请求。 |
|
StackRox 扫描器数据库部署的 CPU 请求。 |
|
StackRox 扫描器数据库部署的内存限制。 |
|
StackRox 扫描器数据库部署的 CPU 限制。 |
|
StackRox 扫描器镜像的自定义注册表。 |
|
覆盖默认 StackRox 扫描器镜像名称 ( |
|
StackRox 扫描器 DB 镜像的自定义注册表。 |
|
覆盖默认 StackRox 扫描器 DB 镜像名称 ( |
|
指定节点选择器标签为 |
|
如果节点选择器选择了受污染的节点,请使用此参数为 StackRox Scanner 数据库指定污点容忍键、值和效果。此参数主要用于基础设施节点。 |
下表列出了 Scanner V4 的可配置参数。
参数 | 描述 |
---|---|
|
用于管理 Scanner V4 持久数据的 PVC 名称。如果不存在具有给定名称的 PVC,则会创建它。如果未设置,则默认值为 |
|
用于管理 Scanner V4 持久数据的 PVC 大小。 |
|
用于 PVC 的存储类名称。如果您的集群未配置默认存储类,则必须为此参数提供一个值。 |
|
使用 |
|
指定 |
|
要为 Scanner V4 Indexer 部署创建的副本数量。当与 |
|
配置 Scanner V4 Indexer 的日志级别。Red Hat 建议您不要更改默认日志级别值 ( |
|
将节点选择器标签指定为 |
|
如果节点选择器选择了受污染的节点,请使用此参数为 Scanner V4 Indexer 指定污点容忍键、值和效果。此参数主要用于基础设施节点。 |
|
使用 |
|
自动缩放的最小副本数。 |
|
自动缩放的最大副本数。 |
|
Scanner V4 Indexer 的内存请求。 |
|
Scanner V4 Indexer 的 CPU 请求。 |
|
Scanner V4 Indexer 的内存限制。 |
|
Scanner V4 Indexer 的 CPU 限制。 |
|
要为 Scanner V4 Matcher 部署创建的副本数量。当与 |
|
Red Hat 建议您不要更改默认日志级别值 ( |
|
将节点选择器标签指定为 |
|
如果节点选择器选择了受污染的节点,请使用此参数为 Scanner V4 Matcher 指定污点容忍键、值和效果。此参数主要用于基础设施节点。 |
|
使用 |
|
自动缩放的最小副本数。 |
|
自动缩放的最大副本数。 |
|
Scanner V4 Matcher 的内存请求。 |
|
Scanner V4 Matcher 的 CPU 请求。 |
|
Scanner V4 数据库部署的内存请求。 |
|
Scanner V4 数据库部署的 CPU 请求。 |
|
Scanner V4 数据库部署的内存限制。 |
|
Scanner V4 数据库部署的 CPU 限制。 |
|
将节点选择器标签指定为 |
|
如果节点选择器选择了受污染的节点,请使用此参数为 Scanner V4 数据库指定污点容忍键、值和效果。此参数主要用于基础设施节点。 |
|
Scanner V4 数据库镜像的自定义注册表。 |
|
覆盖默认 Scanner V4 数据库镜像名称 ( |
|
Scanner V4 镜像的自定义注册表。 |
|
覆盖默认 Scanner V4 镜像名称 ( |
使用这些参数为 RHACS 创建的所有对象指定其他属性。
参数 | 描述 |
---|---|
|
附加到所有对象的自定义标签。 |
|
附加到所有对象的自定义注释。 |
|
附加到所有部署的自定义标签。 |
|
附加到所有部署的自定义注释。 |
|
所有对象中所有容器的自定义环境变量。 |
|
附加到 Central 创建的所有对象的自定义标签。 |
|
附加到 Central 创建的所有对象的自定义注释。 |
|
附加到所有 Central 部署的自定义标签。 |
|
附加到所有 Central 部署的自定义注释。 |
|
所有 Central 容器的自定义环境变量。 |
|
附加到 Scanner 创建的所有对象的自定义标签。 |
|
附加到 Scanner 创建的所有对象的自定义注释。 |
|
附加到所有 Scanner 部署的自定义标签。 |
|
附加到所有 Scanner 部署的自定义注释。 |
|
所有 Scanner 容器的自定义环境变量。 |
|
一个自定义标签,附加到 Scanner DB 创建的所有对象上。 |
|
一个自定义注释,附加到 Scanner DB 创建的所有对象上。 |
|
一个自定义标签,附加到所有 Scanner DB 部署上。 |
|
一个自定义注释,附加到所有 Scanner DB 部署上。 |
|
所有 Scanner DB 容器的自定义环境变量。 |
|
一个自定义标签,附加到 Scanner V4 Indexer 创建的所有对象及其所属的 Pod 上。 |
|
一个自定义注释,附加到 Scanner V4 Indexer 创建的所有对象及其所属的 Pod 上。 |
|
一个自定义标签,附加到 Scanner V4 Indexer 创建的所有对象及其所属的 Pod 上。 |
|
一个自定义注释,附加到 Scanner V4 Indexer 创建的所有对象及其所属的 Pod 上。 |
|
所有 Scanner V4 Indexer 容器及其所属 Pod 的自定义环境变量。 |
|
一个自定义标签,附加到 Scanner V4 Matcher 创建的所有对象及其所属的 Pod 上。 |
|
一个自定义注释,附加到 Scanner V4 Matcher 创建的所有对象及其所属的 Pod 上。 |
|
一个自定义标签,附加到 Scanner V4 Matcher 创建的所有对象及其所属的 Pod 上。 |
|
一个自定义注释,附加到 Scanner V4 Matcher 创建的所有对象及其所属的 Pod 上。 |
|
所有 Scanner V4 Matcher 容器及其所属 Pod 的自定义环境变量。 |
|
一个自定义标签,附加到 Scanner V4 DB 创建的所有对象及其所属的 Pod 上。 |
|
一个自定义注释,附加到 Scanner V4 DB 创建的所有对象及其所属的 Pod 上。 |
|
一个自定义标签,附加到 Scanner V4 DB 创建的所有对象及其所属的 Pod 上。 |
|
一个自定义注释,附加到 Scanner V4 DB 创建的所有对象及其所属的 Pod 上。 |
|
所有 Scanner V4 DB 容器及其所属 Pod 的自定义环境变量。 |
您也可以使用
customize.other.service/*.labels
和 customize.other.service/*.annotations
参数,为所有对象指定标签和注释。
或者,提供特定的服务名称,例如 customize.other.service/central-loadbalancer.labels
和 customize.other.service/central-loadbalancer.annotations
作为参数并设置其值。
要使用声明式配置,必须创建一个 YAML 文件(在此示例中名为“declarative-config-values.yaml”),将声明式配置挂载到 Central。此文件用于 Helm 安装。
使用以下示例作为指导,创建 YAML 文件(在此示例中名为 declarative-config-values.yaml
)
central:
declarativeConfiguration:
mounts:
configMaps:
- declarative-configs
secrets:
- sensitive-declarative-configs
按照“安装 central-services Helm chart”中所述安装 Central 服务 Helm chart,引用 declarative-config-values.yaml
文件。
配置 values-public.yaml
和 values-private.yaml
文件后,安装 central-services
Helm chart 以部署集中式组件(Central 和 Scanner)。
运行以下命令
$ helm install -n stackrox --create-namespace \
stackrox-central-services rhacs/central-services \
-f <path_to_values_public.yaml> -f <path_to_values_private.yaml> (1)
1 | 使用 -f 选项指定 YAML 配置文件的路径。 |
可选:如果使用声明式配置,请将 |
部署 central-services
Helm chart 后,您可以更改任何配置选项。
使用 helm upgrade
命令进行更改时,以下准则和要求适用
您也可以使用 --set
或 --set-file
参数指定配置值。但是,这些选项不会保存,每次进行更改时,都必须手动再次指定所有选项。
某些更改(例如启用 Scanner V4 等新组件)需要为该组件颁发新的证书。因此,进行这些更改时必须提供 CA。
如果 CA 是在初始安装期间由 Helm chart 生成的,则必须从集群中自动检索这些生成的 values,并将其提供给 helm upgrade
命令。central-services
Helm chart 的安装后说明包括一个用于检索自动生成的 values 的命令。
如果 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-central-services rhacs/central-services \
--reuse-values \(1)
-f <path_to_init_bundle_file \
-f <path_to_values_public.yaml> \
-f <path_to_values_private.yaml>
1 | 如果您修改了 values_public.yaml 和 values_private.yaml 文件中未包含的值,请包含 --reuse-values 参数。 |
对于生产环境,Red Hat 建议使用 Operator 或 Helm chart 来安装 RHACS。除非您有使用此方法的特定安装需求,否则请勿使用 |
要安装 Red Hat Advanced Cluster Security for Kubernetes,必须通过下载二进制文件来安装 roxctl
CLI。您可以在 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
使用交互式安装程序为您的环境生成所需的密钥、部署配置和部署脚本。
运行交互式安装命令
$ roxctl central generate interactive
使用 |
按Enter 键接受提示的默认值,或根据需要输入自定义值。以下示例显示了交互式安装程序的提示
Path to the backup bundle from which to restore keys and certificates (optional):
PEM cert bundle file (optional): (1)
Disable the administrator password (only use this if you have already configured an IdP for your instance) (default: "false"):
Create PodSecurityPolicy resources (for pre-v1.25 Kubernetes) (default: "false"): (2)
Administrator password (default: autogenerated):
Orchestrator (k8s, openshift):
Default container images settings (rhacs, opensource); it controls repositories from where to download the images, image names and tags format (default: "rhacs"):
The directory to output the deployment bundle to (default: "central-bundle"):
Whether to enable telemetry (default: "true"):
The central-db image to use (if unset, a default will be used according to --image-defaults) (default: "registry.redhat.io/advanced-cluster-security/rhacs-central-db-rhel8:4.6.0"):
List of secrets to add as declarative configuration mounts in central (default: "[]"): (3)
The method of exposing Central (lb, np, none) (default: "none"): (4)
The main image to use (if unset, a default will be used according to --image-defaults) (default: "registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:4.6.0"):
Whether to run StackRox in offline mode, which avoids reaching out to the Internet (default: "false"):
List of config maps to add as declarative configuration mounts in central (default: "[]"): (5)
The deployment tool to use (kubectl, helm, helm-values) (default: "kubectl"):
Istio version when deploying into an Istio-enabled cluster (leave empty when not running Istio) (optional):
The scanner-db image to use (if unset, a default will be used according to --image-defaults) (default: "registry.redhat.io/advanced-cluster-security/rhacs-scanner-db-rhel8:4.6.0"):
The scanner image to use (if unset, a default will be used according to --image-defaults) (default: "registry.redhat.io/advanced-cluster-security/rhacs-scanner-rhel8:4.6.0"):
The scanner-v4-db image to use (if unset, a default will be used according to --image-defaults) (default: "registry.redhat.io/advanced-cluster-security/rhacs-scanner-v4-db-rhel8:4.6.0"):
The scanner-v4 image to use (if unset, a default will be used according to --image-defaults) (default: "registry.redhat.io/advanced-cluster-security/rhacs-scanner-v4-rhel8:4.6.0"):
External volume type (hostpath, pvc): hostpath
Path on the host (default: "/var/lib/stackrox-central"):
Node selector key (e.g. kubernetes.io/hostname):
Node selector value:
1 | 如果要添加自定义 TLS 证书,请提供 PEM 编码证书的文件路径。当您指定自定义证书时,交互式安装程序还会提示您提供正在使用的自定义证书的 PEM 私钥。 |
2 | 如果您正在运行 Kubernetes 1.25 或更高版本,请将此值设置为false 。 |
3 | 有关使用声明性配置进行身份验证和授权的更多信息,请参阅“Red Hat Advanced Cluster Security for Kubernetes”中的“用于身份验证和授权资源的声明性配置”。 |
4 | 要使用 RHACS 门户,您必须使用路由、负载均衡器或节点端口来公开 Central。 |
5 | 有关使用声明性配置进行身份验证和授权的更多信息,请参阅“Red Hat Advanced Cluster Security for Kubernetes”中的“用于身份验证和授权资源的声明性配置”。 |
在 OpenShift Container Platform 上,要使用 hostPath 卷,您必须修改 SELinux 策略以允许访问主机和容器共享的目录。这是因为 SELinux 默认情况下会阻止目录共享。要修改 SELinux 策略,请运行以下命令
但是,Red Hat 不建议修改 SELinux 策略,建议在 OpenShift Container Platform 上安装时使用 PVC。 |
安装完成后,安装程序会创建一个名为 central-bundle 的文件夹,其中包含部署 Central 所需的 YAML 清单和脚本。此外,它还会显示屏幕上的说明,说明您需要运行哪些脚本才能部署其他受信任的证书颁发机构、Central 和 Scanner,以及登录 RHACS 门户的身份验证说明(以及如果您在回答提示时未提供密码,则会显示自动生成的密码)。
运行交互式安装程序后,您可以运行setup.sh
脚本安装 Central。
运行setup.sh
脚本配置镜像注册表访问。
$ ./central-bundle/central/scripts/setup.sh
要启用策略即代码功能(技术预览版),请手动应用位于helm/chart/crds/config.stackrox.io_securitypolicies.yaml
的 .zip 文件中的config.stackrox.io
CRD。
策略即代码仅为技术预览版功能。技术预览版功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且功能可能不完整。Red Hat 不建议在生产环境中使用它们。这些功能提供对即将推出的产品功能的早期访问,使客户能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览版功能的支持范围的更多信息,请参阅技术预览版功能支持范围。 |
要应用 CRD,请运行以下命令
$ oc create -f helm/chart/crds/config.stackrox.io_securitypolicies.yaml
创建必要的资源
$ oc create -R -f central-bundle/central
检查部署进度
$ oc get pod -n stackrox -w
Central 运行后,找到 RHACS 门户 IP 地址并在浏览器中打开它。根据您在回答提示时选择的公开方法,可以使用以下方法之一获取 IP 地址。
公开方法 | 命令 | 地址 | 示例 |
---|---|---|---|
路由 |
|
输出中 |
|
节点端口 |
|
任何节点的 IP 或主机名,在服务显示的端口上 |
|
负载均衡器 |
|
为服务显示的 EXTERNAL-IP 或主机名,在 443 端口上 |
|
无 |
|
|
|
如果您在交互式安装过程中选择了自动生成的密码,您可以运行以下命令查看它以登录 Central
|