Signierte URLs, signierte Cookies und Geoblocking
Beschränken Sie den Zugriff auf Premiuminhalte mit signierten URLs und Cookies und sperren Sie Benutzer aus bestimmten Ländern durch Geoblocking.
Signierte URLs, signierte Cookies und Geoblocking ist eine kostenlose AWS Solutions Architect-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AWS Solutions Architect-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AWS Solutions Architect-Kurs umfasst insgesamt 4 Lektionen.
Zugriff auf CloudFront-Inhalte beschränken
Standardmäßig stellt CloudFront Inhalte für jeden Viewer bereit, der die URL kennt. Bei Premium- oder privaten Inhalten – etwa Videokursen, kostenpflichtigen Software-Downloads oder Ressourcen nur für Mitglieder – müssen Sie den Zugriff beschränken, damit nur autorisierte Benutzer die Inhalte abrufen können.
CloudFront bietet zwei Mechanismen für den autorisierten Zugriff: signierte URLs (eine URL gewährt Zugriff auf ein bestimmtes Objekt) und signierte Cookies (eine Gruppe von Cookies gewährt Zugriff auf mehrere Objekte, die einem Pfadmuster entsprechen). Beide verwenden kryptografische Signaturen, die mit einem RSA-Schlüsselpaar erzeugt werden.
CloudFront-Signatur-URLs
Eine Signatur-URL ist eine CloudFront-URL, die eine kryptografische Signatur enthält. Diese codiert eine Ablaufzeit und optional eine IP-Adressbeschränkung. Die URL ist nur bis zum Ablaufzeitpunkt und – sofern angegeben – nur von der zulässigen IP-Adresse aus gültig. Nach Ablauf gibt CloudFront einen 403-Fehler (Forbidden) zurück.
Signatur-URLs eignen sich besonders, um einem einzelnen Benutzer Zugriff auf eine bestimmte Datei zu gewähren (z. B. auf einen generierten PDF-Bericht), zeitlich begrenzte Download-Links bereitzustellen oder wenn der Client keine Cookies setzen kann (z. B. bei mobilen Apps oder RTMP-Streaming).
# Generate a signed URL using AWS CLI (requires a CloudFront key pair)
aws cloudfront sign \
--url https://d1234abcdef.cloudfront.net/premium/video.mp4 \
--key-pair-id APKA1234567890 \
--private-key file://private-key.pem \
--date-less-than 2026-06-21T00:00:00ZCloudFront-Signatur-Cookies
Signatur-Cookies funktionieren ähnlich wie Signatur-URLs, gewähren jedoch Zugriff auf mehrere Dateien, ohne jede einzelne URL zu ändern. Nach erfolgreicher Authentifizierung generiert Ihr Server drei Cookies (CloudFront-Policy, CloudFront-Signature, CloudFront-Key-Pair-Id) und setzt sie in der Browserantwort. Nachfolgende CloudFront-Anfragen dieses Browsers enthalten die Cookies und gewähren Zugriff auf alle passenden Inhalte.
Signatur-Cookies eignen sich besonders, um angemeldeten Benutzern Zugriff auf einen gesamten Premium-Bereich zu gewähren (z. B. auf alle Videos unter /members/*) oder wenn Sie das URL-Format der einzelnen Ressourcen nicht kontrollieren können.
Vertrauenswürdige Schlüsselgruppen
Um CloudFront-Signaturen zu generieren, benötigen Sie ein CloudFront-Schlüsselpaar. Der moderne Ansatz verwendet Trusted Key Groups: Erstellen Sie ein RSA-Schlüsselpaar, laden Sie den öffentlichen Schlüssel zu CloudFront hoch, fügen Sie ihn einer Schlüsselgruppe hinzu und verknüpfen Sie die Schlüsselgruppe anschließend mit dem Cache-Verhalten, für das signierter Zugriff erforderlich ist.
Der private Schlüssel wird sicher auf Ihrem Signaturserver gespeichert (z. B. in Secrets Manager). Wenn sich ein Benutzer authentifiziert, verwendet der Server den privaten Schlüssel, um eine URL oder Cookie-Richtlinie zu signieren. CloudFront validiert die Signaturen mithilfe des zugehörigen öffentlichen Schlüssels in der vertrauenswürdigen Schlüsselgruppe.
# Upload a public key to CloudFront
aws cloudfront create-public-key \
--public-key-config '{
"Name": "MySigningKey",
"EncodedKey": "-----BEGIN PUBLIC KEY-----\n...<key>...\n-----END PUBLIC KEY-----",
"CallerReference": "2026-06-20-key"
}'Richtlinien für standardmäßige und benutzerdefinierte Signatur-URLs
Signatur-URLs können einen von zwei Richtlinientypen verwenden:
- Standardrichtlinie: einfachste Form – gibt nur eine Ressourcen-URL und eine Ablaufzeit an. Die Signatur ist kompakt und lässt sich einfach generieren.
- Benutzerdefinierte Richtlinie: flexibler – gibt eine Ressourcen-URL mit optionalen Platzhaltern an (
https://d123.cloudfront.net/videos/*), eine optionale Startzeit (not-before) und optional eine IP-Adressbeschränkung. Das JSON der Richtlinie wird in der URL Base64-codiert.
Verwenden Sie Standardrichtlinien für einfache Links zu einzelnen Dateien und benutzerdefinierte Richtlinien, wenn Sie Ressourcen anhand von Platzhaltern zuordnen oder IP-basierte Beschränkungen benötigen.
Geografische Einschränkung in CloudFront
Geografische Einschränkungen (auch geografische Beschränkungen genannt) blockieren oder erlauben die Bereitstellung von Inhalten durch CloudFront abhängig vom Land des Betrachters. CloudFront ermittelt das Land des Betrachters anhand seiner IP-Adresse mithilfe einer Geolokalisierungsdatenbank eines Drittanbieters.
Sie konfigurieren die geografische Einschränkung pro Distribution entweder als Allowlist (nur aufgeführte Länder können auf die Inhalte zugreifen) oder als Blocklist (aufgeführte Länder werden blockiert). Benutzer in eingeschränkten Ländern erhalten eine HTTP-403-Antwort. Die geografische Einschränkung ist ein grobes Werkzeug – sie gilt für die gesamte Distribution und nicht für einzelne Pfade.
# Enable geo-restriction: block two countries
aws cloudfront update-distribution \
--id EDFDVBD6EXAMPLE \
--distribution-config '{
...existing config...
"Restrictions": {
"GeoRestriction": {
"RestrictionType": "blacklist",
"Quantity": 2,
"Items": ["CN", "RU"]
}
}
}' \
--if-match ETVPDKIKX0DERGeografische Einschränkung in CloudFront vs. Geolocation in Route 53
Die geografische Einschränkung in CloudFront und das Geolocation-Routing in Route 53 verwenden beide geografische Informationen, dienen jedoch unterschiedlichen Zwecken:
- Geografische Einschränkung in CloudFront: blockiert oder erlaubt die Bereitstellung über Edge-Standorte auf der CDN-Ebene – blockierte Länder erhalten eine 403-Antwort; gilt pro Distribution
- Geolocation in Route 53: leitet DNS-Abfragen abhängig vom geografischen Standort an unterschiedliche Endpunkte weiter (andere Server oder Seiten) – blockiert den Zugriff nicht, sondern leitet zu anderen Inhalten oder einer anderen Infrastruktur weiter
Verwenden Sie die geografische Einschränkung in CloudFront zur Zugriffskontrolle, wenn Sie ganze Länder blockieren möchten. Verwenden Sie Geolocation in Route 53, um Benutzer zu regional passenden Inhalten oder Infrastrukturen weiterzuleiten.
Signatur-URLs mit S3 und OAC kombinieren
Eine vollständige Architektur für die private Bereitstellung von Inhalten:
- Der S3-Bucket ist privat (kein öffentlicher Zugriff)
- CloudFront verwendet OAC, sodass nur die Distribution aus S3 lesen kann
- Das Cache-Verhalten für private Inhalte erfordert Signatur-URLs oder -Cookies (eine Trusted Key Group ist verknüpft)
- Ihr Anwendungsserver authentifiziert Benutzer und stellt Signatur-URLs bzw. -Cookies aus
- Benutzer greifen nur über zeitlich begrenzte signierte CloudFront-URLs auf die Inhalte zu
Selbst wenn ein Benutzer die S3-URL errät oder weitergibt, wird der Zugriff blockiert. Gibt er die CloudFront-URL weiter, läuft sie nach der konfigurierten Zeit ab. Dieser mehrschichtige Ansatz bietet einen umfassenden Schutz für digitale Inhalte.
Verschlüsselung auf Feldebene
Verschlüsselung auf Feldebene ist eine fortgeschrittene CloudFront-Funktion, mit der vertrauliche Datenfelder in HTTP-POST-Anfragen am Edge verschlüsselt werden können, bevor die Anfrage an den Origin weitergeleitet wird. Selbst wenn der Origin-Server kompromittiert wird, bleiben die verschlüsselten Felder (z. B. Kreditkartennummern und Sozialversicherungsnummern) ohne den zugehörigen privaten Schlüssel unlesbar.
CloudFront verschlüsselt die angegebenen Felder am Edge mithilfe eines öffentlichen Schlüssels. Nur der vorgesehene Backend-Service mit dem passenden privaten Schlüssel kann die Daten entschlüsseln. Die Verschlüsselung auf Feldebene fügt einer bereits durch TLS geschützten Verarbeitungskette eine weitere Schutzebene hinzu.
Tokenbasierte Zugriffskontrolle
Für dynamische Anwendungen, die über eine Zugriffskontrolle auf Länderebene hinaus eine fein abgestufte Zugriffskontrolle benötigen, ist tokenbasierter Zugriff mit Lambda@Edge ein gängiges Muster:
- Der Benutzer authentifiziert sich bei Cognito oder Ihrem Authentifizierungsdienst und erhält ein JWT
- Der Benutzer fügt das JWT als Abfrageparameter oder Cookie in CloudFront-Anfragen ein
- Die Lambda@Edge-Funktion für Viewer-Request validiert die JWT-Signatur und die Claims
- Wenn das JWT gültig ist, leitet Lambda@Edge die Anfrage an den Origin weiter; andernfalls wird 401 zurückgegeben
Damit erhalten Sie eine fein abgestufte Zugriffskontrolle pro Benutzer und Ressource vollständig am CloudFront-Edge, ohne bei nicht autorisierten Anfragen den Origin zu erreichen.
Zusammenfassung praxisnaher Anwendungsfälle
Typische Prüfungsszenarien für Signatur-URLs/-Cookies und geografische Einschränkungen:
- „Zeitlich begrenzter Download-Link für eine gekaufte Datei“ → Signatur-URL mit Ablaufzeit
- „Angemeldete Premium-Benutzer greifen auf alle Videos unter /premium/* zu“ → Signatur-Cookies mit Platzhalterrichtlinie
- „Zugriff für Benutzer in bestimmten Ländern aufgrund von Lizenzbestimmungen blockieren“ → CloudFront-Blocklist für geografische Einschränkungen
- „Unterschiedliche Inhalte für verschiedene Länder bereitstellen“ → Geolocation in Route 53 + mehrere Distributionen oder Origins
- „Kreditkartenfelder sogar vor Administratoren des Origins schützen“ → Verschlüsselung auf Feldebene
Schnelltest
Testen Sie Ihr Verständnis der AWS-Solutions-Architect-Konzepte (SAA-C03) aus dieser Lektion.
Lektionszusammenfassung
In dieser Lektion haben Sie gelernt: Signatur-URLs beschränken den Zugriff auf einzelne Dateien durch eine Ablaufzeit und eine optionale IP-Beschränkung, Signatur-Cookies gewähren Zugriff auf mehrere Dateien, die in einer einzelnen authentifizierten Sitzung einem Pfadmuster entsprechen, und geografische Einschränkungen blockieren oder erlauben ganze Länder auf Ebene der CloudFront-Distribution. Als Nächstes sehen wir uns CloudFront mit WAF und Lambda@Edge an.
Lerne AWS Solutions Architect mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 30
- Lektionen
- 120
Häufig gestellte Fragen
Ist die Lektion „Signierte URLs, signierte Cookies und Geoblocking“ kostenlos?
Ja — der vollständige Text von „Signierte URLs, signierte Cookies und Geoblocking“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AWS Solutions Architect-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AWS Solutions Architect-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Signierte URLs, signierte Cookies und Geoblocking“?
Beschränken Sie den Zugriff auf Premiuminhalte mit signierten URLs und Cookies und sperren Sie Benutzer aus bestimmten Ländern durch Geoblocking. Du übst AWS Solutions Architect mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um AWS Solutions Architect zu starten?
Keine Vorkenntnisse erforderlich. AWS Solutions Architect auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Signierte URLs, signierte Cookies und Geoblocking“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser AWS Solutions Architect-Lektion Code schreiben und ausführen?
Ja. Jede AWS Solutions Architect-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- CloudFront-Distributionen und Origins
- Cache-Verhalten und TTL-Einstellungen
- Signierte URLs, signierte Cookies und Geoblocking
- CloudFront mit WAF und Lambda@Edge