WAF-OPS-120 – Feature Flags müssen für risikoreiche Änderungen verfügbar und dokumentiert sein

Beschreibung

Risky or customer-visible feature rollouts MUST use feature flags with defined targeting and kill-switch capability. Feature flag configurations MUST be version-controlled and auditable. Flag lifecycle MUST be managed so temporary flags are removed after rollout completes. Critical paths MUST support immediate disablement without requiring a full deployment.

Begründung

Risiko Beschreibung

Risk

Releases without feature flags force rollbacks for every production issue, increasing MTTR.

Risk

Orphaned feature flags create technical debt and unpredictable code paths.

Anforderungen

  • Risky or customer-visible feature rollouts MUST use feature flags with defined targeting and kill-switch capability.

  • Feature flag configurations MUST be version-controlled and auditable.

  • Flag lifecycle MUST be managed so temporary flags are removed after rollout completes.

  • Critical paths MUST support immediate disablement without requiring a full deployment.

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-120.config.feature-flag-policy

Engine: config | Provider: any | Automated: Nein

Feature-Flag-Policy muss existieren

Feature-Flag-Policy muss existieren

Scope: file — docs/devops/feature-flag-policy.md

Assertions: * exists attribute_exists — Feature flag policy must define kill-switch and lifecycle.

Remediation: Feature-Flag-Policy muss existieren

Compliant
# Beispiel konform zu waf-ops-120.config.feature-flag-policy
Non-Compliant
# Beispiel nicht konform zu waf-ops-120.config.feature-flag-policy

waf-ops-120.tf.aws.appconfig-flags

Engine: terraform | Provider: aws | Automated: Ja

AWS AppConfig Feature Flags sollten verwendet werden

AWS AppConfig Feature Flags sollten verwendet werden

Scope: resource — aws_appconfig_extension_association, aws_appconfig_configuration_profile

Assertions: * name attribute_exists — AppConfig resources must exist for feature flags.

Remediation: AWS AppConfig Feature Flags sollten verwendet werden

Compliant
# Beispiel konform zu waf-ops-120.tf.aws.appconfig-flags
Non-Compliant
# Beispiel nicht konform zu waf-ops-120.tf.aws.appconfig-flags

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