全部产品
Search
文档中心

容器服务 Kubernetes 版 ACK:启用 Validating Admission Policy 作为安全策略引擎

更新时间:Mar 23, 2026

Validating Admission Policy(VAP)是Kubernetes 提供的一种原生准入控制机制。与依赖外部 Webhook 的 Gatekeeper 相比,VAP 在 kube-apiserver 内部直接执行规则校验,稳定性和性能更优。在 ACK 中,可在部署安全策略时选择 CEL 语言,启用 VAP 作为策略执行引擎,以更高效、更稳定的方式保障集群的资源安全与合规。

VAP工作原理

VAP作为 Kubernetes 内置的准入能力,允许通过声明式的 CEL 表达式,在资源对象创建或更新的请求被持久化前进行规则校验。不满足条件的请求会被 kube-apiserver 直接拒绝。

ACK的安全策略管理功能集成了 VAP(1.30 及以上版本默认启用),其实现基于 Gatekeeper 的多策略引擎方案。当部署一个 CEL 语言的策略实例时,Gatekeeper 会将其自动转换为一个原生的 ValidatingAdmissionPolicy资源。同时,原有的 Gatekeeper Webhook 会作为兜底机制存在,当 VAP 执行失败时,请求会回退到 Webhook 进行二次校验,确保策略的持续有效。

image

VAP 与 Gatekeeper 的主要差异如下。

  • 核心架构差异

    维度

    VAP

    Gatekeeper

    部署依赖

    内置于 kube-apiserver,无需额外的Webhook。

    需要额外部署 Gatekeeper 控制面和 Webhook 组件。

    执行链路

    在 kube-apiserver 内部执行,无网络开销。

    通过 Validating Webhook 回调外部服务,存在网络延迟。

    稳定性

    更高,不依赖外部组件的运行状态。

    依赖 Gatekeeper 组件的稳定性。

    规则语言

    CEL(与 VAP/MAP 配套,表达式贴近 Kubernetes 对象结构)

    Rego、CEL(多语言并存)

  • 功能支持情况

    维度

    VAP

    Gatekeeper

    审计能力(存量资源)

    不支持

    支持

    外部数据源

    不支持,规则仅能访问请求中的对象数据

    支持,可通过 external_data 引用其他资源或外部数据

    资源变更(Mutate)

    支持(通过 MAP, Kubernetes 1.30 中为 Alpha 阶段)

    支持(通过其 CRD 实现)

    “Warn”非阻断治理

    支持 (validationActions: [Warn])

    支持

    “Dry-run”试运行

    支持(通过kube-apiserver 的 dry-run 机制)

    支持

    豁免/排除机制

    支持(match/exclude 规则)

    支持(match/excludelabel 等方式)

    事件/订阅

    无原生事件机制

    支持,提供违规日志、审计事件等

在策略管理中启用VAP

在策略管理中,可选择策略语言来指定策略引擎,系统将自动基于对应的引擎来执行该策略。

  • Rego:对应 Gatekeeper 引擎。

  • CEL:对应 VAP 引擎。

  1. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择安全管理 > 策略管理

  2. 单击我的策略,然后单击创建策略实例,参见页面提示配置策略实例。

    image首次创建CEL类型的策略实例时,需开启VAP策略审计功能,以便可在策略实践总览查看VAP的执行结果。

    页面默认展示7天内最近100条的拦截或告警日志。如需查看更多日志,请选择运维管理 > 日志中心,单击控制面组件日志页签,按照页面提示选择并查看 validating-admission-policy 日志。

    image

  3. 部署完成后,在策略实践总览页面查看策略执行结果。

相关操作

修改已有策略的执行引擎

已有策略的策略语言支持修改。但一个策略模板下的所有实例必须使用统一的执行语言,修改该模板的语言将导致其所有实例同步变更。

  • 控制台:在我的策略页面的策略列表中,定位目标策略的策略语言,单击修改并选择新的语言。

    image

  • OpenAPI:参见DeployPolicyInstance查询、部署、修改和删除策略库中的策略实例。