⎈ k8s knowledge compiler

Pod Security Admission [page]deterministic

An overview of the Pod Security Admission Controller, which can enforce the Pod Security Standards.

conceptssecurity

The Kubernetes [Pod Security Standards](/docs/concepts/security/pod-security-standards/) define different isolation levels for Pods. These standards let you define how you want to restrict the behavior of pods in a clear, consistent fashion.

Kubernetes offers a built-in _Pod Security_ [admission controller](#gloss:admission-controller) to enforce the Pod Security Standards. Pod security restrictions are applied at the [namespace](#gloss:namespace) level when pods are created.

### Built-in Pod Security admission enforcement

This page is part of the documentation for Kubernetes v. If you are running a different version of Kubernetes, consult the documentation for that release.

## Pod Security levels

Pod Security admission places requirements on a Pod's [Security Context](/docs/tasks/configure-pod-container/security-context/) and other related fields according to the three levels defined by the [Pod Security Standards](/docs/concepts/security/pod-security-standards): `privileged`, `baseline`, and `restricted`. Refer to the [Pod Security Standards](/docs/concepts/security/pod-security-standards) page for an in-depth look at those requirements.

## Pod Security Admission labels for namespaces

Once the feature is enabled or the webhook is installed, you can configure namespaces to define the admission control mode you want to use for pod security in each namespace. Kubernetes defines a set of [labels](#gloss:label) that you can set to define which of the predefined Pod Security Standard levels you want to use for a namespace. The label you select defines what action the [control plane](#gloss:control-plane) takes if a potential violation is detected:

Mode | Description :---------|:------------ enforce | Policy violations will cause the pod to be rejected. audit | Policy violations will trigger the addition of an audit annotation to the event recorded in the [audit log](/docs/tasks/debug/debug-cluster/audit/), but are otherwise allowed. warn | Policy violations will trigger a user-facing warning, but are otherwise allowed.

A namespace can configure any or all modes, or even set a different level for different modes.

For each mode, there are two labels that determine the policy used:

```yaml # The per-mode level label indicates which policy level to apply for the mode. # # MODE must be one of `enforce`, `audit`, or `warn`. # LEVEL must be one of `privileged`, `baseline`, or `restricted`. pod-security.kubernetes.io/<MODE>: <LEVEL>

# Optional: per-mode version label that can be used to pin the policy to the # version that shipped with a given Kubernetes minor version (for example v). # # MODE must be one of `enforce`, `audit`, or `warn`. # VERSION must be a valid Kubernetes minor version, or `latest`. pod-security.kubernetes.io/<MODE>-version: <VERSION> ```

Check out [Enforce Pod Security Standards with Namespace Labels](/docs/tasks/configure-pod-container/enforce-standards-namespace-labels) to see example usage.

## Workload resources and Pod templates

Pods are often created indirectly, by creating a [workload object](/docs/concepts/workloads/controllers/) such as a [deployment](#gloss:deployment) or [job](#gloss:job). The workload object defines a _Pod template_ and a [controller](#gloss:controller) for the workload resource creates Pods based on that template. To help catch violations early, both the audit and warning modes are applied to the workload resources. However, enforce mode is not applied to workload resources, only to the resulting pod objects.

## Exemptions

You can define _exemptions_ from pod security enforcement in order to allow the creation of pods that would have otherwise been prohibited due to the policy associated with a given namespace. Exemptions can be statically configured in the [Admission Controller configuration](/docs/tasks/configure-pod-container/enforce-standards-admission-controller/#configure-the-admission-controller).

Exemptions must be explicitly enumerated. …(trimmed)

Sources

concepts/security/pod-security-admission.md · docPod Security Admission

Related (15)

references Admission Controlleradmission controller conf=1
references Namespacenamespace conf=1
references Labellabels conf=1
references Control Planecontrol plane conf=1
references Deploymentdeployment conf=1
references Jobjob conf=1
references Controllercontroller conf=1
part_of Pod Security levelsdescribes conf=1
part_of Workload resources and Pod templatesdescribes conf=1
part_of Exemptionsdescribes conf=1
part_of Metricsdescribes conf=1
part_of {{% heading "whatsnext" %}}describes conf=1
part_of Built-in Pod Security admission enforcementdescribes conf=1
api_for Poddocuments API object conf=1

← all Docs