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
Um den Zugriff auf einen S3-Bucket einzuschränken, erstelle eine Ursprungszugriffskontrolle (OAC) oder eine Legacy-Ursprungszugriffsidentität (OAI). Es hat sich bewährt, ein OAC anstelle des alten OAI zu erstellen.
Wichtig: Bevor du beginnst, stelle sicher, dass du den Amazon S3-Ursprung der CloudFront-Distribution als REST-API-Endpunkt konfiguriert hast, z. B. AWSDOC-EXAMPLE-BUCKET.s3.amazonaws.com. Diese Lösung gilt nicht für Amazon S3-Ursprünge, die du als Website-Endpunkt konfiguriert hast, wie z. B. AWSDOC-EXAMPLE-BUCKET.s3-website-us-east-1.amazonaws.com. Weitere Informationen findest du unter Wie verwende ich CloudFront, um eine statische Website bereitzustellen, die auf Amazon S3 gehostet wird?
Erstellen einer CloudFront-OAC
Führe die folgenden Schritte aus:
- Öffne die CloudFront-Konsole.
- Wähle im Navigationsbereich Distributions und wähle dann die Distribution, die Inhalte aus dem S3-Bucket bereitstellt, auf die du den Zugriff einschränken möchtest.
- Wähle die Registerkarte Ursprünge aus.
- Wähle den Amazon S3-Ursprung aus und wähle anschließend Bearbeiten.
- Wähle für Ursprungszugriff Ursprungszugriffskontrolleinstellungen (empfohlen) aus.
- Wähle für Ursprungszugriffskontrolle ein vorhandenes OAC aus. Wähle dann Neue OAC erstellen.
- Gib im Dialogfeld einen Namen für die Steuerungseinstellung ein. Es hat sich bewährt, die Standardeinstellung Anfragen signieren (empfohlen) beizubehalten.
- Wähle Erstellen.
- Wähle für den S3-Bucket-Zugriff Richtlinie kopieren
- Wähle Änderungen speichern.
- Öffne die Amazon S3-Konsole.
- Wähle im Navigationsbereich Allzweck-Buckets und wähle dann den Bucket aus, der der Ursprung der CloudFront-Distribution ist.
- Wähle die Registerkarte Berechtigungen.
- Vergewissere dich, dass du unter Bucket-Richtlinie eine Aussage siehst, die dem folgenden Beispiel ä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" } } } }
Hinweis: Ersetze DOC-EXAMPLE-BUCKET durch den Bucket-Namen und arn:aws:cloudfront::111122223333:distribution/edfdvbd6EXAMPLE durch den Amazon-Ressourcennamen (ARN) der CloudFront-Distribution. Damit die CloudFront OAC Objekte aus dem Bucket lesen kann, musst du die obige Anweisung zu der Bucket-Richtlinie hinzufügen. Nachdem du den Zugriff auf den Bucket eingeschränkt hast, kannst du für eine weitere Sicherheitsebene AWS WAF integrieren.
Erstellen einer älteren CloudFront-OAI
Führe die folgenden Schritte aus:
- Öffne die CloudFront-Konsole.
- Wähle im Navigationsbereich Distributions und wähle dann die Distribution, die Inhalte aus dem S3-Bucket bereitstellt, auf die du den Zugriff einschränken möchtest.
- Wähle die Registerkarte Ursprünge aus.
- Wähle den Amazon S3-Ursprung aus und wähle anschließend Bearbeiten.
- Wähle für Ursprungszugriff Legacy-Zugriffsidentitäten.
- Wähle in der Drop-down-Liste Ursprungszugriffsidentität den OAI-Namen aus. Wähle dann Neue OAI erstellen.
- Gib im Dialogfeld einen Namen für die neue OAI ein und wähle dann Erstellen.
- Wähle für Bucket-Richtlinie Ja, Bucket-Richtlinie aktualisieren aus.
- Wähle Änderungen speichern.
- Öffne die Amazon S3-Konsole.
- Wähle im Navigationsbereich „Allzweck-Buckets“ und wähle dann den Bucket aus, der der Ursprung der CloudFront-Distribution ist.
- Wähle die Registerkarte Berechtigungen.
- Vergewissere dich, dass du unter Bucket-Richtlinie eine Aussage siehst, die dem folgenden Beispiel ä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: Ersetze arn:aws:iam: :cloudfront:user/CloudFront Origin Access Identity EAF5XXXXXXXXX durch den CloudFront-Distributions-ARN und AWS****DOC-EXAMPLE-BUCKET durch den Bucket-Namen. Überprüfe die Bucket-Richtlinie auf Aussagen mit "Effect": "Deny", die den Zugriff auf den Bucket von der CloudFront-OAI aus blockieren. Ändere die Aktion in Gewähren, damit die CloudFront-OAI auf Objekte im Bucket zugreifen kann. Überprüfe die Bucket-Richtlinie auch auf Aussagen mit **"Effect": **"Allow", die den Zugriff auf den Bucket von einer beliebigen Quelle aus ermöglichen, die nicht die CloudFront-OAI ist. Ändere diese Anweisungen für den Anwendungsfall.
Ähnliche Informationen
- Sprache
- Deutsch
Ähnliche Videos

