Diese Seite bietet einen Überblick über die Authentifizierung des privaten Ursprungs sowie eine Anleitung zu ihrer Verwendung mit Cloud CDN.
Durch die Authentifizierung des privaten Ursprungs erhält Cloud CDN langfristig Zugriff auf private Amazon S3-Buckets oder andere kompatible Objektspeicher. Durch die Verwendung privater Ursprünge wird verhindert, dass Clients Cloud CDN umgehen und direkt auf Ihren Ursprung zugreifen.
Diese Funktion wird für Cloud CDN entweder mit einem globalen externen oder mit einem klassischen Application Load Balancer unterstützt.
Die Authentifizierung des privaten Ursprungs ist ursprungsbezogen, während signierte URLs und signierte Cookies clientseitig. Sie können beide für denselben Inhalt aktivieren. Bei der Authentifizierung des privaten Ursprungs wird der Nicht-CDN-Zugriff auf Ihre Ursprünge und Inhalte eingeschränkt. Signierte URLs und Cookies steuern, welche Nutzer auf Cloud CDN zugreifen können.
Hinweise
Erstellen Sie einen HMAC-Schlüssel (Hash-based Message Authentication Code), um Anfragen zu authentifizieren und mit einem Dienstkonto zu verknüpfen. Notieren Sie sich den Zugriffsschlüssel und das Secret.
Weitere Informationen finden Sie in der AWS-Dokumentation unter Mit Ihren AWS-Anmeldedaten auf AWS zugreifen: Programmatischer Zugriff.
Load-Balancer mit dem externen Back-End konfigurieren
Wenn Ihr Objektspeicher einen bestimmten Wert für den
Host
-Header der HTTP-Anfrage erwartet, muss dieser im Back-End-Dienst konfiguriert sein. Wenn Sie keinen benutzerdefinierten Anfrageheader konfigurieren, behält der Back-End-Dienst denHost
-Header bei, den der Client für die Verbindung mit dem externen Application Load Balancer verwendet hat.Konfigurationsschritte finden Sie unter Mit benutzerdefinierten Anfrageheadern arbeiten. Ein konkretes Beispiel finden Sie unter Load-Balancer mit einem externen Back-End konfigurieren.
Aktualisieren Sie bei Bedarf auf die neueste Version der Google Cloud CLI:
gcloud components update
Authentifizierung für private Ursprünge konfigurieren
So konfigurieren Sie die Authentifizierung des privaten Ursprungs:
gcloud
Exportieren Sie die Back-End-Konfiguration für Ihren privaten Ursprung mit dem Befehl
gcloud compute backend-services export
in eine YAML-Datei:gcloud compute backend-services export BACKEND_SERVICE_NAME \ [--destination=DESTINATION]
Ersetzen Sie
DESTINATION
durch den Namen der YAML-Datei, z. B.my-private-origin.yaml
.Zum Authentifizieren Ihrer Back-End-Anfragen mit dem HMAC-Schlüssel geben Sie diese zusätzlichen Konfigurationsoptionen im Abschnitt
securitySettings
vonbackendServices
an:securitySettings: awsV4Authentication: accessKeyId: ACCESS_KEY_ID accessKey: ACCESS_KEY [accessKeyVersion: ACCESS_KEY_VERSION] originRegion: REGION …]
Ersetzen Sie Folgendes:
ACCESS_KEY_ID
: die HMAC-Zugriffsschlüssel-IDACCESS_KEY
: der HMAC-ZugriffsschlüsselACCESS_KEY_VERSION
(optional): Ein eindeutiger Name, den Sie für die Schlüsselversion festlegen können.REGION
ist eine gültige Region für Ihren Speicheranbieter. Bei Amazon S3 ist der Wert keine Google Cloud-Region.
Das folgende Snippet zeigt den Inhalt einer Beispieldatei
my-private-origin.yaml
:name: shopping-cart-services backends: - description: cart-backend-1 group: 'https://www.googleapis.com/compute/v1/projects/my-project-id/global/networkEndpointGroups/my-network-origin-group' securitySettings: awsV4Authentication: accessKeyId: AKIDEXAMPLE accessKey: c4afb1cc5771d871763a393e44b703571b55cc28424d1a5e86da6ed3c154a4b9 accessKeyVersion: prod-access-key-v1.2 originRegion: us-east-2
Importieren Sie die Konfiguration mit dem Befehl
gcloud compute backend-services import
in Ihren Back-End-Dienst, um Ihren privaten Ursprung zu aktualisieren:gcloud compute backend-services import BACKEND_SERVICE_NAME \ [--source=SOURCE]
Ersetzen Sie
SOURCE
durch den Namen der YAML-Datei.
API
Zum Authentifizieren Ihrer Back-End-Anfragen mit dem HMAC-Schlüssel geben Sie diese zusätzlichen Konfigurationsoptionen im Abschnitt securitySettings
von backendServices
an.
Verwenden Sie den API-Aufruf Method: backendServices.insert
oder Method: backendServices.update
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE
Fügen Sie dem JSON-Anfragetext folgendes Snippet hinzu:
securitySettings: { awsV4Authentication: { accessKeyId: ACCESS_KEY_ID, accessKey: ACCESS_KEY, [accessKeyVersion: ACCESS_KEY_VERSION], originRegion: REGION } }
Ersetzen Sie Folgendes:
ACCESS_KEY_ID
: die HMAC-Zugriffsschlüssel-IDACCESS_KEY
: der HMAC-ZugriffsschlüsselACCESS_KEY_VERSION
(optional): Ein eindeutiger Name, den Sie für die Schlüsselversion festlegen können.REGION
ist eine gültige Region für Ihren Speicheranbieter. Bei Amazon S3 ist der Wert keine Google Cloud-Region.
Das folgende Snippet zeigt den Inhalt eines JSON-Beispielanfragetexts:
securitySettings: { awsV4Authentication: { accessKeyId: "AKIDEXAMPLE", accessKey: "c4afb1cc5771d871763a393e44b703571b55cc28424d1a5e86da6ed3c154a4b9", accessKeyVersion: "prod-access-key-v1.2", originRegion: "us-east-2" } }
Der Dienstname wird zum Erstellen der Signatur automatisch auf s3
festgelegt.
Nachdem diese Konfigurationen eingerichtet wurden, generiert Cloud CDN einen HTTP-Autorisierungsheader für alle Anfragen an Ihren Ursprung.
Privat authentifizierte Antworten im Cache speichern
Sie können sicherstellen, dass privat authentifizierte Inhalte von Cloud CDN im Cache gespeichert werden.
Setzen Sie dazu den Cache-Modus auf Cache für alle Inhalte erzwingen und geben Sie eine TTL an, damit alle vom Ursprung bereitgestellten Inhalte im Cache gespeichert werden.
Wenn Sie nicht erzwingen möchten, dass alle Inhalte auf dieselbe Weise im Cache gespeichert werden, ändern Sie den Cache-Modus in Ursprüngliche Einstellung basierend auf Cache-Control-Headern verwenden oder Statische Inhalte im Cache speichern. Der Cache-Control
-Header muss für Inhalte, die von Ihrem Ursprung bereitgestellt werden, korrekt festgelegt sein.