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.
Behebung
Wichtig: Bevor Sie beginnen, stellen Sie sicher, dass der Amazon-S3-Ursprung Ihrer CloudFront-Distribution als REST-API-Endpunkt konfiguriert ist, z. B. AWSDOC-EXAMPLE-BUCKET.s3.amazonaws.com. Diese Lösung gilt nicht für S3-Ursprünge, die als Website-Endpunkt konfiguriert sind, z. B. 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): Erstellen einer CloudFront-OAC
Gehen Sie wie folgt vor, um eine CloudFront-Ursprungszugriffskontrolle (OAC) zu 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 Ursprungszugriffskontrolleinstellungen (empfohlen) aus.
- Wählen Sie für Ursprungszugriffskontrolle eine vorhandene OAC oder die Einstellung Kontrolle erstellen aus.
- Benennen Sie im Dialogfeld Ihre Kontrolleinstellung. Es ist eine bewährte Methode, die Standardeinstellung Anfragen signieren (empfohlen) beizubehalten.
- Wählen Sie Erstellen.
- Wählen Sie für S3-Bucket-Zugriff die Option Richtlinie kopieren und dann Speichern aus, um die Bucket-Richtlinie auf den S3-Bucket anzuwenden.
- Wählen Sie Zu S3-Bucket-Berechtigungen wechseln aus, um zur S3-Bucket-Konsole zu gelangen.
- Klicken Sie auf Änderungen speichern.
- Wählen Sie in der Amazon-S3-Konsole aus Ihrer Bucketliste den Bucket aus, welcher 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 dem 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" } } } }
Damit die CloudFront OAC Objekte aus Ihrem Bucket lesen kann, müssen Sie die obige Anweisung hinzufügen.
Hinweis: Nachdem Sie den Zugriff auf Ihren Bucket eingeschränkt haben, können Sie für eine weitere Sicherheitsebene AWS WAF integrieren.
Option 2: Erstellen einer älteren CloudFront-OAI
Gehen Sie wie folgt vor, um eine ältere CloudFront-Ursprungszugriffsidentität (OAI) zu 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 Ursprungszugriffsidentität den Namen der Usprungszugriffsidentität aus. Wählen Sie dann Neue OAI erstellen aus.
- Benennen Sie im Dialogfeld Ihre neue Ursprungszugriffsidentität und wählen Sie Erstellen aus.
- Wählen Sie für Bucket-Richtlinie Ja, Bucket-Richtlinie aktualisieren aus.
- Klicken Sie auf Änderungen speichern.
- Wählen Sie in der Amazon-S3-Konsole aus Ihrer Bucketliste den Bucket aus, welcher 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 dem 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. Ändern Sie diese Anweisungen für Ihren Anwendungsfall.
Ähnliche Informationen
Ähnliche Videos
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 3 Monaten
- AWS OFFICIALAktualisiert vor 2 Jahren