---
id: "k8s-validating-admission-policy"
type: "component"
kind: "policy-engine"
provider: "k8s"
category: "ops"
docs: "https://kubernetes.io/docs/reference/access-authn-authz/validating-admission-policy/"
url: "https://localhost:3000/catalogue/components/k8s-validating-admission-policy"
---

# ValidatingAdmissionPolicy

In-process CEL admission rules evaluated by the API server instead of a validating webhook.

| | |
|---|---|
| Provider | [k8s](https://localhost:3000/catalogue?provider=k8s) |
| Kind | [Policy engine](https://localhost:3000/catalogue/kinds/policy-engine) |
| Category | Operations |
| Official docs | [https://kubernetes.io/docs/reference/access-authn-authz/validating-admission-policy/](https://kubernetes.io/docs/reference/access-authn-authz/validating-admission-policy/) |

## Properties

| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| `bindingRequired` | boolean | — | no | true | inherited |
| `effect` | enum | `audit`, `deny`, `modify`, `deploy-if-not-exists` | no | — | inherited |
| `enforcementMode` | enum | `enforced`, `disabled` | no | — | inherited |
| `expressionLanguage` | enum | `cel` | no | "cel" | inherited |
| `inProcess` | boolean | — | no | true | inherited |
| `managed` | boolean | — | no | false | **false** |
| `policyCount` | integer | — | no | — | inherited |
| `remediation` | boolean | — | no | false | **false** |
| `scope` | enum | `resource`, `group`, `account`, `organization` | no | — | **"resource"** |
| `validationAction` | enum | `deny`, `warn`, `audit` | no | — | inherited |

Bold values are the ones this component pins.

## Rules that apply · 0

No rule selects this kind or its category.

## Other products of the same kind · 56

- [Cloud Config](https://localhost:3000/catalogue/components/alibaba-cloud-config.md) `alibaba-cloud-config` — alibabacloud
- [Data Security Center](https://localhost:3000/catalogue/components/alibaba-data-security-center.md) `alibaba-data-security-center` — alibabacloud
- [Amazon CodeGuru Reviewer](https://localhost:3000/catalogue/components/aws-codeguru-reviewer.md) `aws-codeguru-reviewer` — aws
- [AWS Config](https://localhost:3000/catalogue/components/aws-config.md) `aws-config` — aws
- [AWS Control Tower](https://localhost:3000/catalogue/components/aws-control-tower.md) `aws-control-tower` — aws
- [IAM Access Analyzer](https://localhost:3000/catalogue/components/aws-iam-access-analyzer.md) `aws-iam-access-analyzer` — aws
- [AWS Lake Formation](https://localhost:3000/catalogue/components/aws-lake-formation.md) `aws-lake-formation` — aws
- [AWS License Manager](https://localhost:3000/catalogue/components/aws-license-manager.md) `aws-license-manager` — aws
- [AWS Organizations](https://localhost:3000/catalogue/components/aws-organizations.md) `aws-organizations` — aws
- [AWS Resource Access Manager](https://localhost:3000/catalogue/components/aws-ram.md) `aws-ram` — aws
- [Amazon Verified Permissions](https://localhost:3000/catalogue/components/aws-verified-permissions.md) `aws-verified-permissions` — aws
- [Microsoft Entra Conditional Access](https://localhost:3000/catalogue/components/azure-conditional-access.md) `azure-conditional-access` — azure
- [Azure Policy](https://localhost:3000/catalogue/components/azure-policy.md) `azure-policy` — azure
- [Microsoft Entra Privileged Identity Management](https://localhost:3000/catalogue/components/azure-privileged-identity-management.md) `azure-privileged-identity-management` — azure
- [Cloudflare Data Loss Prevention](https://localhost:3000/catalogue/components/cloudflare-dlp.md) `cloudflare-dlp` — cloudflare
- [CalypsoAI](https://localhost:3000/catalogue/components/calypsoai.md) `calypsoai` — default
- [Cerbos](https://localhost:3000/catalogue/components/cerbos.md) `cerbos` — default
- [OPA Gatekeeper](https://localhost:3000/catalogue/components/gatekeeper.md) `gatekeeper` — default
- [Guardrails AI](https://localhost:3000/catalogue/components/guardrails-ai.md) `guardrails-ai` — default
- [HiddenLayer AI Security Platform](https://localhost:3000/catalogue/components/hiddenlayer.md) `hiddenlayer` — default
- [KubeArmor](https://localhost:3000/catalogue/components/kubearmor.md) `kubearmor` — default
- [Kubewarden](https://localhost:3000/catalogue/components/kubewarden.md) `kubewarden` — default
- [Kyverno](https://localhost:3000/catalogue/components/kyverno.md) `kyverno` — default
- [Lakera Guard](https://localhost:3000/catalogue/components/lakera-guard.md) `lakera-guard` — default
- [LLM Guard](https://localhost:3000/catalogue/components/llm-guard.md) `llm-guard` — default
- [NeMo Guardrails](https://localhost:3000/catalogue/components/nemo-guardrails.md) `nemo-guardrails` — default
- [Open Policy Agent](https://localhost:3000/catalogue/components/opa.md) `opa` — default
- [Permit.io](https://localhost:3000/catalogue/components/permit-io.md) `permit-io` — default
- [Generic policy engine](https://localhost:3000/catalogue/components/policy-engine.md) `policy-engine` — default
- [Prompt Security](https://localhost:3000/catalogue/components/prompt-security.md) `prompt-security` — default
- [Protect AI](https://localhost:3000/catalogue/components/protect-ai.md) `protect-ai` — default
- [Rebuff](https://localhost:3000/catalogue/components/rebuff.md) `rebuff` — default
- [Robust Intelligence](https://localhost:3000/catalogue/components/robust-intelligence.md) `robust-intelligence` — default
- [SonarQube Server](https://localhost:3000/catalogue/components/sonarqube.md) `sonarqube` — default
- [DigitalOcean CSPM](https://localhost:3000/catalogue/components/digitalocean-cspm.md) `digitalocean-cspm` — digitalocean
- [Access Context Manager](https://localhost:3000/catalogue/components/google-access-context-manager.md) `google-access-context-manager` — gcp
- [Assured Workloads](https://localhost:3000/catalogue/components/google-assured-workloads.md) `google-assured-workloads` — gcp
- [Binary Authorization](https://localhost:3000/catalogue/components/google-binary-authorization.md) `google-binary-authorization` — gcp
- [Identity and Access Management](https://localhost:3000/catalogue/components/google-cloud-iam.md) `google-cloud-iam` — gcp
- [Firebase App Check](https://localhost:3000/catalogue/components/google-firebase-app-check.md) `google-firebase-app-check` — gcp
- and 16 more: https://localhost:3000/catalogue/kinds/policy-engine.md

## Use it in a design

```yaml
nodes:
  - { id: "k8s-validating-admission-policy", component: "k8s-validating-admission-policy" }
```

## Source (`component` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../../schema/component.schema.json
# Kubernetes ValidatingAdmissionPolicy: "a declarative, in-process alternative to validating
# admission webhooks" that expresses admission rules in CEL ("Validating Admission Policy").
# Per that page it is `admissionregistration.k8s.io/v1`, stable since v1.30, and evaluated
# inside the API server with no webhook server to call. A policy does nothing until a
# ValidatingAdmissionPolicyBinding scopes it and names its validationActions; there is no
# default action, at least one of Deny, Warn or Audit must be declared, and Deny and Warn
# cannot be combined.
schemaVersion: "1"
type: "component"
id: "k8s-validating-admission-policy"
kind: "policy-engine"
provider: "k8s"
docs: "https://kubernetes.io/docs/reference/access-authn-authz/validating-admission-policy/"
defaults:
  managed: false
  scope: "resource"
  remediation: false
properties:
  validationAction:
    type: "enum"
    values: ["deny", "warn", "audit"]
  expressionLanguage:
    type: "enum"
    values: ["cel"]
    default: "cel"
  bindingRequired:
    type: "boolean"
    default: true
  inProcess:
    type: "boolean"
    default: true
```

Human page: https://localhost:3000/catalogue/components/k8s-validating-admission-policy
