Übertragung von S3 über CloudFront

Für Übertragungen von Amazon S3 kann eine Amazon CloudFront-Distribution als Ausgangspfad verwendet werden.

Bei der Datenübertragung über CloudFront können niedrigere AWS-Kosten für ausgehenden Traffic anfallen als bei der direkten Übertragung von S3. Weitere Informationen finden Sie unter CloudFront-Preise und S3-Ausgabegebühren.

Wenn Sie CloudFront als Ausgangspfad verwenden, sind Ihre S3-Objekte nicht öffentlich zugänglich. Weitere Informationen finden Sie unter Macht die Verwendung von CloudFront meine Objekte öffentlich zugänglich?

Übersicht

So übertragen Sie S3-Daten über CloudFront:

IAM-Berechtigungen konfigurieren

Folgen Sie der Anleitung unter Berechtigungen für die agentenlose Weiterleitung, um die erforderlichen Google Cloud-Berechtigungen zu erteilen.

Zugriff auf Ihren S3-Bucket konfigurieren

Folgen Sie der Anleitung unter Zugriff auf eine Quelle konfigurieren: Amazon S3, um den Zugriff auf Ihre Daten in Amazon S3 zu konfigurieren.

CloudFront-Distribution für Ihren S3-Bucket erstellen

  1. Rufen Sie in Ihrem AWS-Konto CloudFront auf.
  2. Klicken Sie auf CloudFront-Distribution erstellen.
  3. Wählen Sie unter Herkunftsdomain Ihren S3-Bucket aus.
  4. Das Feld Ursprungspfad muss leer bleiben.
  5. Übernehmen Sie den automatisch ausgefüllten Ursprungsnamen oder geben Sie einen eigenen Wert an.
  6. Wählen Sie im Bereich Zugriff auf Ursprung die Option Öffentlich aus. Dadurch wird Ihr Bucket nicht öffentlich. Stattdessen wird CloudFront mitgeteilt, dass kein Zugriffsmechanismus konfiguriert werden soll.
  7. Im Bereich Cache-Schlüssel und Ursprungsanfragen:
    1. Wählen Sie als Cache-Richtlinie CachingDisabled aus. Dadurch wird verhindert, dass CloudFront Anfragen im Cache speichert und an nicht authentifizierte Zuschauer weiterleitet.
    2. Wähle für Richtlinie für Ursprungsanfragen die Option AllViewerExceptHostHeader aus. So kann CloudFront Authentifizierungsheader an S3 weiterleiten, damit der Storage Transfer Service mit Ihren sicheren Anmeldedaten auf Ihren Bucket zugreifen kann.
  8. Wählen Sie im Bereich Web Application Firewall (WAF) die Option Nicht aktivieren aus.
  9. Optional können Sie eine Preisklasse auswählen. Der Storage Transfer Service wählt Worker-Pools basierend auf der Region des Quell-Buckets aus. Die CloudFront-Preise gelten daher für diese Region. Um den niedrigsten Preis zu erhalten, muss sich Ihr Quell-Bucket entweder in den USA oder in Europa befinden oder Sie müssen in CloudFront Nur Nordamerika und Europa verwenden als Preisklasse auswählen.
  10. Klicken Sie auf CloudFront-Distribution erstellen.

    Nach der erfolgreichen Erstellung wird die Seite mit den Details zur CloudFront-Bereitstellung angezeigt.

  11. Notieren Sie sich den Distributionsdomainnamen. Beispiel: https://dy1h2n3l4ob56.cloudfront.net. Wenn auf der Seite mit den Details das https://-Protokoll nicht vor dem Distributionsdomainnamen steht, müssen Sie es beim Erstellen des Übertragungsjobs selbst hinzufügen.

Übertragungsjob erstellen

Die Übertragung über eine CloudFront-Bereitstellung wird in der Google Cloud Console und in der REST API unterstützt.

Der Name des Übertragungsjobs darf keine vertraulichen Informationen wie personenidentifizierbare Informationen oder Sicherheitsdaten enthalten. Ressourcennamen können an die Namen anderer Google Cloud-Ressourcen weitergegeben und für interne Google-Systeme außerhalb Ihres Projekts freigegeben werden.

Google Cloud Console

Wenn Sie eine Übertragung mit der Google Cloud Console erstellen möchten, folgen Sie der Anleitung unter Übertragung erstellen.

Wenn Sie aufgefordert werden, die CloudFront-Domain einzugeben, geben Sie den Domainnamen der Distribution ein, den Sie im vorherigen Abschnitt notiert haben. Sie finden diesen Wert auch im Abschnitt „CloudFront“ der Amazon Web Services-Konsole. Sie hat das Format https://dy1h2n3l4ob56.cloudfront.net.

REST API

Wenn Sie eine Übertragung mit der REST API erstellen möchten, folgen Sie dem Beispiel auf der Seite Übertragungen erstellen.

Geben Sie den Domainnamen der Verteilung als Wert für das Feld transferSpec.awsS3DataSource.cloudfrontDomain an:

"transferSpec": {
  "awsS3DataSource": {
    "bucketName": "AWS_SOURCE_NAME",
    "cloudfrontDomain": "https://dy1h2n3l4ob56.cloudfront.net",
    "awsAccessKey": {
      "accessKeyId": "AWS_ACCESS_KEY_ID",
      "secretAccessKey": "AWS_SECRET_ACCESS_KEY"
    }
  },
  ...
}

Häufig gestellte Fragen

Werden meine Objekte durch die Verwendung von CloudFront der Öffentlichkeit zugänglich gemacht?

Nein. Wenn Sie die Konfigurationsschritte auf dieser Seite ausgeführt haben, sind Ihre Objekte nicht öffentlich zugänglich.

  • Cloudfront hat keinen direkten Zugriff auf Ihre S3-Objekte.
  • Nutzer erhalten den Fehler permission denied, wenn sie versuchen, direkt oder über CloudFront auf Ihre Objekte zuzugreifen (wenn Ihr Bucket privat ist).
  • Der Storage Transfer Service signiert Anfragen an CloudFront mit den Anmeldedaten, die Sie im Übertragungsjob angegeben haben. So können wir Ihre Objekte genauso sicher herunterladen, als würden wir sie direkt aus S3 herunterladen. Das funktioniert dank der Einstellung für die Weiterleitung von Headern AllViewerExceptHostHeader.