×

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

您可以使用以下方法之一安装Central

  • 使用Helm图表安装(Install using Helm charts)

  • 使用roxctl CLI安装(除非您有特定安装需求需要使用此方法,否则请勿使用此方法)(Install using the roxctl CLI (do not use this method unless you have a specific installation need that requires using it))

使用Helm图表安装Central

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

使用Helm图表无自定义安装Central

您可以在Red Hat OpenShift集群上安装RHACS,无需任何自定义。您必须添加Helm图表仓库并安装central-services Helm图表以安装Central和Scanner的集中式组件。

添加Helm图表仓库

步骤(Procedure)
  • 添加RHACS图表仓库。(Add the RHACS charts repository.)

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

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

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

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

  • 安全集群服务 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)。

先决条件
步骤(Procedure)
  • 运行以下命令安装中心服务并使用路由公开中心服务

    $ 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 身份验证的拉取密钥的密码。
  • 或者,运行以下命令安装中心服务并使用负载均衡器公开中心服务

    $ 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 身份验证的拉取密钥的密码。
  • 或者,运行以下命令安装中心服务并使用端口转发公开中心服务

    $ 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 installhelm 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.valuecentral.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.dbServiceTLS.key

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

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

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

central.db.hbaConfig

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

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 的内存限制。

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 镜像的自定义注册表。

scanner.image.name

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

scanner.dbImage.registry

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

scanner.dbImage.name

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

scanner.dbNodeSelector

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

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 数据库创建的所有对象的自定义标签。

customize.scanner-db.annotations

用于附加到 Scanner 数据库创建的所有对象的自定义注释。

customize.scanner-db.podLabels

用于附加到所有 Scanner 数据库部署的自定义标签。

customize.scanner-db.podAnnotations

用于附加到所有 Scanner 数据库部署的自定义注释。

customize.scanner-db.envVars

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

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 数据库创建的所有对象及其所属 Pod 的自定义标签。

customize.scanner-v4-db.annotations

用于附加到 Scanner V4 数据库创建的所有对象及其所属 Pod 的自定义注释。

customize.scanner-v4-db.podLabels

用于附加到 Scanner V4 数据库创建的所有对象及其所属 Pod 的自定义标签。

customize.scanner-v4-db.podAnnotations

用于附加到 Scanner V4 数据库创建的所有对象及其所属 Pod 的自定义注释。

customize.scanner-4v-db.envVars

所有 Scanner V4 数据库容器及其所属 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 安装。

步骤(Procedure)
  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)。

步骤(Procedure)
  • 运行以下命令

    $ 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 生成的,则必须从集群中自动检索这些生成的数值,并将其提供给 helm upgrade 命令。central-services Helm chart 的安装后说明包括一个用于检索自动生成的数值的命令。

    • 如果 CA 是在 Helm chart 之外生成的并在安装 central-services chart 期间提供的,则在使用 helm upgrade 命令时必须再次执行此操作,例如,通过使用 helm upgrade 命令的 --reuse-values 标志。

步骤(Procedure)
  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 架构。

步骤(Procedure)
  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 架构。

步骤(Procedure)
  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 架构。

步骤(Procedure)
  • 下载 roxctl CLI

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

    $ roxctl version

使用交互式安装程序

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

步骤(Procedure)
  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。

步骤(Procedure)
  1. 运行 setup.sh 脚本配置镜像仓库访问。

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

    策略即代码仅是技术预览版功能。技术预览版功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能无法完全发挥功能。Red Hat 不建议在生产环境中使用它们。这些功能可让您抢先体验即将推出的产品功能,从而能够在开发过程中测试功能并提供反馈。

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

    要应用 CRD,请运行以下命令

    $ kubectl create -f helm/chart/crds/config.stackrox.io_securitypolicies.yaml
  3. 创建必要的资源

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

    $ kubectl 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

    http://127.0.0.1:8443

    http://127.0.0.1:8443

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

$ cat central-bundle/password