Diese Seite bietet eine Übersicht über die Authentifizierung des privaten Ursprungs sowie eine Anleitung für die Verwendung mit Cloud CDN.
Die private Ursprungsauthentifizierung ermöglicht Cloud CDN langfristigen Ressourcenzugriff auf private Amazon S3-Buckets oder andere kompatible Objektspeicher. Dadurch wird verhindert, dass Clients Cloud CDN umgehen und direkt auf Ihren Ursprung zugreifen.
Dieses Feature wird für Cloud CDN entweder mit einem globalen externen Application Load Balancer oder einem klassischen Application Load Balancer unterstützt.
Die Authentifizierung des privaten Ursprungs erfolgt an den Ursprung, signierte URLs und signierte Cookies dagegen an den Kunden. 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. Mit signierten URLs und Cookies wird gesteuert, 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 der Objektspeicher einen bestimmten Wert für den
Host
-Header der HTTP-Anfrage erwartet, muss er im Back-End-Dienst konfiguriert sein. Wenn Sie keinen benutzerdefinierten Anfrageheader konfigurieren, behält der Back-End-Dienst denHost
-Header bei, mit dem der Client eine Verbindung zum externen Application Load Balancer hergestellt hat.Informationen zu Konfigurationsschritten finden Sie unter Mit benutzerdefinierten Anfrageheadern arbeiten. Ein konkretes Beispiel finden Sie unter Load-Balancer mit externem 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 Datei.yaml
, 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
: 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
Wenn Sie Ihre Back-End-Anfragen mithilfe des HMAC-Schlüssels authentifizieren möchten, 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
: 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 Beispiel-JSON-Anfragetexts:
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 für alle Anfragen an Ihren Ursprung einen HTTP-Autorisierungsheader.
Privat authentifizierte Antworten im Cache speichern
Sie sollten dafür sorgen, dass privat authentifizierte Inhalte von Cloud CDN im Cache gespeichert werden.
Setzen Sie dazu den Cache-Modus auf Alle Inhalte im Cache speichern 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, können Sie den Cache-Modus auf Ursprungseinstellung basierend auf Cache-Control-Headern verwenden oder Statische Inhalte im Cache speichern ändern und dafür sorgen, dass der Cache-Control
-Header für Inhalte, die von Ihrem Ursprung bereitgestellt werden, korrekt festgelegt ist.