Durch die Nutzung von AWS re:Post stimmt du den AWS re:Post Nutzungsbedingungen

Wie verwende ich meine CloudFront-Distribution, um den Zugriff auf einen Amazon-S3-Bucket einzuschränken?

Lesedauer: 4 Minute
0

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:

  1. Öffnen Sie die CloudFront-Konsole.
  2. 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.
  3. Wählen Sie die Registerkarte Ursprünge aus.
  4. Wählen Sie den S3-Ursprung und anschließend Bearbeiten aus.
  5. Wählen Sie für Ursprungszugriff Ursprungszugriffskontrolleinstellungen (empfohlen) aus.
  6. Wählen Sie für Ursprungszugriffskontrolle eine vorhandene OAC oder die Einstellung Kontrolle erstellen aus.
  7. Benennen Sie im Dialogfeld Ihre Kontrolleinstellung. Es ist eine bewährte Methode, die Standardeinstellung Anfragen signieren (empfohlen) beizubehalten. 
  8. Wählen Sie Erstellen.
  9. 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.
  10. Wählen Sie Zu S3-Bucket-Berechtigungen wechseln aus, um zur S3-Bucket-Konsole zu gelangen.
  11. Klicken Sie auf Änderungen speichern.
  12. Wählen Sie in der Amazon-S3-Konsole aus Ihrer Bucketliste den Bucket aus, welcher der Ursprung der CloudFront-Distribution ist.
  13. Wählen Sie die Registerkarte Berechtigungen aus.
  14. 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:

  1. Öffnen Sie die CloudFront-Konsole.
  2. 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.
  3. Wählen Sie die Registerkarte Ursprünge aus.
  4. Wählen Sie den S3-Ursprung und anschließend Bearbeiten aus.
  5. Wählen Sie für Ursprungszugriff Legacy-Zugriffsidentitäten aus.
  6. Wählen Sie in der Dropdownliste Ursprungszugriffsidentität den Namen der Usprungszugriffsidentität aus. Wählen Sie dann Neue OAI erstellen aus.
  7. Benennen Sie im Dialogfeld Ihre neue Ursprungszugriffsidentität und wählen Sie Erstellen aus.
  8. Wählen Sie für Bucket-Richtlinie Ja, Bucket-Richtlinie aktualisieren aus.
  9. Klicken Sie auf Änderungen speichern.
  10. Wählen Sie in der Amazon-S3-Konsole aus Ihrer Bucketliste den Bucket aus, welcher der Ursprung der CloudFront-Distribution ist.
  11. Wählen Sie die Registerkarte Berechtigungen aus.
  12. 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

Eine Distribution erstellen

Identitäts- und Zugriffsmanagement in Amazon S3

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 9 Monaten