Authentifizierung für privaten Ursprung konfigurieren

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 den Host-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

  1. Rufen Sie in der Console von Google Cloud die Seite Cloud CDN auf.

    Zu „Cloud CDN“

  2. Klicken Sie auf den Namen des Ursprungs, den Sie konfigurieren möchten. Der Ursprung muss vom Typ Benutzerdefinierter Ursprung sein.

  3. Klicken Sie auf der Seite Ursprungsdetails auf die Schaltfläche Bearbeiten.

  4. Klicken Sie auf Weiter, um zum Bereich Host- und Pfadregeln zu gelangen.

  5. Klicken Sie auf Weiter, um zum Bereich Cache-Leistung zu gelangen.

  6. 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.
  7. Klicken Sie auf Fertig.

gcloud

  1. 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.

  2. Wenn Sie Ihre Backendanfragen mit dem HMAC-Schlüssel authentifizieren möchten, geben Sie die folgenden zusätzlichen Konfigurationsoptionen im Abschnitt securitySettings von backendServices 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
    
  3. 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.

Nächste Schritte