华为云UCS
华为云UCS
- 最新动态
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- UCS集群
- 容器舰队
- 集群联邦
- 镜像仓库
- 权限管理
-
策略中心
- 策略中心概述
- 策略定义与策略实例的基本概念
- 启用策略中心
- 创建和管理策略实例
- 示例:使用策略中心实现Kubernetes资源合规性治理
-
使用策略定义库
- 策略定义库概述
- k8spspvolumetypes
- k8spspallowedusers
- k8spspselinuxv2
- k8spspseccomp
- k8spspreadonlyrootfilesystem
- k8spspprocmount
- k8spspprivilegedcontainer
- k8spsphostnetworkingports
- k8spsphostnamespace
- k8spsphostfilesystem
- k8spspfsgroup
- k8spspforbiddensysctls
- k8spspflexvolumes
- k8spspcapabilities
- k8spspapparmor
- k8spspallowprivilegeescalationcontainer
- k8srequiredprobes
- k8srequiredlabels
- k8srequiredannotations
- k8sreplicalimits
- noupdateserviceaccount
- k8simagedigests
- k8sexternalips
- k8sdisallowedtags
- k8sdisallowanonymous
- k8srequiredresources
- k8scontainerratios
- k8scontainerrequests
- k8scontainerlimits
- k8sblockwildcardingress
- k8sblocknodeport
- k8sblockloadbalancer
- k8sblockendpointeditdefaultrole
- k8spspautomountserviceaccounttokenpod
- k8sallowedrepos
- 配置管理
- 服务网格
- 流量分发
- 可观测性
- 云原生服务中心
- 容器迁移
- 流水线
- 错误码
- 最佳实践
- API参考
- 常见问题
- 文档下载
- 通用参考
链接复制成功!
策略定义与策略实例的基本概念
策略定义
在创建策略实例之前,您需要先定义一个策略定义,它描述了强制执行约束的Rego代码和约束的模式。约束的模式允许管理员像调整函数参数一样微调约束的行为。策略定义中的Rego代码描述了强制执行的具体逻辑,根据您的需求来实现不同的合规性规则。而约束模式则提供了一种灵活的方式,让管理员在创建策略实例时,能够根据实际需求调整策略行为,以满足不同场景的合规控制需求。策略定义的详细说明请参见官方文档。
下面是一个示例策略定义,它要求所有在约束中描述的标签都必须存在。
apiVersion: templates.gatekeeper.sh/v1 kind: ConstraintTemplate metadata: name: k8srequiredlabels spec: crd: spec: names: kind: K8sRequiredLabels validation: # Schema for the `parameters` field openAPIV3Schema: type: object properties: labels: type: array items: type: string targets: - target: admission.k8s.gatekeeper.sh rego: | package k8srequiredlabels violation[{"msg": msg, "details": {"missing_labels": missing}}] { provided := {label | input.review.object.metadata.labels[label]} required := {label | label := input.parameters.labels[_]} missing := required - provided count(missing) > 0 msg := sprintf("you must provide labels: %v", [missing]) }
策略实例
策略实例用于告知Gatekeeper应执行哪个策略定义以及如何执行。策略实例的详细说明请参见官方文档。
下面是一个策略实例示例,该示例使用先前提到的K8sRequiredLabels策略定义,确保Gatekeeper在所有命名空间上强制执行指定的标签。
apiVersion: constraints.gatekeeper.sh/v1beta1 kind: K8sRequiredLabels metadata: name: ns-must-have-gk spec: enforcementAction: deny match: kinds: - apiGroups: [""] kinds: ["Namespace"] parameters: labels: ["gatekeeper"]
改策略实例示例指定了使用“K8sRequiredLabels”策略定义并将执行策略的操作设置为“deny”,这意味着Gatekeeper将拒绝违反策略的请求。“match”部分限制了此策略实例仅适用于命名空间资源。“parameters”部分指定了必须存在于资源上的标签,本例中为“gatekeeper”。
父主题: 策略中心