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,它强制执行基于自定义资源定义 (CRD) 的策略,由 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 是一个运行 OpenSCAP 的 operator,可让您使 Red Hat OpenShift Container Platform 集群与您需要的安全基准兼容。您可以使用合规 operator 策略在受管集群上安装合规 Operator。
compliance operator 策略在 Red Hat Advanced Cluster Management 中作为 Kubernetes 配置策略创建。OpenShift Container Platform 4.6 和 4.7 支持合规性 Operator 策略。如需更多信息,请参阅 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.1. 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)。订阅会拉取配置集作为一个容器,它支持:
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
安装 compliance operator 策略后,会创建以下 pod:compliance-operator、ocp4 和 rhcos4。请参阅 policy-compliance-operator-install.yaml 示例。
安装 compliance Operator 后,您还可以创建并应用 E8 扫描策略和 OpenShift CIS 扫描策略。如需更多信息,请参阅 E8 扫描策略和 OpenShift CIS 扫描策略。
要了解如何管理合规 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 文件示例。有关创建策略的更多信息,请参阅管理安全策略。