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 können Sie Media CDN mit Ihren privaten Amazon S3-kompatiblen Buckets verbinden, damit Ihre Inhalte nur mit Media CDN geteilt werden. Sie können auch die Clientauthentifizierung aktivieren, um die Defense-in-Depth-Strategie zu verbessern. Weitere Informationen finden Sie unter Signierte Anfragen verwenden.
Hinweis
Es müssen die folgenden Ressourcen vorhanden sein:
Ein privater Amazon S3-Bucket, der den Benennungsregeln entspricht.
Ein dediziertes AWS-IAM-Nutzerkonto für den Zugriff auf den privaten Amazon S3-Bucket. Prüfen Sie, ob dem AWS IAM-Nutzerkonto die Berechtigung
s3:getObjectfür den Bucket gewährt wurde. Weitere Informationen zum 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
Verwenden Sie den Befehl gcloud beta services identity create, um einen Dienst-Agent 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
So erstellen Sie ein Secret in Secret Manager:
Console
Rufen Sie in der Google Cloud Console die Seite Secret Manager auf.
Klicken Sie auf der Seite Secret Manager auf Secret erstellen.
Geben Sie im Abschnitt Secret-Details Folgendes an:
Geben Sie im Feld Name einen Namen für das Secret ein, z. B.
aws-access-key-id.Überspringen Sie im Bereich Secret-Wert das Feld Datei hochladen.
Geben Sie im Feld Secret-Wert den geheimen AWS-Zugriffsschlüssel ein.
Überspringen Sie die restlichen Abschnitte.
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 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 Secret, z. B.aws-access-key-idPATH_TO_AWS_SECRET_ACCESS_KEY: der Pfad zu Ihrem geheimen AWS-Zugriffsschlüsselwert
Informationen zum Hinzufügen von Secret-Versionen finden Sie unter Secret-Version hinzufügen.
Rolle „Secret Manager Access“ gewähren
Führen Sie die folgenden Schritte aus, um dem Media CDN-Dienstkonto die Rolle „Secret Manager-Secret-Zugriffsperson“ (roles/secretmanager.secretAccessor) zuzuweisen.
Console
Rufen Sie in der Google Cloud Console die Seite Secret Manager auf.
- Wählen Sie das Secret aus.
- Wählen Sie Berechtigungen und dann Zugriff gewähren aus. Das Dialogfeld Zugriff gewähren wird angezeigt.
Geben Sie im Abschnitt Hauptkonten hinzufügen das Media CDN-Dienstkonto im Feld Neue Hauptkonten so ein:
service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.comErsetzen Sie
PROJECT_NUMBERdurch die Projektnummer.- Wählen Sie im Abschnitt Rollen zuweisen unter Rolle auswählen die Option Secret Manager und dann Zugriffsperson für Secret Manager-Secret aus.
- 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 ProjektnummerSECRET_NAME: der Name Ihres Secrets
Media CDN für die Authentifizierung bei Ihrem externen Ursprungs-Bucket konfigurieren
Console
Rufen Sie in der Console von Google Cloud die Seite Media CDN auf.
Klicken Sie auf den Tab Ursprung.
Klicken Sie auf den Namen des Ursprungs, den Sie konfigurieren möchten.
Die Seite Details zum Edge-Cache-Ursprung wird geöffnet.
Klicken Sie auf Bearbeiten.
Wählen Sie für Ursprungsadresse die Option FQDN oder IP-Adresse angeben aus und geben Sie dann den FQDN oder die IP-Adresse ein.
Wählen Sie im Bereich Authentifizierung des privaten Ursprungs die Option Media CDN-Anfrage an diesen Ursprung mit AWS-Signaturversion 4 authentifizieren aus.
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
Wählen Sie für Protokoll die Option HTTPS aus.
Klicken Sie auf Ursprung aktualisieren.
gcloud
Wenn Sie die aktuelle Konfiguration Ihres Dienstes in eine YAML-Datei exportieren möchten, führen Sie den Befehl
gcloud edge-cache services exportaus:gcloud edge-cache services export SERVICE_NAME \ --destination=FILENAME.yamlErsetzen Sie Folgendes:
SERVICE_NAME: der Name des Media CDN-DienstesFILENAME: der Name der YAML-Datei
Bearbeiten Sie die YAML-Datei in Cloud Shell mit einem Texteditor.
Aktualisieren Sie die YAML-Datei, sodass 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-BucketsS3_REGION: Die Region, in der sich Ihr Amazon S3-Bucket befindet, z. B.us-east-1AWS_ACCESS_KEY_ID: Ihre AWS-Zugriffsschlüssel-ID mit Leseberechtigungen für Ihren UrsprungPROJECT_NUMBER: Ihre ProjektnummerSECRET_NAME: Die ID Ihres Zugriffsschlüssels im Secret Manager.SECRET_VERSION: Die zu verwendende Secret-Version
Host- und Pfad-Umschreibungen für Anfragen an Ihren Ursprung konfigurieren Um beispielsweise alle Anfragen mit dem Pfadpräfix
/vod/zuzuordnen, konfigurieren Sie einenhostRewrite, der demoriginAddressentspricht, der in der YAML-Datei IhresEdgeCacheServiceaufgeführt ist. Das folgende Codebeispiel zeigt, wiehostRewriteverwendet wird: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: 3600sErsetzen Sie
SERVICE_NAMEdurch den Namen IhresEdgeCacheService.Weitere Informationen finden Sie unter Speicher-Back-Ends von Drittanbietern verwenden.
Speichern Sie die YAML-Datei.
Wenn Sie Ihre Konfiguration aktualisieren möchten, importieren Sie die YAML-Datei.
gcloud edge-cache origins import ORIGIN_NAME \ --source=FILENAME.yaml
Nachdem Sie Media CDN für die Authentifizierung bei Ihrem externen Bucket konfiguriert haben, generiert Media CDN einen HTTP-Autorisierungsheader für alle Anfragen an Ihren Header. Alle Abfrageparameter werden aus der Signaturberechnung und der Anfrage an Ihren Ursprung entfernt.
Ihr Ursprung fügt Ihren Antworten möglicherweise zusätzliche Header hinzu. Informationen zum Entfernen der Antwortheader vor der Bereitstellung für Clients finden Sie unter Benutzerdefinierte Header festlegen. Weitere Informationen zum Konfigurieren von Ursprüngen finden Sie unter Ursprungskonnektivität und -abschirmung.