Erweiterte Header für AWS CloudFront konfigurieren
Origin-Agent-Cluster, X-DNS-Prefetch-Control und Cross-Origin-Isolation auf CloudFront einrichten — per Response Headers Policy, CloudFront Function und Terraform.
Erweiterte Header auf AWS CloudFront
Erweiterte Header umfassen zusätzliche Defense-in-Depth-Maßnahmen: Origin-Agent-Cluster für Prozess-Isolation, X-DNS-Prefetch-Control für Privacy, X-Permitted-Cross-Domain-Policies gegen Flash/PDF-Angriffe und die Cross-Origin-Isolation-Header (COOP, COEP, CORP). Mit 4 von 166 Punkten im Wolf-Agents Web Security Check bewertet.
Auf AWS CloudFront konfigurieren Sie erweiterte Header über eine Response Headers Policy mit Custom Headers. Diese Policy wird der CloudFront Distribution zugewiesen und setzt die Header auf alle Responses. Für dynamische Logik (z.B. unterschiedliche Header pro Route) nutzen Sie eine CloudFront Function.
Wichtig: Die AWS-Managed SecurityHeadersPolicy enthält X-Content-Type-Options, X-Frame-Options und andere Basis-Header, aber keine erweiterten Header wie Origin-Agent-Cluster. Diese müssen manuell als Custom Headers konfiguriert werden.
Erweiterte Header auf CloudFront konfigurieren
Erstellen Sie eine Response Headers Policy mit Custom Headers per Terraform (empfohlen für Infrastructure as Code) oder über die AWS CLI. Alternativ setzt eine CloudFront Function die Header dynamisch im Viewer-Response Event.
# terraform/advanced-headers.tf
resource "aws_cloudfront_response_headers_policy" "advanced" {
name = "advanced-security-headers"
comment = "Erweiterte Security Headers"
custom_headers_config {
# Prozess-Isolation (Spectre-Schutz)
items {
header = "Origin-Agent-Cluster"
value = "?1"
override = true
}
# DNS-Prefetch deaktivieren (Privacy)
items {
header = "X-DNS-Prefetch-Control"
value = "off"
override = true
}
# Cross-Domain-Policies blockieren
items {
header = "X-Permitted-Cross-Domain-Policies"
value = "none"
override = true
}
# Cross-Origin Opener Policy
items {
header = "Cross-Origin-Opener-Policy"
value = "same-origin"
override = true
}
# Cross-Origin Resource Policy
items {
header = "Cross-Origin-Resource-Policy"
value = "same-origin"
override = true
}
}
}
# Policy an Distribution anhängen
resource "aws_cloudfront_distribution" "main" {
default_cache_behavior {
response_headers_policy_id = aws_cloudfront_response_headers_policy.advanced.id
# ... weitere Konfiguration
}
} // CloudFront Function — Erweiterte Header dynamisch
// Event: Viewer Response
function handler(event) {
var response = event.response;
var headers = response.headers;
// Erweiterte Security Headers setzen
headers['origin-agent-cluster'] = {
value: '?1'
};
headers['x-dns-prefetch-control'] = {
value: 'off'
};
headers['x-permitted-cross-domain-policies'] = {
value: 'none'
};
headers['cross-origin-opener-policy'] = {
value: 'same-origin'
};
headers['cross-origin-resource-policy'] = {
value: 'same-origin'
};
return response;
} Die Response Headers Policy ist einfacher und performanter — sie wird von CloudFront direkt angewendet ohne Code-Ausführung. Eine CloudFront Function bietet bedingte Logik, z.B. unterschiedliche Header für /api/** und Frontend-Routen. Beide Ansätze können nicht gleichzeitig denselben Header setzen.
Header verifizieren
Prüfen Sie die erweiterten Header per curl. Nach Änderungen an der Response Headers Policy erstellen Sie eine CloudFront-Invalidierung, um gecachte Responses ohne die neuen Header zu entfernen. Der Wolf-Agents Web Security Check analysiert alle Header-Kategorien.
# Erweiterte Header prüfen
curl -sI https://ihre-domain.de | grep -iE "origin-agent|x-dns|x-permitted|cross-origin"
# Erwartete Ausgabe:
origin-agent-cluster: ?1
x-dns-prefetch-control: off
x-permitted-cross-domain-policies: none
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
# CloudFront-Invalidierung nach Policy-Änderung
aws cloudfront create-invalidation \
--distribution-id E1234567890 \
--paths "/*" # AWS CLI — Response Headers Policy erstellen
aws cloudfront create-response-headers-policy \
--response-headers-policy-config {
"Name": "advanced-security-headers",
"CustomHeadersConfig": {
"Quantity": 5,
"Items": [
{ "Header": "Origin-Agent-Cluster",
"Value": "?1", "Override": true },
{ "Header": "X-DNS-Prefetch-Control",
"Value": "off", "Override": true },
{ "Header": "X-Permitted-Cross-Domain-Policies",
"Value": "none", "Override": true },
{ "Header": "Cross-Origin-Opener-Policy",
"Value": "same-origin", "Override": true },
{ "Header": "Cross-Origin-Resource-Policy",
"Value": "same-origin", "Override": true }
]
}
} Häufige Fehler
COOP bricht OAuth-Popups
Cross-Origin-Opener-Policy: same-origin blockiert window.opener-Zugriff von OAuth-Popups (Google, GitHub Login). Verwenden Sie same-origin-allow-popups wenn Ihre Anwendung OAuth per Popup nutzt.
COEP blockiert externe Ressourcen
Cross-Origin-Embedder-Policy: require-corp blockiert Google Fonts, CDN-Assets und Analytics-Scripts, die kein CORS oder CORP setzen. Testen Sie gründlich oder nutzen Sie credentialless als Alternative.
Header in Policy UND Function gesetzt
Wenn sowohl die Response Headers Policy als auch eine CloudFront Function denselben Header setzen, wird der Wert der Policy verwendet (bei override: true). Setzen Sie jeden Header nur an einer Stelle.
Custom Header Limit überschritten
CloudFront erlaubt maximal 10 Custom Headers pro Response Headers Policy. Wenn Sie bereits CSP und andere Header als Custom Header konfiguriert haben, kann das Limit erreicht sein. Konsolidieren Sie Header oder nutzen Sie eine CloudFront Function.
Compliance-Relevanz
Erweiterte Header sind Defense-in-Depth-Maßnahmen, die zusammen mit den Kern-Headern eine umfassende Sicherheitsarchitektur bilden. Origin-Agent-Cluster schützt gegen Spectre-ähnliche Seitenkanalangriffe durch Prozess-Isolation. X-DNS-Prefetch-Control verhindert ungewollte DNS-Anfragen und schützt die Privacy der Nutzer — relevant für DSGVO-Compliance. Cross-Origin-Isolation (COOP + COEP) ist Voraussetzung für leistungsstarke APIs wie SharedArrayBuffer und High-Resolution-Timer. Der Wolf-Agents Web Security Check bewertet alle Header-Kategorien und liefert eine Gesamtnote von A+ bis F.
Wie steht Ihre Domain bei Erweiterte Header?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.