Privaten Amazon S3-kompatiblen Bucket als Ursprung verwenden

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

Media CDN unterstützt AWS Signature Version 4 zum Authentifizieren von Ursprungsanfragen. Mit dieser Funktion können Sie Media CDN an Ihre privaten Amazon S3-kompatiblen Buckets an, dass Ihre Inhalte nur für Media CDN freigegeben werden. Sie können auch die Clientauthentifizierung aktivieren, um den gestaffelten Schutz zu verbessern. Weitere Informationen finden Sie unter Signierte Anfragen verwenden.

Hinweise

Prüfen Sie, ob Sie die folgenden Ressourcen haben:

  • Einen privaten Amazon S3-Bucket.

  • Ein dediziertes AWS-IAM-Nutzerkonto für den Zugriff auf das vorherige private Nutzerkonto Amazon S3-Bucket. Achten Sie darauf, dass der Bucket die Berechtigung s3:getObject gewährt Berechtigung für das AWS IAM-Nutzerkonto. Weitere Informationen zu Konfigurieren des Zugriffs auf Ihren Amazon S3-Bucket finden Sie unter Identitäts- und Zugriffsverwaltung in Amazon S3

  • Die AWS-Zugriffsschlüssel-ID und der geheime AWS-Zugriffsschlüssel für das dedizierte AWS IAM-Nutzerkonto. Weitere Informationen finden Sie unter Zugriffsschlüssel für IAM-Nutzer verwalten

  • Wenn Sie Secret Manager noch nicht verwendet haben, konfigurieren Sie Secret Manager:

Dienst-Agent für Media CDN erstellen

Um einen Dienst-Agent für Media CDN zu erstellen, verwenden Sie den gcloud beta services identity create-Befehl

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 des Dienst-Agents auslösen.

Zugriffsschlüssel in Secret Manager speichern

Führen Sie die folgenden Schritte aus, um Secret erstellen in Secret Manager an.

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 Secret-Details die folgenden Schritte aus:

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

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

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

  4. Überspringen Sie die restlichen Abschnitte.

  5. Klicken Sie auf Secret erstellen.

gcloud

Achten Sie darauf, dass Sie Version 402.0.0 oder höher der Google Cloud CLI verwenden. In Compute Engine oder Google Kubernetes Engine (GKE) müssen Sie 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 Ihres Secret wie aws-access-key-id
  • PATH_TO_AWS_SECRET_ACCESS_KEY: der Pfad auf den Wert Ihres geheimen AWS-Zugriffsschlüssels

Informationen zum Hinzufügen von Secret-Versionen finden Sie unter Fügen Sie eine Secret-Version hinzu.

Rolle „Secret Manager-Zugriff“ gewähren

Gehen Sie wie folgt vor, um die Rolle „Accessor für Secret Manager-Secret“ (roles/secretmanager.secretAccessor) an den Media CDN-Dienst Konto.

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. Die Das Dialogfeld Zugriff gewähren wird angezeigt.
  4. Geben Sie im Bereich Hauptkonten hinzufügen Media CDN-Dienstkonto in der Neue Hauptkonten so:
    service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com

    Ersetzen Sie PROJECT_NUMBER durch Ihren Projektnummer.

  5. Wählen Sie im Abschnitt Rollen zuweisen unter Rolle auswählen die Option Secret Manager und wählen Sie dann Auf Secret Manager-Secret zugreifende Person.
  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 Ursprünge.

  3. Klicken Sie auf den Namen des Ursprungs, den Sie konfigurieren möchten.

    Die Seite Edge Cache-Ursprungsdetails wird geöffnet.

  4. Klicken Sie auf Bearbeiten.

  5. Wählen Sie für Ursprungsadresse die Option FQDN oder IP-Adresse angeben aus. den FQDN oder die IP-Adresse ein.

  6. Wählen Sie im Abschnitt Authentifizierung des privaten Ursprungs die Option Authentifizieren aus. Die Anfrage von Media CDN an diesen Ursprung mit der AWS-Signaturversion 4.

  7. Geben Sie die folgenden Informationen an:

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

  9. Klicken Sie auf Ursprung aktualisieren.

gcloud

  1. Führen Sie den folgenden Befehl aus, um die aktuelle Konfiguration Ihres Dienstes in eine YAML-Datei zu exportieren: den Befehl gcloud edge-cache services export:

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

    Ersetzen Sie Folgendes:

    • SERVICE_NAME: der Name des Media CDN-Dienst
    • FILENAME: der Name der YAML-Datei
  2. Verwenden Sie in Cloud Shell einen Texteditor, um die YAML-Datei zu bearbeiten.

  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 von Ihnen festgelegter Name Ursprung
    • S3_BUCKET_NAME: der Name Ihres Amazon S3-Bucket
    • S3_REGION: die Region, in der sich Ihr Der Amazon S3-Bucket befindet sich in, z. B. us-east-1
    • AWS_ACCESS_KEY_ID: Ihre AWS-Zugriffsschlüssel-ID mit Leseberechtigungen für Ihren Ursprung
    • PROJECT_NUMBER: Ihre Projektnummer
    • SECRET_NAME: die ID Ihres Zugriffsschlüssels in Secret Manager
    • SECRET_VERSION: die zu verwendende Secret-Version
  4. Konfigurieren Sie Host- und Pfadumschreibungen 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, wie Sie 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 Sie Media CDN für die Authentifizierung bei Ihrem externen Netzwerk generiert Media CDN einen HTTP-Autorisierungsheader für alle an Ihren Header senden. Alle Abfrageparameter werden aus der Signatur entfernt und -Anfrage an Ihren Ursprung.

Ihr Ursprung hängt möglicherweise zusätzliche Header an Ihre Antworten an. So entfernen Sie die bevor sie an Clients gesendet werden, Weitere Informationen Weitere Informationen zum Konfigurieren von Ursprüngen finden Sie unter Ursprungskonnektivität und -abschirmung: