Auf dieser Seite finden Sie eine Übersicht über die Authentifizierung für private Ursprünge und eine Anleitung für die Verwendung mit Cloud CDN.
Die Authentifizierung für private Ursprünge gewährt Cloud CDN langfristigen Ressourcenzugriff auf private Amazon S3-Buckets oder andere kompatible Objektspeicher. Wenn Sie private Ursprünge verwenden, können Clients Cloud CDN nicht umgehen und nicht direkt auf Ihren Ursprung zugreifen.
Dieses Feature wird für Cloud CDN mit einem globalen externen Application Load Balancer oder einem klassischen Application Load Balancer unterstützt.
Die Authentifizierung für private Ursprünge ist ursprungsbezogen, während signierte URLs und signierte Cookies clientbezogen sind. Sie können beides für dieselben Inhalte aktivieren. Durch die Authentifizierung für private Ursprünge 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.
Hinweis
Erstellen Sie einen HMAC-Schlüssel (Hash-based Message Authentication Code) zur Authentifizierung von Anfragen und verknüpfen Sie ihn mit einem Dienstkonto. Notieren Sie sich den Zugriffsschlüssel und das Secret.
Weitere Informationen finden Sie in der AWS-Dokumentation im Artikel zu AWS-Sicherheitsanmeldedaten.
Load Balancer mit dem externen Backend konfigurieren
Wenn Ihr Objektspeicher für den
Host
-Header der HTTP-Anfrage einen bestimmten Wert erwartet, muss dieser im Backend-Dienst konfiguriert sein. Wenn Sie keinen benutzerdefinierten Anfrageheader konfigurieren, behält der Backend-Dienst denHost
-Header bei, den der Client für die Verbindung mit dem externen Application Load Balancer verwendet hat.Eine Anleitung finden Sie unter Mit benutzerdefinierten Anfrageheadern arbeiten. Ein konkretes Beispiel finden Sie unter Klassischen Application Load Balancer mit einem externen Backend einrichten.
Aktualisieren Sie bei Bedarf auf die aktuelle Version der Google Cloud CLI:
gcloud components update
Authentifizierung für private Ursprünge konfigurieren
So konfigurieren Sie die Authentifizierung für private Ursprünge:
Console
Rufen Sie in der Console von Google Cloud die Seite Cloud CDN auf.
Klicken Sie auf den Namen des Ursprungs, den Sie konfigurieren möchten. Der Ursprung muss vom Typ Benutzerdefinierter Ursprung sein.
Klicken Sie auf der Seite Ursprungsdetails auf die Schaltfläche Bearbeiten.
Klicken Sie auf Weiter, um zum Bereich Host- und Pfadregeln zu gelangen.
Klicken Sie auf Weiter, um zum Bereich Cache-Leistung zu gelangen.
Wählen Sie im Bereich Authentifizierung des privaten Ursprungs die Option Anfragen an diesen Ursprung mit AWS Signature Version 4 authentifizieren aus. Geben Sie dann die folgenden Informationen an:
- Schlüssel-ID: Zugriffsschlüssel für Ihren Amazon S3-Bucket oder einen anderen kompatiblen Objektspeicher.
- Schlüssel: der geheime Schlüssel, der zur Authentifizierung beim Objektspeicher verwendet wird. Wenn Sie einen privaten Cloud Storage-Bucket verwenden, geben Sie den HMAC-Schlüssel an.
- Schlüsselversion: ein eindeutiger Name zur Darstellung der Schlüsselversion.
- Region: die Region, in der sich Ihr Objektspeicher befindet, z. B.
us-east-1
.
Klicken Sie auf Fertig.
gcloud
Exportieren Sie die Backendkonfiguration 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
.Wenn Sie Ihre Backendanfragen mit dem HMAC-Schlüssel authentifizieren möchten, geben Sie die folgenden 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 ID des HMAC-Zugriffsschlüssels.ACCESS_KEY
: der HMAC-Zugriffsschlüssel.ACCESS_KEY_VERSION
(optional): ein eindeutiger Name, den Sie zur Darstellung der 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 Beispiel-
my-private-origin.yaml
-Datei: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
Wenn Sie den privaten Ursprung aktualisieren möchten, importieren Sie die Konfiguration mit dem Befehl
gcloud compute backend-services import
in Ihren Backend-Dienst:gcloud compute backend-services import BACKEND_SERVICE_NAME \ [--source=SOURCE]
Ersetzen Sie
SOURCE
durch den Namen der YAML-Datei.
API
Wenn Sie Ihre Backendanfragen mit dem HMAC-Schlüssel 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 ID des HMAC-Zugriffsschlüssels.ACCESS_KEY
: der HMAC-Zugriffsschlüssel.ACCESS_KEY_VERSION
(optional): ein eindeutiger Name, den Sie zur Darstellung der Schlüsselversion festlegen können.REGION
: eine gültige Region für Ihren Speicheranbieter. Bei Amazon S3 ist der Wert keine Region von Google Cloud.
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 automatisch auf s3
gesetzt, um die Signatur zu erstellen.
Nachdem diese Konfigurationen eingerichtet sind, generiert Cloud CDN einen HTTP-Autorisierungsheader für alle Anfragen an Ihren Ursprung.
Antworten mit privater Authentifizierung im Cache speichern
Möglicherweise möchten Sie, dass privat authentifizierte Inhalte von Cloud CDN im Cache gespeichert werden.
Dazu müssen Sie den Cache-Modus auf Alle Inhalte im Cache speichern festlegen und eine TTL angeben, damit alle Inhalte, die vom Ursprung bereitgestellt werden, 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 Auf Cache-Control-Headern basierende Ursprungsserver-Einstellungen verwenden oder Statische Inhalte im Cache speichern und sorgen Sie dafür, dass der Cache-Control
-Header für Inhalte, die von Ihrem Ursprungsserver bereitgestellt werden, richtig festgelegt ist.