Beschränken Sie den Zugriff auf einen Amazon Simple Storage Service-Ursprung - Amazon CloudFront

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Beschränken Sie den Zugriff auf einen Amazon Simple Storage Service-Ursprung

CloudFront bietet zwei Möglichkeiten, authentifizierte Anfragen an einen Amazon S3 S3-Ursprung zu senden: Origin Access Control (OAC) und Origin Access Identity (OAI). OAC hilft Ihnen, Ihre Ursprünge zu sichern, z. B. für Amazon S3. Wir empfehlen die Verwendung von OAC, da auf diese Weise Folgendes unterstützt wird:

  • Alle Amazon S3 S3-Buckets insgesamt AWS-Regionen, einschließlich der Opt-in-Regionen, die nach Dezember 2022 eingeführt wurden

  • Serverseitige Verschlüsselung mit AWS KMS (SSE-KMS) von Amazon S3

  • Dynamische Anforderungen (PUT und DELETE) an Amazon S3

OAI (Ursprungszugriffsidentität) funktioniert in den oben aufgeführten Szenarien nicht oder erfordert in diesen Szenarien zusätzliche Problemumgehungen. In den folgenden Verfahren wird die Verwendung von OAC (Ursprungszugriffskontrolle) mit einem Amazon-S3-Ursprung beschrieben. Informationen zur Migration von OAI (Ursprungszugriffsidentität) zu OAC (Ursprungszugriffskontrolle) finden Sie unter Migration von der Ursprungszugriffsidentität (OAI) zur Ursprungszugriffssteuerung (OAC).

Hinweise
  • Wenn Sie CloudFront OAC mit Amazon S3-Bucket-Ursprüngen verwenden, müssen Sie Amazon S3 Object Ownership auf Bucket owner enforced setzen, die Standardeinstellung für neue Amazon S3 S3-Buckets. Wenn Sie ACLs benötigen, verwenden Sie die bevorzugte Einstellung des Bucket-Besitzers, um die Kontrolle über Objekte zu behalten, die über hochgeladen werden. CloudFront

  • Wenn Ihr Ursprung ein Amazon S3 S3-Bucket ist, der als Website-Endpunkt konfiguriert ist, müssen Sie ihn CloudFront als benutzerdefinierten Ursprung einrichten. Das bedeutet, dass Sie OAC (oder OAI) nicht verwenden können. OAC unterstützt keine Origin-Umleitung mithilfe von Lambda @Edge.

Topics

Erstellen Sie eine neue Origin-Zugriffskontrolle

Führen Sie die in den folgenden Themen beschriebenen Schritte aus, um eine neue Origin-Zugriffskontrolle in einzurichten CloudFront.

Voraussetzungen

Bevor Sie Origin Access Control (OAC) erstellen und einrichten, benötigen Sie eine CloudFront Distribution mit einem Amazon S3 S3-Bucket-Ursprung. Dieser Ursprung muss ein regulärer S3-Bucket sein, kein Bucket, der als Website-Endpunkt konfiguriert wurde. Weitere Informationen zum Einrichten einer CloudFront Distribution mit einem S3-Bucket-Ursprung finden Sie unterBeginnen Sie mit einer CloudFront Basisdistribution.

Anmerkung

Wenn Sie OAC verwenden, um Ihren S3-Bucket-Ursprung zu sichern, erfolgt die Kommunikation zwischen Amazon S3 CloudFront und Amazon S3 immer über HTTPS, unabhängig von Ihren spezifischen Einstellungen.

Erteilen Sie dem Absender die Zugriffsberechtigung für den Zugriff auf den S3-Bucket

Bevor Sie eine Origin-Zugriffskontrolle (OAC) erstellen oder sie in einer CloudFront Distribution einrichten, stellen Sie sicher, dass das OAC über die Berechtigung verfügt, auf den S3-Bucket-Ursprung zuzugreifen. Tun Sie dies, nachdem Sie eine CloudFront Distribution erstellt haben, aber bevor Sie das OAC zum S3-Ursprung in der Distributionskonfiguration hinzufügen.

Um dem OAC die Erlaubnis für den Zugriff auf den S3-Bucket zu erteilen, verwenden Sie eine S3-Bucket-Richtlinie, um dem CloudFront Service Principal (cloudfront.amazonaws.com) den Zugriff auf den Bucket zu ermöglichen. Verwenden Sie ein Condition Element in der Richtlinie, um nur dann Zugriff auf den Bucket CloudFront zu gewähren, wenn die Anfrage im Namen der CloudFront Distribution erfolgt, die den S3-Ursprung enthält.

Informationen zum Hinzufügen oder Ändern einer Bucket-Richtlinie finden Sie unter Hinzufügen einer Bucket-Richtlinie mit der Amazon-S3-Konsole im Amazon-S3-Benutzerhandbuch.

Im Folgenden finden Sie Beispiele für S3-Bucket-Richtlinien, die es einem CloudFront OAC ermöglichen, auf einen S3-Ursprung zuzugreifen.

Beispiel S3-Bucket-Richtlinie, die den schreibgeschützten Zugriff auf ein OAC ermöglicht CloudFront
{ "Version": "2012-10-17", "Statement": { "Sid": "AllowCloudFrontServicePrincipalReadOnly", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::<S3 bucket name>/*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/<CloudFront distribution ID>" } } } }
Beispiel S3-Bucket-Richtlinie, die Lese- und Schreibzugriff auf ein OAC ermöglicht CloudFront
{ "Version": "2012-10-17", "Statement": { "Sid": "AllowCloudFrontServicePrincipalReadWrite", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::<S3 bucket name>/*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/<CloudFront distribution ID>" } } } }

SSE-KMS

Wenn die Objekte im S3-Bucket-Ursprung mit serverseitiger Verschlüsselung mit AWS Key Management Service (SSE-KMS) verschlüsselt sind, müssen Sie sicherstellen, dass das OAC über die Berechtigung zur Verwendung des Schlüssels verfügt. AWS KMS Um der OAC die Berechtigung zur Verwendung des KMS-Schlüssels zu erteilen, fügen Sie der KMS-Schlüsselrichtlinie eine Anweisung hinzu. Weitere Informationen zum Ändern einer Schlüsselrichtlinie finden Sie unter Ändern einer Schlüsselrichtlinie im AWS Key Management Service -Entwicklerhandbuch.

Das folgende Beispiel zeigt eine KMS-Schlüsselrichtlinienanweisung, die es der OAC ermöglicht, den KMS-Schlüssel zu verwenden.

Beispiel KMS-Schlüsselrichtlinienerklärung, die es einem CloudFront OAC ermöglicht, auf einen KMS-Schlüssel für SSE-KMS zuzugreifen
{ "Sid": "AllowCloudFrontServicePrincipalSSE-KMS", "Effect": "Allow", "Principal": { "Service": [ "cloudfront.amazonaws.com" ] }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/<CloudFront distribution ID>" } } }

Erstellen Sie die Origin-Zugriffskontrolle

Um eine Origin-Zugriffskontrolle (OAC) zu erstellen, können Sie die AWS Management Console, AWS CloudFormation AWS CLI, oder die CloudFront API verwenden.

Console
So erstellen Sie eine Ursprungszugriffssteuerung
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die CloudFront Konsole unterhttps://console.aws.amazon.com/cloudfront/v4/home.

  2. Wählen Sie im Navigationsbereich Origin access (Ursprungszugriff) aus.

  3. Wählen Sie Create control setting (Kontrolleinstellung erstellen) aus.

  4. Gehen Sie im Formular Create control setting (Kontrolleinstellung erstellen) wie folgt vor:

    1. Geben Sie im Bereich Details einen Namen (Name) und (optional) eine Beschreibung (Description) für die Ursprungszugriffssteuerung ein.

    2. Es empfiehlt sich, im Bereich Settings (Einstellungen) die Standardeinstellung (Sign requests (recommended)) (Anforderungen signieren (empfohlen)) zu belassen. Weitere Informationen finden Sie unter Erweiterte Einstellungen für die Ursprungszugriffssteuerung.

  5. Wählen Sie „S3“ aus der Dropdown-Liste Origin type (Ursprungstyp) aus.

  6. Wählen Sie Erstellen.

    Nachdem die OAC erstellt wurde, notieren Sie sich den Namen. Sie benötigen diesen im folgenden Verfahren.

So fügen Sie eine Ursprungszugriffssteuerung einem S3-Ursprung in einer Verteilung hinzu
  1. Öffnen Sie die CloudFront Konsole unterhttps://console.aws.amazon.com/cloudfront/v4/home.

  2. Wählen Sie eine Verteilung mit einem S3-Ursprung aus, der Sie die OAC hinzufügen möchten, und wählen Sie dann den Tab Origins (Ursprünge) aus.

  3. Wählen Sie den S3-Ursprung aus, dem Sie die OAC hinzufügen möchten, und wählen Sie dann Edit (Bearbeiten) aus.

  4. Wähle für Origin-Zugriff die Einstellungen für die Origin-Zugriffskontrolle (empfohlen).

  5. Wählen Sie im Dropdown-Menü Origin access control (Ursprungszugriffssteuerung) die OAC aus, die Sie verwenden möchten.

  6. Wählen Sie Änderungen speichern aus.

Die Distribution beginnt mit der Bereitstellung an allen CloudFront Edge-Standorten. Wenn ein Edge-Standort die neue Konfiguration erhält, signiert er alle Anforderungen, die er an den S3-Bucket-Ursprung sendet.

CloudFormation

Verwenden Sie den AWS::CloudFront::OriginAccessControl Ressourcentyp AWS CloudFormation, um eine Origin Access Control (OAC) mit zu erstellen. Das folgende Beispiel zeigt die AWS CloudFormation Vorlagensyntax im YAML-Format für die Erstellung einer Origin-Zugriffskontrolle.

Type: AWS::CloudFront::OriginAccessControl Properties: OriginAccessControlConfig: Description: An optional description for the origin access control Name: ExampleOAC OriginAccessControlOriginType: s3 SigningBehavior: always SigningProtocol: sigv4

Weitere Informationen finden Sie im AWS CloudFormation Benutzerhandbuch unter AWS::CloudFront::OriginAccessSteuerung.

CLI

Verwenden Sie den aws cloudfront create-origin-access-control Befehl, um eine Origin-Zugriffskontrolle mit dem AWS Command Line Interface (AWS CLI) zu erstellen. Sie können eine Eingabedatei verwenden, um die Eingabeparameter für den Befehl bereitzustellen, anstatt jeden einzelnen Parameter als Befehlszeileneingabe anzugeben.

So erstellen Sie eine Ursprungszugriffssteuerung (CLI mit Eingabedatei)
  1. Verwenden Sie den folgenden Befehl zum Erstellen einer Datei mit dem Namen origin-access-control.yaml. Diese Datei enthält alle Eingabeparameter für den Befehl create-origin-access-control.

    aws cloudfront create-origin-access-control --generate-cli-skeleton yaml-input > origin-access-control.yaml
  2. Öffnen Sie die Datei origin-access-control.yaml, die Sie gerade erstellt haben. Bearbeiten Sie die Datei, um einen Namen für die OAC und eine Beschreibung (optional) hinzuzufügen, und ändern Sie SigningBehavior zu always. Speichern Sie dann die Datei.

    Weitere Informationen zu anderen OAC-Einstellungen finden Sie unter Erweiterte Einstellungen für die Ursprungszugriffssteuerung.

  3. Verwenden Sie den folgenden Befehl, um die Ursprungszugriffssteuerung mit Eingabeparametern aus der Datei origin-access-control.yaml zu erstellen.

    aws cloudfront create-origin-access-control --cli-input-yaml file://origin-access-control.yaml

    Notieren Sie den Id-Wert in der Befehlsausgabe. Sie benötigen ihn, um das OAC zu einem S3-Bucket-Ursprung in einer CloudFront Distribution hinzuzufügen.

So fügen Sie eine OAC einem S3-Bucket-Ursprung in einer vorhandenen Verteilung an (CLI mit Eingabedatei)
  1. Verwenden Sie den folgenden Befehl, um die Verteilungskonfiguration für die CloudFront Distribution zu speichern, zu der Sie das OAC hinzufügen möchten. Die Verteilung muss über einen S3-Bucket-Ursprung verfügen.

    aws cloudfront get-distribution-config --id <CloudFront distribution ID> --output yaml > dist-config.yaml
  2. Öffnen Sie die Datei mit dem Namen dist-config.yaml, die Sie gerade erstellt haben. Bearbeiten Sie die Datei und nehmen Sie die folgenden Änderungen vor:

    • Fügen Sie im Objekt Origins die ID der OAC dem Feld namens OriginAccessControlId hinzu.

    • Entfernen Sie den Wert aus dem Feld namens OriginAccessIdentity, sofern vorhanden.

    • Benennen Sie das Feld ETag in IfMatch um, ändern Sie jedoch nicht den Wert des Feldes.

    Speichern Sie die Datei, wenn Sie fertig sind.

  3. Verwenden Sie den folgenden Befehl, um die Verteilung zu aktualisieren und die Ursprungszugriffssteuerung zu verwenden.

    aws cloudfront update-distribution --id <CloudFront distribution ID> --cli-input-yaml file://dist-config.yaml

Die Verteilung beginnt mit der Bereitstellung an allen CloudFront Edge-Standorten. Wenn ein Edge-Standort die neue Konfiguration erhält, signiert er alle Anforderungen, die er an den S3-Bucket-Ursprung sendet.

API

Um eine Origin-Zugriffskontrolle mit der CloudFront API zu erstellen, verwenden Sie CreateOriginAccessControl. Weitere Informationen zu den Feldern, die Sie in diesem API-Aufruf angeben, finden Sie in der API-Referenzdokumentation für Ihr AWS SDK oder einen anderen API-Client.

Nachdem Sie eine Ursprungszugriffssteuerung erstellt haben, können Sie diese mit einem der folgenden API-Aufrufe an einen S3-Bucket-Ursprung in einer Verteilung anfügen:

Geben Sie für beide API-Aufrufe die ID der Ursprungszugriffssteuerung im Feld OriginAccessControlId innerhalb eines Ursprungs an. Weitere Informationen zu den anderen Feldern, die Sie in diesen API-Aufrufen angeben, finden Sie unter Referenz zu Verteilungseinstellungen und in der API-Referenzdokumentation für Ihr AWS SDK oder einen anderen API-Client.

Löschen Sie eine Distribution, bei der ein OAC an einen S3-Bucket angehängt ist

Wenn Sie eine Distribution löschen müssen, deren OAC an einen S3-Bucket angehängt ist, sollten Sie die Distribution löschen, bevor Sie den S3-Bucket-Ursprung löschen. Sie können auch die Region in den Namen der Ursprungs-Domain aufnehmen. Wenn dies nicht möglich ist, können Sie das OAC aus der Distribution entfernen, indem Sie vor dem Löschen auf „Öffentlich“ wechseln. Weitere Informationen finden Sie unter Löschen einer -Verteilung.

Migration von der Ursprungszugriffsidentität (OAI) zur Ursprungszugriffssteuerung (OAC)

Um von einer Legacy-Ursprungszugriffsidentität (OAI) zu einer Ursprungszugriffssteuerung (Origin Access Control, OAC) zu migrieren, aktualisieren Sie zunächst den S3-Bucket-Ursprung, damit sowohl die OAI als auch die OAC auf den Inhalt des Buckets zugreifen können. Dadurch wird sichergestellt, dass während des Übergangs CloudFront nie der Zugriff auf den Bucket verloren geht. Um sowohl OAI als auch OAC den Zugriff auf einen S3-Bucket zu ermöglichen, aktualisieren Sie die Bucket-Richtlinie und nehmen Sie zwei Anweisungen auf, eine für jede Art von Prinzipal.

Die folgende Beispiel-S3-Bucket-Richtlinie ermöglicht sowohl einer OAI als auch einer OAC den Zugriff auf einen S3-Ursprung.

Beispiel S3-Bucket-Richtlinie, die schreibgeschützten Zugriff für eine OAI und eine OAC zulässt
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontServicePrincipalReadOnly", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::<S3 bucket name>/*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/<CloudFront distribution ID>" } } }, { "Sid": "AllowLegacyOAIReadOnly", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity <origin access identity ID>" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::<S3 bucket name>/*" } ] }

Nachdem Sie die Bucket-Richtlinie des S3-Ursprungs aktualisiert haben, um den Zugriff sowohl für OAI als auch für OAC zu ermöglichen, können Sie die Verteilungskonfiguration so aktualisieren, dass OAC anstelle von OAI verwendet wird. Weitere Informationen finden Sie unter Erstellen Sie eine neue Origin-Zugriffskontrolle.

Nachdem die Verteilung vollständig bereitgestellt wurde, können Sie die Anweisung in der Bucket-Richtlinie, die den Zugriff für die OAI ermöglicht, entfernen. Weitere Informationen finden Sie unter Erteilen Sie dem Absender die Zugriffsberechtigung für den Zugriff auf den S3-Bucket.

Erweiterte Einstellungen für die Ursprungszugriffssteuerung

Die CloudFront Origin-Zugriffskontrollfunktion umfasst erweiterte Einstellungen, die nur für bestimmte Anwendungsfälle vorgesehen sind. Verwenden Sie die empfohlenen Einstellungen, sofern Sie die erweiterten Einstellungen nicht speziell benötigen.

Die Origin-Zugriffskontrolle enthält eine Einstellung namens Signaturverhalten (in der Konsole) oder SigningBehavior (in der API, CLI und AWS CloudFormation). Diese Einstellung bietet die folgenden Optionen:

Ursprungsanforderungen immer signieren (empfohlene Einstellung)

Wir empfehlen die Verwendung dieser Einstellung mit der Bezeichnung Sign requests (recommended) (Anforderungen signieren (empfohlen)) in der Konsole bzw. always in der API, CLI und AWS CloudFormation. Mit dieser Einstellung signiert es CloudFront immer alle Anfragen, die es an den S3-Bucket-Ursprung sendet.

Ursprungsanforderungen nie signieren

Diese Einstellung heißt Do not sign requests (Anforderungen nicht signieren) in der Konsole bzw. never in der API, CLI und AWS CloudFormation. Verwenden Sie diese Einstellung, um die Ursprungszugriffssteuerung für alle Ursprünge in allen Verteilungen zu deaktivieren, die diese Ursprungszugriffssteuerung verwenden. Auf diese Weise lässt sich im Vergleich zum einzelnen Entfernen einer Ursprungszugriffssteuerung aus allen Ursprüngen und Verteilungen, die diese verwenden, Zeit und Aufwand sparen. Mit dieser Einstellung signiert es CloudFront keine Anfragen, die es an den S3-Bucket-Ursprung sendet.

Warnung

Um diese Einstellung verwenden zu können, muss der S3-Bucket-Ursprung öffentlich zugänglich sein. Wenn Sie diese Einstellung mit einem S3-Bucket-Ursprung verwenden, der nicht öffentlich zugänglich ist, CloudFront können Sie nicht auf den Ursprung zugreifen. Der S3-Bucket-Ursprung gibt Fehler zurück CloudFront und CloudFront leitet diese Fehler an die Zuschauer weiter.

Viewer (Client)-Authorization-Header nicht überschreiben

Diese Einstellung heißt Do not override authorization header (Autorisierungsheader nicht überschreiben) in der Konsole bzw. no-override in der API, CLI und AWS CloudFormation. Verwenden Sie diese Einstellung, wenn Sie ursprüngliche Anfragen nur signieren CloudFront möchten, wenn die entsprechende Viewer-Anfrage keinen Authorization Header enthält. Mit dieser Einstellung wird der Authorization Header der Viewer-Anfrage weitergegeben, CloudFront wenn eine vorhanden ist, signiert aber die ursprüngliche Anfrage (fügt einen eigenen Authorization Header hinzu), wenn die Viewer-Anfrage keinen Authorization Header enthält.

Warnung

Um den Authorization-Header aus der Viewer-Anforderung zu übergeben, müssen Sie den Authorization-Header zu einer Cache-Richtlinie für alle Cache-Verhaltensweisen hinzufügen, die S3-Bucket-Ursprünge verwenden, die dieser Ursprungszugriffssteuerung zugeordnet sind.

Verwenden Sie eine ursprüngliche Zugriffsidentität (veraltet, nicht empfohlen)

CloudFront Origin Access Identity (OAI) bietet ähnliche Funktionen wie Origin Access Control (OAC), funktioniert aber nicht für alle Szenarien. Aus diesem Grund empfehlen wir stattdessen die Verwendung von OAC. Insbesondere unterstützt OAI Folgendes nicht:

  • Amazon S3 S3-Buckets in allen Regionen AWS-Regionen, einschließlich optionaler Regionen

  • Serverseitige Verschlüsselung mit AWS KMS (SSE-KMS) von Amazon S3

  • Dynamische Anforderungen (PUT, POST oder DELETE) an Amazon S3

  • Nach Dezember 2022 neu AWS-Regionen auf den Markt gebracht

Informationen zur Migration von OAI zu OAC finden Sie unter Migration von der Ursprungszugriffsidentität (OAI) zur Ursprungszugriffssteuerung (OAC).

Wenn Sie mit der CloudFront Konsole eine OAI erstellen oder einer Distribution hinzufügen, können Sie die Amazon S3 S3-Bucket-Richtlinie automatisch aktualisieren, um der OAI Zugriff auf Ihren Bucket zu gewähren. Alternativ können Sie die Bucket-Richtlinie manuell erstellen oder aktualisieren. Unabhängig davon, welche Methode Sie verwenden, sollten Sie die Berechtigungen dennoch überprüfen, um Folgendes sicherzustellen:

  • Ihre CloudFront OAI kann im Namen von Zuschauern, die sie anfordern, auf Dateien im Bucket zugreifen. CloudFront

  • Zuschauer können Amazon S3 S3-URLs nicht verwenden, um auf Ihre Dateien außerhalb von zuzugreifen CloudFront.

Wichtig

Wenn Sie so konfigurieren CloudFront , dass alle CloudFront unterstützten HTTP-Methoden akzeptiert und weitergeleitet werden, stellen Sie sicher, dass Sie Ihrer CloudFront OAI die gewünschten Berechtigungen erteilen. Wenn Sie beispielsweise so konfigurieren CloudFront , dass Anfragen, die diese DELETE Methode verwenden, angenommen und weitergeleitet werden, konfigurieren Sie Ihre Bucket-Richtlinie so, dass DELETE Anfragen entsprechend behandelt werden, sodass Zuschauer nur Dateien löschen können, die Sie möchten.

Verwenden Sie Amazon S3 S3-Bucket-Richtlinien

Sie können einer CloudFront OAI Zugriff auf Dateien in einem Amazon S3 S3-Bucket gewähren, indem Sie die Bucket-Richtlinie auf folgende Weise erstellen oder aktualisieren:

  • Verwenden des Tabs Permissions (Berechtigungen) des Amazon-S3-Buckets in der Amazon-S3-Konsole.

  • Verwendung PutBucketPolicyin der Amazon S3 S3-API.

  • Verwenden der CloudFront-Konsole Wenn Sie Ihren Origin-Einstellungen in der CloudFront Konsole eine OAI hinzufügen, können Sie Ja, die Bucket-Richtlinie aktualisieren wählen, CloudFront um mitzuteilen, dass die Bucket-Richtlinie in Ihrem Namen aktualisiert werden soll.

Wenn Sie die Bucket-Richtlinie manuell aktualisieren, stellen Sie Folgendes sicher:

  • Geben Sie die korrekte OAI als das Principal in der Richtlinie an.

  • Erteilen Sie der OAI die Berechtigungen, die es für den Zugriff auf Objekte im Auftrag von Viewern benötigt.

Weitere Informationen finden Sie in den folgenden Abschnitten.

Eine OAI als den Principal in einer Bucket-Richtlinie angeben

Um eine OAI als Principal in einer Amazon-S3-Bucket-Richtlinie anzugeben, verwenden Sie den Amazon-Ressourcennamen (ARN) der OAI, der die ID der OAI enthält. Beispielsweise:

"Principal": { "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity <origin access identity ID>" }

Finde die OAI-ID in der CloudFront Konsole unter Sicherheit, Origin-Zugriff, Identitäten (veraltet). Alternativ können Sie sie ListCloudFrontOriginAccessIdentitiesin der CloudFront API verwenden.

Erteilen von Berechtigungen für eine OAI

Um der OAI die Berechtigungen für den Zugriff auf Objekte in Ihrem Amazon-S3-Bucket zu erteilen, verwenden Sie Aktionen in der Richtlinie, die sich auf bestimmte Amazon-S3-API-Operationen beziehen. Die s3:GetObject-Aktion ermöglicht es der OAI beispielsweise, Objekte im Bucket zu lesen. Weitere Informationen finden Sie in den Beispielen im folgenden Abschnitt oder unter Amazon S3-Aktionen im Benutzerhandbuch zu Amazon Simple Storage Service.

Beispiele für Amazon-S3-Bucket-Richtlinien

Die folgenden Beispiele zeigen Amazon S3 S3-Bucket-Richtlinien, die es CloudFront OAI ermöglichen, auf einen S3-Bucket zuzugreifen.

Suchen Sie die OAI-ID in der CloudFront Konsole unter Sicherheit, Origin-Zugriff, Identitäten (veraltet). Alternativ können Sie sie ListCloudFrontOriginAccessIdentitiesin der CloudFront API verwenden.

Beispiel Amazon-S3-Bucket-Richtlinie, die der OAI Lesezugriff gewährt

Im folgenden Beispiel kann die OAI Objekte im angegebenen Bucket (s3:GetObject) lesen.

{ "Version": "2012-10-17", "Id": "PolicyForCloudFrontPrivateContent", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity <origin access identity ID>" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::<S3 bucket name>/*" } ] }
Beispiel Amazon-S3-Bucket-Richtlinie, die der OAI Lese- und Schreibzugriff gewährt

Im folgenden Beispiel kann die OAI Objekte im angegebenen Bucket (s3:GetObject und s3:PutObject) lesen und schreiben. Auf diese Weise können Zuschauer Dateien in Ihren Amazon S3 S3-Bucket hochladen CloudFront.

{ "Version": "2012-10-17", "Id": "PolicyForCloudFrontPrivateContent", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity <origin access identity ID>" }, "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::<S3 bucket name>/*" } ] }

Verwenden Sie Amazon S3 S3-Objekt-ACLs (nicht empfohlen)

Wichtig

Es wird empfohlen, Amazon-S3-Bucket-Richtlinien zu verwenden, um einer OAI Zugriff auf einen S3-Bucket zu gewähren. Sie können Access Control Lists (ACLs, Zugriffssteuerungslisten) wie in diesem Abschnitt beschrieben verwenden, dies wird jedoch nicht empfohlen.

Amazon S3 empfiehlt die Einstellung von S3 Object Ownership (S3-Objekteigentümerschaft) auf bucket owner enforced (Bucket-Eigentümer erzwungen), was bedeutet, dass ACLs für den Bucket und die darin enthaltenen Objekte deaktiviert sind. Wenn Sie diese Einstellung für Objekteigentümerschaft anwenden, müssen Sie Bucket-Richtlinien verwenden, um Zugriff auf die OAI zu gewähren (siehe vorheriger Abschnitt).

Der folgende Abschnitt gilt nur für Anwendungsfälle für Legacy-Systeme, für die ACLs erforderlich sind.

Sie können einer CloudFront OAI Zugriff auf Dateien in einem Amazon S3 S3-Bucket gewähren, indem Sie die ACL der Datei auf folgende Weise erstellen oder aktualisieren:

  • Verwenden des Tabs Permissions (Berechtigungen) des Amazon-S3-Objekts in der Amazon-S3-Konsole.

  • Verwendung PutObjectAclin der Amazon S3 S3-API.

Wenn Sie einer OAI über eine ACL Zugriff gewähren, müssen Sie die OAI mit seiner kanonischen Amazon-S3-Benutzer-ID angeben. In der CloudFront Konsole finden Sie diese ID unter Sicherheit, Origin-Zugriff, Identitäten (veraltet). Wenn Sie die CloudFront API verwenden, verwenden Sie den Wert des S3CanonicalUserId Elements, das bei der Erstellung der OAI zurückgegeben wurde, oder rufen Sie die CloudFront API ListCloudFrontOriginAccessIdentitiesauf.

In neueren Amazon-S3-Regionen ist es erforderlich, Signature Version 4 für authentifizierte Anforderungen zu verwenden. (Informationen zu den Signaturversionen, die in jeder Amazon-S3-Region unterstützt werden, finden Sie unter Amazon-Simple-Storage-Service-Endpunkte und -Kontingente in der Allgemeine AWS-Referenz.) Wenn Sie eine Ursprungszugriffsidentität verwenden und sich Ihr Bucket in einer der Regionen befindet, die Signature Version 4 erfordert, beachten Sie Folgendes:

  • DELETE-, GET-, HEAD-, OPTIONS- und PATCH-Anfragen werden ohne Einschränkungen unterstützt.

  • POST-Anfragen werden nicht unterstützt.