×

中心是包含 RHACS 应用程序管理界面和服务的资源。它处理数据持久性、API 交互和 RHACS 门户访问。您可以使用相同的中心实例来保护多个 OpenShift Container Platform 或 Kubernetes 集群。

您可以使用以下方法之一在 OpenShift Container Platform 或 Kubernetes 集群上安装中心

  • 使用 Operator 安装

  • 使用 Helm 图表安装

  • 使用roxctl CLI 安装(除非您有使用它的特定安装需求,否则不要使用此方法)

使用 Operator 安装中心

安装用于 Kubernetes 的 Red Hat 高级集群安全 Operator

使用 OpenShift Container Platform 提供的 OperatorHub 是安装用于 Kubernetes 的 Red Hat 高级集群安全的最简单方法。

先决条件
步骤
  1. 在 Web 控制台中,转到**Operators** → **OperatorHub**页面。

  2. 如果未显示用于 Kubernetes 的 Red Hat 高级集群安全,请在**按关键字筛选**框中输入**高级集群安全**以查找用于 Kubernetes 的 Red Hat 高级集群安全 Operator。

  3. 选择**用于 Kubernetes 的 Red Hat 高级集群安全 Operator**以查看详细信息页面。

  4. 阅读有关 Operator 的信息,然后单击**安装**。

  5. 在**安装 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 的集群必须具有相同的版本,以确保最佳功能。

  6. 点击**安装**。

验证
  • 安装完成后,转到**Operators** → **已安装 Operators**以验证 Red Hat Advanced Cluster Security for Kubernetes Operator 是否已列出,状态为**成功**。

下一步
  • 您已将 Operator 安装到**rhacs-operator**项目中。使用该 Operator,安装、配置和部署Central自定义资源到stackrox项目。

使用 Operator 方法安装 Central

Red Hat Advanced Cluster Security for Kubernetes 的主要组件称为 Central。您可以使用Central自定义资源在 OpenShift Container Platform 上安装 Central。您只需部署一次 Central,即可使用相同的 Central 安装监控多个单独的集群。

  • 首次安装 Red Hat Advanced Cluster Security for Kubernetes 时,必须先安装Central自定义资源,因为SecuredCluster自定义资源的安装依赖于 Central 生成的证书。

  • Red Hat 建议在专用项目中安装 Red Hat Advanced Cluster Security for Kubernetes Central 自定义资源。不要将其安装在已安装 Red Hat Advanced Cluster Security for Kubernetes Operator 的项目中。此外,不要将其安装在名称以kubeopenshiftredhat开头的任何项目以及istio-system项目中。

先决条件
步骤
  1. 在 OpenShift Container Platform Web 控制台中,转到**Operators** → **已安装 Operators**页面。

  2. 从已安装 Operators 列表中选择 Red Hat Advanced Cluster Security for Kubernetes Operator。

  3. 如果您已在推荐的命名空间中安装 Operator,OpenShift Container Platform 会将项目列为rhacs-operator。选择**项目:rhacs-operator** → **创建项目**。

    • 如果您在不同的命名空间中安装了 Operator,OpenShift Container Platform 将列出该命名空间的名称,而不是rhacs-operator

  4. 输入新的项目名称(例如stackrox),然后单击**创建**。Red Hat 建议您使用stackrox作为项目名称。

  5. 在**提供的 API**部分,选择**Central**。单击**创建 Central**。

  6. 可选:如果您使用的是声明性配置,在**通过以下方式配置:**旁边,单击**YAML 视图**并添加声明性配置的信息,例如以下示例所示

    ...
    spec:
      central:
        declarativeConfiguration:
          configMaps:
          - name: "<declarative-configs>" (1)
          secrets:
          - name: "<sensitive-declarative-configs>" (2)
    ...
    1 将<declarative-configs>替换为您正在使用的 ConfigMap 的名称。
    2 将<sensitive-declarative-configs>替换为您正在使用的 Secret 的名称。
  7. 为您的Central自定义资源输入一个名称,并添加您要应用的任何标签。否则,接受可用选项的默认值。

  8. 您可以配置 Central 的可用选项

    • Central 组件设置

      设置 描述

      管理员密码

      包含管理员密码的 Secret。如果您不希望 RHACS 为您生成密码,请使用此字段。

      暴露

      使用路由、负载均衡器或节点端口暴露 Central 的设置。请参阅“在 Red Hat OpenShift 上为 RHACS 安装 Central 服务”中的“公共配置文件”部分中的central.exposure.<parameter>信息。

      面向用户的 TLS 证书 Secret

      如果您想在 Central 中终止 TLS 并提供自定义服务器证书,请使用此字段。

      监控

      配置 Central 的监控端点。请参阅“在 Red Hat OpenShift 上为 RHACS 安装 Central 服务”中的“公共配置文件”部分中的central.exposeMonitoring参数。

      Central 数据库设置

      Central 数据库的设置,包括数据持久性。请参阅“在 Red Hat OpenShift 上为 RHACS 安装 Central 服务”中的“公共配置文件”部分中的central.db.<parameter>信息。

      资源

      如果您需要覆盖内存和 CPU 资源的默认设置,请参考文档后再使用这些字段。更多信息,请参阅“安装”章节中的“RHACS 的默认资源需求”和“RHACS 的推荐资源需求”部分。

      容忍度

      使用此参数配置 Central 仅在特定节点上运行。请参阅“在 Red Hat OpenShift 上为 RHACS 安装 Central 服务”中的“公共配置文件”部分中的central.tolerations参数。

      主机别名

      使用此参数配置在 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 监控

  9. 点击创建 (Create)

如果您使用的是集群范围代理,Red Hat Advanced Cluster Security for Kubernetes 将使用该代理配置来连接到外部服务。

后续步骤
  1. 验证 Central 安装。

  2. 可选:配置 Central 选项。

  3. 生成一个包含集群密钥的初始化包,该密钥允许CentralSecuredCluster资源之间进行通信。您需要下载此包,使用它在您要保护的集群上生成资源,并安全地存储它。

  4. 在您要监控的每个集群上安装安全集群服务。

在您的 PostgreSQL 实例中配置数据库

此步骤是可选的。您可以使用现有的 PostgreSQL 基础设施为 RHACS 配置数据库。请使用本节中的说明来配置 PostgreSQL 数据库环境,创建用户、数据库、模式、角色以及授予所需的权限。

步骤
  1. 创建一个新用户

    CREATE USER stackrox WITH PASSWORD <password>;
  2. 创建一个数据库

    CREATE DATABASE stackrox;
  3. 连接到数据库

    \connect stackrox
  4. 创建用户模式

    CREATE SCHEMA stackrox;
  5. (可选) 收回公共权限

    REVOKE CREATE ON SCHEMA public FROM PUBLIC;
    REVOKE USAGE ON SCHEMA public FROM PUBLIC;
    REVOKE ALL ON DATABASE stackrox FROM PUBLIC;
  6. 创建一个角色

    CREATE ROLE readwrite;
  7. 授予角色连接权限

    GRANT CONNECT ON DATABASE stackrox TO readwrite;
  8. 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;
  9. readwrite角色分配给stackrox用户

    GRANT readwrite TO stackrox;

使用 Operator 方法安装带有外部数据库的 Central

Red Hat Advanced Cluster Security for Kubernetes 的主要组件称为 Central。您可以使用Central自定义资源在 OpenShift Container Platform 上安装 Central。您只需部署一次 Central,即可使用相同的 Central 安装监控多个单独的集群。

首次安装 Red Hat Advanced Cluster Security for Kubernetes 时,必须先安装Central自定义资源,因为SecuredCluster自定义资源的安装依赖于 Central 生成的证书。

有关 RHACS 数据库的更多信息,请参阅数据库覆盖范围

先决条件
  • 您必须使用 OpenShift Container Platform 4.12 或更高版本。有关支持的 OpenShift Container Platform 版本的更多信息,请参阅Red Hat Advanced Cluster Security for Kubernetes 支持矩阵

  • 您的数据库实例中必须有一个支持 PostgreSQL 13 的数据库,以及一个具有以下权限的用户:

    • 连接到数据库的权限。

    • 模式上的UsageCreate权限。

    • 模式中所有表上的SelectInsertUpdateDelete权限。

    • 模式中所有序列上的Usage权限。

步骤
  1. 在 OpenShift Container Platform Web 控制台中,转到**Operators** → **已安装 Operators**页面。

  2. 从已安装 Operators 列表中选择 Red Hat Advanced Cluster Security for Kubernetes Operator。

  3. 如果您已在推荐的命名空间中安装 Operator,OpenShift Container Platform 会将项目列为rhacs-operator。选择**项目:rhacs-operator** → **创建项目**。

    • 如果您在不同的命名空间中安装了 Operator,OpenShift Container Platform 将显示该命名空间的名称,而不是rhacs-operator

    • Red Hat 建议在专用项目中安装 Red Hat Advanced Cluster Security for Kubernetes Central 自定义资源。不要将其安装在已安装 Red Hat Advanced Cluster Security for Kubernetes Operator 的项目中。此外,不要将其安装在名称以kubeopenshiftredhat开头的任何项目以及istio-system项目中。

  4. 输入新的项目名称(例如stackrox),然后单击**创建**。Red Hat 建议您使用stackrox作为项目名称。

  5. 使用 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替换为包含纯文本密码的文件的路径。
  6. 返回到 OpenShift Container Platform Web 控制台中的 Red Hat Advanced Cluster Security for Kubernetes 运算符页面。在提供的 API (Provided APIs)部分,选择Central。点击创建 Central (Create Central)

  7. 可选:如果您使用的是声明性配置,请在通过以下方式配置 (Configure via:)旁边点击YAML 视图 (YAML view)

  8. 添加声明性配置的信息,例如以下示例所示:

    ...
    spec:
      central:
        declarativeConfiguration:
          configMaps:
          - name: <declarative-configs> (1)
          secrets:
          - name: <sensitive-declarative-configs> (2)
    ...
    1 将<declarative-configs>替换为您正在使用的 ConfigMap 的名称。
    2 将<sensitive-declarative-configs>替换为您正在使用的 Secret 的名称。
  9. 为您的Central自定义资源输入一个名称,并添加您想要应用的任何标签。

  10. 转到Central 组件设置 (Central Component Settings)Central 数据库设置 (Central DB Settings)

  11. 对于管理员密码 (Administrator Password),请将引用的密钥指定为external-db-password(或先前创建的密码的密钥名称)。

  12. 对于连接字符串 (Connection String),请以keyword=value格式指定连接字符串,例如,host=<host> port=5432 database=stackrox user=stackrox sslmode=verify-ca

  13. 对于持久性 (Persistence)PersistentVolumeClaim声明名称 (Claim Name),请移除central-db

  14. 如有必要,您可以指定一个证书颁发机构,以便数据库证书和 Central 之间存在信任关系。要添加此项,请转到 YAML 视图并在顶级规范下添加 TLS 块,如下例所示:

    spec:
      tls:
        additionalCAs:
        - name: db-ca
          content: |
            <certificate>
  15. 点击创建 (Create)

如果您使用的是集群范围代理,Red Hat Advanced Cluster Security for Kubernetes 将使用该代理配置来连接到外部服务。

后续步骤
  1. 验证 Central 安装。

  2. 可选:配置 Central 选项。

  3. 生成一个包含集群密钥的初始化包,该密钥允许CentralSecuredCluster资源之间进行通信。您需要下载此包,使用它在您要保护的集群上生成资源,并安全地存储它。

  4. 在您要监控的每个集群上安装安全集群服务。

使用 Operator 方法验证 Central 安装

Central 安装完成后,登录到 RHACS 门户以验证 Central 的成功安装。

步骤
  1. 在 OpenShift Container Platform Web 控制台中,转到**Operators** → **已安装 Operators**页面。

  2. 从已安装 Operators 列表中选择 Red Hat Advanced Cluster Security for Kubernetes Operator。

  3. 选择Central选项卡。

  4. Centrals列表中,选择stackrox-central-services以查看其详细信息。

  5. 要获取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}}'
  6. 使用 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 门户的链接:

    1. 转到网络 (Networking)路由 (Routes)

    2. 找到central路由,然后点击位置 (Location)列下的 RHACS 门户链接。

  7. 使用用户名admin和您在上一步中检索到的密码登录到 RHACS 门户。在 RHACS 完全配置之前(例如,您已安装和配置了Central资源和至少一个SecuredCluster资源),仪表板中将没有可用数据。SecuredCluster资源可以在与Central资源相同的集群上安装和配置。具有SecuredCluster资源的集群类似于 Red Hat Advanced Cluster Management (RHACM) 中的托管集群。

后续步骤
  1. 可选:配置中心设置。

  2. 生成一个包含集群密钥的初始化包,该密钥允许CentralSecuredCluster资源之间进行通信。您需要下载此包,使用它在您要保护的集群上生成资源,并安全地存储它。

  3. 在您要监控的每个集群上安装安全集群服务。

使用 Helm Chart 安装 Central

您可以使用 Helm Chart 安装 Central,无需任何自定义,使用默认值,或者使用带有附加配置参数自定义的 Helm Chart。

使用 Helm Chart 安装 Central,无需自定义

您可以无需任何自定义配置即可在集群上安装 RHACS。您必须添加 Helm chart 仓库并安装 `central-services` Helm chart 来安装 Central 和 Scanner 的集中式组件。

添加 Helm chart 仓库

步骤
  • 添加 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-services` Helm chart 来部署集中式组件(Central 和 Scanner)。

先决条件
步骤
  • 运行以下命令来安装 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 身份验证拉取密钥的密码。
  • 如果您在需要代理才能连接到外部服务的集群中安装 Red Hat Advanced Cluster Security for Kubernetes,则必须使用 `proxyConfig` 参数指定您的代理配置。例如:

    env:
      proxyConfig: |
        url: http://proxy.name:port
        username: username
        password: password
        excludes:
        - some.domain
  • 如果您已在安装所在的命名空间中创建了一个或多个镜像拉取密钥,则可以使用 `--set imagePullSecrets.useExisting="<pull-secret-1;pull-secret-2>"` 代替用户名和密码。

  • 不使用镜像拉取密钥

    • 如果您从 `quay.io/stackrox-io` 或不需要身份验证的私有网络中的注册表拉取镜像,请使用 `--set imagePullSecrets.allowNone=true` 代替指定用户名和密码。

    • 如果您已在安装所在的命名空间中的默认服务帐户中配置了镜像拉取密钥,请使用 `--set imagePullSecrets.useFromDefaultServiceAccount=true` 代替指定用户名和密码。

安装命令的输出包括:

  • 自动生成的管理员密码。

  • 有关存储所有配置值的说明。

  • Helm 生成的任何警告。

使用 Helm chart 进行自定义安装 Central

您可以使用 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

参数 描述

imagePullSecrets.username

用于登录注册表的帐户的用户名。

imagePullSecrets.password

用于登录注册表的帐户的密码。

imagePullSecrets.allowNone

如果您使用的是自定义注册表并且它允许在没有凭据的情况下拉取镜像,则使用 `true`。

imagePullSecrets.useExisting

以逗号分隔的密钥列表作为值。例如,`secret1, secret2, secretN`。如果您已在目标命名空间中创建了具有给定名称的预先存在的镜像拉取密钥,则使用此选项。

imagePullSecrets.useFromDefaultServiceAccount

如果您已在目标命名空间中的默认服务帐户中配置了具有足够范围的镜像拉取密钥,则使用 `true`。

代理配置

如果您在需要代理才能连接到外部服务的集群中安装 Red Hat Advanced Cluster Security for Kubernetes,则必须使用 `proxyConfig` 参数指定您的代理配置。例如:

env:
  proxyConfig: |
    url: http://proxy.name:port
    username: username
    password: password
    excludes:
    - some.domain
参数 描述

env.proxyConfig

您的代理配置。

Central

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`,但不能同时使用两者。

参数 描述

central.jwtSigner.key

RHACS 应用于签署用于身份验证的 JSON Web 令牌 (JWT) 的私钥。

central.serviceTLS.cert

Central 服务应用于部署 Central 的内部证书。

central.serviceTLS.key

Central 服务应使用的内部证书的私钥。

central.defaultTLS.cert

Central 应使用的面向用户的证书。RHACS 使用此证书用于 RHACS 门户。

  • 对于新安装,您必须提供证书,否则,RHACS 将使用自签名证书安装 Central。

  • 如果您正在升级,RHACS 将使用现有证书及其密钥。

central.defaultTLS.key

Central 应使用的面向用户的证书的私钥。

  • 对于新安装,您必须提供私钥,否则,RHACS 将使用自签名证书安装 Central。

  • 如果您正在升级,RHACS 将使用现有证书及其密钥。

central.db.password.value

Central 数据库的连接密码。

central.adminPassword.value

登录 RHACS 的管理员密码。

central.adminPassword.htpasswd

登录 RHACS 的管理员密码。此密码使用 bcrypt 以哈希格式存储。

central.db.serviceTLS.cert

Central DB 服务部署 Central DB 时应使用的内部证书。

central.db.serviceTLS.key

Central DB 服务应使用的内部证书的私钥。

central.db.password.value

连接到 Central DB 的密码。

如果您使用的是 central.adminPassword.htpasswd 参数,则必须使用 bcrypt 编码的密码哈希。您可以运行命令 htpasswd -nB admin 来生成密码哈希。例如:

htpasswd: |
  admin:<bcrypt-hash>
扫描器

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

参数 描述

scanner.dbPassword.value

用于与扫描器数据库进行身份验证的密码。请勿修改此参数,因为 RHACS 会在内部自动创建和使用其值。

scanner.serviceTLS.cert

StackRox 扫描器服务部署 StackRox 扫描器时应使用的内部证书。

scanner.serviceTLS.key

扫描器服务应使用的内部证书的私钥。

scanner.dbServiceTLS.cert

Scanner-db 服务部署扫描器数据库时应使用的内部证书。

scanner.dbServiceTLS.key

Scanner-db 服务应使用的内部证书的私钥。

scannerV4.db.password.value

用于与扫描器 V4 数据库进行身份验证的密码。请勿修改此参数,因为 RHACS 会在内部自动创建和使用其值。

scannerV4.db.serviceTLS.cert

扫描器 V4 数据库服务部署扫描器 V4 数据库时应使用的内部证书。

scannerV4.db.serviceTLS.key

扫描器 V4 数据库服务应使用的内部证书的私钥。

scannerV4.indexer.serviceTLS.cert

扫描器 V4 服务部署扫描器 V4 索引器时应使用的内部证书。

scannerV4.indexer.serviceTLS.key

扫描器 V4 索引器应使用的内部证书的私钥。

scannerV4.matcher.serviceTLS.cert

扫描器 V4 服务部署扫描器 V4 匹配器时应使用的内部证书。

scannerV4.matcher.serviceTLS.key

扫描器 V4 匹配器应使用的内部证书的私钥。

公共配置文件

本节列出了 values-public.yaml 文件的可配置参数。

镜像拉取密钥

镜像拉取密钥是从您的注册表拉取镜像所需的凭据。

参数 描述

imagePullSecrets.allowNone

如果您使用的是自定义注册表并且它允许在没有凭据的情况下拉取镜像,则使用 `true`。

imagePullSecrets.useExisting

以逗号分隔的密钥列表作为值。例如,secret1, secret2。如果您已经在目标命名空间中创建了具有给定名称的预先存在的镜像拉取密钥,请使用此选项。

imagePullSecrets.useFromDefaultServiceAccount

如果您已在目标命名空间中的默认服务帐户中配置了具有足够范围的镜像拉取密钥,则使用 `true`。

镜像

Image声明了设置主注册表的配置,Helm图表使用它来解析central.imagescanner.imagescanner.dbImagescannerV4.imagescannerV4.db.image参数的镜像。

参数 描述

image.registry

您的镜像注册表的地址。可以使用主机名,例如 registry.redhat.io,或远程注册表主机名,例如 us.gcr.io/stackrox-mirror

环境变量

Red Hat Advanced Cluster Security for Kubernetes 会自动检测您的集群环境并设置 env.openshiftenv.istioenv.platform 的值。仅当要覆盖自动集群环境检测时才设置这些值。

参数 描述

env.openshift

在 OpenShift Container Platform 集群上安装并覆盖自动集群环境检测时,使用 true

env.istio

在启用 Istio 的集群上安装并覆盖自动集群环境检测时,使用 true

env.platform

您正在安装 RHACS 的平台。将其值设置为 defaultgke 以指定集群平台并覆盖自动集群环境检测。

env.offlineMode

使用 true 以脱机模式使用 RHACS。

其他受信任的证书颁发机构

RHACS 自动引用系统根证书以进行信任。当 Central、StackRox 扫描器或扫描器 V4 必须联系使用由您组织或全球受信任的合作伙伴组织颁发的证书的服务时,您可以通过使用以下参数指定要信任的根证书颁发机构来添加对这些服务的信任

参数 描述

additionalCAs.<certificate_name>

指定要信任的根证书颁发机构的 PEM 编码证书。

默认网络策略

为了在网络级别提供安全性,RHACS会在安装Central的命名空间中创建默认的NetworkPolicy资源。这些网络策略允许在特定端口上对特定组件进行入口访问。如果您不希望 RHACS 创建这些策略,请将此参数设置为 Disabled。默认值为 Enabled

禁用默认网络策略的创建可能会中断 RHACS 组件之间的通信。如果您禁用默认策略的创建,则必须创建您自己的网络策略以允许此通信。

参数 描述

network.enableNetworkPolicies

指定 RHACS 是否创建默认网络策略以允许组件之间进行通信。要创建您自己的网络策略,请将此参数设置为 False。默认值为 True

Central

Central 的可配置参数。

  • 用于公开 Central 部署以进行外部访问。您必须指定一个参数,即 central.exposure.loadBalancercentral.exposure.nodePortcentral.exposure.route。当您没有为这些参数指定任何值时,您必须手动公开 Central 或使用端口转发访问它。

下表包含外部 PostgreSQL 数据库的设置。

参数 描述

central.declarativeConfiguration.mounts.configMaps

挂载用于声明性配置的 ConfigMap。

Central.declarativeConfiguration.mounts.secrets

挂载用于声明性配置的 Secret。

central.endpointsConfig

Central 的端点配置选项。

central.nodeSelector

如果节点选择器选择了受污染的节点,请使用此参数为 Central 指定污点容忍键、值和效果。此参数主要用于基础设施节点。

central.tolerations

如果节点选择器选择了受污染的节点,请使用此参数为 Central 指定污点容忍键、值和效果。此参数主要用于基础设施节点。

central.exposeMonitoring

指定 true 以在端口号 9090 上公开 Central 的 Prometheus 指标端点。

central.image.registry

覆盖 Central 镜像的全局 image.registry 参数的自定义注册表。

central.image.name

覆盖默认 Central 镜像名称 (main) 的自定义镜像名称。

central.image.tag

覆盖 Central 镜像的默认标签的自定义镜像标签。如果您在新安装期间指定了自己的镜像标签,则必须在使用 helm upgrade 命令升级到新版本时手动递增此标签。如果您在自己的注册表中镜像 Central 镜像,请不要修改原始镜像标签。

central.image.fullRef

包含注册表地址、镜像名称和 Central 镜像镜像标签的完整引用。设置此参数的值将覆盖 central.image.registrycentral.image.namecentral.image.tag 参数。

central.resources.requests.memory

Central 的内存请求。

central.resources.requests.cpu

Central 的 CPU 请求。

central.resources.limits.memory

Central 的内存限制。

central.resources.limits.cpu

Central 的 CPU 限制。

central.exposure.loadBalancer.enabled

使用 true 通过负载均衡器公开 Central。

central.exposure.loadBalancer.port

暴露 Central 的端口号。默认端口号为 443。

central.exposure.nodePort.enabled

使用true 通过节点端口服务暴露 Central。

central.exposure.nodePort.port

暴露 Central 的端口号。跳过此参数时,OpenShift Container Platform 会自动分配端口号。Red Hat 建议如果使用节点端口暴露 RHACS,则不要指定端口号。

central.exposure.route.enabled

使用true 通过路由暴露 Central。此参数仅适用于 OpenShift Container Platform 集群。

central.db.external

使用true 指定不应部署 Central DB,而应使用外部数据库。

central.db.source.connectionString

Central 用于连接到数据库的连接字符串。仅当central.db.external设置为 true 时才使用此参数。“附加资源”中的 PostgreSQL 文档中描述了关键字/值格式的连接字符串。

  • 仅支持 PostgreSQL 13。

  • 不支持通过 PgBouncer 进行连接。

  • 用户必须是超级用户,并且具有创建和删除数据库的权限。

central.db.source.minConns

要建立到数据库的最小连接数。

central.db.source.maxConns

要建立到数据库的最大连接数。

central.db.source.statementTimeoutMs

单个查询或事务对数据库保持活动的毫秒数。

central.db.postgresConfig

用于 Central DB 的 postgresql.conf,如“附加资源”中的 PostgreSQL 文档中所述。

central.db.hbaConfig

用于 Central DB 的 pg_hba.conf,如“附加资源”中的 PostgreSQL 文档中所述。

central.db.nodeSelector

指定节点选择器标签为label-key: label-value,以强制 Central DB 仅在具有指定标签的节点上调度。

central.db.image.registry

覆盖 Central DB 镜像的全局image.registry参数的自定义注册表。

central.db.image.name

覆盖默认 Central DB 镜像名称 (central-db) 的自定义镜像名称。

central.db.image.tag

覆盖 Central DB 镜像的默认标签的自定义镜像标签。如果在新安装期间指定您自己的镜像标签,则必须在运行helm upgrade命令升级到新版本时手动递增此标签。如果您在自己的注册表中镜像 Central DB 镜像,请不要修改原始镜像标签。

central.db.image.fullRef

包含注册表地址、镜像名称和 Central DB 镜像镜像标签的完整引用。设置此参数的值将覆盖central.db.image.registrycentral.db.image.namecentral.db.image.tag参数。

central.db.resources.requests.memory

Central DB 的内存请求。

central.db.resources.requests.cpu

Central DB 的 CPU 请求。

central.db.resources.limits.memory

Central DB 的内存限制。

central.db.resources.limits.cpu

Central DB 的 CPU 限制。

central.db.persistence.hostPath

RHACS 应在节点上创建数据库卷的路径。Red Hat 不建议使用此选项。

central.db.persistence.persistentVolumeClaim.claimName

您正在使用的持久卷声明 (PVC) 的名称。

central.db.persistence.persistentVolumeClaim.createClaim

使用true 创建新的持久卷声明,或使用false 使用现有声明。

central.db.persistence.persistentVolumeClaim.size

由指定声明管理的持久卷的大小(以 GiB 为单位)。

StackRox 扫描器

下表列出了 StackRox 扫描器的可配置参数。这是用于节点和平台扫描的扫描器。如果未启用扫描器 V4,则 StackRox 扫描器还会执行镜像扫描。从 4.4 版开始,可以启用扫描器 V4 来提供镜像扫描。有关扫描器 V4 参数,请参见下表。

参数 描述

scanner.disable

使用true 安装不带 StackRox 扫描器的 RHACS。当与helm upgrade命令一起使用时,Helm 会删除现有的 StackRox 扫描器部署。

scanner.exposeMonitoring

指定true 以在端口号9090上为 StackRox 扫描器公开 Prometheus 指标端点。

scanner.replicas

要为 StackRox 扫描器部署创建的副本数。当与scanner.autoscaling参数一起使用时,此值将设置初始副本数。

scanner.logLevel

配置 StackRox 扫描器的日志级别。Red Hat 建议您不要更改默认日志级别值 (INFO)。

scanner.nodeSelector

指定节点选择器标签为label-key: label-value,以强制 StackRox 扫描器仅在具有指定标签的节点上调度。

scanner.tolerations

如果节点选择器选择了受污染的节点,请使用此参数为 StackRox 扫描器指定污点容忍键、值和效果。此参数主要用于基础设施节点。

scanner.autoscaling.disable

使用true 禁用 StackRox 扫描器部署的自动缩放。禁用自动缩放时,minReplicasmaxReplicas参数无效。

scanner.autoscaling.minReplicas

自动缩放的最小副本数。

scanner.autoscaling.maxReplicas

自动缩放的最大副本数。

scanner.resources.requests.memory

StackRox 扫描器的内存请求。

scanner.resources.requests.cpu

StackRox 扫描器的 CPU 请求。

scanner.resources.limits.memory

StackRox 扫描器的内存限制。

scanner.resources.limits.cpu

StackRox 扫描器的 CPU 限制。

scanner.dbResources.requests.memory

StackRox 扫描器数据库部署的内存请求。

scanner.dbResources.requests.cpu

StackRox 扫描器数据库部署的 CPU 请求。

scanner.dbResources.limits.memory

StackRox 扫描器数据库部署的内存限制。

scanner.dbResources.limits.cpu

StackRox 扫描器数据库部署的 CPU 限制。

scanner.image.registry

StackRox 扫描器镜像的自定义注册表。

scanner.image.name

覆盖默认 StackRox 扫描器镜像名称 (scanner) 的自定义镜像名称。

scanner.dbImage.registry

StackRox 扫描器 DB 镜像的自定义注册表。

scanner.dbImage.name

覆盖默认 StackRox 扫描器 DB 镜像名称 (scanner-db) 的自定义镜像名称。

scanner.dbNodeSelector

指定节点选择器标签为label-key: label-value,以强制 StackRox 扫描器 DB 仅在具有指定标签的节点上调度。

scanner.dbTolerations

如果节点选择器选择了受污染的节点,请使用此参数为 StackRox Scanner 数据库指定污点容忍键、值和效果。此参数主要用于基础设施节点。

Scanner V4

下表列出了 Scanner V4 的可配置参数。

参数 描述

scannerV4.db.persistence.persistentVolumeClaim.claimName

用于管理 Scanner V4 持久数据的 PVC 名称。如果不存在具有给定名称的 PVC,则会创建它。如果未设置,则默认值为 scanner-v4-db。为了防止数据丢失,删除 Central 时不会自动删除 PVC。

scannerV4.db.persistence.persistentVolumeClaim.size

用于管理 Scanner V4 持久数据的 PVC 大小。

scannerV4.db.persistence.persistentVolumeClaim.storageClassName

用于 PVC 的存储类名称。如果您的集群未配置默认存储类,则必须为此参数提供一个值。

scannerV4.disable

使用 false 启用 Scanner V4。设置此参数时,还必须通过设置 scanner.disable=false 来启用 StackRox Scanner。在 StackRox Scanner 和 Scanner V4 之间的功能达到一致之前,Scanner V4 只能与 StackRox Scanner 结合使用。不支持在不启用 StackRox Scanner 的情况下启用 Scanner V4。使用 helm upgrade 命令将此参数设置为 true 时,Helm 将删除现有的 Scanner V4 部署。

scannerV4.exposeMonitoring

指定 true 以在端口号 9090 上公开 Scanner V4 的 Prometheus 指标端点。

scannerV4.indexer.replicas

要为 Scanner V4 Indexer 部署创建的副本数量。当与 scannerV4.indexer.autoscaling 参数一起使用时,此值设置初始副本数。

scannerV4.indexer.logLevel

配置 Scanner V4 Indexer 的日志级别。Red Hat 建议您不要更改默认日志级别值 (INFO)。

scannerV4.indexer.nodeSelector

将节点选择器标签指定为 label-key: label-value,以强制 Scanner V4 Indexer 仅在具有指定标签的节点上调度。

scannerV4.indexer.tolerations

如果节点选择器选择了受污染的节点,请使用此参数为 Scanner V4 Indexer 指定污点容忍键、值和效果。此参数主要用于基础设施节点。

scannerV4.indexer.autoscaling.disable

使用 true 禁用 Scanner V4 Indexer 部署的自动缩放。禁用自动缩放时,minReplicasmaxReplicas 参数无效。

scannerV4.indexer.autoscaling.minReplicas

自动缩放的最小副本数。

scannerV4.indexer.autoscaling.maxReplicas

自动缩放的最大副本数。

scannerV4.indexer.resources.requests.memory

Scanner V4 Indexer 的内存请求。

scannerV4.indexer.resources.requests.cpu

Scanner V4 Indexer 的 CPU 请求。

scannerV4.indexer.resources.limits.memory

Scanner V4 Indexer 的内存限制。

scannerV4.indexer.resources.limits.cpu

Scanner V4 Indexer 的 CPU 限制。

scannerV4.matcher.replicas

要为 Scanner V4 Matcher 部署创建的副本数量。当与 scannerV4.matcher.autoscaling 参数一起使用时,此值设置初始副本数。

scannerV4.matcher.logLevel

Red Hat 建议您不要更改默认日志级别值 (INFO)。

scannerV4.matcher.nodeSelector

将节点选择器标签指定为 label-key: label-value,以强制 Scanner V4 Matcher 仅在具有指定标签的节点上调度。

scannerV4.matcher.tolerations

如果节点选择器选择了受污染的节点,请使用此参数为 Scanner V4 Matcher 指定污点容忍键、值和效果。此参数主要用于基础设施节点。

scannerV4.matcher.autoscaling.disable

使用 true 禁用 Scanner V4 Matcher 部署的自动缩放。禁用自动缩放时,minReplicasmaxReplicas 参数无效。

scannerV4.matcher.autoscaling.minReplicas

自动缩放的最小副本数。

scannerV4.matcher.autoscaling.maxReplicas

自动缩放的最大副本数。

scannerV4.matcher.resources.requests.memory

Scanner V4 Matcher 的内存请求。

scannerV4.matcher.resources.requests.cpu

Scanner V4 Matcher 的 CPU 请求。

scannerV4.db.resources.requests.memory

Scanner V4 数据库部署的内存请求。

scannerV4.db.resources.requests.cpu

Scanner V4 数据库部署的 CPU 请求。

scannerV4.db.resources.limits.memory

Scanner V4 数据库部署的内存限制。

scannerV4.db.resources.limits.cpu

Scanner V4 数据库部署的 CPU 限制。

scannerV4.db.nodeSelector

将节点选择器标签指定为 label-key: label-value,以强制 Scanner V4 数据库仅在具有指定标签的节点上调度。

scannerV4.db.tolerations

如果节点选择器选择了受污染的节点,请使用此参数为 Scanner V4 数据库指定污点容忍键、值和效果。此参数主要用于基础设施节点。

scannerV4.db.image.registry

Scanner V4 数据库镜像的自定义注册表。

scannerV4.db.image.name

覆盖默认 Scanner V4 数据库镜像名称 (scanner-v4-db) 的自定义镜像名称。

scannerV4.image.registry

Scanner V4 镜像的自定义注册表。

scannerV4.image.name

覆盖默认 Scanner V4 镜像名称 (scanner-v4) 的自定义镜像名称。

自定义

使用这些参数为 RHACS 创建的所有对象指定其他属性。

参数 描述

customize.labels

附加到所有对象的自定义标签。

customize.annotations

附加到所有对象的自定义注释。

customize.podLabels

附加到所有部署的自定义标签。

customize.podAnnotations

附加到所有部署的自定义注释。

customize.envVars

所有对象中所有容器的自定义环境变量。

customize.central.labels

附加到 Central 创建的所有对象的自定义标签。

customize.central.annotations

附加到 Central 创建的所有对象的自定义注释。

customize.central.podLabels

附加到所有 Central 部署的自定义标签。

customize.central.podAnnotations

附加到所有 Central 部署的自定义注释。

customize.central.envVars

所有 Central 容器的自定义环境变量。

customize.scanner.labels

附加到 Scanner 创建的所有对象的自定义标签。

customize.scanner.annotations

附加到 Scanner 创建的所有对象的自定义注释。

customize.scanner.podLabels

附加到所有 Scanner 部署的自定义标签。

customize.scanner.podAnnotations

附加到所有 Scanner 部署的自定义注释。

customize.scanner.envVars

所有 Scanner 容器的自定义环境变量。

customize.scanner-db.labels

一个自定义标签,附加到 Scanner DB 创建的所有对象上。

customize.scanner-db.annotations

一个自定义注释,附加到 Scanner DB 创建的所有对象上。

customize.scanner-db.podLabels

一个自定义标签,附加到所有 Scanner DB 部署上。

customize.scanner-db.podAnnotations

一个自定义注释,附加到所有 Scanner DB 部署上。

customize.scanner-db.envVars

所有 Scanner DB 容器的自定义环境变量。

customize.scanner-v4-indexer.labels

一个自定义标签,附加到 Scanner V4 Indexer 创建的所有对象及其所属的 Pod 上。

customize.scanner-v4-indexer.annotations

一个自定义注释,附加到 Scanner V4 Indexer 创建的所有对象及其所属的 Pod 上。

customize.scanner-v4-indexer.podLabels

一个自定义标签,附加到 Scanner V4 Indexer 创建的所有对象及其所属的 Pod 上。

customize.scanner-v4-indexer.podAnnotations

一个自定义注释,附加到 Scanner V4 Indexer 创建的所有对象及其所属的 Pod 上。

customize.scanner-4v-indexer.envVars

所有 Scanner V4 Indexer 容器及其所属 Pod 的自定义环境变量。

customize.scanner-v4-matcher.labels

一个自定义标签,附加到 Scanner V4 Matcher 创建的所有对象及其所属的 Pod 上。

customize.scanner-v4-matcher.annotations

一个自定义注释,附加到 Scanner V4 Matcher 创建的所有对象及其所属的 Pod 上。

customize.scanner-v4-matcher.podLabels

一个自定义标签,附加到 Scanner V4 Matcher 创建的所有对象及其所属的 Pod 上。

customize.scanner-v4-matcher.podAnnotations

一个自定义注释,附加到 Scanner V4 Matcher 创建的所有对象及其所属的 Pod 上。

customize.scanner-4v-matcher.envVars

所有 Scanner V4 Matcher 容器及其所属 Pod 的自定义环境变量。

customize.scanner-v4-db.labels

一个自定义标签,附加到 Scanner V4 DB 创建的所有对象及其所属的 Pod 上。

customize.scanner-v4-db.annotations

一个自定义注释,附加到 Scanner V4 DB 创建的所有对象及其所属的 Pod 上。

customize.scanner-v4-db.podLabels

一个自定义标签,附加到 Scanner V4 DB 创建的所有对象及其所属的 Pod 上。

customize.scanner-v4-db.podAnnotations

一个自定义注释,附加到 Scanner V4 DB 创建的所有对象及其所属的 Pod 上。

customize.scanner-4v-db.envVars

所有 Scanner V4 DB 容器及其所属 Pod 的自定义环境变量。

您也可以使用

  • customize.other.service/*.labelscustomize.other.service/*.annotations 参数,为所有对象指定标签和注释。

  • 或者,提供特定的服务名称,例如 customize.other.service/central-loadbalancer.labelscustomize.other.service/central-loadbalancer.annotations 作为参数并设置其值。

高级自定义

本节中指定的参数仅供参考。Red Hat 不支持修改命名空间和发行版名称的 RHACS 实例。

参数 描述

allowNonstandardNamespace

使用 true 将 RHACS 部署到默认命名空间 stackrox 之外的命名空间。

allowNonstandardReleaseName

使用 true 部署发行版名称不是默认 stackrox-central-services 的 RHACS。

声明式配置值

要使用声明式配置,必须创建一个 YAML 文件(在此示例中名为“declarative-config-values.yaml”),将声明式配置挂载到 Central。此文件用于 Helm 安装。

步骤
  1. 使用以下示例作为指导,创建 YAML 文件(在此示例中名为 declarative-config-values.yaml

    central:
      declarativeConfiguration:
        mounts:
          configMaps:
            - declarative-configs
          secrets:
            - sensitive-declarative-configs
  2. 按照“安装 central-services Helm chart”中所述安装 Central 服务 Helm chart,引用 declarative-config-values.yaml 文件。

安装 central-services Helm chart

配置 values-public.yamlvalues-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 配置文件的路径。

可选:如果使用声明式配置,请将 -f <path_to_declarative-config-values.yaml 添加到此命令中,以便在 Central 中挂载声明式配置文件。

部署 central-services Helm chart 后更改配置选项

部署 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 标志。

步骤
  1. 使用新值更新 values-public.yamlvalues-private.yaml 配置文件。

  2. 运行 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.yamlvalues_private.yaml 文件中未包含的值,请包含 --reuse-values 参数。

使用 roxctl CLI 安装 Central

对于生产环境,Red Hat 建议使用 Operator 或 Helm chart 来安装 RHACS。除非您有使用此方法的特定安装需求,否则请勿使用 roxctl 安装方法。

安装 roxctl CLI

要安装 Red Hat Advanced Cluster Security for Kubernetes,必须通过下载二进制文件来安装 roxctl CLI。您可以在 Linux、Windows 或 macOS 上安装 roxctl

在 Linux 上安装 roxctl CLI

您可以使用以下步骤在 Linux 上安装 roxctl CLI 二进制文件。

适用于 Linux 的 roxctl CLI 可用于 amd64arm64ppc64les390x 架构。

步骤
  1. 确定目标操作系统的 roxctl 架构

    $ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
  2. 下载 roxctl CLI

    $ curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.6.1/bin/Linux/roxctl${arch}"
  3. 使 roxctl 二进制文件可执行

    $ chmod +x roxctl
  4. roxctl 二进制文件放在 PATH 上的目录中

    要检查您的 PATH,请执行以下命令

    $ echo $PATH
验证
  • 验证您已安装的 roxctl 版本

    $ roxctl version

在 macOS 上安装 roxctl CLI

您可以使用以下步骤在 macOS 上安装 roxctl CLI 二进制文件。

适用于 macOS 的 roxctl CLI 可用于 amd64arm64 架构。

步骤
  1. 确定目标操作系统的 roxctl 架构

    $ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
  2. 下载 roxctl CLI

    $ curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.6.1/bin/Darwin/roxctl${arch}"
  3. 从二进制文件中删除所有扩展属性

    $ xattr -c roxctl
  4. 使 roxctl 二进制文件可执行

    $ chmod +x roxctl
  5. roxctl 二进制文件放在 PATH 上的目录中

    要检查您的 PATH,请执行以下命令

    $ echo $PATH
验证
  • 验证您已安装的 roxctl 版本

    $ roxctl version

在 Windows 上安装 roxctl CLI

您可以使用以下步骤在 Windows 上安装roxctl CLI 二进制文件。

适用于 Windows 的roxctl CLI 可用于amd64 架构。

步骤
  • 下载 roxctl CLI

    $ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.6.1/bin/Windows/roxctl.exe
验证
  • 验证您已安装的 roxctl 版本

    $ roxctl version

使用交互式安装程序

使用交互式安装程序为您的环境生成所需的密钥、部署配置和部署脚本。

步骤
  1. 运行交互式安装命令

    $ roxctl central generate interactive

    使用roxctl CLI 安装 RHACS 默认情况下会创建 PodSecurityPolicy (PSP) 对象以实现向后兼容性。如果您在 Kubernetes 1.25 及更高版本或 OpenShift Container Platform 4.12 及更高版本上安装 RHACS,则必须禁用 PSP 对象的创建。为此,请为roxctl central generateroxctl sensor generate 命令将--enable-pod-security-policies 选项指定为false

  2. 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 策略,请运行以下命令

    $ sudo chcon -Rt svirt_sandbox_file_t <full_volume_path>

    但是,Red Hat 不建议修改 SELinux 策略,建议在 OpenShift Container Platform 上安装时使用 PVC。

安装完成后,安装程序会创建一个名为 central-bundle 的文件夹,其中包含部署 Central 所需的 YAML 清单和脚本。此外,它还会显示屏幕上的说明,说明您需要运行哪些脚本才能部署其他受信任的证书颁发机构、Central 和 Scanner,以及登录 RHACS 门户的身份验证说明(以及如果您在回答提示时未提供密码,则会显示自动生成的密码)。

运行 Central 安装脚本

运行交互式安装程序后,您可以运行setup.sh脚本安装 Central。

步骤
  1. 运行setup.sh脚本配置镜像注册表访问。

    $ ./central-bundle/central/scripts/setup.sh
  2. 要启用策略即代码功能(技术预览版),请手动应用位于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
  3. 创建必要的资源

    $ oc create -R -f central-bundle/central
  4. 检查部署进度

    $ oc get pod -n stackrox -w
  5. Central 运行后,找到 RHACS 门户 IP 地址并在浏览器中打开它。根据您在回答提示时选择的公开方法,可以使用以下方法之一获取 IP 地址。

    公开方法 命令 地址 示例

    路由

    oc -n stackrox get route central

    输出中HOST/PORT列下的地址

    https://central-stackrox.example.route

    节点端口

    oc get node -owide && oc -n stackrox get svc central-loadbalancer

    任何节点的 IP 或主机名,在服务显示的端口上

    https://198.51.100.0:31489

    负载均衡器

    oc -n stackrox get svc central-loadbalancer

    为服务显示的 EXTERNAL-IP 或主机名,在 443 端口上

    https://192.0.2.0

    central-bundle/central/scripts/port-forward.sh 8443

    https://127.0.0.1:8443

    https://127.0.0.1:8443

如果您在交互式安装过程中选择了自动生成的密码,您可以运行以下命令查看它以登录 Central

$ cat central-bundle/password