Wie verwende ich Zugriffskontrolle und Authentifizierung, um die Inhaltsbereitstellung für CloudFront-Distributionen einzuschränken?
Ich möchte den Zugriff auf Inhalte in meiner Amazon CloudFront-Distribution einschränken.
Kurzbeschreibung
Verwende signierte URLs oder signierte Cookies, um den Zugriff auf private Inhalte in der CloudFront-Distribution einzuschränken.
Wenn du nur eine Standardauthentifizierung mit einem Benutzernamen und einem Passwort benötigst, verwende Lambda @Edge oder CloudFront-Funktionen, um die Standardauthentifizierung einzurichten.
Um den Zugriff auf Grundlage der IP-Adresse oder des geografischen Standorts einzuschränken, konfiguriere CloudFront so, dass Anfragen zugelassen oder blockiert werden.
Um eine sichere Benutzerauthentifizierung bei einem Identitätsanbieter einzurichten, verwende Lambda @Edge, um CloudFront mit OpenID Connect (OIDC) zu integrieren.
Lösung
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Signierte URLs oder signierte Cookies verwenden
Signierte URLs betten verschlüsselte Signaturen in URLs ein, um temporären Zugriff auf einzelne Dateien zu ermöglichen. Verwende signierte URLs, um den Zugriff auf bestimmte Ressourcen zu sichern.
CloudFront gibt signierte Cookies an Clients aus, um den Zugriff auf mehrere Dateien unter einem Pfad zu ermöglichen. Verwende signierte Cookies für eine umfassendere Zugriffskontrolle.
Hinweis: Signierte URLs und signierte Cookies verwenden kryptografische Schlüsselpaare, die du erstellst und mit der Distribution verknüpfst.
Gehe wie folgt vor, um signierte URLs oder signierte Cookies zu verwenden:
Ein Schlüsselpaar erstellen
Erstelle ein Schlüsselpaar und lade das Schlüsselpaar auf CloudFront hoch.
Eine vertrauenswürdige Schlüsselgruppe erstellen
- Öffne die CloudFront-Konsole.
- Wähle im Navigationsbereich unter Schlüsselverwaltung die Option Schlüsselgruppen.
- Wähle Schlüsselgruppe erstellen.
- Gib unter Name einen Namen für die Schlüsselgruppe ein.
- Wähle für Öffentliche Schlüssel einen Schlüssel.
- Wähle Schlüsselgruppe erstellen.
Deine Distribution konfigurieren
Aktualisiere die Distribution, um die vertrauenswürdige Schlüsselgruppe für signierte URLs oder signierte Cookies zu verwenden. Weitere Informationen zur Konfiguration der Distribution findest du unter Einstellungen für das Cache-Verhalten.
Signierte URLs oder signierte Cookies generieren
Um signierte URLs zu generieren, führe den folgenden AWS-CLI-Befehl sign aus:
aws cloudfront sign \ --url "https://your-distribution-domain.cloudfront.net/path/to/file.pdf" \ --key-pair-id "YOUR_KEY_PAIR_ID" \ --private-key file://path/to/your/private-key.pem \ --date-less-than "2024-12-31T23:59:59"
Weitere Optionen wie IP-Einschränkungen findest du unter Optionen in der AWS-CLI-Befehlsreferenz.
Hinweis: Du kannst auch signierte URLs für Tools von Drittanbietern erstellen.
Verwende ein AWS-SDK für die Sprache, um signierte Cookies zu generieren. Codebeispiele findest du unter Signierte Cookies mit PHP erstellen und Signierte URLs und Cookies mithilfe eines AWS-SDK erstellen.
Die signierten URLs oder signierte Cookies verwenden
Schließe die signierten URLs oder signierten Cookies in Anfragen an CloudFront ein.
Lambda @Edge verwenden, um die Standardauthentifizierung einzurichten
Hinweis: Du musst benutzerdefinierten Code erstellen, um Lambda @Edge zur Implementierung der Authentifizierungslogik zu verwenden.
Führe die folgenden Schritte aus:
- Erstelle eine AWS Lambda-Funktion, um die Authentifizierung für Viewer-Anfragen abzuwickeln.
- Überprüfe im Code der Funktion die Anfragen-Header, validiere die Anmeldeinformationen und lasse die Anfrage zu oder lehne sie ab. Eine Beispielfunktion findest du unter Beispiel: Leite nicht authentifizierte Benutzer auf eine Anmeldeseite weiter.
- Verwende Trigger, um die Funktion mit dem Verhalten der Distribution zu verknüpfen.
CloudFront-Funktionen verwenden, um die Standardauthentifizierung einzurichten
Hinweis: Du musst benutzerdefinierten Code erstellen, um CloudFront-Funktionen zur Implementierung der Authentifizierungslogik verwenden zu können.
Führe die folgenden Schritte aus:
- Erstelle eine CloudFront-Funktion, um Viewer-Anfragen zu authentifizieren.
- Überprüfe im Code der Funktion die Header, validiere die Anmeldeinformationen und lasse Anfragen zu oder lehne sie ab. Eine Beispielfunktion findest du unter Validieren eines einfachen Tokens in einer Viewer-Anfrage der CloudFront-Funktionen.
- Ordne die Funktion dem Verhalten der Distribution zu.
CloudFront so konfigurieren, dass Anfragen basierend auf der Client-IP-Adresse oder dem geografischen Standort zugelassen oder blockiert werden
Ergreife eine der folgenden Maßnahmen:
- Um Einschränkungen auf der Grundlage der IP-Zugriffskontrolle zu erstellen, verwende AWS WAF, um Listen für die Zulassung und Ablehnung von IP-Adressen für die Distribution zu definieren.
- Um Einschränkungen auf der Grundlage des geografischen Standorts festzulegen, schränke den Zugriff auf die Inhalte auf der Grundlage des Landes ein, aus dem die Anfragen stammen.
Hinweis: AWS WAF und geografische Einschränkungen gelten nur für die Distributionsebene und nicht für das Cache-Verhalten.
Lambda @Edge verwenden, um CloudFront mit OIDC zu integrieren
Hinweis: Für die Integration musst du den OIDC-Authentifizierungsablauf in den Anwendung implementieren und ein ID-Token erhalten, das du in Anfragen an CloudFront aufnehmen kannst.
Führe die folgenden Schritte aus:
- Erstelle eine Lambda-Funktion, um das OIDC-ID-Token in Viewer-Anfragen zu validieren.
- Überprüfe im Code der Funktion den Autorisierungs-Header, validiere das ID-Token und lasse die Anfrage zu oder lehne sie ab.
- Ordne die Funktion dem Verhalten der Distribution zu.
Ähnliche Informationen
Externe Serverautorisierung mit Lambda @Edge
Sicherung von CloudFront-Distributionen mit OpenID Connect und AWS Secrets Manager
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 2 Jahren