Skip to main content

More Info:

Enable docker/default seccomp profile in your pod definitions

Risk Level

High

Address

Security

Compliance Standards

  • CIS GKE

Triage and Remediation

Remediation

Manual Steps

  1. Identify pods to review (any machine with kubectl access)
    Use label/namespace filters as appropriate; to start with everything:
    This lists each pod and its pod-level seccomp annotation (if any). Note pods missing docker/default.
  2. Check container-level seccomp annotations (any machine with kubectl access)
    For pods you are reviewing, inspect full annotations to see container-specific overrides:
    Determine whether each container is using docker/default, another profile (e.g. unconfined), or none.
  3. Decide policy exceptions (any machine with kubectl access)
    With security and application owners, decide:
    • Which namespaces/workloads must use docker/default
    • Which, if any, need a different profile or unconfined for functional reasons
      Document approved exceptions before changing manifests.
  4. Update workload manifests to set docker/default (any machine with kubectl access)
    For non-exempt workloads managed via manifests/Helm/Kustomize, edit the source manifests, not live objects. Add either pod-level or container-level annotations, for example:
    • Pod-level:
    • Container-level (per-container override):
    Apply via your normal deployment pipeline (e.g., kubectl apply -f <file>, helm upgrade, or GitOps).
  5. Re‑deploy or roll pods so new annotations take effect (any machine with kubectl access)
    After manifest changes, ensure pods are recreated:
    • For Deployments/DaemonSets/StatefulSets: rely on rolling updates from the apply/upgrade, or trigger:
    • For static or singleton pods created manually, delete and recreate from the updated manifest:
  6. Verify effective configuration (any machine with kubectl access)
    Re-run a cluster-wide check to confirm pods now have docker/default configured where required:
    For spot checks, validate specific pods:
    Confirm that annotations match your policy decisions (docker/default or documented exceptions).
On any machine with kubectl access:
  1. List all pods and their seccomp-related annotations
Problem indication:
  • SECCOMP_POD is empty/<none> and
  • SECCOMP_CONTAINER is empty/<none> for pods that you expect to be constrained.
  1. Inspect annotations on a specific pod
Problem indication:
  • Missing seccomp.security.alpha.kubernetes.io/pod: docker/default
  • Or present but set to anything other than docker/default.
  1. See pods that have any seccomp alpha annotation (to focus review)
Problem indication:
  • Annotations present but value not docker/default, if your policy is to use docker/default.
  1. Confirm api-server alpha feature gate status (to see if the annotation can even work)
If the control plane is exposed as a pod (typical managed GKE):
Problem indication:
  • --feature-gates does not include AllAlpha=true (per the benchmark’s remediation requirement for this check).

Additional Reading: