Design Patterns
The following patterns are proven and derived from the WAF++ principles. They are formulated in a cloud-agnostic manner, with provider-specific notes.
Pattern 1: Region-Pinned Landing Zone
Problem
Without a structured landing zone, individual teams can create resources in arbitrary regions.
Solution
A landing zone with built-in region pinning overrides all other measures through technical upfront constraints.
Structure
Organization Root
├── Management Account
│ └── Service Control Policy: DenyOutsideApprovedRegions
├── Sovereign Workload OU
│ ├── Production Account
│ │ ├── Terraform: provider.region = var.aws_region (validated)
│ │ ├── VPC Endpoints: S3, KMS, ECR, STS
│ │ └── CloudTrail: multi-region, log-validation, sovereign S3
│ └── Non-Production Account
│ └── Same constraints, different data classification
└── Shared Services Account
└── Central Logging: CloudWatch Logs, S3 (eu-central-1 enforced)
Pattern 2: Sovereign Key Hierarchy
Solution
A three-tier key hierarchy based on data criticality:
Tier 1 – Public/Low-sensitivity Data
└── Provider-Managed Key (PMK) – acceptable
Tier 2 – Internal/Operational Data
└── Customer-Managed Key (CMK) in Cloud-KMS
├── Rotation: automatic (annual)
└── Key Policy: restrict to specific services/principals
Tier 3 – PII / Financial / Health Data
└── BYOK: Customer-Key, Cloud-managed HSM (CloudHSM, Azure HSM, Cloud HSM)
or
HYOK: Key in external HSM (Thales, Utimaco, Securosys)
├── Access for cloud provider: technically not possible
└── Rotation: manual / process-driven
Pattern 3: Sovereign Observability Stack
Solution
A sovereign observability stack processes data within approved regions:
Application
└── OpenTelemetry SDK (vendor-neutral)
├── Traces → Sovereign Trace Backend (Jaeger/Tempo in eu-central-1)
├── Metrics → Sovereign Metrics Backend (Prometheus/Thanos in eu-central-1)
└── Logs → CloudWatch/S3 (eu-central-1, retention=90d, KMS-encrypted)
└── Optional export to DPA-secured SIEM
Pattern 4: Break-Glass with Zero Standing Privilege
Solution
Zero Standing Privilege: admin access does not exist permanently, but is only activated on demand.
Normal Operations:
├── Developers: read-only or scoped write (application level)
├── Operations: operations role (no IAM access)
└── Platform: platform role (IaC deploy, no data access)
Break-Glass Activation:
├── Trigger: documented incident / approval (Dual Control)
├── Activation: JIT system (IAM Identity Center / Azure PIM)
├── Duration: max. 4h, automatic deactivation after expiry
├── Logging: CloudTrail captures all actions
└── Review: post-incident review within 5 business days, record archived
Pattern 5: Sovereign Egress Gateway
Solution
Centralized egress point with domain allow-list and anomaly detection:
Workload Subnet (Private)
└── all outgoing connections → Egress Gateway
Egress Gateway
├── AWS Network Firewall / Azure Firewall / GCP Cloud Armor
├── Domain Allow-List (FQDN-based)
│ ├── Approved: *.amazonaws.com (via VPC Endpoint)
│ ├── Approved: *.internal.company.com
│ └── Blocked: * (default deny)
├── DNS: Route53 Resolver / Azure Private DNS
└── Logging: Flow Logs → sovereign S3
VPC Endpoints (no internet routing):
├── com.amazonaws.eu-central-1.s3
├── com.amazonaws.eu-central-1.kms
├── com.amazonaws.eu-central-1.ecr.api
└── com.amazonaws.eu-central-1.sts
Pattern 6: Exit-Ready IaC Architecture
Solution
Portable IaC with abstract modules and open standards:
IaC Abstraction Layer
├── Module: network/vpc → AWS VPC or Azure VNet
├── Module: storage/object → S3 or Azure Blob or GCS
├── Module: database/relational → RDS PostgreSQL or Azure PostgreSQL
└── Module: compute/container → EKS or AKS or GKE
Data Standards:
├── PostgreSQL (open) instead of Aurora Serverless v2 (proprietary)
├── OpenTelemetry instead of X-Ray (proprietary)
└── S3-compatible API instead of proprietary object store features
Exit-Readiness:
├── Quarterly Data Export Test: all data exported and validated
├── Terraform Plan in target cloud: IaC adapted and planned
└── Lessons Learned documented