Bei Übertragungen von Amazon S3 kann eine Amazon CloudFront-Distribution als Pfad für ausgehenden Traffic verwendet werden.
Bei Datenübertragungen über CloudFront können im Vergleich zur direkten Übertragung von S3 niedrigere AWS-Kosten für ausgehenden Traffic anfallen. Weitere Informationen finden Sie unter CloudFront-Preise und S3-Ausgangsgebühren.
Wenn Sie CloudFront als Pfad für ausgehenden Traffic verwenden, werden Ihre S3-Objekte nicht öffentlich zugänglich gemacht. Weitere Informationen finden Sie unter Does using CloudFront expose my objects to the public?.
Übersicht
So übertragen Sie S3-Daten über CloudFront:
- IAM-Berechtigungen konfigurieren
- Zugriff auf Ihren S3-Bucket konfigurieren
- CloudFront-Verteilung für Ihren S3-Bucket erstellen
- Übertragungsjob erstellen
IAM-Berechtigungen konfigurieren
Folgen Sie der Anleitung unter Berechtigungen für die agentenlose Übertragung, 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-Verteilung für Ihren S3-Bucket erstellen
- Rufen Sie in Ihrem AWS-Konto CloudFront auf.
- Klicken Sie auf CloudFront-Verteilung erstellen.
- Wählen Sie unter Ursprungsdomain Ihren S3-Bucket aus.
- Ursprungspfad muss leer bleiben.
- Übernehmen Sie den automatisch ausgefüllten Ursprungsnamen oder geben Sie einen eigenen Wert an.
- Wählen Sie im Abschnitt Ursprungszugriff die Option Öffentlich aus. Dadurch wird Ihr Bucket nicht öffentlich. Stattdessen wird CloudFront mitgeteilt, dass kein Zugriffsmechanismus konfiguriert werden soll.
- Im Abschnitt Cache-Schlüssel und Ursprungsanfragen:
- Wählen Sie für Cache-Richtlinie die Option CachingDisabled aus. Dadurch wird verhindert, dass CloudFront Anfragen im Cache speichert und sie für nicht authentifizierte Zuschauer bereitstellt.
- Wählen Sie für Origin request policy (Richtlinie für Ursprungsanfragen) die Option AllViewerExceptHostHeader aus. So kann CloudFront Authentifizierungsheader an S3 weiterleiten, damit Storage Transfer Service mit Ihren sicheren Anmeldedaten auf Ihren Bucket zugreifen kann.
- Wählen Sie im Bereich Web Application Firewall (WAF) die Option Nicht aktivieren aus.
- Optional: Wählen Sie eine Preisklasse aus. Storage Transfer Service wählt Worker-Pools basierend auf der Region des Quell-Buckets aus. Die CloudFront-Preise fallen also in dieser Region an. Um die niedrigsten Preise zu erzielen, muss sich Ihr Quell-Bucket in den USA oder Europa befinden. Alternativ können Sie in CloudFront die Preisklasse Nur Nordamerika und Europa verwenden auswählen.
Klicken Sie auf CloudFront-Verteilung erstellen.
Nachdem die CloudFront-Verteilung erfolgreich erstellt wurde, wird die Detailseite der Verteilung angezeigt.
Notieren Sie sich den Domainnamen für die Verteilung. Beispiel:
https://dy1h2n3l4ob56.cloudfront.net. Wenn auf der Detailseite dashttps://-Protokoll nicht vor dem Namen der Bereitstellungsdomain steht, müssen Sie es beim Erstellen des Übertragungsjobs selbst hinzufügen.
Übertragungsjob erstellen
Die Übertragung über eine CloudFront-Verteilung wird in der Google Cloud -Konsole und der REST API unterstützt.
Der Name des Übertragungsjobs darf keine vertraulichen Informationen wie personenidentifizierbare Informationen (PII) oder Sicherheitsdaten enthalten. Ressourcennamen können an die Namen anderer Google Cloud-Ressourcen weitergegeben und in Google-internen Systemen außerhalb Ihres Projekts verfügbar gemacht 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 zur Eingabe der CloudFront-Domain aufgefordert werden, geben Sie den Verteilungsdomainnamen ein, den Sie im vorherigen Abschnitt notiert haben. Sie finden diesen Wert auch im CloudFront-Abschnitt 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 Namen der Vertriebsdomain als Wert des Felds 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 öffentlich zugänglich gemacht?
Nein. Wenn Sie die Konfigurationsschritte auf dieser Seite befolgt haben, sind Ihre Objekte nicht öffentlich zugänglich.
- CloudFront hat keinen direkten Zugriff auf Ihre S3-Objekte.
- Nutzer erhalten einen
permission denied-Fehler, wenn sie versuchen, direkt oder über CloudFront auf Ihre Objekte zuzugreifen (wenn Ihr Bucket privat ist). - Storage Transfer Service signiert Anfragen an CloudFront mit den Anmeldedaten, die Sie im Übertragungsjob angegeben haben. So können wir Ihre Objekte sicher herunterladen, als würden wir sie direkt von S3 herunterladen. Das funktioniert aufgrund der Einstellung für die Header-Weiterleitung
AllViewerExceptHostHeader.