Permissions Policy für AWS CloudFront konfigurieren

Browser-APIs wie Kamera, Mikrofon und Geolocation per Response Headers Policy einschränken — mit Terraform und Console-Konfiguration.

AWS CloudFront · Schritt für Schritt

Permissions Policy auf AWS CloudFront

Die Permissions Policy kontrolliert, welche Browser-APIs eine Website verwenden darf. Kamera, Mikrofon, Geolocation und Payment API können gezielt gesperrt werden. Permissions Policy ist mit 10 von 166 Punkten ein relevanter Faktor im Wolf-Agents Web Security Check.

CloudFront bietet keinen dedizierten Block für Permissions-Policy in der Response Headers Policy. Sie müssen den Header als Custom Header konfigurieren. Die AWS-Managed SecurityHeadersPolicy enthält keine Permissions-Policy — Sie müssen ihn immer manuell setzen.

1 Schritt 1 von 3

Permissions-Policy per Terraform als Custom Header

Da CloudFront keinen dedizierten Permissions-Policy-Block bietet, setzen Sie den Header als Custom Header in der custom_headers_config. Kombinieren Sie ihn mit anderen Security Headern in derselben Policy.

terraform/permissions-policy.tf Terraform
# terraform/permissions-policy.tf
resource "aws_cloudfront_response_headers_policy" "security" {
  name = "security-headers-full"

  custom_headers_config {
    items {
      header   = "Permissions-Policy"
      value    = "camera=(), microphone=(), geolocation=(), payment=(), usb=(), bluetooth=(), midi=(), magnetometer=(), gyroscope=(), accelerometer=()"
      override = true
    }
  }

  # Weitere Security Headers in derselben Policy
  security_headers_config {
    strict_transport_security {
      access_control_max_age_sec = 31536000
      include_subdomains         = true
      preload                    = true
      override                   = true
    }
  }
}
Syntax: Leere Klammern () = gesperrt

Die Syntax camera=() sperrt die Kamera-API vollständig. Um einer bestimmten Domain Zugriff zu geben, nutzen Sie camera=(self "https://video.example.com"). Für eigene Nutzung: camera=(self).

2 Schritt 2 von 3

Alternative: CloudFront Function

Wenn Sie bereits eine CloudFront Function für CSP-Nonces nutzen, können Sie die Permissions-Policy dort einbauen statt in der Response Headers Policy. Vermeiden Sie es, denselben Header an zwei Stellen zu setzen.

cloudfront-function.js CloudFront Function
// CloudFront Function — Permissions-Policy (Alternative)
function handler(event) {
  var response = event.response;
  var headers = response.headers;

  headers['permissions-policy'] = {
    value: 'camera=(), microphone=(), geolocation=(), '
      + 'payment=(), usb=(), bluetooth=(), '
      + 'midi=(), magnetometer=(), gyroscope=(), '
      + 'accelerometer=()'
  };

  return response;
}
3 Schritt 3 von 3

Verifizierung

Prüfen Sie den Permissions-Policy-Header per curl. Achten Sie auf korrekte Syntax — Browser ignorieren den gesamten Header bei Syntaxfehlern, ohne eine Warnung auszugeben.

Terminal Verifizieren
# Permissions-Policy prüfen
curl -sI https://ihre-domain.de | grep -i permissions-policy

# Erwartete Ausgabe:
permissions-policy: camera=(), microphone=(), geolocation=(), payment=(), usb=(), bluetooth=(), midi=(), magnetometer=(), gyroscope=(), accelerometer=()

Häufige Fehler

Falsche Syntax: Semikolon statt Komma

Permissions-Policy verwendet Komma als Trennzeichen (camera=(), microphone=()), nicht Semikolon wie CSP. Semikolon wird ignoriert und nur die erste Direktive wird angewendet.

Header in Policy UND Function gesetzt

Wenn sowohl die Response Headers Policy als auch die CloudFront Function Permissions-Policy setzen, werden zwei Header gesendet. Browser wenden nur den letzten an — das Ergebnis ist unvorhersehbar.

Geolocation gesperrt trotz Nutzung

Wenn Ihre Anwendung die Geolocation-API nutzt (z.B. für Store-Finder), sperren Sie sie nicht. Nutzen Sie geolocation=(self) statt geolocation=().

Compliance-Relevanz

Permissions Policy unterstützt die DSGVO-Anforderung der Datenminimierung, indem Browser-APIs wie Kamera und Mikrofon standardmäßig gesperrt werden. PCI DSS 4.0 bewertet die Einschränkung von Browser-Fähigkeiten positiv. Der Wolf-Agents Web Security Check prüft Permissions-Policy auf korrekte Syntax und empfohlene Direktiven.

Wie steht Ihre Domain bei Permissions Policy?

Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.