WAF-OPS-110 – GitOps-basierte Deployments müssen für Kubernetes-/Container-Workloads bevorzugt werden

Beschreibung

Kubernetes and container workloads SHOULD be deployed via GitOps controllers that reconcile desired state from Git. GitOps repositories MUST enforce peer review, branch protection, and signed commits. Controllers MUST report sync status, drift, and errors to observability systems. Manual imperative changes to clusters MUST be reconciled or rejected.

Begründung

Risiko Beschreibung

Risk

Imperative cluster changes bypass audit trails and create drift between environments.

Risk

Missing GitOps reconciliation leaves clusters in undocumented, non-reproducible states.

Anforderungen

  • Kubernetes and container workloads SHOULD be deployed via GitOps controllers that reconcile desired state from Git.

  • GitOps repositories MUST enforce peer review, branch protection, and signed commits.

  • Controllers MUST report sync status, drift, and errors to observability systems.

  • Manual imperative changes to clusters MUST be reconciled or rejected.

Implementierungsleitfaden

  1. Document the requirement in a version-controlled policy, ADR, or standard.

  2. Assign ownership and establish a review cadence (e.g., quarterly).

  3. Implement the required configuration as code in Terraform or equivalent IaC.

Reifegrade

Level Name Kriterien

L1

Ad hoc – control not consistently applied

* Die Anforderung ist nicht einheitlich umgesetzt; Nachweis existiert nur punktuell oder fehlt.

L2

Standardised – policy defined and communicated

* Eine dokumentierte Policy oder ein Standard beschreibt die Anforderung.

L3

Integrated – automated validation in CI/CD

* Terraform-Checks oder IaC-Gates prüfen die Anforderung automatisch in CI/CD.

L4

Auditable – metrics and exceptions tracked

* Abdeckung, Ausnahmen und Qualitätsmetriken werden quartalsweise berichtet.

L5

Optimised – continuous improvement based on data

* Die Effektivität wird kontinuierlich gemessen und automatisch optimiert.

Checks

waf-ops-110.tf.aws.eks-gitops-addon

Engine: terraform | Provider: aws | Automated: Ja

AWS EKS sollte GitOps-Agent über EKS Add-on oder Helm bereitstellen

AWS EKS sollte GitOps-Agent über EKS Add-on oder Helm bereitstellen

Scope: resource — aws_eks_addon, helm_release

Assertions: * addon_name in ['fluxcd', 'argo-cd'] — EKS should have a GitOps add-on installed.

Remediation: AWS EKS sollte GitOps-Agent über EKS Add-on oder Helm bereitstellen

Compliant
# Beispiel konform zu waf-ops-110.tf.aws.eks-gitops-addon
Non-Compliant
# Beispiel nicht konform zu waf-ops-110.tf.aws.eks-gitops-addon

waf-ops-110.tf.azurerm.gitops-extension

Engine: terraform | Provider: azurerm | Automated: Ja

Azure AKS sollte Flux-Erweiterung für GitOps verwenden

Azure AKS sollte Flux-Erweiterung für GitOps verwenden

Scope: resource — azurerm_kubernetes_cluster_extension

Assertions: * extension_type in ['microsoft.flux'] — AKS should use microsoft.flux GitOps extension.

Remediation: Azure AKS sollte Flux-Erweiterung für GitOps verwenden

Compliant
# Beispiel konform zu waf-ops-110.tf.azurerm.gitops-extension
Non-Compliant
# Beispiel nicht konform zu waf-ops-110.tf.azurerm.gitops-extension

waf-ops-110.config.gitops-policy

Engine: config | Provider: any | Automated: Nein

GitOps-Policy muss dokumentiert sein

GitOps-Policy muss dokumentiert sein

Scope: file — docs/devops/gitops-policy.md

Assertions: * exists attribute_exists — GitOps policy must describe repository structure and reconciliation.

Remediation: GitOps-Policy muss dokumentiert sein

Compliant
# Beispiel konform zu waf-ops-110.config.gitops-policy
Non-Compliant
# Beispiel nicht konform zu waf-ops-110.config.gitops-policy

Evidenz

  • Terraform-Konfiguration, die die Anforderung umsetzt.

  • Policy, ADR oder Standard, der die Anforderung dokumentiert.

  • Optionale Cloud-Konsolen- oder API-Ausgaben, die den Laufzeit-Zustand bestätigen.

Verwandte Controls