Wie verwende ich meine CloudFront-Distribution, um den Zugriff auf einen Amazon S3-Bucket einzuschränken?
Ich möchte den Zugriff auf meinen Amazon Simple Storage Service (Amazon S3)-Bucket einschränken, sodass Benutzer nur über meine Amazon CloudFront-Distribution auf Objekte zugreifen.
Lösung
Wichtig: Bevor Sie beginnen, stellen Sie sicher, dass der Amazon S3-Ursprung Ihrer CloudFront-Distribution als REST-API-Endpunkt konfiguriert ist. Zum Beispiel AWSDOC-EXAMPLE-BUCKET.s3.amazonaws.com. Diese Lösung gilt nicht für S3-Ursprünge, die als Websiten-Endpunkt konfiguriert sind. Zum Beispiel AWSDOC-EXAMPLE-BUCKET.s3-website-us-east-1.amazonaws.com. Weitere Informationen finden Sie unter Wie verwende ich CloudFront, um eine statische Website bereitzustellen, die auf Amazon S3 gehostet wird?
Option 1 (Bewährtes Verfahren): Eine CloudFront Origin Access Control (OAC) erstellen
- Öffnen Sie die CloudFront-Konsole.
- Wählen Sie aus der Liste der Distributionen die Distribution aus, die Inhalte aus dem S3-Bucket bereitstellt, auf den Sie den Zugriff einschränken möchten.
- Wählen Sie die Registerkarte Ursprünge aus.
- Wählen Sie den S3-Ursprung und anschließend Bearbeiten aus.
- Wählen Sie für Ursprungszugriff die Ursprungs-Zugriffskontrolleinstellungen (empfohlen) aus.
- Wählen Sie für Ursprungs-Zugriffskontrolle eine vorhandene OAC oder die Einstellung Kontrolle erstellen aus.
- Benennen Sie im Dialogfeld Ihre Kontrolleinstellung. Es hat sich bewährt, die Standardeinstellung Anfragen signieren (empfohlen) beizubehalten. Wählen Sie dann Erstellen aus.
- Wenden Sie für S3-Bucket-Zugriff die Bucket-Richtlinie auf den S3-Bucket an. Wählen Sie Richtlinie kopieren und dann Speichern aus.
- Wählen Sie Zu S3-Bucket-Berechtigungen wechseln aus, um zur S3-Bucket-Konsole zu gelangen.
- Wählen Sie Änderungen speichern aus.
- Wählen Sie in der Amazon S3-Konsole aus Ihrer Bucketliste den Bucket aus, der der Ursprung der CloudFront-Distribution ist.
- Wählen Sie die Registerkarte Berechtigungen aus.
- Vergewissern Sie sich, dass Sie unter Bucket-Richtlinie eine Aussage sehen, die der folgenden ähnelt:
{ "Version": "2012-10-17", "Statement": { "Sid": "AllowCloudFrontServicePrincipalReadOnly", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/EDFDVBD6EXAMPLE" } } } }
Sie müssen die obige Anweisung hinzufügen, damit die CloudFront OAC Objekte aus Ihrem Bucket lesen kann.
Hinweis: Nachdem Sie den Zugriff auf Ihren Bucket mithilfe der CloudFront-OAC eingeschränkt haben, haben Sie die Möglichkeit, durch die Integration von AWS WAF eine weitere Sicherheitsebene hinzuzufügen.
Option 2: Eine Legacy-CloudFront-Ursprungszugriffsidentität (OAI) erstellen
- Öffnen Sie die CloudFront-Konsole.
- Wählen Sie aus der Liste der Distributionen die Distribution aus, die Inhalte aus dem S3-Bucket bereitstellt, auf den Sie den Zugriff einschränken möchten.
- Wählen Sie die Registerkarte Ursprünge aus.
- Wählen Sie den S3-Ursprung und anschließend Bearbeiten aus.
- Wählen Sie für Ursprungszugriff Legacy-Zugriffsidentitäten aus.
- Wählen Sie in der Dropdownliste Ursprungs-Zugriffsidentität den Namen der Ursprungs-Zugriffsidentität oder Neue OAI erstellen aus.
- Benennen Sie im Dialogfeld Ihre neue Ursprungs-Zugriffsidentität und wählen Sie Erstellen aus.
- Wählen Sie für Bucket-Richtlinie Ja, Bucket-Richtlinie aktualisieren aus.
- Wählen Sie Änderungen speichern aus.
- Wählen Sie in der Amazon S3-Konsole aus Ihrer Bucketliste den Bucket aus, der der Ursprung der CloudFront-Distribution ist.
- Wählen Sie die Registerkarte Berechtigungen aus.
- Vergewissern Sie sich, dass Sie unter Bucket-Richtlinie eine Aussage sehen, die der folgenden ähnelt:
{{ "Sid": "1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity EAF5XXXXXXXXX" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET/*" }
Hinweis: Überprüfen Sie Ihre Bucket-Richtlinie auf alle Aussagen mit „Effekt“: „Verweigern“, die den Zugriff auf den Bucket von der CloudFront-OAI aus verhindern. Ändern Sie diese Anweisungen, sodass die CloudFront-OAI auf Objekte im Bucket zugreifen kann.
Überprüfen Sie außerdem Ihre Bucket-Richtlinie auf alle Aussagen mit „Effekt“: „Erlauben“, die den Zugriff auf den Bucket von jeder Quelle aus ermöglichen, bei der es sich nicht um die CloudFront-OAI handelt. Passen Sie diese Anweisungen Ihrem Anwendungsfall entsprechend an.
Ähnliche Informationen
Ähnliche Videos
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren