WAF-SOV-060 β Privileged Access Controlled (Separation of Duties)
Description
Privileged roles MUST be minimized, time-limited, and subject to regular access reviews. Separation of duties MUST be enforced: no single principal may simultaneously create infrastructure, approve deployments, AND manage encryption keys.
Wildcard IAM permissions ( on ) are prohibited. Administrative access MUST be
provisioned JIT (Just-In-Time) where technically feasible.
Rationale
Over-privileged access is the primary attack vector for both external compromise and
insider threats in cloud environments. A developer with AdministratorAccess can bypass
arbitrary data residency controls, disable logging, or exfiltrate key material.
Sovereignty requires that administrative actions be restricted, observable, and accountable. Separation of duties prevents a single compromised credential from destroying the entire sovereignty posture.
Threat Context
| Risk | Description |
|---|---|
Compromised developer credentials |
Wildcard permissions enable full data access upon credential compromise. |
CI/CD with AdministratorAccess |
Build pipeline service account with full access enables arbitrary infrastructure changes. |
Missing SoD |
A single principal can change key policy and then access encrypted data. |
Permanent admin credentials |
Never-rotated admin keys without MFA enforcement as a persistent attack target. |
Over-privileged service accounts |
Routine non-privileged tasks performed via accounts with excessive permissions. |
Regulatory Mapping
| Framework | Controls |
|---|---|
GDPR |
Art. 32 β Security of processing (access control); Art. 5(1)(f) β Integrity and confidentiality |
BSI C5:2020 |
IAM-01 β Identity and access management; IAM-03 β Privileged access management; IAM-05 β Separation of duties |
EUCS (ENISA) |
IAM-01 β Access control policy; IAM-03 β Privileged access |
ISO 27001:2022 |
A.8.2 β Privileged access rights; A.8.3 β Restriction of access to information; A.5.3 β Separation of duties |
SOC 2 |
CC6.3 β Role-based access control; CC6.6 β Logical access |
BSI C3A:2026 |
Dimension 5 β Operational: EU-based operational personnel; Dimension 5 β Operational: Separation of duties; Dimension 1 β Strategic: Effective control |
Requirement
-
Wildcard actions (
Action: *) combined with wildcard resources (Resource: *) are prohibited in custom policies -
AdministratorAccessmay only be assigned in documented break-glass scenarios -
MFA MUST be enforced for all human principals with production access
-
IAM password policy MUST be configured (minimum length >= 14, expiry ⇐ 90 days)
-
Long-lived static access keys SHOULD NOT be created via Terraform
-
Quarterly IAM access reviews MUST be performed and documented
-
JIT access MUST be implemented for privileged operations where feasible
-
SCP/Azure Policy MUST prevent privilege escalation at the organization level
Implementation Guidance
-
Least privilege: Grant only the permissions required for the specific task.
-
IAM roles over IAM users: Avoid long-lived access keys; use OIDC federation for CI/CD.
-
Wildcard prohibition: Explicitly prohibit
Action: *combined withResource: *in custom policies. -
AdministratorAccess only for break-glass: Only in documented emergency scenarios; implement JIT activation.
-
JIT access: AWS IAM Identity Center, Azure PIM, or equivalent solution for privileged access.
-
Enforce MFA: For all human principals with production access; SCP for enforcement.
-
Quarterly access reviews: Document quarterly IAM access reviews with findings and remediation status.
-
SCP/Azure Policy: Block privilege escalation actions at the organization level.
-
CI/CD separation: Separate deploy permissions from data access permissions.
Maturity Levels
| Level | Name | Criteria |
|---|---|---|
1 |
Basic IAM roles, no wildcard admin |
No |
2 |
Least-privilege roles, MFA enforced |
No |
3 |
JIT access, formal SoD, quarterly reviews |
JIT provisioning for privileged access; documented SoD matrix (who may do what); quarterly reviews with evidence. |
4 |
Automated detection of privilege drift |
IAM Access Analyzer or equivalent tool continuously monitors for over-privileged policies; alerts on policy changes; SCP blocks privilege escalation. |
5 |
Zero-trust IAM with continuous verification |
All access context-aware and time-limited; automated remediation of policy violations; IAM compliance integrated into deployment pipeline. |
Terraform Checks
waf-sov-060.tf.aws.no-wildcard-iam-policy
Checks: IAM policies must not contain the Action:* with Resource:* combination.
| Compliant | Non-Compliant |
|---|---|
|
|
waf-sov-060.tf.aws.no-administrator-access-managed-policy
Checks: The AWS managed policy AdministratorAccess must not be attached to regular roles.
| Compliant | Non-Compliant |
|---|---|
|
|
waf-sov-060.tf.aws.iam-password-policy-configured
Checks: IAM account password policy must be configured (minimum length >= 14, expiry ⇐ 90 days).
| Compliant | Non-Compliant |
|---|---|
|
|
waf-sov-060.tf.aws.no-iam-user-direct-access-keys
Checks: Long-lived IAM access keys should not be created via Terraform.
# Non-Compliant: Static long-lived credentials via Terraform
resource "aws_iam_access_key" "user" {
user = aws_iam_user.service.name
status = "Active" # β οΈ Long-lived static key
}
# Compliant: OIDC-based short-lived tokens for CI/CD
resource "aws_iam_openid_connect_provider" "github" {
url = "https://token.actions.githubusercontent.com"
client_id_list = ["sts.amazonaws.com"]
thumbprint_list = ["..."]
}
Evidence
| Type | Required | Description |
|---|---|---|
IaC |
β Required |
IAM policy documents in Terraform without wildcard permissions and with least-privilege design. |
Process |
β Required |
Quarterly IAM access review records with findings and remediation status. |
Config |
Optional |
IAM Access Analyzer findings export without active overpermission issues. |
Logs |
Optional |
CloudTrail logs with privileged access events for review. |
Config |
Optional |
SCP or Azure Policy configuration restricting privilege escalation. |
Regulatorisches Mapping
| Framework | Controls |
|---|---|
DSGVO |
Art. 44 β Allg. GrundsΓ€tze fΓΌr Γbermittlungen; Art. 46 β Geeignete Garantien; Art. 28 β Verarbeitungsvereinbarung |
BSI C5:2020 |
OPS-04 β Datenverwaltung; OPS-05 β Datenleakage-PrΓ€vention; SIM-01 β Sicherheitsvorfallmanagement |
EUCS (ENISA) |
DSP-01 β Datenklassifikation; DSP-02 β Dateninventar und Datenfluss; DSP-03 β DatenverfΓΌgbarkeit; DSP-04 β DatenlΓΆschung; IAM-01 β IdentitΓ€t und Zugriff |
ISO 27001:2022 |
A.5.12 β Klassifizierung von Informationen; A.5.13 β Kennzeichnung von Informationen; A.5.33 β Schutz von Aufzeichnungen |
ISO 27017 |
CLD.5.1 β Information security in cloud services; CLD.5.2 β Access control in cloud services |
ISO 27018 |
A.2 β Purpose legitimacy and PII protection; A.10 β Confidentiality and security of PII |
BSI C3A:2026 |
Domain β Datenhoheit; Domain β Cloud-Spezifische Anforderungen |
GAIA-X |
Sovereign Cloud β Anforderungen an Datenlokation und Transparenz |
NIST SP 800-53 |
SC-1 β Cloud computing security; SC-7 β Boundary protection; SC-8 β Transmission confidentiality |
NIST CSF 2.0 |
GV.PO β Policy; GV.RM β Risk management; GV.SC β Cybersecurity supply chain risk management |
FedRAMP |
SC-1, SC-7, SC-8 (High baseline) |
TISAX |
Information security β Data protection; Prototype protection β Sensitive data handling |
ANSSI SecNumCloud |
Domain β Data protection; Domain β Cloud security |
BIO |
BIO β Gegevensbescherming; BIO β Cloudbeveiliging |
ENS High |
ds.info.1 β Datos personales; ds.info.2 β CalificaciΓ³n de la informaciΓ³n |
UK NCSC CAF |
B3 β Understanding data; B4 β System security |
CMMC 2.0 |
SC.L2-3.13.16 β Protect CUI confidentiality at rest |
IRAP |
ISM β Data protection; ISM β Cloud security |
CCCS PBMM |
SC-7 β Boundary protection; SC-8 β Transmission confidentiality |
MAS TRM |
Ch.5 β Technology risk governance; Ch.8 β Cloud computing controls |
ISMAP |
Data sovereignty and cloud security |
FISC |
Technical measures β Data protection |