第 4 章 在 Red Hat OpenShift 上安装 RHACS


4.1. 在 Red Hat OpenShift 上为 RHACS 安装 Central 服务

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

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

  • 使用 Operator 安装
  • 使用 Helm chart 安装
  • 使用 roxctl CLI 安装(除非有需要使用它的特定安装需要)

4.1.1. 使用 Operator 安装 Central

4.1.1.1. 安装 Red Hat Advanced Cluster Security for Kubernetes Operator

使用 OpenShift Container Platform 提供的 OperatorHub 是安装 Red Hat Advanced Cluster Security for Kubernetes 的最简单方法。

先决条件

流程

  1. 在 Web 控制台中,进入 Operators OperatorHub 页面。
  2. 如果没有显示 Red Hat Advanced Cluster Security for Kubernetes,在 Filter by keyword 框中输入 Advanced Cluster Security 来查找 Red Hat Advanced Cluster Security for Kubernetes Operator。
  3. 选择 Red Hat Advanced Cluster Security for Kubernetes Operator 查看详情页面。
  4. 阅读 Operator 的信息,然后点 Install
  5. Install Operator 页面中:

    • 保留安装模式的默认值 All namespaces on the cluster
    • 选择要在其中为 Installed namespace 字段安装 Operator 的特定命名空间。在 rhacs-operator 命名空间中安装 Red Hat Advanced Cluster Security for Kubernetes Operator。
    • 更新批准选择自动或手工。

      如果选择自动更新,当有新版 Operator 可用时,Operator Lifecycle Manager(OLM)会自动升级 Operator 的运行实例。

      如果选择手动更新,则当有新版 Operator 可用时,OLM 会创建更新请求。作为集群管理员,您必须手动批准更新请求,才能将 Operator 更新至最新版本。

      重要

      如果选择手动更新,在更新安装了 Central 的集群中的 RHACS Operator 时,您必须更新所有安全集群中的 RHACS Operator。安装 Central 的安全集群和集群必须具有相同的版本,以确保最佳功能。

  6. Install

验证

  • 安装完成后,进入 Operators Installed Operators,以验证 Red Hat Advanced Cluster Security for Kubernetes Operator 的状态为 Succeeded

下一步

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

4.1.1.2. 使用 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 Advanced Cluster Security for Kubernetes Central 自定义资源。不要在安装 Red Hat Advanced Cluster Security for Kubernetes Operator 的项目中安装它。另外,不要将其安装到任何名称以 kubeopenshiftredhat 开头的项目中,以及在 istio-system 项目中。

先决条件

流程

  1. 在 OpenShift Container Platform web 控制台中进入 Operators Installed Operators 页面。
  2. 从安装的 Operator 列表中选择 Red Hat Advanced Cluster Security for Kubernetes Operator。
  3. 如果您在推荐的命名空间中安装了 Operator,OpenShift Container Platform 会将项目列为 rhacs-operator。选择 Project: rhacs-operator Create project

    注意
    • 如果在不同的命名空间中安装了 Operator,OpenShift Container Platform 将列出该命名空间的名称,而不是 rhacs-operator
  4. 输入新项目名称(如 stackrox),然后点 Create。红帽建议您使用 stackrox 作为项目名称。
  5. Provided APIs 部分下,选择 Central。点 Create Central
  6. 可选:如果您使用声明性配置,在 Configure via: 旁边点 YAML 视图 并添加声明性配置的信息,如下例所示:

    ...
    spec:
      central:
        declarativeConfiguration:
          configMaps:
          - name: "<declarative-configs>" 1
          secrets:
          - name: "<sensitive-declarative-configs>" 2
    ...
    1
    将 <declarative-configs> 替换为您要使用的配置映射的名称。
    2
    将 <sensitive-declarative-configs> 替换为您要使用的 secret 的名称。
  7. 输入您的 Central 自定义资源的名称并添加您要应用的任何标签。否则,接受可用选项的默认值。
  8. 您可以为 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 应该如何存储其持久数据。使用持久性卷声明(PVC)获取最佳结果,特别是在使用 Scanner V4 时。请参阅"在 Red Hat OpenShift 上安装 RHACS 的 Central 服务"部分中的 central.persistence.<parameter > 信息。

      Central DB 设置

      Central DB 的设置,包括数据持久性。请参阅"在 Red Hat OpenShift 上安装 RHACS 的 Central 服务"部分中的 central.db.<parameter > 信息。

      Resources

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

      容限(Tolerations)

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

      主机别名

      使用此参数配置额外的主机名以在 pod 的主机文件中解析。

    • 扫描程序组件 设置 :默认扫描程序的设置,也称为 StackRox Scanner。请参阅"在 Red Hat OpenShift 上安装 RHACS 的 Central 服务"部分中的"Scanner"表。
    • 扫描程序 V4 组件 设置:可选扫描程序 V4 扫描程序的设置,在版本 4.4 及更高版本中提供。它目前没有被默认启用。您可以启用 StackRox Scanner 和 Scanner V4 来并发使用。请参阅"在 Red Hat OpenShift 上安装 RHACS 的 Central 服务"部分中的"Scanner V4"表。

      启用 Scanner V4 时,您可以配置以下选项:

      设置描述

      indexer

      对镜像进行索引并创建发现报告的过程。您可以配置副本、自动扩展、资源和容限。在更改默认资源值前,请参阅"Installation"一章中的"Default resource requirements for RHACS"和"Recommended 资源要求"部分中的"Scanner V4"部分。

      matcher

      对来自索引器的报告执行漏洞匹配的过程,与 Scanner V4 DB 中存储的漏洞数据相关。您可以配置副本、自动扩展、资源和容限。在更改默认资源值前,请参阅"Installation"一章中的"Default resource requirements for RHACS"和"Recommended 资源要求"部分中的"Scanner V4"部分。

      DB

      存储 Scanner V4 信息的数据库,包括漏洞数据和索引报告。您可以配置持久性、资源和容限。如果使用 Scanner V4,则 Central 集群中需要一个持久性卷声明(PVC)。在安全集群中强烈建议使用 PVC 以获得最佳结果。在更改默认资源值前,请参阅"Installation"一章中的"Default resource requirements for RHACS"和"Recommended 资源要求"部分中的"Scanner V4"部分。

    • Egress :出站网络流量的设置,包括 RHACS 是否应该在线(连接)或离线(断开连接)模式运行。
    • tls: 使用此字段添加额外的可信根证书颁发机构(CA)。
    • 网络 :要在网络级别提供安全性,RHACS 在安装了 Central 的命名空间中创建默认 NetworkPolicy 资源。要创建和管理自己的网络策略,在 policies 部分选择 Disabled。默认情况下,此选项为 Enabled

      警告

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

    • 高级配置 :您可以使用这些字段执行以下操作:

      • 指定额外的镜像 pull secret
      • 添加自定义环境变量来为受管 pod 的容器设置
      • 启用 Red Hat OpenShift 监控
  9. Create
注意

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

后续步骤

  1. 验证中央安装。
  2. 可选:配置中央选项。
  3. 生成包含集群 secret 的 init 捆绑包,它允许在 CentralSecuredCluster 资源之间的通信。您需要下载这个捆绑包,使用它来在您要保护的集群中生成资源,并安全地存储它。
  4. 在您要监控的每个集群中安装安全集群服务。

4.1.1.3. 在 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;

4.1.1.4. 使用 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 和具有以下权限的用户的数据库:

    • 对数据库的连接权利。
    • schema 的 UsageCreate
    • 对 schema 中的所有表的 Select, Insert, Update, 和 Delete 权限。
    • 对 schema 中所有序列的 Usage

流程

  1. 在 OpenShift Container Platform web 控制台中进入 Operators Installed Operators 页面。
  2. 从安装的 Operator 列表中选择 Red Hat Advanced Cluster Security for Kubernetes Operator。
  3. 如果您在推荐的命名空间中安装了 Operator,OpenShift Container Platform 会将项目列为 rhacs-operator。选择 Project: rhacs-operator Create project

    警告
    • 如果您在不同的命名空间中安装了 Operator,则 OpenShift Container Platform 会显示该命名空间的名称,而不是 rhacs-operator
    • 红帽建议在专用项目中安装 Red Hat Advanced Cluster Security for Kubernetes Central 自定义资源。不要在安装 Red Hat Advanced Cluster Security for Kubernetes Operator 的项目中安装它。另外,不要将其安装到任何名称以 kubeopenshiftredhat 开头的项目中,以及在 istio-system 项目中。
  4. 输入新项目名称(如 stackrox),然后点 Create。红帽建议您使用 stackrox 作为项目名称。
  5. 使用 OpenShift Container Platform Web 控制台或终端在部署的命名空间中创建密码 secret。

    • 在 OpenShift Container Platform web 控制台中进入 Workloads Secrets 页面。使用密钥 password 和值创建一个 Key/Value secret,作为纯文本文件的路径,其中包含调配数据库的超级用户密码。
    • 或者,在终端中运行以下命令:

      $ 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 operator 页面。在 Provided APIs 部分下,选择 Central。点 Create Central
  7. 可选:如果您使用声明性配置,在 Configure via: 旁边点 YAML 视图
  8. 添加声明性配置的信息,如下例所示:

    ...
    spec:
      central:
        declarativeConfiguration:
          configMaps:
          - name: <declarative-configs> 1
          secrets:
          - name: <sensitive-declarative-configs> 2
    ...
    1
    将 <declarative-configs> 替换为您要使用的配置映射的名称。
    2
    将 <sensitive-declarative-configs> 替换为您要使用的 secret 的名称。
  9. 输入您的 Central 自定义资源的名称并添加您要应用的任何标签。
  10. 进入 Central Component Settings Central DB Settings
  11. 对于 Administrator Password,将引用的 secret 指定为 external-db-password (或之前创建的密码的 secret 名称)。
  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 视图并在顶级 spec 下添加一个 TLS 块,如下例所示:

    spec:
      tls:
        additionalCAs:
        - name: db-ca
          content: |
            <certificate>
  15. Create
注意

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

后续步骤

  1. 验证中央安装。
  2. 可选:配置中央选项。
  3. 生成包含集群 secret 的 init 捆绑包,它允许在 CentralSecuredCluster 资源之间的通信。您需要下载这个捆绑包,使用它来在您要保护的集群中生成资源,并安全地存储它。
  4. 在您要监控的每个集群中安装安全集群服务。

4.1.1.5. 使用 Operator 方法验证中央安装

安装中心后,登录到 RHACS 门户以验证中央安装是否成功。

流程

  1. 在 OpenShift Container Platform web 控制台中进入 Operators Installed Operators 页面。
  2. 从安装的 Operator 列表中选择 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. 生成包含集群 secret 的 init 捆绑包,它允许在 CentralSecuredCluster 资源之间的通信。您需要下载这个捆绑包,使用它来在您要保护的集群中生成资源,并安全地存储它。
  3. 在您要监控的每个集群中安装安全集群服务。

4.1.2. 使用 Helm chart 安装 Central

您可以使用 Helm chart 安装 Central,而无需自定义任何自定义,使用默认值,或使用带有额外自定义配置参数的 Helm chart。

4.1.2.1. 使用 Helm chart 安装 Central,而无需自定义

您可以在没有自定义的情况下在集群中安装 RHACS。您必须添加 Helm Chart 仓库并安装 central-services Helm Chart,以安装 Central 和 Scanner 的集中组件。

4.1.2.1.1. 添加 Helm Chart 仓库

流程

  • 添加 RHACS chart 存储库。

    $ helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/

Red Hat Advanced Cluster Security for Kubernetes 的 Helm 仓库包括用于安装不同组件的 Helm chart,包括:

  • 用于安装集中组件(Central 和 Scanner)的中央服务Helm Chart(central-services)。

    注意

    您只部署集中式组件一次,并可使用同一安装监控多个独立集群。

  • 安全集群服务 Helm Chart (secured-cluster-services),用于安装 per-cluster 和 per-node 组件(Sensor、Admission Controller、Collector 和 Scanner-slim)。

    注意

    将 per-cluster 组件部署到要监控的每个集群中,并在要监控的所有节点中部署 per-node 组件。

验证

  • 运行以下命令来验证添加的 chart 存储库:

    $ helm search repo -l rhacs/
4.1.2.1.2. 在不自定义的情况下安装 central-services Helm chart

使用以下说明安装 central-services Helm Chart 以部署集中组件(Central 和 Scanner)。

先决条件

流程

  • 运行以下命令安装 Central 服务并使用一个路由来公开 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 身份验证包含 pull secret 的用户名。
    2
    包括用于 Red Hat Container Registry 身份验证的 pull secret 的密码。
  • 或者,运行以下命令安装 Central 服务并使用一个负载均衡器来公开 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 身份验证包含 pull secret 的用户名。
    2
    包括用于 Red Hat Container Registry 身份验证的 pull secret 的密码。
  • 或者,运行以下命令安装 Central 服务并使用一个端口转发来公开 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 身份验证包含 pull secret 的用户名。
    2
    包括用于 Red Hat Container Registry 身份验证的 pull secret 的密码。
重要
  • 如果要在需要代理连接到外部服务的集群中安装 Red Hat Advanced Cluster Security for Kubernetes,则必须使用 proxyConfig 参数指定代理配置。例如:

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

    • 如果您要从 quay.io/stackrox-io 或不需要身份验证的专用网络中的 registry 拉取镜像。使用 --set imagePullSecrets.allowNone=true,而不是指定用户名和密码。
    • 如果您已经在安装的命名空间中的默认服务帐户中配置了镜像 pull secret。使用 --set imagePullSecrets.useFromDefaultServiceAccount=true,而不是指定用户名和密码。

安装命令的输出包括:

  • 自动生成的管理员密码。
  • 关于存储所有配置值的说明。
  • Helm 生成的任何警告。

4.1.2.2. 使用带有自定义的 Helm chart 安装 Central

您可以使用 helm installhelm upgrade 命令的 Helm Chart 配置参数在 Red Hat OpenShift 集群上安装 RHACS。您可以使用 --set 选项或创建 YAML 配置文件来指定这些参数。

创建以下文件来配置 Helm chart 来安装 Red Hat Advanced Cluster Security for Kubernetes:

  • 公共配置文件 values-public.yaml :使用此文件保存所有非敏感配置选项。
  • 专用配置文件 values-private.yaml :使用此文件保存所有敏感配置选项。确保您安全地存储这个文件。
  • 配置文件 declarative-config-values.yaml :如果您使用声明性配置将声明性配置挂载添加到 Central,请创建此文件。
4.1.2.2.1. 专用配置文件

本节列出了 values-private.yaml 文件的可配置参数。这些参数没有默认值。

4.1.2.2.1.1. 镜像 pull secret

从 registry 中拉取镜像所需的凭证取决于以下因素:

  • 如果使用自定义 registry,您必须指定这些参数:

    • imagePullSecrets.username
    • imagePullSecrets.password
    • image.registry
  • 如果不使用用户名和密码登录到自定义 registry,您必须指定以下参数之一:

    • imagePullSecrets.allowNone
    • imagePullSecrets.useExisting
    • imagePullSecrets.useFromDefaultServiceAccount
参数Description

imagePullSecrets.username

用于登录到 registry 的帐户的用户名。

imagePullSecrets.password

用于登录到 registry 的帐户的密码。

imagePullSecrets.allowNone

如果您使用自定义 registry,且允许在没有凭证的情况下拉取镜像,请使用 true

imagePullSecrets.useExisting

以逗号分隔的 secret 列表作为值。例如,secret1, secret2, secretN。如果您已在目标命名空间中创建了预先存在的镜像 pull secret,则使用此选项。

imagePullSecrets.useFromDefaultServiceAccount

如果您已经在目标命名空间中配置了具有足够范围的镜像 pull secret 的默认服务帐户,请使用 true

4.1.2.2.1.2. 代理配置

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

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

env.proxyConfig

您的代理配置。

4.1.2.2.1.3. 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.valuecentral.adminPassword.htpasswd,但不能同时使用两者。

参数Description

central.jwtSigner.key

RHACS 应该用来签名 JSON Web 令牌(JWT)的私钥以进行身份验证。

central.serviceTLS.cert

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>
4.1.2.2.1.4. 扫描程序

StackRox Scanner 和 Scanner V4 的可配置参数。

对于新的安装,您可以跳过以下参数,以及 Helm Chart 自动生成值。否则,如果您升级到新版本,请指定以下参数的值:

  • 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
参数Description

scanner.dbPassword.value

用于通过 Scanner 数据库进行身份验证的密码。不要修改此参数,因为 RHACS 会在内部自动创建和使用其值。

scanner.serviceTLS.cert

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

scanner.serviceTLS.key

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

scanner.dbServiceTLS.cert

Scanner-db 服务应用于部署 Scanner 数据库的内部证书。

scanner.dbServiceTLS.key

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

scannerV4.db.password.value

用于通过 Scanner V4 数据库进行身份验证的密码。不要修改此参数,因为 RHACS 会在内部自动创建和使用其值。

scannerV4.db.serviceTLS.cert

Scanner V4 DB 服务应用于部署 Scanner V4 数据库的内部证书。

scannerV4.db.serviceTLS.key

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

scannerV4.indexer.serviceTLS.cert

Scanner V4 服务应用于部署 Scanner V4 Indexer 的内部证书。

scannerV4.indexer.serviceTLS.key

Scanner V4 Indexer 应该使用的内部证书的私钥。

scannerV4.matcher.serviceTLS.cert

Scanner V4 服务应用于部署 Scanner V4 Matcher 的内部证书。

scannerV4.matcher.serviceTLS.key

Scanner V4 Matcher 应该使用的内部证书的私钥。

4.1.2.2.2. 公共配置文件

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

4.1.2.2.2.1. 镜像 pull secret

镜像拉取 secret 是从 registry 中拉取镜像所需的凭证。

参数Description

imagePullSecrets.allowNone

如果您使用自定义 registry,且允许在没有凭证的情况下拉取镜像,请使用 true

imagePullSecrets.useExisting

以逗号分隔的 secret 列表作为值。例如,secret1, secret2.如果您已在目标命名空间中创建了预先存在的镜像 pull secret,则使用此选项。

imagePullSecrets.useFromDefaultServiceAccount

如果您已经在目标命名空间中配置了具有足够范围的镜像 pull secret 的默认服务帐户,请使用 true

4.1.2.2.2.2. Image

镜像声明配置来设置主 registry,Helm Chart 用来为 central.image,scanner.image,scanner.dbImage,scannerV4.image, 和 scannerV4.db.image 参数解析镜像。

参数Description

image.registry

镜像 registry 的地址。使用主机名,如 registry.redhat.io 或远程 registry 主机名,如 us.gcr.io/stackrox-mirror

4.1.2.2.2.3. 环境变量

Red Hat Advanced Cluster Security for Kubernetes 会自动检测集群环境,并为 env.openshiftenv.istioenv.platform 设置值。仅设置这些值来覆盖自动集群环境检测。

参数Description

env.openshift

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

env.istio

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

env.platform

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

env.offlineMode

使用 true 在离线模式中使用 RHACS。

4.1.2.2.2.4. 其他可信证书颁发机构

RHACS 自动引用要信任的系统根证书。当 Central、StackRox Scanner 或 Scanner V4 必须联系到使用您机构中授权或全局可信合作伙伴机构发布的证书的服务,您可以使用以下参数来指定对这些服务的信任:

参数Description

additionalCAs.<certificate_name>

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

4.1.2.2.2.5. 默认网络策略

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

警告

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

参数描述

network.enableNetworkPolicies

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

4.1.2.2.2.6. Central

Central 的可配置参数。

  • 您必须将持久性存储选项指定为 hostPathpersistentVolumeClaim
  • 用于公开外部访问的中央部署。您必须指定一个参数,可以是 central.exposure.loadBalancercentral.exposure.nodePortcentral.exposure.route。如果没有为这些参数指定任何值,您必须手动公开 Central,或使用端口转发(port-forwarding)访问它。

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

参数Description

central.declarativeConfiguration.mounts.configMaps

挂载用于声明配置的配置映射。

Central.declarativeConfiguration.mounts.secrets

挂载用于声明配置的 secret。

central.endpointsConfig

Central 的端点配置选项。

central.nodeSelector

如果节点选择器选择污点节点,请使用此参数指定 taint toleration key、value 和 effect。此参数主要用于基础架构节点。

central.tolerations

如果节点选择器选择污点节点,请使用此参数指定 taint toleration key、value 和 effect。此参数主要用于基础架构节点。

central.exposeMonitoring

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

central.image.registry

用于覆盖 Central 镜像的全局 image.registry 参数的自定义 registry。

central.image.name

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

central.image.tag

覆盖 Central 镜像默认标签的自定义镜像标签。如果在新安装过程中指定了自己的镜像标签,则您必须在运行 helm upgrade 命令升级到新版本时手动增加此标签。如果您 mirror 了自己的 registry 中的镜像,请不要修改原始镜像标签。

central.image.fullRef

Central 镜像的完整参考,包括 registry 地址、镜像名称和镜像标签。为此参数设置值会覆盖 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.persistence.hostPath

RHACS 应该创建数据库卷的节点上的路径。红帽不推荐使用这个选项。

central.persistence.persistentVolumeClaim.claimName

您要使用的持久性卷声明(PVC)的名称。

central.persistence.persistentVolumeClaim.createClaim

使用 true 创建新 PVC 或 false 来使用现有的声明。

central.persistence.persistentVolumeClaim.size

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

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 会自动分配一个端口号。如果您使用节点端口公开 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 时使用。连接字符串必须采用 keyword/value 格式,如 PostgreSQL 文档中的 "Additional resources" 所述。

  • 仅支持 PostgreSQL 13。
  • 不支持通过 PgBouncer 连接。
  • 用户必须是超级用户,能够创建和删除数据库。

central.db.source.minConns

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

central.db.source.maxConns

与要建立的数据库的连接数上限。

central.db.source.statementTimeoutMs

单个查询或事务的毫秒可以针对数据库处于活跃状态。

central.db.postgresConfig

用于中央 DB 的 postgresql.conf,如 PostgreSQL 文档中的"添加资源"中所述。

central.db.hbaConfig

用于 Central DB 的 pg_hba.conf,如 PostgreSQL 文档中的 "Additional resources" 所述。

central.db.nodeSelector

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

central.db.image.registry

一个自定义 registry,用于覆盖 Central DB 镜像的全局 image.registry 参数。

central.db.image.name

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

central.db.image.tag

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

central.db.image.fullRef

Central DB 镜像的完整参考,包括 registry 地址、镜像名称和镜像标签。为此参数设置值会覆盖 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 数据库的 CPU 限制。

central.db.persistence.hostPath

RHACS 应该创建数据库卷的节点上的路径。红帽不推荐使用这个选项。

central.db.persistence.persistentVolumeClaim.claimName

您要使用的持久性卷声明(PVC)的名称。

central.db.persistence.persistentVolumeClaim.createClaim

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

central.db.persistence.persistentVolumeClaim.size

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

4.1.2.2.2.7. stackrox Scanner

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

参数Description

scanner.disable

使用 true 在没有 StackRox Scanner 的情况下安装 RHACS。当您与 helm upgrade 命令一起使用时,Helm 会删除现有的 StackRox Scanner 部署。

scanner.exposeMonitoring

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

scanner.replicas

为 StackRox Scanner 部署创建的副本数。当您将其与 scanner.autoscaling 参数搭配使用时,这个值会设置初始副本数。

scanner.logLevel

为 StackRox Scanner 配置日志级别。红帽建议您不要更改默认的日志级别值(INFO)。

scanner.nodeSelector

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

scanner.tolerations

如果节点选择器选择污点节点,请使用此参数为 StackRox Scanner 指定污点容限键、值和效果。此参数主要用于基础架构节点。

scanner.autoscaling.disable

使用 true 为 StackRox Scanner 部署禁用自动扩展。禁用自动扩展时,minReplicasmaxReplicas 参数没有任何效果。

scanner.autoscaling.minReplicas

自动扩展的最小副本数。

scanner.autoscaling.maxReplicas

自动扩展的最大副本数。

scanner.resources.requests.memory

StackRox Scanner 的内存请求。

scanner.resources.requests.cpu

StackRox Scanner 的 CPU 请求。

scanner.resources.limits.memory

StackRox Scanner 的内存限值。

scanner.resources.limits.cpu

StackRox Scanner 的 CPU 限制。

scanner.dbResources.requests.memory

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

scanner.dbResources.requests.cpu

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

scanner.dbResources.limits.memory

StackRox Scanner 数据库部署的内存限值。

scanner.dbResources.limits.cpu

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

scanner.image.registry

StackRox Scanner 镜像的自定义 registry。

scanner.image.name

覆盖默认 StackRox Scanner 镜像名称(扫描程序)的自定义镜像名称。

scanner.dbImage.registry

StackRox Scanner DB 镜像的自定义 registry。

scanner.dbImage.name

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

scanner.dbNodeSelector

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

scanner.dbTolerations

如果节点选择器选择污点节点,请使用此参数为 StackRox Scanner DB 指定污点容限键、值和效果。此参数主要用于基础架构节点。

4.1.2.2.2.8. scanner V4

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

参数描述

scannerV4.db.persistence.persistentVolumeClaim.claimName

为 Scanner V4 管理持久性数据的 PVC 名称。如果没有具有指定名称的 PVC,则会创建它。如果没有设置,则默认值为 scanner-v4-db。要防止数据丢失,当删除 Central 时,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 配置日志级别。红帽建议您不要更改默认的日志级别值(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

红帽建议您不要更改默认的日志级别值(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 DB 仅调度到具有指定标签的节点。

scannerV4.db.tolerations

如果节点选择器选择污点节点,请使用此参数为 Scanner V4 DB 指定污点容限键、值和效果。此参数主要用于基础架构节点。

scannerV4.db.image.registry

Scanner V4 DB 镜像的自定义 registry。

scannerV4.db.image.name

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

scannerV4.image.registry

Scanner V4 镜像的自定义 registry。

scannerV4.image.name

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

4.1.2.2.2.9. 自定义

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

参数Description

customize.labels

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

customize.annotations

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

customize.podLabels

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

customize.podAnnotations

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

customize.envVars

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

customize.central.labels

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

customize.central.annotations

附加到中央创建的所有对象的自定义注解。

customize.central.podLabels

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

customize.central.podAnnotations

附加到所有中央部署的自定义注解。

customize.central.envVars

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

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 作为参数,并设置它们的值。
4.1.2.2.2.10. 高级自定义
重要

本节中指定的参数仅用于信息。红帽不支持带有修改的命名空间和发行版本名称的 RHACS 实例。

参数Description

allowNonstandardNamespace

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

allowNonstandardReleaseName

使用 true 使用默认 stackrox-central-services 以外的发行版本名称部署 RHACS。

4.1.2.2.3. 声明性配置值

要使用声明性配置,您必须创建一个 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 服务 Helm chart,如"安装 central-services Helm Chart"中所述,引用 declarative-config-values.yaml 文件。
4.1.2.2.4. 安装 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 中挂载声明性配置文件。

4.1.2.3. 在部署 central-services Helm Chart 后更改配置选项

在部署 central-services Helm Chart 后,您可以对任何配置选项进行更改。

当使用 helm upgrade 命令进行更改时,会应用以下准则和要求:

  • 您还可以使用 --set--set-file 参数指定配置值。但是,这些选项不会被保存,每当您进行更改时,您必须手动指定所有选项。
  • 有些更改(如启用 Scanner V4 )需要为组件发布新证书。因此,在进行这些更改时,您必须提供 CA。

    • 如果 CA 在初始安装过程中由 Helm Chart 生成,则必须从集群中检索这些值,并将其提供给 helm upgrade 命令。central-services Helm Chart 的安装后备注包括用于检索自动生成的值的命令。
    • 如果 CA 在 Helm Chart 之外生成,并在安装 central-services Chart 的过程中提供,那么您必须在使用 helm upgrade 命令时再次执行该操作,例如,使用带有 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 参数。

4.1.3. 使用 roxctl CLI 安装 Central

警告

对于生产环境,红帽建议使用 Operator 或 Helm chart 安装 RHACS。除非有需要使用此方法的特定安装需要,否则不要使用 roxctl 安装方法。

4.1.3.1. 安装 roxctl CLI

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

4.1.3.1.1. 在 Linux 中安装 roxctl CLI

您可以按照以下流程在 Linux 上安装 roxctl CLI 二进制文件。

注意

用于 Linux 的 roxctl CLI 可用于 amd 64、rm64、 ppc64les390x 架构。

流程

  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.0/bin/Linux/roxctl${arch}"
  3. 使 roxctl 二进制文件可执行:

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

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

    $ echo $PATH

验证

  • 验证您已安装的 roxctl 版本:

    $ roxctl version
4.1.3.1.2. 在 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.0/bin/Darwin/roxctl${arch}"
  3. 从二进制文件中删除所有扩展属性:

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

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

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

    $ echo $PATH

验证

  • 验证您已安装的 roxctl 版本:

    $ roxctl version
4.1.3.1.3. 在 Windows 上安装 roxctl CLI

您可以按照以下流程在 Windows 上安装 roxctl CLI 二进制文件。

注意

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

流程

  • 下载 roxctl CLI:

    $ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.6.0/bin/Windows/roxctl.exe

验证

  • 验证您已安装的 roxctl 版本:

    $ roxctl version

4.1.3.2. 使用交互式安装程序

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

流程

  1. 运行交互式 install 命令:

    $ roxctl central generate interactive
    重要

    使用 roxctl CLI 安装 RHACS 会创建 PodSecurityPolicy (PSP)对象,以便向后兼容。如果要在 Kubernetes 版本 1.25 及更新版本上,或在 OpenShift Container Platform version 4.12 和更新版本上安装 RHACS,则必须禁用 PSP 对象的创建。要做到这一点,对于 roxctl central generateroxctl sensor generate 命令,将 --enable-pod-security-policies 选项设置为 false

  2. Enter 接受提示的默认值或根据需要输入自定义值。以下示例显示了交互式安装程序提示:

    Enter path to the backup bundle from which to restore keys and certificates (optional):
    Enter read templates from local filesystem (default: "false"):
    Enter path to helm templates on your local filesystem (default: "/path"):
    Enter PEM cert bundle file (optional): 1
    Enter Create PodSecurityPolicy resources (for pre-v1.25 Kubernetes) (default: "true"): 2
    Enter administrator password (default: autogenerated):
    Enter orchestrator (k8s, openshift):
    Enter default container images settings (development_build, stackrox.io, rhacs, opensource); it controls repositories from where to download the images, image names and tags format (default: "development_build"):
    Enter the directory to output the deployment bundle to (default: "central-bundle"):
    Enter the OpenShift major version (3 or 4) to deploy on (default: "0"):
    Enter whether to enable telemetry (default: "false"):
    Enter central-db image to use (if unset, a default will be used according to --image-defaults):
    Enter Istio version when deploying into an Istio-enabled cluster (leave empty when not running Istio) (optional):
    Enter the method of exposing Central (route, lb, np, none) (default: "none"): 3
    Enter main image to use (if unset, a default will be used according to --image-defaults):
    Enter whether to run StackRox in offline mode, which avoids reaching out to the Internet (default: "false"):
    Enter list of secrets to add as declarative configuration mounts in central (default: "[]"): 4
    Enter list of config maps to add as declarative configuration mounts in central (default: "[]"): 5
    Enter the deployment tool to use (kubectl, helm, helm-values) (default: "kubectl"):
    Enter scanner-db image to use (if unset, a default will be used according to --image-defaults):
    Enter scanner image to use (if unset, a default will be used according to --image-defaults):
    Enter Central volume type (hostpath, pvc): 6
    Enter external volume name for Central (default: "stackrox-db"):
    Enter external volume size in Gi for Central (default: "100"):
    Enter storage class name for Central (optional if you have a default StorageClass configured):
    Enter external volume name for Central DB (default: "central-db"):
    Enter external volume size in Gi for Central DB (default: "100"):
    Enter storage class name for Central DB (optional if you have a default StorageClass configured):
    1
    如果要添加自定义 TLS 证书,请提供 PEM 编码证书的文件路径。当您指定自定义证书时,交互式安装程序还会提示您为您要使用的自定义证书提供 PEM 私钥。
    2
    如果您正在运行 Kubernetes 版本 1.25 或更高版本,请将此值设置为 false
    3
    要使用 RHACS 门户,您必须使用路由(负载均衡器或节点端口)公开中。
    4
    有关对身份验证和授权使用声明配置的更多信息,请参阅 Red Hat Advanced Cluster Security for Kubernetes 中的"管理 RBAC"中的"Declarative configuration for authentication and authorization resources"。
    5
    有关对身份验证和授权使用声明配置的更多信息,请参阅 Red Hat Advanced Cluster Security for Kubernetes 中的"管理 RBAC"中的"Declarative configuration for authentication and authorization resources"。
    6
    如果您计划在带有 hostPath 卷的 OpenShift Container Platform 上安装 Red Hat Advanced Cluster Security for Kubernetes,您必须修改 SELinux 策略。
    警告

    在 OpenShift Container Platform 中,对于 hostPath 卷,您必须修改 SELinux 策略以允许访问主机和容器共享的目录。这是因为 SELinux 默认阻止目录共享。要修改 SELinux 策略,请运行以下命令:

    $ sudo chcon -Rt svirt_sandbox_file_t <full_volume_path>

    但是,红帽不推荐修改 SELinux 策略,而是在 OpenShift Container Platform 上安装时使用 PVC。

在完成时,安装程序会创建一个名为 central-bundle 的文件夹,其中包含用于部署 Central 所需的 YAML 清单和脚本。另外,它显示了您需要运行的脚本的屏幕说明,以部署其他可信证书颁发机构、中部和扫描器,以及登录 RHACS 门户的身份验证说明(如果您回答提示时未提供密码)。

4.1.3.3. 运行中央安装脚本

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

流程

  1. 运行 setup.sh 脚本来配置镜像 registry 访问:

    $ ./central-bundle/central/scripts/setup.sh
  2. 要将策略启用为代码功能(技术预览),请手动应用位于 helm/chart/crds/ config.stackrox.io _securitypolicies.yaml 的 .zip 文件中的 config.stackrox.io CRD。

    重要

    作为代码的策略只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

    有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

    要应用 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 地址。

    公开方法命令地址Example

    Route(路由)

    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

    Load Balancer

    oc -n stackrox get svc central-loadbalancer

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

    https://192.0.2.0

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

    https://localhost:8443

    https://localhost:8443

注意

如果您在互动安装过程中选择了自动生成的密码,您可以运行以下命令将其记录到 Central:

$ cat central-bundle/password
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.