Übertragung von S3 über CloudFront

Übertragungen von Amazon S3 können eine Amazon CloudFront-Distribution als Pfad für ausgehenden Traffic.

Datenübertragungen über CloudFront können von niedrigeren Kosten für ausgehenden AWS-Traffic profitieren im Vergleich zur direkten Übertragung aus S3. Weitere Informationen finden Sie unter CloudFront-Preise und Weitere Informationen finden Sie unter Gebühren für ausgehenden S3-Traffic.

Wenn Sie CloudFront als Pfad für ausgehenden Traffic verwenden, sind Ihre S3-Objekte nicht für den öffentlich zugänglich sind. Weitere Informationen finden Sie unter Sind meine Objekte bei der Verwendung von CloudFront öffentlich sichtbar?

Übersicht

So übertragen Sie S3-Daten über CloudFront:

IAM-Berechtigungen konfigurieren

Folgen Sie dazu der Anleitung unter Übertragungsberechtigungen ohne Agent zum Gewähren der erforderlichen Google Cloud-Berechtigungen.

Zugriff auf den S3-Bucket konfigurieren

Folgen Sie dazu 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. Wechseln Sie in Ihrem AWS-Konto zu CloudFront.
  2. Klicken Sie auf CloudFront-Distribution erstellen.
  3. Wählen Sie unter Ursprungsdomain Ihren S3-Bucket aus.
  4. Origin Path muss leer bleiben.
  5. Akzeptieren Sie den automatisch ausgefüllten Namen des Abreiseorts oder geben Sie einen eigenen Wert an.
  6. Wählen Sie im Abschnitt Ursprungszugriff die Option Öffentlich aus. Das bedeutet nicht, Bucket öffentlich; Stattdessen wird CloudFront darauf hingewiesen, dass kein Zugriffsmechanismus konfiguriert werden.
  7. Im Abschnitt Cache-Schlüssel und Ursprungsanfragen: <ph type="x-smartling-placeholder">
      </ph>
    1. Wählen Sie für Cache-Richtlinie die Option CachingDisabled aus. Dadurch wird verhindert, dass CloudFront Anfragen im Cache gespeichert und nicht authentifizierten Nutzern zugänglich gemacht werden.
    2. Wählen Sie für Richtlinie für Ursprungsanfrage die Option AllViewerExceptHostHeader aus. Dieses ermöglicht CloudFront, Authentifizierungs-Header an S3 weiterzuleiten, sodass Storage Transfer Service kann mit Ihren sicheren Anmeldedaten auf Ihren Bucket zugreifen.
  8. Wählen Sie im Abschnitt Web Application Firewall (WAF) die Option Nicht aktivieren aus.
  9. Wählen Sie optional eine Preisklasse aus. Storage Transfer Service wählt Worker-Pools aus auf Basis der Region des Quell-Buckets, sodass CloudFront-Preise in dieser Region. Um die niedrigsten Preise zu erhalten, müssen Sie entweder sicherstellen, Bucket befindet sich in den USA oder Europa oder wählen Sie Nur Nordamerika und Europa verwenden aus. als Preisklasse in CloudFront.
  10. Klicken Sie auf CloudFront-Verteilung erstellen.

    Nach der Erstellung wird die Detailseite der CloudFront-Distribution angezeigt. angezeigt.

  11. Notieren Sie sich den Namen der Bereitstellungsdomain. Beispiel: https://dy1h2n3l4ob56.cloudfront.net. Wenn auf der Detailseite keine https://-Protokoll vor dem Namen der Distributionsdomain ein, benötigen Sie bei der Erstellung des Übertragungsjobs selbst hinzufügen.

Übertragungsjob erstellen

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

Geben Sie keine vertraulichen Daten wie personenidentifizierbare Informationen an (PII) oder Sicherheitsdaten in den Namen des Übertragungsjobs ein. Ressourcennamen können an die Namen anderer Google Cloud-Ressourcen weitergegeben und Google-internen Systemen außerhalb Ihres Projekts zu implementieren.

Google Cloud Console

Um eine Übertragung mit der Google Cloud Console zu erstellen, folgen Sie der Anweisungen für Erstellen Sie eine Übertragung.

Wenn Sie zur Eingabe der CloudFront-Domain aufgefordert werden, geben Sie die Verteilung ein. Domain-Namen, den Sie im vorherigen Abschnitt notiert haben. Sie finden diesen Wert auch im Abschnitt „CloudFront“ der Amazon Web Services-Konsole aufgeführt. Sie enthält das Format https://dy1h2n3l4ob56.cloudfront.net.

REST API

Um eine Übertragung mit der REST API zu erstellen, folgen Sie dem Beispiel auf der Übertragungen erstellen Seite.

Geben Sie den Namen der Distributionsdomain als Wert der Feld transferSpec.awsS3DataSource.cloudfrontDomain:

"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

Sind meine Objekte bei der Verwendung von CloudFront der Öffentlichkeit zugänglich?

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

  • Cloudfront hat keinen direkten Zugriff auf Ihre S3-Objekte.
  • Nutzer erhalten den Fehler permission denied, wenn sie versuchen, auf Ihre Objekte zuzugreifen entweder direkt oder über CloudFront (wenn Ihr Bucket privat ist).
  • Storage Transfer Service signiert Anfragen an CloudFront mit den die im Übertragungsjob bereitgestellt wurden, damit wir Ihre Objekte herunterladen können direkt von S3 herunterladen. Dies funktioniert aufgrund der Einstellung für die Headerweiterleitung AllViewerExceptHostHeader.