2.5. 支持的策略
查看支持的策略示例,了解如何在 Red Hat Advanced Cluster Management for Kubernetes 中创建和管理策略时如何在 hub 集群上定义规则、流程和控制。
2.5.1. 配置策略示例策略表
查看以下示例配置策略:
策略示例 | 描述 |
---|---|
确保环境与命名空间一致。请参阅 Kubernetes 命名空间文档。 | |
确保集群工作负载配置。请参阅 Kubernetes Pod 文档。 | |
使用限制范围限制工作负载资源使用情况。请参阅限制范围文档。 | |
Pod 安全策略 (已弃用) | 确保工作负载安全性一致。请参阅 Kubernetes Pod 安全策略文档。 |
使用角色和角色绑定管理角色绑定。请参阅 Kubernetes RBAC 文档。 | |
使用安全性上下文约束管理工作负载权限。请参阅 Openshift 安全性上下文约束文档。 | |
确保通过 etcd 加密的数据安全性。请参阅 Openshift etcd 加密文档。 | |
部署 Compliance Operator,以利用 OpenSCAP 扫描并强制实施集群的合规性状态。请参阅 Openshift Compliance Operator 文档。 | |
应用 Compliance operator 策略后,部署 Essential 8 (E8) 扫描来检查 E8 安全配置集的合规性。请参阅 Openshift Compliance Operator 文档。 | |
应用 Compliance operator 策略后,部署互联网安全中心 (CIS) 扫描,以检查与 CIS 安全配置集的合规性。请参阅 Openshift Compliance Operator 文档。 | |
部署 Container Security Operator,并检测集群中运行的 pod 中的已知镜像漏洞。请参阅 Container Security Operator GitHub。 | |
Gatekeeper 是一个准入 Webhook,它强制执行基于自定义资源定义的策略,由 Open Policy Agent (OPA)策略引擎运行。请参阅 Gatekeeper 文档。 | |
将 Gatekeeper 部署到集群后,部署此示例 Gatekeeper 策略以确保在集群中创建的命名空间标记为指定。 |
2.5.2. 开箱即用策略的支持列表
策略 | Red Hat OpenShift Container Platform 3.11 | Red Hat OpenShift Container Platform 4 |
---|---|---|
内存用量策略 | x | x |
命名空间策略 | x | x |
镜像漏洞策略 | x | x |
Pod 策略 | x | x |
Pod 安全策略(已弃用) | ||
角色策略 | x | x |
角色绑定策略 | x | x |
安全性上下文约束策略(SCC) | x | x |
ETCD 加密策略 | x | |
Gatekeeper 策略 | x | |
Compliance operator 策略 | x | |
E8 扫描策略 | x | |
OpenShift CIS 扫描策略 | x | |
策略设置 | x |
查看以下策略示例以查看如何应用特定策略:
更多主题,请参阅监管。
2.5.3. 内存用量策略
Kubernetes 配置策略控制器负责监控内存用量策略的状态。使用内存用量策略来限制或约束您的内存和计算用量。如需更多信息,请参阅 Kubernetes 文档中的限制范围。
在以下部分了解更多有关内存用量策略结构的详细信息:
2.5.3.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: 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.5.3.2. 内存用量策略表
字段 | 可选或必需的 | 描述 |
---|---|---|
| 必填 |
将值设置为 |
| 必填 |
将值设为 |
| 必填 | 用于标识策略资源的名称。 |
| 必填 | 策略的命名空间。 |
| 选填 |
指定您的策略的修复。参数值是 |
| 必填 |
将值设为 |
| 必填 | 用于列出包含必须接受评估或应用到受管集群的 Kubernetes 对象的配置策略。 |
2.5.3.3. 内存用量策略示例
请参阅 policy-limitmemory.yaml
查看策略示例。如需了解更多详细信息,请参阅管理安全策略。请参阅策略概述文档,以及 Kubernetes 配置策略控制器,以查看控制器监控的其他配置策略。
2.5.4. 命名空间策略
Kubernetes 配置策略控制器负责监控命名空间策略的状态。应用命名空间策略来为您的命名空间定义特定规则。
在以下部分了解更多有关命名空间策略结构的详细信息:
2.5.4.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: 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.5.4.2. 命名空间策略 YAML 表
字段 | 可选或必需的 | 描述 |
---|---|---|
| 必填 |
将值设置为 |
| 必填 |
将值设为 |
| 必填 | 用于标识策略资源的名称。 |
| 必填 | 策略的命名空间。 |
| 选填 |
指定您的策略的修复。参数值是 |
| 必填 |
将值设为 |
| 必填 | 用于列出包含必须接受评估或应用到受管集群的 Kubernetes 对象的配置策略。 |
2.5.4.3. 命名空间策略示例
请参阅 policy-namespace.yaml
查看策略示例。
如需了解更多详细信息,请参阅管理安全策略。请参阅策略概述文档,以及 Kubernetes 配置策略控制器,以了解其他配置策略。
2.5.5. 镜像漏洞策略
应用镜像漏洞策略,以利用 Container Security Operator 来检测容器镜像是否有漏洞。如果没有安装 Container Security Operator,该策略会在受管集群上安装它。
镜像漏洞策略由 Kubernetes 配置策略控制器负责检查。有关 Security Operator 的更多信息,请参阅 Quay 存储库中的 Container Security Operator。
备注:
- 镜像漏洞策略在断开连接的安装过程中无法正常工作。
-
IBM Power 和 IBM Z 架构不支持 镜像漏洞策略。它依赖于 Quay Container Security Operator。container-security-operator registry 中没有
ppc64le
或s390x
镜像。
查看以下部分以了解更多信息:
2.5.5.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.5.5.2. 镜像漏洞策略示例
请参阅 policy-imagemanifestvuln.yaml
。如需更多信息,请参阅管理安全策略。请参阅 Kubernetes 配置策略控制器,以查看配置控制器监控的其他配置策略。
2.5.6. Pod 策略
Kubernetes 配置策略控制器负责监控 Pod 策略的状态。应用 Pod 策略来为 Pod 定义容器规则。集群中必须存在 pod 才能使用此信息。
在以下部分了解更多有关 pod 策略结构的详细信息:
2.5.6.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: 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.5.6.2. Pod 策略表
字段 | 可选或必需的 | 描述 |
---|---|---|
| 必填 |
将值设置为 |
| 必填 |
将值设为 |
| 必填 | 用于标识策略资源的名称。 |
| 必填 | 策略的命名空间。 |
| 选填 |
指定您的策略的修复。参数值是 |
| 必填 |
将值设为 |
| 必填 | 用于列出包含必须接受评估或应用到受管集群的 Kubernetes 对象的配置策略。 |
2.5.6.3. Pod 策略示例
请参阅 policy-pod.yaml
查看策略示例。
请参阅 Kubernetes 配置策略控制器,以查看配置控制器监控的其他配置策略,并查看 Policy 概述文档,以查看策略 YAML 结构和其他字段的完整描述。返回到管理配置策略文档,以管理其他策略。
2.5.7. Pod 安全策略(已弃用)
Kubernetes 配置策略控制器负责监控 Pod 安全策略的状态。应用 Pod 安全策略来保护 Pod 和容器。
在以下部分了解更多有关 Pod 安全策略结构的详细信息:
2.5.7.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: 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.5.7.2. Pod 安全策略表
字段 | 可选或必需的 | 描述 |
---|---|---|
| 必填 |
将值设置为 |
| 必填 |
将值设为 |
| 必填 | 用于标识策略资源的名称。 |
| 必填 | 策略的命名空间。 |
| 选填 |
指定您的策略的修复。参数值是 |
| 必填 |
将值设为 |
| 必填 | 用于列出包含必须接受评估或应用到受管集群的 Kubernetes 对象的配置策略。 |
2.5.7.3. Pod 安全策略示例
对 Pod 安全策略的支持已从 OpenShift Container Platform 4.12 及更新的版本中删除,并从 Kubernetes v1.25 及之后的版本中删除。如果应用 PodSecurityPolicy
资源,您可能会收到以下不合规的信息:
violation - couldn't find mapping resource with kind PodSecurityPolicy, please check if you have CRD deployed
- 有关包括弃用通知的更多信息,请参阅 Kubernetes 文档中的 Pod 安全策略。
-
请参阅
policy-psp.yaml
查看示例策略。如需更多信息,请参阅管理配置策略。 - 如需有关策略 YAML 结构的完整描述,请参阅策略概述文档,以及 Kubernetes 配置策略控制器,以查看控制器监控的其他配置策略。
2.5.8. 角色策略
Kubernetes 配置策略控制器负责监控角色策略的状态。在 object-template
中定义角色来为集群中的特定角色设置规则和权限。
在以下部分了解更多有关角色策略结构的详细信息:
2.5.8.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: 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: ... --- apiVersion: policy.open-cluster-management.io/v1 kind: PlacementBinding metadata: name: binding-policy-role namespace: placementRef: name: placement-policy-role kind: PlacementRule apiGroup: apps.open-cluster-management.io subjects: - name: policy-role kind: Policy apiGroup: policy.open-cluster-management.io --- apiVersion: apps.open-cluster-management.io/v1 kind: PlacementRule metadata: name: placement-policy-role namespace: spec: clusterConditions: - type: ManagedClusterConditionAvailable status: "True" clusterSelector: matchExpressions: [] ...
2.5.8.2. 角色策略表
字段 | 可选或必需的 | 描述 |
---|---|---|
| 必填 |
将值设置为 |
| 必填 |
将值设为 |
| 必填 | 用于标识策略资源的名称。 |
| 必填 | 策略的命名空间。 |
| 选填 |
指定您的策略的修复。参数值是 |
| 必填 |
将值设为 |
| 必填 | 用于列出包含必须接受评估或应用到受管集群的 Kubernetes 对象的配置策略。 |
2.5.8.3. 角色策略示例
应用角色策略来为集群中的特定角色设置规则和权限。如需有关角色的更多信息,请参阅基于角色的访问控制。查看角色策略示例,请参阅 policy-role.yaml
。
要了解如何管理角色策略,请参阅管理配置策略以了解更多信息。请参阅 Kubernetes 配置策略控制器,以查看监控控制器的其他配置策略。
2.5.9. 角色绑定策略
Kubernetes 配置策略控制器负责监控角色绑定策略的状态。应用角色绑定策略,将策略绑定到受管集群中的命名空间。
在以下部分了解更多有关命名空间策略结构的详细信息:
2.5.9.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: 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.5.9.2. 角色绑定策略表
字段 | 可选或必需的 | 描述 |
---|---|---|
| 必填 |
将值设置为 |
| 必填 |
将值设为 |
| 必填 | 用于标识策略资源的名称。 |
| 必填 | 策略的命名空间。 |
| 选填 |
指定您的策略的修复。参数值是 |
| 必填 |
将值设为 |
| 必填 | 用于列出包含必须接受评估或应用到受管集群的 Kubernetes 对象的配置策略。 |
2.5.9.3. 角色绑定策略示例
请参阅 policy-rolebinding.yaml
查看策略示例。有关策略 YAML 结构和其他字段的完整描述,请参阅策略概述文档。请参阅 Kubernetes 配置策略控制器文档,以了解其他配置策略。
2.5.10. 安全性上下文约束策略
Kubernetes 配置策略控制器负责监控安全性上下文约束 (SCC) 策略的状态。应用安全性上下文约束 (SCC) 策略,通过在策略中定义条件来控制 Pod 的权限。
在以下部分了解更多有关 SCC 策略的详细信息:
2.5.10.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: 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.5.10.2. SCC 策略表
字段 | 可选或必需的 | 描述 |
---|---|---|
| 必填 |
将值设置为 |
| 必填 |
将值设为 |
| 必填 | 用于标识策略资源的名称。 |
| 必填 | 策略的命名空间。 |
| 选填 |
指定您的策略的修复。参数值是 |
| 必填 |
将值设为 |
| 必填 | 用于列出包含必须接受评估或应用到受管集群的 Kubernetes 对象的配置策略。 |
有关 SCC 策略内容的解释,请参阅 OpenShift Container Platform 文档中的管理安全性上下文约束。
2.5.10.3. SCC 策略示例
应用安全性上下文约束 (SCC) 策略,通过在策略中定义条件来控制 Pod 的权限。如需更多信息,请参阅管理安全性上下文约束(SCC)。
请参阅 policy-scc.yaml
查看策略示例。有关策略 YAML 结构和其他字段的完整描述,请参阅策略概述文档。请参阅 Kubernetes 配置策略控制器文档,以了解其他配置策略。
2.5.11. ETCD 加密策略
应用 etcd-encryption
策略,在 ETCD 数据存储中检测或启用敏感数据的加密。Kubernetes 配置策略控制器负责监控 etcd-encryption
策略的状态。如需更多信息,请参阅 OpenShift Container Platform 文档中的加密 etcd 数据。注 :ETCD 加密策略只支持 Red Hat OpenShift Container Platform 4 及更新的版本。
在以下部分了解更多有关 etcd-encryption
策略结构的详细信息:
2.5.11.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: 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.5.11.2. ETCD 加密策略表
字段 | 可选或必需的 | 描述 |
---|---|---|
| 必填 |
将值设置为 |
| 必填 |
将值设为 |
| 必填 | 用于标识策略资源的名称。 |
| 必填 | 策略的命名空间。 |
| 选填 |
指定您的策略的修复。参数值是 |
| 必填 |
将值设为 |
| 必填 | 用于列出包含必须接受评估或应用到受管集群的 Kubernetes 对象的配置策略。 |
2.5.11.3. ETCD 加密策略示例
如需策略示例,请参阅 policy-etcdencryption.yaml
。请参阅策略概述文档 和 Kubernetes 配置策略控制器,以查看策略和配置策略字段的更多详情。
2.5.12. Compliance Operator 策略
您可以使用 Compliance Operator 自动检查许多技术实施,并将其与行业标准、基准和基准的某些方面进行比较。Compliance Operator 不是一个审核员(auditor)。要符合这些各种标准,您需要与授权的审核员(如限定安全评估器(QSA)、联合授权局(JAB)或其他行业认可的规范机构)合作来评估您的环境。
来自 Compliance Operator 生成的建议基于有关此类标准的一般信息和实践,并可能帮助您进行补救,但实际的合规性是您的责任。与授权的审核员合作来实现符合标准的合规性。
有关最新更新,请参阅 Compliance Operator 发行注记。
2.5.12.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.5.12.2. Compliance operator 资源
在创建 Compliance Operator 策略时,会创建以下资源:
-
Operator 安装的 Compliance 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
)。订阅会拉取配置集作为一个容器,它支持:
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.7" installPlanApproval: Automatic name: compliance-operator source: redhat-operators sourceNamespace: openshift-marketplace
2.5.12.3. 其他资源
- 如需更多信息,请参阅 OpenShift Container Platform 文档中的管理 Compliance Operator 部分以了解更多详细信息。
-
安装 Compliance Operator 策略后,会创建以下 pod:
compliance-operator
、ocp4
和rhcos4
。请参阅policy-compliance-operator-install.yaml
示例。 - 安装 Compliance Operator 后,您还可以创建并应用 E8 扫描策略和 OpenShift CIS 扫描策略。如需更多信息,请参阅 E8 扫描策略和 OpenShift CIS 扫描策略。
- 要了解有关管理 Compliance Operator 策略的信息,请参阅管理安全策略 以了解更多详细信息。有关配置策略的更多主题,请参阅 Kubernetes 配置策略控制器。
2.5.13. E8 扫描策略
一个 Essential 8(E8)扫描策略会部署一个扫描,检查 master 和 worker 节点是否满足 E8 安全配置集。您必须安装 Compliance Operator 以应用 E8 扫描策略。
E8 扫描策略在 Red Hat Advanced Cluster Management 中作为 Kubernetes 配置策略创建。OpenShift Container Platform 4.7 和 4.6 支持 E8 扫描策略。如需更多信息,请参阅 OpenShift Container Platform 文档中的了解 Compliance Operator 部分以了解更多详细信息。
2.5.13.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.5.14. OpenShift CIS 扫描策略
OpenShift CIS 扫描策略会部署一个扫描来检查 master 和 worker 节点是否与 OpenShift CIS 安全基准相符。您必须安装 Compliance operator 以应用 OpenShift CIS 策略。
OpenShift CIS 扫描策略在 Red Hat Advanced Cluster Management 中作为 Kubernetes 配置策略创建。OpenShift Container Platform 4.9、4.7 和 4.6 支持 OpenShift CIS 扫描策略。如需更多信息,请参阅 OpenShift Container Platform 文档中的 了解 Compliance Operator 部分以了解更多详细信息。
2.5.14.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
文件示例。有关创建策略的更多信息,请参阅管理安全策略。