×

安全集群服务配置选项

创建 Central 实例时,Operator 将列出以下 `Central` 自定义资源的配置选项。

必需的配置设置

参数 描述

centralEndpoint

要连接到的 Central 实例的端点,包括端口号。如果使用非 gRPC 兼容的负载均衡器,请使用 WebSocket 协议,并在端点地址前添加 `wss://`。如果未为此参数指定值,则 Sensor 会尝试连接到在同一命名空间中运行的 Central 实例。

clusterName

此集群的唯一名称,显示在 RHACS 门户中。使用此参数设置名称后,您将无法再次更改它。要更改名称,必须删除并重新创建对象。

准入控制器设置

参数 描述

admissionControl.listenOnCreates

指定true启用对对象创建的预防性策略执行。默认值为true

admissionControl.listenOnEvents

指定true启用对Kubernetes事件(例如port-forwardexec事件)的监控和执行。它用于通过Kubernetes API控制对资源的访问。默认值为true

admissionControl.listenOnUpdates

指定true启用对对象更新的预防性策略执行。除非Listen On Creates也设置为true,否则它不会有任何效果。默认值为true

admissionControl.nodeSelector

如果您希望此组件仅在特定节点上运行,则可以使用此参数配置节点选择器。

admissionControl.tolerations

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

admissionControl.hostAliases

使用此参数将主机和IP地址注入Pod的主机文件中。

admissionControl.resources.limits

使用此参数覆盖准入控制器的默认资源限制。

admissionControl.resources.requests

使用此参数覆盖准入控制器的默认资源请求。

admissionControl.bypass

使用以下值之一配置旁路准入控制器执行

  • BreakGlassAnnotation 通过admission.stackrox.io/break-glass批注启用旁路准入控制器。

  • Disabled 禁用为安全集群旁路准入控制器执行的能力。

默认值为BreakGlassAnnotation

admissionControl.contactImageScanners

使用以下值之一指定准入控制器是否必须连接到镜像扫描器

  • 如果缺少镜像的扫描结果,则使用ScanIfMissing

  • DoNotScanInline 在处理准入请求时跳过扫描镜像。

默认值为DoNotScanInline

admissionControl.timeoutSeconds

使用此参数指定RHACS在将准入审查标记为故障打开之前必须等待的最长时间(秒)。如果准入Webhook在超时结束之前未收到其请求的信息,则它会失败,但在故障打开状态下,它仍然允许操作成功。例如,即使扫描超时并且RHACS无法确定部署是否违反了策略,准入控制器仍允许创建部署。从4.5版本开始,Red Hat将RHACS准入控制器Webhook的默认超时设置从20秒减少到10秒,从而在ValidatingWebhookConfiguration中有效超时时间为12秒。此更改不会对OpenShift Container Platform用户产生负面影响,因为OpenShift Container Platform将超时限制为13秒。

扫描器配置

使用扫描器配置设置修改集成OpenShift镜像注册表的本地集群扫描器。

参数 描述

scanner.analyzer.nodeSelector

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

scanner.analyzer.tolerations

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

scanner.analyzer.hostAliases

使用此参数将主机和IP地址注入Pod的主机文件中。

scanner.analyzer.resources.requests.memory

扫描器容器的内存请求。使用此参数覆盖默认值。

scanner.analyzer.resources.requests.cpu

扫描器容器的CPU请求。使用此参数覆盖默认值。

scanner.analyzer.resources.limits.memory

扫描器容器的内存限制。使用此参数覆盖默认值。

scanner.analyzer.resources.limits.cpu

扫描器容器的CPU限制。使用此参数覆盖默认值。

scanner.analyzer.scaling.autoscaling

如果将此选项设置为Disabled,Red Hat Advanced Cluster Security for Kubernetes将禁用扫描器部署上的自动缩放。默认值为Enabled

scanner.analyzer.scaling.minReplicas

自动缩放的最小副本数。默认值为2

scanner.analyzer.scaling.maxReplicas

自动缩放的最大副本数。默认值为5

scanner.analyzer.scaling.replicas

默认副本数。默认值为3

scanner.analyzer.tolerations

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

scanner.db.nodeSelector

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

scanner.db.hostAliases

使用此参数将主机和IP地址注入Pod的主机文件中。

scanner.db.resources.requests.memory

扫描器数据库容器的内存请求。使用此参数覆盖默认值。

scanner.db.resources.requests.cpu

扫描器数据库容器的CPU请求。使用此参数覆盖默认值。

scanner.db.resources.limits.memory

扫描器数据库容器的内存限制。使用此参数覆盖默认值。

scanner.db.resources.limits.cpu

扫描器数据库容器的CPU限制。使用此参数覆盖默认值。

scanner.db.tolerations

如果节点选择器选择了受污染的节点,请使用此参数为扫描器数据库指定污点容忍键、值和效果。

scanner.scannerComponent

如果将此选项设置为Disabled,Red Hat Advanced Cluster Security for Kubernetes将不会部署扫描器部署。请勿在OpenShift Container Platform集群上禁用扫描器。默认值为AutoSense

scannerV4.db.nodeSelector

如果您希望此组件仅在特定节点上运行,则可以使用此参数配置节点选择器。

scannerV4.db.tolerations

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

scannerV4.db.resources.limits

使用此参数覆盖Scanner V4 DB的默认资源限制。

scannerV4.db.resources.requests

使用此参数覆盖Scanner V4 DB的默认资源请求。

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.indexer.nodeSelector

如果您希望此组件仅在特定节点上运行,则可以使用此参数配置节点选择器。

scannerV4.indexer.tolerations

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

scannerV4.indexer.resources.limits

使用此参数覆盖Scanner V4 Indexer的默认资源限制。

scannerV4.indexer.resources.requests

使用此参数覆盖Scanner V4 Indexer的默认资源请求。

scannerV4.indexer.scaling.autoScaling

启用后,Scanner V4 Indexer副本的数量将根据负载动态管理,在指定的限制内。

scannerV4.indexer.scaling.maxReplicas

指定在Scanner V4 Indexer自动缩放配置中使用的最大副本数。

scannerV4.indexer.scaling.minReplicas

指定在Scanner V4 Indexer自动缩放配置中使用的最小副本数。

scannerV4.indexer.scaling.replicas

当禁用 Scanner V4 Indexer 的自动缩放功能时,副本数量始终配置为与该值匹配。

scannerV4.monitoring.exposeEndpoint

配置 Scanner V4 的监控端点。监控端点允许其他服务以 Prometheus 兼容的格式收集 Scanner V4 的指标。使用Enabled来公开监控端点。启用监控后,RHACS 将创建一个新的服务monitoring,端口为 9090,以及一个允许入站连接到该端口的网络策略。默认情况下,这是禁用的。

scannerV4.scannerComponent

启用 Scanner V4。有效值为:

* Default:Scanner V4 未启用且未部署。

* AutoSense:如果 Central 存在于同一个命名空间中,则不会部署 Scanner V4,而是使用与 Central 一起安装的现有 Scanner V4。如果此命名空间中没有 Central,则会部署 Scanner V4。

* Disabled:不部署 Scanner V4。

镜像配置

当使用自定义注册表时,请使用镜像配置设置。

参数 描述

imagePullSecrets.name

要考虑用于拉取镜像的其他镜像拉取密钥。

每个节点设置

每个节点设置定义在集群中每个节点上运行的组件的配置设置,以保护集群安全。这些组件包括 Collector 和 Compliance。

参数 描述

perNode.collector.collection

系统级数据收集的方法。默认值为CORE_BPF。Red Hat 建议使用CORE_BPF进行数据收集。如果选择NoCollection,Collector 不会报告有关网络活动和进程执行的任何信息。可用选项为NoCollectionCORE_BPFEBPF选项仅适用于 4.4 及更早版本。

perNode.collector.imageFlavor

要用于 Collector 的镜像类型。您可以将其指定为RegularSlim。此值已弃用。RegularSlim镜像相同。

perNode.collector.resources.limits

使用此参数覆盖 Collector 的默认资源限制。

perNode.collector.resources.requests

使用此参数覆盖 Collector 的默认资源请求。

perNode.compliance.resources.requests

使用此参数覆盖 Compliance 的默认资源请求。

perNode.compliance.resources.limits

使用此参数覆盖 Compliance 的默认资源限制。

perNode.taintToleration

为了确保对集群活动的全面监控,Red Hat Advanced Cluster Security for Kubernetes 默认情况下会在集群中的每个节点(包括被污染的节点)上运行服务。如果您不希望出现此行为,请为此参数指定AvoidTaints。默认值为TolerateTaints

Sensor 配置

此配置定义在集群中的一个节点上运行的 Sensor 组件的设置。

参数 描述

sensor.nodeSelector

如果希望 Sensor 仅在特定节点上运行,则可以配置节点选择器。

sensor.tolerations

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

sensor.hostAliases

使用此参数将主机和IP地址注入Pod的主机文件中。

sensor.resources.limits

使用此参数覆盖 Sensor 的默认资源限制。

sensor.resources.requests

使用此参数覆盖 Sensor 的默认资源请求。

常规和杂项设置

参数 描述

customize.annotations

允许为 Central 部署指定自定义注释。

customize.envVars

高级设置,用于配置环境变量。

egress.connectivityPolicy

配置 Red Hat Advanced Cluster Security for Kubernetes 是否应在线模式或离线模式下运行。在离线模式下,漏洞定义和内核模块的自动更新将被禁用。

misc.createSCCs

将其设置为true以创建 Central 的 SCC。这可能会在某些环境中导致问题。

network.policies

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

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

overlays

请参阅“使用带有覆盖层的 Operator 自定义安装”。

tls.additionalCAs

安全集群的其他受信任 CA 证书。这些证书用于与使用私有证书颁发机构的服务集成。

使用带有覆盖层的 Operator 自定义安装

了解如何使用 Operator 方法和覆盖层定制 RHACS 的安装。

覆盖层

CentralSecuredCluster自定义资源未将某些低级配置选项作为参数公开时,可以使用.spec.overlays字段进行调整。使用此字段可以修改这些自定义资源生成的 Kubernetes 资源。

.spec.overlays字段包含一系列补丁,按其列出的顺序应用。这些补丁在部署到集群之前由 Operator 在 Kubernetes 资源上处理。

CentralSecuredCluster中的.spec.overlays字段允许用户以任意方式修改低级 Kubernetes 资源。仅当所需的自定义项无法通过SecuredClusterCentral自定义资源获得时,才使用此功能。

.spec.overlays功能的支持有限,主要是因为它能够对 Kubernetes 资源进行复杂且高度具体的修改,而这些修改在不同的实现之间可能差异很大。这种级别的自定义引入了超出标准使用场景的复杂性,使得提供广泛的支持具有挑战性。每次修改都可能是唯一的,可能会以不可预测的方式与 Kubernetes 系统交互,跨越产品的不同版本和配置。这种可变性意味着,故障排除和保证这些自定义的稳定性需要特定于每个人的设置的专业知识和理解。因此,虽然此功能能够定制 Kubernetes 资源以满足精确的需求,但也必须承担更大的责任以确保配置的兼容性和稳定性,尤其是在升级或更改底层产品期间。

以下示例显示了覆盖层的结构

overlays:
- apiVersion: v1     (1)
  kind: ConfigMap    (2)
  name: my-configmap (3)
  patches:
    - path: .data    (4)
      value: |       (5)
        key1: data2
        key2: data2
1 目标 Kubernetes 资源 ApiVersion,例如apps/v1v1networking.k8s.io/v1
2 资源类型(例如,Deployment、ConfigMap、NetworkPolicy)
3 资源的名称,例如my-configmap
4 指向字段的 JSONPath 表达式,例如spec.template.spec.containers[name:central].env[-1]
5 新字段值的 YAML 字符串

添加覆盖层

对于自定义项,您可以将覆盖层添加到CentralSecuredCluster自定义资源。使用 OpenShift CLI(oc)或 OpenShift Container Platform Web 控制台进行修改。

如果覆盖层未按预期生效,请检查 RHACS Operator 日志中是否存在任何语法错误或记录的问题。

覆盖层示例

为中心 ServiceAccount 指定 EKS Pod 角色 ARN

central ServiceAccount 添加 Amazon Elastic Kubernetes Service (EKS) Pod 角色 Amazon 资源名称 (ARN) 注解,如下例所示

apiVersion: platform.stackrox.io
kind: Central
metadata:
  name: central
spec:
  # ...
  overlays:
  - apiVersion: v1
    kind: ServiceAccount
    name: central
    patches:
      - path: metadata.annotations.eks\.amazonaws\.com/role-arn
        value: "\"arn:aws:iam:1234:role\""

向中心部署注入环境变量

central 部署注入环境变量,如下例所示

apiVersion: platform.stackrox.io
kind: Central
metadata:
  name: central
spec:
  # ...
  overlays:
  - apiVersion: apps/v1
    kind: Deployment
    name: central
    patches:
    - path: spec.template.spec.containers[name:central].env[-1]
      value: |
        name: MY_ENV_VAR
        value: value

使用入口规则扩展网络策略

allow-ext-to-central 网络策略添加 999 端口流量的入口规则,如下例所示

apiVersion: platform.stackrox.io
kind: Central
metadata:
  name: central
spec:
    # ...
    overlays:
    - apiVersion: networking.k8s.io/v1
      kind: NetworkPolicy
      name: allow-ext-to-central
      patches:
        - path: spec.ingress[-1]
          value: |
            ports:
            - port: 999
              protocol: TCP

修改 ConfigMap 数据

修改central-endpoints ConfigMap 数据,如下例所示

apiVersion: platform.stackrox.io
kind: Central
metadata:
  name: central
spec:
    # ...
    overlays:
    - apiVersion: v1
      kind: ConfigMap
      name: central-endpoints
      patches:
      - path: data
        value: |
          endpoints.yaml: |
            disableDefault: false

Central 部署添加容器

central 部署添加一个新容器,如下例所示:

apiVersion: platform.stackrox.io
kind: Central
metadata:
  name: central
spec:
    # ...
    overlays:
    - apiVersion: apps/v1
      kind: Deployment
      name: central
      patches:
        - path: spec.template.spec.containers[-1]
      value: |
        name: nginx
        image: nginx
        ports:
          - containerPort: 8000
            name: http
            protocol: TCP