Privaten Amazon S3-kompatiblen Bucket als Ursprung verwenden

Auf dieser Seite wird beschrieben, wie Sie Media CDN mit privaten, Amazon S3-kompatiblen Buckets unter Verwendung von Amazon Simple Storage Service (Amazon S3) und AWS Signature Version 4 verbinden. Media CDN unterstützt nicht AWS Signature Version 4a.

Media CDN unterstützt AWS Signature Version 4 zur Authentifizierung von Ursprungsanfragen. Mit dieser Funktion kannst du Media CDN mit deinen privaten, Amazon S3-kompatiblen Buckets verbinden, damit deine Inhalte nur mit Media CDN geteilt werden. Sie können auch die Clientauthentifizierung aktivieren, um die Sicherheit zu erhöhen. Weitere Informationen finden Sie unter Signierte Anfragen verwenden.

Hinweise

Es müssen die folgenden Ressourcen vorhanden sein:

Dienst-Agent für Media CDN erstellen

Verwenden Sie den Befehl gcloud beta services identity create, um einen Dienstmitarbeiter für Media CDN zu erstellen.

gcloud

gcloud beta services identity create \
    --project PROJECT_ID \
    --service=networkservices.googleapis.com

Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.

Weitere Informationen finden Sie unter Erstellung von Dienst-Agents auslösen.

Zugriffsschlüssel in Secret Manager speichern

Folgen Sie dieser Anleitung, um ein Secret in Secret Manager zu erstellen.

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite Secret Manager.

    Zu Secret Manager

  2. Klicken Sie auf der Seite Secret Manager auf Secret erstellen.

  3. Führen Sie im Abschnitt Details zum Geheimnis die folgenden Schritte aus:

    1. Geben Sie im Feld Name einen Namen für das Secret ein, z. B. aws-access-key-id.

    2. Überspringen Sie im Bereich Secret-Wert das Feld Datei hochladen.

    3. Geben Sie im Feld Secret-Wert den AWS-Secret-Zugriffsschlüssel ein.

  4. Überspringen Sie die restlichen Abschnitte.

  5. Klicken Sie auf Secret erstellen.

gcloud

Sie benötigen die Google Cloud CLI-Version 402.0.0 oder höher. In der Compute Engine oder Google Kubernetes Engine (GKE) müssen Sie sich mit dem Bereich „cloud-platform“ authentifizieren.

gcloud secrets create SECRET_NAME \
    --replication-policy="automatic" \
    --data-file="PATH_TO_AWS_SECRET_ACCESS_KEY"

Ersetzen Sie Folgendes:

  • SECRET_NAME: Der Name für Ihr Geheimnis, z. B. aws-access-key-id
  • PATH_TO_AWS_SECRET_ACCESS_KEY: der Pfad zum Wert Ihres geheimen AWS-Zugriffsschlüssels

Informationen zum Hinzufügen von Secret-Versionen finden Sie unter Secret-Version hinzufügen.

Secret Manager-Zugriffsrolle gewähren

So weisen Sie dem Media CDN-Dienstkonto die Rolle Zugriffsperson für Secret Manager-Secret (roles/secretmanager.secretAccessor) zu:

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite Secret Manager.

    Zu Secret Manager

  2. Wählen Sie das Secret aus.
  3. Wählen Sie Berechtigungen und dann Zugriff gewähren aus. Das Dialogfeld Zugriff gewähren wird angezeigt.
  4. Geben Sie im Abschnitt Hauptkonten hinzufügen das Media CDN-Dienstkonto im Feld Neue Hauptkonten folgendermaßen ein:
    service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com

    Ersetzen Sie PROJECT_NUMBER durch die Projektnummer.

  5. Wählen Sie im Abschnitt Rollen zuweisen unter Rolle auswählen die Option Secret Manager und dann Zugriffsperson für Secret Manager-Secret aus.
  6. Klicken Sie auf Speichern.

gcloud

gcloud secrets add-iam-policy-binding \
projects/PROJECT_NUMBER/secrets/SECRET_NAME \
    --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com" \
    --role="roles/secretmanager.secretAccessor"

Ersetzen Sie Folgendes:

  • PROJECT_NUMBER: Ihre Projektnummer
  • SECRET_NAME: der Name Ihres Secrets

Media CDN für die Authentifizierung bei Ihrem externen Ursprungs-Bucket konfigurieren

Console

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

    Zum Media CDN

  2. Klicken Sie auf den Tab Ursprung.

  3. Klicken Sie auf den Namen der Quelle, die Sie konfigurieren möchten.

    Die Seite Details zum Edge-Cache-Ursprung wird geöffnet.

  4. Klicken Sie auf Bearbeiten.

  5. Wählen Sie unter Quelladresse die Option FQDN oder IP-Adresse angeben aus und geben Sie den FQDN oder die IP-Adresse ein.

  6. Wähle im Abschnitt Authentifizierung des privaten Ursprungs die Option Media CDN-Anfrage an diesen Ursprung mit AWS-Signaturversion 4 authentifizieren aus.

  7. Geben Sie die folgenden Informationen an:

    • Schlüssel-ID: Ihre AWS-Zugriffsschlüssel-ID mit Leseberechtigungen für Ihren Ursprung
    • Auf ein Secret verweisen: die ID Ihres Zugriffsschlüssels in Secret Manager und seine Version. Sie können eine vorhandene ID auswählen, eine ID manuell eingeben oder eine neue ID erstellen und auswählen.
    • Region: Die Region, in der sich Ihr Amazon S3-Bucket befindet, z. B. us-east-1.
  8. Wählen Sie für Protokoll die Option HTTPS aus.

  9. Klicken Sie auf Ursprung aktualisieren.

gcloud

  1. Wenn Sie die aktuelle Konfiguration Ihres Dienstes in eine YAML-Datei exportieren möchten, führen Sie den Befehl gcloud edge-cache services export aus:

    gcloud edge-cache services export SERVICE_NAME \
        --destination=FILENAME.yaml
    

    Ersetzen Sie Folgendes:

    • SERVICE_NAME: der Name des Media CDN-Dienstes
    • FILENAME: der Name der YAML-Datei
  2. Bearbeiten Sie die YAML-Datei in Cloud Shell mit einem Texteditor.

  3. Aktualisieren Sie die YAML-Datei so, dass sie die folgenden Zeilen enthält:

    name: ORIGIN_NAME
    originAddress: "S3_BUCKET_NAME.s3.S3_REGION.amazonaws.com"
    protocol: HTTPS
    awsV4Authentication:
      accessKeyId: "AWS_ACCESS_KEY_ID"
      secretAccessKeyVersion: "projects/PROJECT_NUMBER/secrets/SECRET_NAME/versions/SECRET_VERSION"
      originRegion: "S3_REGION"
    

    Ersetzen Sie Folgendes:

    • ORIGIN_NAME: Ein Name, den Sie für diesen Ursprung festgelegt haben.
    • S3_BUCKET_NAME: der Name Ihres Amazon S3-Buckets
    • S3_REGION: die Region, in der sich Ihr Amazon S3-Bucket befindet, z. B. us-east-1
    • AWS_ACCESS_KEY_ID: Ihre AWS-Zugriffsschlüssel-ID mit Leseberechtigungen für die Quelle
    • PROJECT_NUMBER: Ihre Projektnummer
    • SECRET_NAME: Die ID Ihres Zugriffsschlüssels im Secret Manager.
    • SECRET_VERSION: Die zu verwendende Secret-Version
  4. Konfigurieren Sie Host- und Pfad-Umschreibungen für Anfragen an Ihren Ursprung. Um beispielsweise alle Anfragen mit dem Pfadpräfix /vod/ zuzuordnen, konfigurieren Sie einen hostRewrite, der dem originAddress entspricht, der in der YAML-Datei Ihres EdgeCacheService aufgeführt ist. Das folgende Codebeispiel zeigt die Verwendung von hostRewrite:

    name: SERVICE_NAME
    routeRules:
      - priority: 1
      - description: ROUTE_DESCRIPTION
        origin: ORIGIN_NAME
        matchRules:
        - prefixMatch: "/vod/"
        routeAction:
          urlRewrite:
            hostRewrite: "S3_BUCKET_NAME.s3.S3_REGION.amazonaws.com"
            pathPrefixRewrite: "/"
          cdnPolicy:
            cacheMode: CACHE_ALL_STATIC
            defaultTtl: 3600s
    

    Ersetzen Sie SERVICE_NAME durch den Namen Ihres EdgeCacheService.

    Weitere Informationen finden Sie unter Speicher-Back-Ends von Drittanbietern verwenden.

  5. Speichern Sie die YAML-Datei.

  6. Importieren Sie die YAML-Datei, um die Konfiguration zu aktualisieren.

    gcloud edge-cache origins import ORIGIN_NAME \
        --source=FILENAME.yaml
    

Nachdem du Media CDN für die Authentifizierung bei deinem externen Bucket konfiguriert hast, generiert Media CDN einen HTTP-Autorisierungsheader für alle Anfragen an deinen Header. Alle Abfrageparameter werden aus der Signaturberechnung und der Anfrage an Ihren Ursprung entfernt.

Ihr Ursprung kann Ihren Antworten zusätzliche Header anhängen. Informationen zum Entfernen der Antwortheader vor dem Senden an Clients finden Sie unter Benutzerdefinierte Header festlegen. Weitere Informationen zum Konfigurieren von Ursprüngen finden Sie unter Ursprungskonnektivität und -abschirmung.