WAF++ WAF++
Back to WAF++ Homepage

WAF-SEC-020 – Least Privilege & RBAC Enforcement

Beschreibung

Alle IAM-Berechtigungen MÜSSEN nach dem Minimalprinzip (Least Privilege) vergeben werden. AdministratorAccess und andere Volladmin-Policies DÜRFEN NICHT direkt an IAM-Benutzer angehängt werden – ausschließlich an IAM-Rollen. IAM-Rollen-Policies MÜSSEN Bedingungen (Condition-Blöcke) enthalten, die den Nutzungskontext einschränken (z. B. MFA-Pflicht, Quell-IP, temporale Einschränkung). Wildcard-Berechtigungen (* auf Action und Resource gleichzeitig) sind VERBOTEN.

Rationale

Übermäßige IAM-Berechtigungen sind der primäre Verstärker bei Cloud-Sicherheitsvorfällen: Ein kompromittierter Account mit AdministratorAccess kann sämtliche Ressourcen lesen, ändern und löschen – einschließlich Audit-Logs und Sicherheitskontrollen. Direkte Policy-Bindungen an Benutzer umgehen den rollenbasierten Delegationsfluss und erschweren konsistentes Berechtigungs-Lifecycle-Management erheblich. Rollen mit erzwungenen Bedingungen begrenzen die Nutzbarkeit kompromittierter Credentials: Ohne gültige MFA-Session oder aus einer fremden IP ist die Rolle nicht annehmbar.

Bedrohungskontext

Risiko Beschreibung

Privilege Escalation

Ein kompromittierter Low-Privilege-Account kann sich zu AdministratorAccess hocharbeiten, wenn IAM-Policies zu weitreichend sind.

Blast Radius

Direkt an Benutzer gebundene Admin-Policies bedeuten: Ein kompromittierter Account = vollständige Kontrolle über das gesamte AWS-Konto.

Insider-Bedrohung

Mitarbeitende mit übermäßigen Berechtigungen können Daten exfiltrieren oder Ressourcen absichtlich beschädigen.

Audit-Komplexität

Ohne klare RBAC-Struktur ist nicht nachvollziehbar, welche Person welche Rechte besitzt – Compliance-Reviews werden unmöglich.

Anforderung

  • AdministratorAccess und vergleichbare Volladmin-Policies DÜRFEN NICHT direkt an IAM-Benutzer gebunden werden – ausschließlich an IAM-Rollen.

  • IAM-Rollen-Trust-Policies MÜSSEN Condition-Blöcke mit mindestens einer Einschränkung enthalten (MFA, IP, Zeit).

  • Wildcard-Aktionen (Action: "") kombiniert mit Wildcard-Ressourcen (Resource: "") sind in produktiven IAM-Policies VERBOTEN.

  • Jede IAM-Rolle MUSS einen klar benannten Zweck und einen definierten Eigner-Tag (owner) tragen.

  • IAM-Berechtigungen MÜSSEN nach dem Prinzip des geringsten Privilegs vergeben und quartalsweise überprüft werden.

  • Unused IAM Credentials MÜSSEN über IAM Access Analyzer identifiziert und entfernt werden.

Implementierungsanleitung

  1. RBAC-Rollen-Taxonomie definieren: Rollen nach Funktion strukturieren (Developer, ReadOnly, Operator, SecurityAuditor).

  2. AdministratorAccess von Benutzern trennen: Direkte Policy-Bindungen auflösen; Benutzer nehmen Rollen an.

  3. Condition-Blöcke einrichten: MFA-Pflicht (aws:MultiFactorAuthPresent: true) in Trust-Policies für sensible Rollen.

  4. Berechtigungs-Boundaries einsetzen: IAM Permission Boundaries auf alle entwicklergesteuerten Rollen anwenden.

  5. Access Analyzer aktivieren: IAM Access Analyzer Findings wöchentlich reviewen; unused permissions entfernen.

  6. CI-Gate konfigurieren: OPA- oder WAF++-Policy prüft bei jedem PR auf direkten AdministratorAccess an Benutzer.

  7. Quartalsaudit: Access Reviews dokumentieren, Findings tracken und schließen.

Reifegrad-Abstufung

Level Bezeichnung Kriterien

1

Ad-hoc Berechtigungen

Berechtigungen manuell vergeben; häufig AdministratorAccess direkt an Benutzer; kein RBAC-Konzept.

2

Basis-RBAC vorhanden

Rollen-Taxonomie dokumentiert; AdministratorAccess nur noch an Rollen; grobe Least-Privilege-Umsetzung.

3

Conditions und Permission Boundaries

Alle Admin-Rollen mit MFA-Condition; Permission Boundaries auf entwicklergesteuerte Rollen; Access Analyzer aktiv.

4

Just-in-Time-Zugriff und quartalsweise Access Reviews

Keine dauerhaften Admin-Rollen; JIT-Zugriff via IAM Identity Center; dokumentierte quartalsweise Access Reviews.

5

Vollautomatisiertes Berechtigungsmanagement

Automatische Erkennung und Entzug ungenutzter Berechtigungen; Policy-Generierung aus tatsächlichem Nutzungsverhalten via Access Advisor.

Terraform Checks

waf-sec-020.tf.aws.no-admin-policy-on-users

Prüft: Die Policy AdministratorAccess darf nicht direkt an IAM-Benutzer gebunden sein – nur an IAM-Rollen.

Compliant Non-Compliant
resource "aws_iam_role" "admin" {
  name = "OrganizationAdminRole"
  assume_role_policy = jsonencode({
    Version = "2012-10-17"
    Statement = [{
      Effect    = "Allow"
      Principal = { AWS = var.admin_principal }
      Action    = "sts:AssumeRole"
      Condition = {
        Bool = {
          "aws:MultiFactorAuthPresent" = "true"
        }
      }
    }]
  })
}

resource "aws_iam_role_policy_attachment" "admin" {
  role       = aws_iam_role.admin.name
  policy_arn = "arn:aws:iam::aws:policy/AdministratorAccess"
}
resource "aws_iam_user" "admin_user" {
  name = "alice"
}

# WAF-SEC-020 Violation:
# AdministratorAccess direkt an Benutzer
resource "aws_iam_user_policy_attachment" "bad" {
  user       = aws_iam_user.admin_user.name
  policy_arn = "arn:aws:iam::aws:policy/AdministratorAccess"
}

Remediation: aws_iam_user_policy_attachment mit AdministratorAccess entfernen. Eine IAM-Rolle mit entsprechender Trust-Policy und Condition-Block erstellen; Benutzer nehmen die Rolle an statt direkter Policy-Bindung.


waf-sec-020.tf.aws.role-policy-requires-condition

Prüft: IAM-Rollen-Trust-Policies für privilegierte Rollen müssen einen Condition-Block enthalten.

Compliant Non-Compliant
resource "aws_iam_role" "ops" {
  name = "OperationsRole"
  assume_role_policy = jsonencode({
    Version = "2012-10-17"
    Statement = [{
      Effect    = "Allow"
      Principal = {
        AWS = "arn:aws:iam::123456789:root"
      }
      Action    = "sts:AssumeRole"
      Condition = {
        Bool = {
          "aws:MultiFactorAuthPresent" = "true"
        }
      }
    }]
  })
}
resource "aws_iam_role" "ops" {
  name = "OperationsRole"
  assume_role_policy = jsonencode({
    Version = "2012-10-17"
    Statement = [{
      Effect    = "Allow"
      Principal = {
        AWS = "arn:aws:iam::123456789:root"
      }
      Action = "sts:AssumeRole"
      # Kein Condition-Block
      # WAF-SEC-020 Violation
    }]
  })
}

Remediation: Trust-Policy der IAM-Rolle um einen Condition-Block erweitern, der mindestens aws:MultiFactorAuthPresent = true oder eine IP-Einschränkung via aws:SourceIp enthält.

Evidenz

Typ Pflicht Beschreibung

IaC

✅ Pflicht

Terraform-Konfiguration aller IAM-Rollen mit Trust-Policy, Condition-Blöcken und zugeordneten Policies; kein direkter AdministratorAccess an Benutzer.

Governance

✅ Pflicht

RBAC-Konzeptdokument mit Rollen-Taxonomie, erlaubten Policy-Kombinationen und Überprüfungsrhythmus.

Process

Optional

Quartalsweise Access-Review-Protokolle mit IAM Access Analyzer Findings und dokumentierter Bereinigung.

Config

Optional

OPA- oder WAF++-CI-Gate-Konfiguration, die direkte Admin-Policy-Bindungen an Benutzer blockiert.

Regulatorisches Mapping

Framework Controls

ISO 27001:2022

A.5.15 – Threat intelligence; A.5.16 – Threat classification; A.5.24 – Information security incident management; A.5.25 – Assessment and decision on information security events; A.5.26 – Response to information security incidents; A.5.27 – Learning from information security incidents; A.8.2 – Privileged access rights; A.8.5 – Secure authentication; A.8.8 – Management of technical vulnerabilities; A.8.10 – Information deletion; A.8.11 – Data masking; A.8.22 – Segregation of networks; A.8.23 – Network security; A.8.24 – Use of cryptography

ISO 27017

CLD.5.1 – Information security in cloud services; CLD.5.2 – Access control in cloud services; CLD.6.3 – Shared roles and responsibilities

ISO 27018

A.2 – Purpose legitimacy and PII protection; A.10 – Confidentiality and security of PII

GDPR

Art. 5(1)(c) – Data minimisation; Art. 5(1)(f) – Integrity and confidentiality; Art. 9 – Special categories of personal data; Art. 25 – Data protection by design and by default; Art. 32 – Security of processing; Art. 44 – General principles for transfers; Art. 46 – Appropriate safeguards; Art. 30 – Records of processing activities

BSI C5:2020

IDM-01 – Identity and access management policy; IDM-02 – Role management; IDM-03 – User lifecycle management; COM-01 – Network and service security; COM-02 – Cloud monitoring; COM-03 – Cloud logging

EUCS (ENISA)

IAM-01 – Identity and access management; IAM-02 – Access rights management; IAM-03 – Privileged access management; IAM-04 – Access control policy

NIST SP 800-53

AC-1 – Policy and procedures; AC-2 – Account management; AC-3 – Access enforcement; AC-6 – Least privilege; IA-2 – Identification and authentication; IA-5 – Authenticator management; SI-4 – Information system monitoring; SI-5 – Malicious code protection

FedRAMP

AC-1, AC-2, AC-3, AC-6, IA-2, IA-5, SI-4, SI-5 (Moderate/High baseline)

HIPAA

§ 164.308(a)(4) – Access management; § 164.312(a) – Access control; § 164.312(d) – Information system activity review; § 164.312(e)(1) – Transmission security

PCI DSS v4.0

Req 7 – Restrict access to cardholder data; Req 8 – Identify and authenticate access; Req 8.3 – Non-service accounts; Req 8.6 – Password policy; Req 8.2.4 – MFA

SOC 2 Type II

CC6.1 – Logical access security software; CC6.2 – Logical access security management; CC6.6 – Secure configuration; CC6.7 – Network security

CSRD

ESRS E1 – Climate change – Disclosure of information; ESRS G1 – Governance – Disclosure of information

NIST CSF 2.0

GV.AC – Identity management and access control; DE.CM – Configuration management; DE.AE – Anomaly detection

CIS Controls v8

CIS 4 – Secure Configuration; CIS 4.1 – Inventory and control of enterprise assets; CIS 4.4 – Access control; CIS 4.5 – Least privilege; CIS 4.8 – Audit log management

TISAX

Information security – Access rights management; Prototype protection – Sensitive data handling

ANSSI SecNumCloud

Domain – Identity and access management; Domain – Security monitoring

BIO

BIO – Identificatie en authenticatie; BIO – Toegangsbeheer

ENS High

org.3 – Políticas de acceso; op.exp.5 – Monitorización de la configuración

UK NCSC CAF

B1 – Access control; B2 – Secure configuration

CMMC 2.0

AC.L2-3.1.1 – Access control policy; AC.L2-3.5.1 – Access enforcement

IRAP

ISM – Identity and access management; ISM – Access control

CCCS PBMM

AC-6 – Least privilege; AC-7 – Unsuccessful logon attempts

MAS TRM

Ch.4 – Identity and access management; Ch.8 – Security monitoring

ISMAP

Access control and identity management

FISC

Operational measures – Access control