搜索

2.6. 支持的策略

download PDF

查看支持的策略示例,了解如何在 Red Hat Advanced Cluster Management for Kubernetes 中创建和管理策略时如何在 hub 集群上定义规则、流程和控制。

2.6.1. 配置策略示例策略表

查看以下示例配置策略:

表 2.6. 配置策略表列表
策略示例描述

命名空间策略

确保环境与命名空间一致。请参阅 Kubernetes 命名空间文档

Pod 策略

确保集群工作负载配置。请参阅 Kubernetes Pod 文档

内存用量策略

使用限制范围限制工作负载资源使用情况。请参阅限制范围文档

Pod 安全策略(已弃用)

确保工作负载安全性一致。请参阅 Kubernetes Pod 安全策略文档

角色策略
角色绑定策略

使用角色和角色绑定管理角色绑定。请参阅 Kubernetes RBAC 文档

安全内容约束 (SCC) 策略

使用安全性上下文约束管理工作负载权限。请参阅 OpenShift Container Platform 文档中的管理安全性上下文约束文档

ETCD 加密策略

确保通过 etcd 加密的数据安全性。请参阅 OpenShift Container Platform 文档中的加密 etcd 数据

Compliance operator 策略

部署 Compliance Operator,以利用 OpenSCAP 扫描并强制实施集群的合规性状态。请参阅 OpenShift Container Platform 文档中的了解 Compliance Operator 部分。

Compliance operator E8 扫描

应用 Compliance operator 策略后,部署 Essential 8 (E8) 扫描来检查 E8 安全配置集的合规性。请参阅 OpenShift Container Platform 文档中的了解 Compliance Operator 部分。

Compliance operator CIS 扫描

应用 Compliance operator 策略后,部署互联网安全中心 (CIS) 扫描,以检查与 CIS 安全配置集的合规性。请参阅 OpenShift Container Platform 文档中的了解 Compliance Operator 部分。

镜像漏洞策略

部署 Container Security Operator,并检测集群中运行的 pod 中的已知镜像漏洞。请参阅 Container Security Operator GitHub 仓库。

Gatekeeper operator 部署

Gatekeeper 是一个准入 Webhook,它强制执行基于自定义资源定义的策略,由 Open Policy Agent (OPA)策略引擎运行。请参阅 Gatekeeper 文档。

Gatekeeper 合规策略

将 Gatekeeper 部署到集群后,部署此示例 Gatekeeper 策略以确保在集群中创建的命名空间标记为指定。

Red Hat OpenShift Platform Plus 策略集

Red Hat OpenShift Platform Plus 是混合云套件,可安全地为多个基础架构构建、部署、运行和管理应用程序。您可以使用通过 Red Hat Advanced Cluster Management 应用程序提供的 PolicySets 将 Red Hat OpenShift Platform Plus 部署到受管集群。有关 OpenShift Platform Plus 的详情,请查看 OpenShift Platform Plus 文档。

Red Hat OpenShift Container Platform 4.x 还支持 Red Hat Advanced Cluster Management 配置策略。

查看以下策略文档以了解如何应用策略:

更多主题,请参阅监管

2.6.2. 命名空间策略

Kubernetes 配置策略控制器负责监控命名空间策略的状态。应用命名空间策略来为您的命名空间定义特定规则。

在以下部分了解更多有关命名空间策略结构的详细信息:

2.6.2.1. 命名空间策略 YAML 结构

apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
  name:
  namespace:
  annotations:
    policy.open-cluster-management.io/standards:
    policy.open-cluster-management.io/categories:
    policy.open-cluster-management.io/controls:
    policy.open-cluster-management.io/description:
spec:
  remediationAction:
  disabled:
  policy-templates:
    - objectDefinition:
        apiVersion: policy.open-cluster-management.io/v1
        kind: ConfigurationPolicy
        metadata:
          name:
        spec:
          remediationAction:
          severity:
          object-templates:
            - complianceType:
              objectDefinition:
                kind: Namespace
                apiVersion: v1
                metadata:
                  name:
                ...

2.6.2.2. 命名空间策略 YAML 表

字段可选或必需的描述

apiVersion

必填

将值设置为 policy.open-cluster-management.io/v1

kind

必填

将值设为 Policy 以表示策略类型。

metadata.name

必填

用于标识策略资源的名称。

metadata.namespace

必填

策略的命名空间。

spec.remediationAction

选填

指定您的策略的修复。参数值是 enforceinform。这个值是可选的,因为它会覆盖 spec.policy-templates 中提供的任何值。

spec.disabled

必填

将值设为 truefalsedisabled 参数提供启用和禁用策略的功能。

spec.policy-templates[].objectDefinition

必填

用于列出包含必须接受评估或应用到受管集群的 Kubernetes 对象的配置策略。

2.6.2.3. 命名空间策略示例

请参阅 policy-namespace.yaml 以查看策略示例。

如需了解更多详细信息,请参阅管理安全策略请参阅策略概述文档,以及 Kubernetes 配置策略控制器,以了解其他配置策略。

2.6.3. Pod 策略

Kubernetes 配置策略控制器负责监控 Pod 策略的状态。应用 Pod 策略来为 Pod 定义容器规则。集群中必须存在 pod 才能使用此信息。

在以下部分了解更多有关 pod 策略结构的详细信息:

2.6.3.1. Pod 策略 YAML 结构

apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
  name:
  namespace:
  annotations:
    policy.open-cluster-management.io/standards:
    policy.open-cluster-management.io/categories:
    policy.open-cluster-management.io/controls:
    policy.open-cluster-management.io/description:
spec:
  remediationAction:
  disabled:
  policy-templates:
    - objectDefinition:
        apiVersion: policy.open-cluster-management.io/v1
        kind: ConfigurationPolicy
        metadata:
          name:
        spec:
          remediationAction:
          severity:
          namespaceSelector:
            exclude:
            include:
            matchLabels:
            matchExpressions:
          object-templates:
            - complianceType:
              objectDefinition:
                apiVersion: v1
                kind: Pod
                metadata:
                  name:
                spec:
                  containers:
                  - image:
                    name:
                ...

2.6.3.2. Pod 策略表

表 2.7. 参数表
字段可选或必需的描述

apiVersion

必填

将值设置为 policy.open-cluster-management.io/v1

kind

必填

将值设为 Policy 以表示策略类型。

metadata.name

必填

用于标识策略资源的名称。

metadata.namespace

必填

策略的命名空间。

spec.remediationAction

选填

指定您的策略的修复。参数值是 enforceinform。此值是可选的,因为该值会覆盖 spec.policy-templates 中提供的任何值。

spec.disabled

必填

将值设为 truefalsedisabled 参数提供启用和禁用策略的功能。

spec.policy-templates[].objectDefinition

必填

用于列出包含必须接受评估或应用到受管集群的 Kubernetes 对象的配置策略。

2.6.3.3. Pod 策略示例

请参阅 policy-pod.yaml 查看策略示例。

请参阅 Kubernetes 配置策略控制器,以查看配置控制器监控的其他配置策略,并查看 Policy 概述文档,以查看策略 YAML 结构和其他字段的完整描述。返回到管理配置策略文档,以管理其他策略。

2.6.4. 内存用量策略

Kubernetes 配置策略控制器负责监控内存用量策略的状态。使用内存用量策略来限制或约束您的内存和计算用量。如需更多信息,请参阅 Kubernetes 文档中的限制范围

在以下部分了解更多有关内存用量策略结构的详细信息:

2.6.4.1. 内存用量策略 YAML 结构

您的内存用量策略可能类似以下 YAML 文件:

apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
  name:
  namespace:
  annotations:
    policy.open-cluster-management.io/standards:
    policy.open-cluster-management.io/categories:
    policy.open-cluster-management.io/controls:
    policy.open-cluster-management.io/description:
spec:
  remediationAction:
  disabled:
  policy-templates:
    - objectDefinition:
        apiVersion: policy.open-cluster-management.io/v1
        kind: ConfigurationPolicy
        metadata:
          name:
        spec:
          remediationAction:
          severity:
          namespaceSelector:
            exclude:
            include:
            matchLabels:
            matchExpressions:
          object-templates:
            - complianceType: mustonlyhave
              objectDefinition:
                apiVersion: v1
                kind: LimitRange
                metadata:
                  name:
                spec:
                  limits:
                  - default:
                      memory:
                    defaultRequest:
                      memory:
                    type:
        ...

2.6.4.2. 内存用量策略表

表 2.8. 参数表
字段可选或必需的描述

apiVersion

必填

将值设置为 policy.open-cluster-management.io/v1

kind

必填

将值设为 Policy 以表示策略类型。

metadata.name

必填

用于标识策略资源的名称。

metadata.namespace

必填

策略的命名空间。

spec.remediationAction

选填

指定您的策略的修复。参数值是 enforceinform。此值是可选的,因为该值会覆盖 spec.policy-templates 中提供的任何值。

spec.disabled

必填

将值设为 truefalsedisabled 参数提供启用和禁用策略的功能。

spec.policy-templates[].objectDefinition

必填

用于列出包含必须接受评估或应用到受管集群的 Kubernetes 对象的配置策略。

2.6.4.3. 内存用量策略示例

请参阅 policy-limitmemory.yaml 查看策略示例。如需了解更多详细信息,请参阅管理安全策略请参阅策略概述文档,以及 Kubernetes 配置策略控制器,以查看控制器监控的其他配置策略。

2.6.5. Pod 安全策略(已弃用)

Kubernetes 配置策略控制器负责监控 Pod 安全策略的状态。应用 Pod 安全策略来保护 Pod 和容器。

在以下部分了解更多有关 Pod 安全策略结构的详细信息:

2.6.5.1. Pod 安全策略 YAML 结构

apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
  name:
  namespace:
  annotations:
    policy.open-cluster-management.io/standards:
    policy.open-cluster-management.io/categories:
    policy.open-cluster-management.io/controls:
    policy.open-cluster-management.io/description:
spec:
  remediationAction:
  disabled:
  policy-templates:
    - objectDefinition:
        apiVersion: policy.open-cluster-management.io/v1
        kind: ConfigurationPolicy
        metadata:
          name:
        spec:
          remediationAction:
          severity:
          namespaceSelector:
            exclude:
            include:
            matchLabels:
            matchExpressions:
          object-templates:
            - complianceType:
              objectDefinition:
                apiVersion: policy/v1beta1
                kind: PodSecurityPolicy
                metadata:
                  name:
                  annotations:
                    seccomp.security.alpha.kubernetes.io/allowedProfileNames:
                spec:
                  privileged:
                  allowPrivilegeEscalation:
                  allowedCapabilities:
                  volumes:
                  hostNetwork:
                  hostPorts:
                  hostIPC:
                  hostPID:
                  runAsUser:
                  seLinux:
                  supplementalGroups:
                  fsGroup:
                ...

2.6.5.2. Pod 安全策略表

表 2.9. 参数表
字段可选或必需的描述

apiVersion

必填

将值设置为 policy.open-cluster-management.io/v1

kind

必填

将值设为 Policy 以表示策略类型。

metadata.name

必填

用于标识策略资源的名称。

metadata.namespace

必填

策略的命名空间。

spec.remediationAction

选填

指定您的策略的修复。参数值是 enforceinform。此值是可选的,因为该值会覆盖 spec.policy-templates 中提供的任何值。

spec.disabled

必填

将值设为 truefalsedisabled 参数提供启用和禁用策略的功能。

spec.policy-templates[].objectDefinition

必填

用于列出包含必须接受评估或应用到受管集群的 Kubernetes 对象的配置策略。

2.6.5.3. Pod 安全策略示例

对 Pod 安全策略的支持已从 OpenShift Container Platform 4.13 及更新的版本中删除,并从 Kubernetes v1.25 及之后的版本中删除。如果应用 PodSecurityPolicy 资源,您可能会收到以下不合规的信息:

violation - couldn't find mapping resource with kind PodSecurityPolicy, please check if you have CRD deployed

2.6.6. 角色策略

Kubernetes 配置策略控制器负责监控角色策略的状态。在 object-template 中定义角色来为集群中的特定角色设置规则和权限。

在以下部分了解更多有关角色策略结构的详细信息:

2.6.6.1. 角色策略 YAML 结构

apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
  name:
  namespace:
  annotations:
    policy.open-cluster-management.io/standards:
    policy.open-cluster-management.io/categories:
    policy.open-cluster-management.io/controls:
    policy.open-cluster-management.io/description:
spec:
  remediationAction:
  disabled:
  policy-templates:
    - objectDefinition:
        apiVersion: policy.open-cluster-management.io/v1
        kind: ConfigurationPolicy
        metadata:
          name:
        spec:
          remediationAction:
          severity:
          namespaceSelector:
            exclude:
            include:
            matchLabels:
            matchExpressions:
          object-templates:
            - complianceType:
              objectDefinition:
                apiVersion: rbac.authorization.k8s.io/v1
                kind: Role
                metadata:
                  name:
                rules:
                  - apiGroups:
                    resources:
                    verbs:
                ...

2.6.6.2. 角色策略表

表 2.10. 参数表
字段可选或必需的描述

apiVersion

必填

将值设置为 policy.open-cluster-management.io/v1

kind

必填

将值设为 Policy 以表示策略类型。

metadata.name

必填

用于标识策略资源的名称。

metadata.namespace

必填

策略的命名空间。

spec.remediationAction

选填

指定您的策略的修复。参数值是 enforceinform。此值是可选的,因为该值会覆盖 spec.policy-templates 中提供的任何值。

spec.disabled

必填

将值设为 truefalsedisabled 参数提供启用和禁用策略的功能。

spec.policy-templates[].objectDefinition

必填

用于列出包含必须接受评估或应用到受管集群的 Kubernetes 对象的配置策略。

2.6.6.3. 角色策略示例

应用角色策略来为集群中的特定角色设置规则和权限。如需有关角色的更多信息,请参阅基于角色的访问控制。查看角色策略示例,请参阅 policy-role.yaml

要了解如何管理角色策略,请参阅管理配置策略以了解更多信息。请参阅 Kubernetes 配置策略控制器,以查看监控控制器的其他配置策略。

2.6.7. 角色绑定策略

Kubernetes 配置策略控制器负责监控角色绑定策略的状态。应用角色绑定策略,将策略绑定到受管集群中的命名空间。

在以下部分了解更多有关命名空间策略结构的详细信息:

2.6.7.1. 角色绑定策略 YAML 结构

apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
  name:
  namespace:
  annotations:
    policy.open-cluster-management.io/standards:
    policy.open-cluster-management.io/categories:
    policy.open-cluster-management.io/controls:
    policy.open-cluster-management.io/description:
spec:
  remediationAction:
  disabled:
  policy-templates:
    - objectDefinition:
        apiVersion: policy.open-cluster-management.io/v1
        kind: ConfigurationPolicy
        metadata:
          name:
        spec:
          remediationAction:
          severity:
          namespaceSelector:
            exclude:
            include:
            matchLabels:
            matchExpressions:
          object-templates:
            - complianceType:
              objectDefinition:
                kind: RoleBinding # role binding must exist
                apiVersion: rbac.authorization.k8s.io/v1
                metadata:
                  name:
                subjects:
                - kind:
                  name:
                  apiGroup:
                roleRef:
                  kind:
                  name:
                  apiGroup:
                ...

2.6.7.2. 角色绑定策略表

字段可选或必需的描述

apiVersion

必填

将值设置为 policy.open-cluster-management.io/v1

kind

必填

将值设为 Policy 以表示策略类型。

metadata.name

必填

用于标识策略资源的名称。

metadata.namespace

必填

策略的命名空间。

spec.remediationAction

选填

指定您的策略的修复。参数值是 enforceinform。这个值是可选的,因为它会覆盖 spec.policy-templates 中提供的任何值。

spec.disabled

必填

将值设为 truefalsedisabled 参数提供启用和禁用策略的功能。

spec.policy-templates[].objectDefinition

必填

用于列出包含必须接受评估或应用到受管集群的 Kubernetes 对象的配置策略。

2.6.7.3. 角色绑定策略示例

请参阅 policy-rolebinding.yaml 查看策略示例。有关策略 YAML 结构和其他字段的完整描述,请参阅策略概述文档。请参阅 Kubernetes 配置策略控制器 文档,以了解其他配置策略。

2.6.8. 安全性上下文约束策略

Kubernetes 配置策略控制器负责监控安全性上下文约束 (SCC) 策略的状态。应用安全性上下文约束 (SCC) 策略,通过在策略中定义条件来控制 Pod 的权限。

在以下部分了解更多有关 SCC 策略的详细信息:

2.6.8.1. SCC 策略 YAML 结构

apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
  name:
  namespace:
  annotations:
    policy.open-cluster-management.io/standards:
    policy.open-cluster-management.io/categories:
    policy.open-cluster-management.io/controls:
    policy.open-cluster-management.io/description:
spec:
  remediationAction:
  disabled:
  policy-templates:
    - objectDefinition:
        apiVersion: policy.open-cluster-management.io/v1
        kind: ConfigurationPolicy
        metadata:
          name:
        spec:
          remediationAction:
          severity:
          namespaceSelector:
            exclude:
            include:
            matchLabels:
            matchExpressions:
          object-templates:
            - complianceType:
              objectDefinition:
                apiVersion: security.openshift.io/v1
                kind: SecurityContextConstraints
                metadata:
                  name:
                allowHostDirVolumePlugin:
                allowHostIPC:
                allowHostNetwork:
                allowHostPID:
                allowHostPorts:
                allowPrivilegeEscalation:
                allowPrivilegedContainer:
                fsGroup:
                readOnlyRootFilesystem:
                requiredDropCapabilities:
                runAsUser:
                seLinuxContext:
                supplementalGroups:
                users:
                volumes:
                ...

2.6.8.2. SCC 策略表

字段可选或必需的描述

apiVersion

必填

将值设置为 policy.open-cluster-management.io/v1

kind

必填

将值设为 Policy 以表示策略类型。

metadata.name

必填

用于标识策略资源的名称。

metadata.namespace

必填

策略的命名空间。

spec.remediationAction

选填

指定您的策略的修复。参数值是 enforceinform。这个值是可选的,因为它会覆盖 spec.policy-templates 中提供的任何值。

spec.disabled

必填

将值设为 truefalsedisabled 参数提供启用和禁用策略的功能。

spec.policy-templates[].objectDefinition

必填

用于列出包含必须接受评估或应用到受管集群的 Kubernetes 对象的配置策略。

有关 SCC 策略内容的解释,请参阅 OpenShift Container Platform 文档中的管理安全性上下文约束

2.6.8.3. SCC 策略示例

应用安全性上下文约束 (SCC) 策略,通过在策略中定义条件来控制 Pod 的权限。如需更多信息,请参阅管理安全性上下文约束(SCC)

请参阅 policy-scc.yaml 查看策略示例。有关策略 YAML 结构和其他字段的完整描述,请参阅策略概述文档。请参阅 Kubernetes 配置策略控制器 文档,以了解其他配置策略。

2.6.9. ETCD 加密策略

应用 etcd-encryption 策略,在 ETCD 数据存储中检测或启用敏感数据的加密。Kubernetes 配置策略控制器负责监控 etcd-encryption 策略的状态。如需更多信息,请参阅 OpenShift Container Platform 文档中的 加密 etcd 数据 :ETCD 加密策略只支持 Red Hat OpenShift Container Platform 4 及更新的版本。

在以下部分了解更多有关 etcd-encryption 策略结构的详细信息:

2.6.9.1. ETCD 加密策略 YAML 结构

etcd-encryption 策略可能类似以下 YAML 文件:

apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
  name:
  namespace:
  annotations:
    policy.open-cluster-management.io/standards:
    policy.open-cluster-management.io/categories:
    policy.open-cluster-management.io/controls:
    policy.open-cluster-management.io/description:
spec:
  remediationAction:
  disabled:
  policy-templates:
    - objectDefinition:
        apiVersion: policy.open-cluster-management.io/v1
        kind: ConfigurationPolicy
        metadata:
          name:
        spec:
          remediationAction:
          severity:
          object-templates:
            - complianceType:
              objectDefinition:
                apiVersion: config.openshift.io/v1
                kind: APIServer
                metadata:
                  name:
                spec:
                  encryption:
                ...

2.6.9.2. ETCD 加密策略表

表 2.11. 参数表
字段可选或必需的描述

apiVersion

必填

将值设置为 policy.open-cluster-management.io/v1

kind

必填

将值设为 Policy 以表示策略类型。

metadata.name

必填

用于标识策略资源的名称。

metadata.namespace

必填

策略的命名空间。

spec.remediationAction

选填

指定您的策略的修复。参数值是 enforceinform。这个值是可选的,因为它会覆盖 spec.policy-templates 中提供的任何值。

spec.disabled

必填

将值设为 truefalsedisabled 参数提供启用和禁用策略的功能。

spec.policy-templates[].objectDefinition

必填

用于列出包含必须接受评估或应用到受管集群的 Kubernetes 对象的配置策略。

2.6.9.3. ETCD 加密策略示例

如需策略示例,请参阅 policy-etcdencryption.yaml请参阅策略概述文档Kubernetes 配置策略控制器,以查看策略和配置策略 字段的更多详情。

2.6.10. Compliance Operator 策略

您可以使用 Compliance Operator 自动检查许多技术实施,并将其与行业标准、基准和基准的某些方面进行比较。Compliance Operator 不是一个审核员(auditor)。要符合这些各种标准,您需要与授权的审核员(如限定安全评估器(QSA)、联合授权局(JAB)或其他行业认可的规范机构)合作来评估您的环境。

来自 Compliance Operator 生成的建议基于有关此类标准的一般信息和实践,并可能帮助您进行补救,但实际的合规性是您的责任。与授权的审核员合作来实现符合标准的合规性。

有关最新更新,请参阅 Compliance Operator 发行注记

2.6.10.1. Compliance Operator 策略概述

您可以使用 Compliance Operator 策略在受管集群上安装 Compliance Operator。Compliance operator 策略在 Red Hat Advanced Cluster Management 中作为 Kubernetes 配置策略创建。OpenShift Container Platform 支持 Compliance operator 策略。

注: Compliance operator 策略依赖于 OpenShift Container Platform Compliance Operator,它不受 IBM Power 或 IBM Z 架构的支持。如需有关 Compliance Operator 的更多信息,请参阅 OpenShift Container Platform 文档中的了解 Compliance Operator 部分。

2.6.10.2. Compliance operator 资源

创建合规 Operator 策略时,会创建以下资源:

  • Operator 安装的合规性 operator 命名空间(openshift- compliance):
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
  name: comp-operator-ns
spec:
  remediationAction: inform # will be overridden by remediationAction in parent policy
  severity: high
  object-templates:
    - complianceType: musthave
      objectDefinition:
        apiVersion: v1
        kind: Namespace
        metadata:
          name: openshift-compliance
  • 用于指定目标命名空间的 operator 组(compliance-operator):
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
  name: comp-operator-operator-group
spec:
  remediationAction: inform # will be overridden by remediationAction in parent policy
  severity: high
  object-templates:
    - complianceType: musthave
      objectDefinition:
        apiVersion: operators.coreos.com/v1
        kind: OperatorGroup
        metadata:
          name: compliance-operator
          namespace: openshift-compliance
        spec:
          targetNamespaces:
            - openshift-compliance
  • 用于引用名称和频道的订阅(comp-operator-subscription)。订阅会拉取配置集作为容器,它支持。请参见以下示例,使用当前版本替换 4.x
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
  name: comp-operator-subscription
spec:
  remediationAction: inform  # will be overridden by remediationAction in parent policy
  severity: high
  object-templates:
    - complianceType: musthave
      objectDefinition:
        apiVersion: operators.coreos.com/v1alpha1
        kind: Subscription
        metadata:
          name: compliance-operator
          namespace: openshift-compliance
        spec:
          channel: "4.x"
          installPlanApproval: Automatic
          name: compliance-operator
          source: redhat-operators
          sourceNamespace: openshift-marketplace

安装 compliance operator 策略后,会创建以下 pod:compliance-operatorocp4rhcos4。请参阅 policy-compliance-operator-install.yaml 示例。

2.6.10.3. 其他资源

2.6.11. E8 扫描策略

一个 Essential 8(E8)扫描策略会部署一个扫描,检查 master 和 worker 节点是否满足 E8 安全配置集。您必须安装 Compliance Operator 以应用 E8 扫描策略。

E8 扫描策略在 Red Hat Advanced Cluster Management 中作为 Kubernetes 配置策略创建。OpenShift Container Platform 支持 E8 扫描策略。如需更多信息,请参阅 OpenShift Container Platform 文档中的管理 Compliance Operator 部分以了解更多详细信息。

2.6.11.1. E8 扫描策略资源

当您创建 E8 扫描策略时,会创建以下资源:

  • ScanSettingBinding 资源 (e8) 用于识别要扫描的配置集:

    apiVersion: policy.open-cluster-management.io/v1
    kind: ConfigurationPolicy
    metadata:
      name: compliance-suite-e8
    spec:
      remediationAction: inform
      severity: high
      object-templates:
        - complianceType: musthave # this template checks if scan has completed by checking the status field
          objectDefinition:
            apiVersion: compliance.openshift.io/v1alpha1
            kind: ScanSettingBinding
            metadata:
              name: e8
              namespace: openshift-compliance
            profiles:
            - apiGroup: compliance.openshift.io/v1alpha1
              kind: Profile
              name: ocp4-e8
            - apiGroup: compliance.openshift.io/v1alpha1
              kind: Profile
              name: rhcos4-e8
            settingsRef:
              apiGroup: compliance.openshift.io/v1alpha1
              kind: ScanSetting
              name: default
  • 一个 ComplianceSuite 资源 (compliance-suite-e8),用于通过检查 status 字段来验证扫描是否已完成:

    apiVersion: policy.open-cluster-management.io/v1
    kind: ConfigurationPolicy
    metadata:
      name: compliance-suite-e8
    spec:
      remediationAction: inform
      severity: high
      object-templates:
        - complianceType: musthave # this template checks if scan has completed by checking the status field
          objectDefinition:
            apiVersion: compliance.openshift.io/v1alpha1
            kind: ComplianceSuite
            metadata:
              name: e8
              namespace: openshift-compliance
            status:
              phase: DONE
  • 一个 ComplianceCheckResult 资源 (compliance-suite-e8-results),它通过检查 ComplianceCheckResult 自定义资源 (CR) 来报告扫描套件的结果:

    apiVersion: policy.open-cluster-management.io/v1
    kind: ConfigurationPolicy
    metadata:
      name: compliance-suite-e8-results
    spec:
      remediationAction: inform
      severity: high
      object-templates:
        - complianceType: mustnothave # this template reports the results for scan suite: e8 by looking at ComplianceCheckResult CRs
          objectDefinition:
            apiVersion: compliance.openshift.io/v1alpha1
            kind: ComplianceCheckResult
            metadata:
              namespace: openshift-compliance
              labels:
                compliance.openshift.io/check-status: FAIL
                compliance.openshift.io/suite: e8

注: 支持自动补救。将补救操作设置为 enforce 以创建 ScanSettingBinding 资源。

请参阅 policy-compliance-operator-e8-scan.yaml 示例。如需更多信息,请参阅管理安全策略注: 删除 E8 策略后,它会从目标集群或集群中移除。

2.6.12. OpenShift CIS 扫描策略

OpenShift CIS 扫描策略会部署一个扫描来检查 master 和 worker 节点是否与 OpenShift CIS 安全基准相符。您必须安装 Compliance operator 以应用 OpenShift CIS 策略。

OpenShift CIS 扫描策略在 Red Hat Advanced Cluster Management 中作为 Kubernetes 配置策略创建。OpenShift Container Platform 支持 OpenShift CIS 扫描策略。如需更多信息,请参阅 OpenShift Container Platform 文档中的了解 Compliance Operator 部分以了解更多详细信息。

2.6.12.1. OpenShift CIS 资源

创建 OpenShift CIS 扫描策略时,会创建以下资源:

  • 用于识别要扫描的配置集的 ScanSettingBinding 资源 (cis):

    apiVersion: policy.open-cluster-management.io/v1
    kind: ConfigurationPolicy
    metadata:
      name: compliance-cis-scan
    spec:
      remediationAction: inform
      severity: high
      object-templates:
        - complianceType: musthave # this template creates ScanSettingBinding:cis
          objectDefinition:
            apiVersion: compliance.openshift.io/v1alpha1
            kind: ScanSettingBinding
            metadata:
              name: cis
              namespace: openshift-compliance
            profiles:
            - apiGroup: compliance.openshift.io/v1alpha1
              kind: Profile
              name: ocp4-cis
            - apiGroup: compliance.openshift.io/v1alpha1
              kind: Profile
              name: ocp4-cis-node
            settingsRef:
              apiGroup: compliance.openshift.io/v1alpha1
              kind: ScanSetting
              name: default
  • 一个 ComplianceSuite 资源 (compliance-suite-cis),用于通过检查 status 字段来验证扫描是否已完成:

    apiVersion: policy.open-cluster-management.io/v1
    kind: ConfigurationPolicy
    metadata:
      name: compliance-suite-cis
    spec:
      remediationAction: inform
      severity: high
      object-templates:
        - complianceType: musthave # this template checks if scan has completed by checking the status field
          objectDefinition:
            apiVersion: compliance.openshift.io/v1alpha1
            kind: ComplianceSuite
            metadata:
              name: cis
              namespace: openshift-compliance
            status:
              phase: DONE
  • 一个 ComplianceCheckResult 资源 (compliance-suite-cis-results),它通过检查 ComplianceCheckResult 自定义资源 (CR) 来报告扫描套件的结果:

    apiVersion: policy.open-cluster-management.io/v1
    kind: ConfigurationPolicy
    metadata:
      name: compliance-suite-cis-results
    spec:
      remediationAction: inform
      severity: high
      object-templates:
        - complianceType: mustnothave # this template reports the results for scan suite: cis by looking at ComplianceCheckResult CRs
          objectDefinition:
            apiVersion: compliance.openshift.io/v1alpha1
            kind: ComplianceCheckResult
            metadata:
              namespace: openshift-compliance
              labels:
                compliance.openshift.io/check-status: FAIL
                compliance.openshift.io/suite: cis

请参阅 policy-compliance-operator-cis-scan.yaml 文件示例。有关创建策略的更多信息,请参阅管理安全策略

2.6.13. 镜像漏洞策略

应用镜像漏洞策略,以利用 Container Security Operator 来检测容器镜像是否有漏洞。如果没有安装 Container Security Operator,该策略会在受管集群上安装它。

镜像漏洞策略由 Kubernetes 配置策略控制器负责检查。有关 Security Operator 的更多信息,请参阅 Quay 存储库中的 Container Security Operator

备注:

查看以下部分以了解更多信息:

2.6.13.1. 镜像漏洞策略 YAML 结构

在创建容器安全 Operator 策略时,它会涉及以下策略:

  • 创建订阅的策略 (container-security-operator) 来引用名称和频道。此配置策略必须将 spec.remediationAction 设置为 enforce 来创建资源。订阅会拉取配置集,作为订阅支持的容器。查看以下示例:

    apiVersion: policy.open-cluster-management.io/v1
    kind: ConfigurationPolicy
    metadata:
      name: policy-imagemanifestvuln-example-sub
    spec:
      remediationAction: enforce  # will be overridden by remediationAction in parent policy
      severity: high
      object-templates:
        - complianceType: musthave
          objectDefinition:
            apiVersion: operators.coreos.com/v1alpha1
            kind: Subscription
            metadata:
              name: container-security-operator
              namespace: openshift-operators
            spec:
              # channel: quay-v3.3 # specify a specific channel if desired
              installPlanApproval: Automatic
              name: container-security-operator
              source: redhat-operators
              sourceNamespace: openshift-marketplace
  • 一个 inform 配置策略来审核 ClusterServiceVersion,以确保容器安全 Operator 安装成功。查看以下示例:

    apiVersion: policy.open-cluster-management.io/v1
    kind: ConfigurationPolicy
    metadata:
      name: policy-imagemanifestvuln-status
    spec:
      remediationAction: inform  # will be overridden by remediationAction in parent policy
      severity: high
      object-templates:
        - complianceType: musthave
          objectDefinition:
            apiVersion: operators.coreos.com/v1alpha1
            kind: ClusterServiceVersion
            metadata:
              namespace: openshift-operators
            spec:
              displayName: Red Hat Quay Container Security Operator
            status:
              phase: Succeeded   # check the CSV status to determine if operator is running or not
  • 一个 inform 配置策略,用于审核镜像漏洞扫描创建的任何 ImageManifestVuln 对象。查看以下示例:

    apiVersion: policy.open-cluster-management.io/v1
    kind: ConfigurationPolicy
    metadata:
      name: policy-imagemanifestvuln-example-imv
    spec:
      remediationAction: inform  # will be overridden by remediationAction in parent policy
      severity: high
      namespaceSelector:
        exclude: ["kube-*"]
        include: ["*"]
      object-templates:
        - complianceType: mustnothave # mustnothave any ImageManifestVuln object
          objectDefinition:
            apiVersion: secscan.quay.redhat.com/v1alpha1
            kind: ImageManifestVuln # checking for a Kind

2.6.13.2. 镜像漏洞策略示例

请参阅 policy-imagemanifestvuln.yaml。如需更多信息,请参阅管理安全策略。请参阅 Kubernetes 配置策略控制器,以查看配置控制器监控的其他配置策略。

2.6.14. Red Hat OpenShift Platform Plus 策略集

配置并应用 OpenShift Platform Plus 策略集 (openshift-plus) 来安装 Red Hat OpenShift Platform Plus。

OpenShift Platform Plus 策略集包含两个部署的 PolicySets。OpenShift Plus 策略集应用设置为安装 OpenShift Platform Plus 产品的多个策略。Red Hat Advanced Cluster Security 安全集群服务和 Compliance Operator 部署到所有 OpenShift Container Platform 受管集群。

2.6.14.1. 先决条件

  • 在 Amazon Web Services (AWS)环境中安装 Red Hat OpenShift Container Platform 4.13 或更高版本。
  • 安装 Red Hat Advanced Cluster Management for Kubernetes 2.7 或更高版本。
  • 安装策略生成器 Kustomize 插件。如需更多信息,请参阅策略生成器文档。

2.6.14.2. OpenShift Platform Plus 策略设置组件

当您将策略设置为 hub 集群时,会安装以下 OpenShift Platform Plus 组件:

表 2.12. 组件表
组件策略描述

Red Hat Advanced Cluster Security

policy-acs-central-ca-bundle

用于将中央服务器安装到 Red Hat Advanced Cluster Management for Kubernetes hub 集群和受管集群的策略。

policy-acs-central-status

用于接收 Red Hat Advanced Cluster Security 状态的部署。

policy-acs-operator-central

配置 Red Hat Advanced Cluster Security central operator。

policy-acs-sync-resources

用于验证 Red Hat Advanced Cluster Security 资源是否已创建的策略。

OpenShift Container Platform

policy-advanced-managed-cluster-status

受管 hub 集群。受管集群的管理器。

Compliance operator

policy-compliance-operator-install

用于安装 Compliance operator 的策略。

Red Hat Quay

policy-config-quay

Red Hat Quay 的配置策略。

policy-install-quay

用于安装 Red Hat Quay 的策略。

policy-quay-status

安装到 Red Hat Advanced Cluster Management hub 集群中。

Red Hat Advanced Cluster Management

policy-ocm-observability

设置 Red Hat Advanced Cluster Management observability 服务。

Red Hat OpenShift Data Platform

policy-odf

Red Hat Advanced Cluster Management observability 和 Quay 使用的 hub 集群组件的可用存储。

policy-odf-status

用于配置 Red Hat OpenShift Data Platform 状态的策略。

2.6.14.3. 其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.