Auf dieser Seite finden Sie eine Übersicht über die Authentifizierung mit privatem Ursprung und eine Anleitung für die Verwendung mit Cloud CDN.
Die Authentifizierung über einen privaten Ursprung ermöglicht 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.
Diese Funktion wird für Cloud CDN mit einem globalen externen Application Load Balancer oder einem klassischen Application Load Balancer unterstützt.
Die Authentifizierung des privaten Ursprungs ist ursprünglich gerichtet, während signierte URLs und signierte Cookies clientseitig sind. Sie können beide für dieselben Inhalte aktivieren. Mit der Authentifizierung des privaten Ursprungs wird der Zugriff auf Ihre Ursprünge und Inhalte eingeschränkt, der nicht über das CDN erfolgt. Mit signierten URLs und Cookies wird festgelegt, 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 verknüpfen Sie ihn mit einem Dienstkonto. Notieren Sie sich den Zugriffsschlüssel und das Secret.
Weitere Informationen finden Sie in der AWS-Dokumentation unter Auf AWS mit AWS-Anmeldedaten zugreifen: Programmatischer Zugriff.
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 Back-End-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 dazu 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 konfigurierst du die Authentifizierung für private Ursprünge:
Console
Rufen Sie in der Google Cloud Console die Seite Cloud CDN auf.
Klicken Sie auf den Namen der Quelle, die Sie konfigurieren möchten. Der Ursprung muss vom Typ Benutzerdefinierter Ursprung sein.
Klicken Sie auf der Seite Details zum Ursprung auf die Schaltfläche Bearbeiten.
Klicken Sie auf Weiter, um zum Abschnitt Host- und Pfadregeln zu gelangen.
Klicken Sie auf Weiter, um zum Abschnitt Cache-Leistung zu gelangen.
Wählen Sie im Abschnitt 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.
- Key: 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 für die 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 du deine Backend-Anfragen mit dem HMAC-Schlüssel authentifizieren möchtest, gib 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 HMAC-Zugriffsschlüssel-IDACCESS_KEY
: der HMAC-ZugriffsschlüsselACCESS_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 Ihren 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 du deine Backendanfragen mit dem HMAC-Schlüssel authentifizieren möchtest, gib die folgenden 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 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 eines Beispiel-JSON-Anfragetexts:
securitySettings: { awsV4Authentication: { accessKeyId: "AKIDEXAMPLE", accessKey: "c4afb1cc5771d871763a393e44b703571b55cc28424d1a5e86da6ed3c154a4b9", accessKeyVersion: "prod-access-key-v1.2", originRegion: "us-east-2" } }
Der Dienstname wird beim Erstellen der Signatur automatisch auf s3
festgelegt.
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
Sie können festlegen, dass privat authentifizierte Inhalte von Cloud CDN im Cache gespeichert werden.
Legen Sie dazu den Cache-Modus auf Alle Inhalte im Cache speichern fest und geben Sie eine TTL an, damit alle vom Ursprung bereitgestellten Inhalte im Cache gespeichert werden.
Wenn Sie nicht möchten, dass alle Inhalte auf dieselbe Weise im Cache gespeichert werden, können Sie den Cache-Modus auch in Auf Cache-Control-Headern basierende Ursprungsserver-Einstellungen verwenden oder Statische Inhalte im Cache speichern ändern. Achten Sie dabei darauf, dass der Cache-Control
-Header für Inhalte, die von Ihrem Ursprung bereitgestellt werden, richtig festgelegt ist.