用途:OPA Gatekeeper 是 Kubernetes 准入控制器,用 Rego 策略在资源准入时进行校验、变更或拒绝。通过 ConstraintTemplate(含 Rego 逻辑的策略蓝图)和 Constraint(带参数的实例化策略)实现策略落地,适合部署安全控制、满足合规要求、改进安全架构及开展相关安全评估。
主要能力:可要求资源带指定标签、禁止特权容器(含 init 容器)、限制容器镜像仓库、强制 CPU/内存资源限额、禁止 :latest 标签、强制只读根文件系统;支持 dryrun、deny、warn 三种执行模式,并可通过 Config 排除 kube-system 等命名空间;提供审计结果与 Prometheus 指标便于监控。
使用方式:前置条件为 Kubernetes v1.24+、Helm 3、具备 cluster-admin 权限的 kubectl,以及熟悉 Rego。安装命令为 helm repo add gatekeeper https://open-policy-agent.github.io/gatekeeper/charts、helm repo update,再执行 helm install gatekeeper gatekeeper/gatekeeper --namespace gatekeeper-system --create-namespace --set replicas=3 --set audit.replicas=1 --set audit.logLevel=INFO;用 kubectl get pods -n gatekeeper-system 验证。定义策略需先编写 ConstraintTemplate 再实例化 Constraint,例如 K8sRequiredLabels、K8sBlockPrivileged、K8sAllowedRepos、K8sRequireLimits、K8sBlockLatestTag、K8sReadOnlyRoot。
适用场景与限制:适用于需要统一准入策略的多命名空间集群。建议先在 dryrun 下部署并审查违规,再切换为 deny;利用 gatekeeper-library 预置模板;始终排除系统命名空间;策略纳入 Git 版本管理;用 opa test 或 Rego Playground 测试;并与 Pod Security Admission 叠加做纵深防御。资料未提供具体收费、价格或效果数据。