4.5. 可选 - 使用 Operator 为 RHACS 配置安全集群配置选项


本主题提供有关您可以使用 Operator 进行的可选配置设置的信息。

4.5.1. 安全的集群配置选项

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

4.5.1.1. 所需的配置设置

参数Description

centralEndpoint

用于连接的 Central 实例的端点,包括端口号。如果使用一个支持非 gRPC 的负载均衡器,请使用带有 ws:// 的端点地址的 WebSocket 协议。如果没有为此参数指定值,Sensor 会尝试连接到在同一命名空间中运行的 Central 实例。

clusterName

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

4.5.1.2. 准入控制器设置

参数Description

admissionControl.listenOnCreates

指定 true 以启用创建对象的防止策略强制。默认值为 false

admissionControl.listenOnEvents

指定 true 来为 Kubernetes 事件启用监控和强制实施,如 port-forwardexec 事件。它用于通过 Kubernetes API 控制资源访问。默认值为 true

admissionControl.listenOnUpdates

指定 true 来为对象更新启用防止策略强制。除非将 Listen On Creates 设为 true, 否则它不会生效。默认值为 false

admissionControl.nodeSelector

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

admissionControl.tolerations

如果节点选择器选择污点节点,请使用此参数指定污点容限键、值以及 Admission Control 的效果。此参数主要用于基础架构节点。

admissionControl.resources.limits

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

admissionControl.resources.requests

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

admissionControl.bypass

使用以下值之一配置绕过准入控制器强制:

  • BreakGlassAnnotation 允许通过 admission.stackrox.io/break-glass 注解绕过准入控制器。
  • Disabled 禁用安全集群绕过准入控制器强制实施的功能。

默认值为 BreakGlassAnnotation

admissionControl.contactImageScanners

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

  • 如果缺少镜像的扫描结果,ScanIfMissing
  • DoNotScanInline 用来在处理准入请求时跳过扫描镜像。

默认值为 DoNotScanInline

admissionControl.timeoutSeconds

在将 Red Hat Advanced Cluster Security for Kubernetes 标记为失败前,使用这个参数指定 Red Hat Advanced Cluster Security for Kubernetes 的最大秒数。

4.5.1.3. 扫描程序配置

使用 Scanner 配置设置修改 OpenShift Container Registry(OCR)的本地集群扫描程序。

参数Description

scanner.analyzer.nodeSelector

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

scanner.analyzer.resources.requests.memory

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

scanner.analyzer.resources.requests.cpu

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

scanner.analyzer.resources.limits.memory

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

scanner.analyzer.resources.limits.cpu

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

scanner.scaling.autoscaling

如果将此选项设置为 Disabled,Red Hat Advanced Cluster Security for Kubernetes 会禁用 Scanner 部署的自动扩展。默认值为 Enabled

scanner.scaling.minReplicas

自动扩展的最小副本数。默认值为 2

scanner.scaling.maxReplicas

自动扩展的最大副本数。默认值为 5

scanner.scaling.replicas

默认副本数。默认值为 3

scanner.Tolerations

如果节点选择器选择污点节点,请使用此参数为 Scanner 指定污点容限键、值和效果。

scanner.db.nodeSelector

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

scanner.db.resources.requests.memory

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

scanner.db.resources.requests.cpu

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

scanner.db.resources.limits.memory

Scanner DB 容器的内存限值。使用此参数覆盖默认值。

scanner.db.resources.limits.cpu

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

scanner.db.tolerations

如果节点选择器选择污点节点,请使用此参数为 Scanner DB 指定污点容限键、值和效果。

scanner.scannerComponent

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

4.5.1.4. 镜像配置

在使用自定义 registry 时使用镜像配置设置。

参数Description

imagePullSecrets.name

拉取镜像时考虑的其他镜像 pull secret。

4.5.1.5. 针对每个节点的设置

针对每个节点的设置为在集群中的节点上运行的组件定义了一组配置设置,用于保护集群的安全。这些组件是 Collector 和 Compliance。

参数Description

perNode.collector.collection

系统级数据收集的方法。默认值为 EBPF。红帽建议将 EBPF 用于数据收集。如果您选择 NoCollection,Collector 不会报告任何有关网络活动的信息,以及进程执行。可用选项包括 NoCollectionEBPFCORE_BPF

perNode.collector.imageFlavor

用于 Collector 的镜像类型。您可以将它指定为 RegularSlim常规 镜像更大,但包含大多数内核的内核模块。如果使用 Slim 镜像类型,您必须确保您的 Central 实例连接到互联网,或定期接收 Collector 支持软件包更新。默认值为 Slim

perNode.collector.resources.limits

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

perNode.collector.resources.requests

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

perNode.compliance.resources.requests

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

perNode.compliance.resources.limits

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

4.5.1.6. 污点容限设置

参数Description

taintToleration

为确保对集群进行全面监控,Red Hat Advanced Cluster Security for Kubernetes 在每个节点上运行服务,包括污点节点。如果您不希望此行为,将此参数设置为 AvoidTaints

4.5.1.7. Sensor 配置

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

参数Description

sensor.nodeSelector

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

sensor.tolerations

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

sensor.resources.limits

使用这个参数覆盖 Sensor 的默认资源限值。

sensor.resources.requests

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

4.5.1.8. 常规设置和各种设置

参数Description

tls.additionalCAs

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

misc.createSCCs

把它设置为 true,以便为 Central 创建 SCC。它可能会在某些环境中出现问题。

customize.annotations

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

customize.envVars

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

egress.connectivityPolicy

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

overlays

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

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

了解如何通过 overlays 使用 Operator 方法定制 RHACS 安装。

4.5.2.1. overlays

CentralSecuredCluster 自定义资源没有以参数的形式公开某些低级别配置选项时,您可以使用 .spec.overlays 字段进行调整。使用此字段来修改这些自定义资源生成的 Kubernetes 资源。

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

警告

CentralSecuredCluster 中的 .spec.overlays 字段允许用户以任意方式修改低级别 Kubernetes 资源。只有在所需的自定义无法通过 SecuredClusterCentral 自定义资源提供时,才使用此功能。

.spec.overlays 功能的支持主要是有限的,因为它授予了对 Kubernetes 资源进行 intricate 和高度具体的修改的功能,这可能因一个实施而异。这种自定义级别引入了一个超过标准使用场景的复杂性,这使其难以提供广泛的支持。每个修改都是唯一的,可能在产品的不同版本和配置中以无法预计的方式与 Kubernetes 系统交互。这种差异意味着排除并保证这些自定义的稳定性需要一定程度的专业知识和理解。因此,虽然此功能支持定制 Kubernetes 资源来满足精确需求,但还必须考虑确保配置的兼容性和稳定性,特别是在升级或更改底层产品期间。

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

overlays:
- apiVersion: v1     1
  kind: ConfigMap    2
  name: my-configmap 3
  patches:
    - path: .data    4
      value: |       5
        key1: data2
        key2: data2
1
targeted Kubernetes resource ApiVersion,如 apps/v1,v1,networking.k8s.io/v1
2
资源类型(如 Deployment、ConfigMap、NetworkPolicy)
3
资源的名称,如 my-configmap
4
字段的 jsonpath 表达式,如 spec.template.spec.containers[name:central].env[-1]
5
新字段值的 YAML 字符串
4.5.2.1.1. 添加覆盖

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

如果覆盖没有按预期生效,请检查 RHACS Operator 日志是否有语法错误或记录的问题。

4.5.2.2. 覆盖示例

4.5.2.2.1. 为 Central ServiceAccount 指定 EKS pod 角色 ARN

中央 ServiceAccount 中添加 Amazon Elastic Kubernetes Service (EKS) pod 角色 Amazon Resource Name (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\""
4.5.2.2.2. 将环境变量注入中央部署

将环境变量注入到 中央 部署中,如下例所示:

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
4.5.2.2.3. 使用入口规则扩展网络策略

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
4.5.2.2.4. 修改 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
4.5.2.2.5. 将容器添加到 中央 部署中

中央 部署中添加新容器,如下例所示:

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
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.