Wie Amazon S3 eine Anforderung für eine Objekt-Operation autorisiert - Amazon Simple Storage Service

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.

Wie Amazon S3 eine Anforderung für eine Objekt-Operation autorisiert

Wenn Amazon S3 eine Anforderung für eine Bucket-Operation erhält, wandelt es alle relevanten Berechtigungen – ressourcenbasierte Berechtigungen (Objekt-Access-Control-List (ACL), Bucket-Richtlinie, Bucket-ACL) und IAM-Benutzerrichtlinien – in eine Reihe von Richtlinien um, die zur Laufzeit ausgewertet werden sollen. Anschließend wertet es in mehreren Schritten die resultierende Richtlinienmenge aus. Es wertet in jedem Schritt eine Untermenge der Richtlinien in drei spezifischen Kontexten aus – Benutzerkontext, Bucket-Kontext und Objektkontext.

  1. Benutzerkontext – Wenn der Anforderer ein IAM-Prinzipal ist, muss der Prinzipal über die Berechtigung von dem übergeordneten verfügen, AWS-Konto zu dem er gehört. In diesem Schritt wertet Amazon S3 eine Untermenge der Richtlinien aus, die dem übergeordneten Konto gehören (auch als Kontextautorität bezeichnet). Diese Richtlinienuntermenge beinhaltet die Benutzerrichtlinie, die das übergeordnete Konto dem Prinzipal zuordnet. Wenn dem übergeordneten Konto auch die Ressource in der Anforderung gehört (Bucket, Objekt), wertet Amazon S3 gleichzeitig die entsprechenden Ressourcenrichtlinien aus (Bucket-Richtlinie, Bucket-ACL und Objekt-ACL).

    Anmerkung

    Wenn das übergeordnete AWS-Konto Eigentümer der Ressource (Bucket oder Objekt) ist, kann es seinem IAM-Prinzipal mithilfe der Benutzerrichtlinie oder der Ressourcenrichtlinie Ressourcenberechtigungen erteilen.

  2. Bucket-Kontext – In diesem Kontext wertet Amazon S3 Richtlinien aus, die dem AWS-Konto gehören, dem der Bucket gehört.

    Wenn das AWS-Konto , dem das Objekt in der Anforderung gehört, nicht mit dem Bucket-Eigentümer übereinstimmt, überprüft Amazon S3 im Bucket-Kontext die Richtlinien, ob der Bucket-Eigentümer den Zugriff auf das Objekt explizit verweigert hat. Wurde eine explizite Zugriffsverweigerung für das Objekt festgelegt, autorisiert Amazon S3 die Anforderung nicht.

  3. Objekt-Kontext – Der Anforderer muss die Berechtigung vom Objekt-Eigentümer besitzen, eine spezifische Objekt-Operation auszuführen. In diesem Schritt wertet Amazon S3 die Objekt-ACL aus.

    Anmerkung

    Ist der Bucket-Eigentümer gleich dem Objekt-Eigentümer ist, kann der Zugriff auf das Objekt in der Bucket-Richtlinie erteilt werden, die im Bucket-Kontext ausgewertet wird. Unterscheiden sich die Eigentümer, müssen die Objekt-Eigentümer eine Objekt-ACL verwenden, um die Berechtigungen zu erteilen. Wenn das AWS-Konto , dem das Objekt gehört, auch das übergeordnete Konto ist, zu dem der IAM-Prinzipal gehört, kann er Objektberechtigungen in einer Benutzerrichtlinie konfigurieren, die im Benutzerkontext ausgewertet wird. Weitere Informationen über die Verwendung dieser Alternativen zu Zugriffsrichtlinien finden Sie unter Richtlinien für Zugriffsrichtlinien.

    Wenn Sie als Bucket-Eigentümer alle Objekte in Ihrem Bucket besitzen und Bucket-Richtlinien oder IAM-basierte Richtlinien verwenden möchten, um den Zugriff auf diese Objekte zu verwalten, können Sie die erzwungene Einstellung des Bucket-Eigentümers für Object Ownership anwenden. Mit dieser Einstellung besitzen Sie als Bucket-Eigentümer automatisch die volle Kontrolle über jedes Objekt in Ihrem Bucket. Bucket- und Objekt-ACLs können nicht bearbeitet werden und werden nicht mehr für den Zugriff berücksichtigt. Weitere Informationen finden Sie unter Weitere Informationen finden Sie unter Steuern des Eigentums an Objekten und Deaktivieren von ACLs für Ihren Bucket..

Nachfolgend sehen Sie eine grafische Darstellung der kontextbasierten Auswertung für eine Objekt-Operation.

Beispiel 1: Anforderung einer Objekt-Operation

In diesem Beispiel sendet die IAM-Benutzerin Jill, deren übergeordnetes Element 1111-1111-1111 AWS-Konto ist, eine Anforderung für eine Objektoperation (z. B. Get object) für ein Objekt, das AWS-Konto 3333-3333-3333 gehört, in einem Bucket, das AWS-Konto 2222-2222-2222 gehört.

Jill benötigt die Berechtigung von der übergeordneten AWS-Konto, dem Bucket-Eigentümer und dem Objekteigentümer. Amazon S3 wertet den Kontext wie folgt aus:

  1. Da die Anforderung von einem IAM-Prinzipal stammt, wertet Amazon S3 den Benutzerkontext aus, um zu überprüfen, ob das übergeordnete AWS-Konto 1111-1111-1111 Jill die Berechtigung zum Ausführen der angeforderten Operation erteilt hat. Wenn sie die Berechtigung besitzt, wertet Amazon S3 den Bucket-Kontext aus. Andernfalls lehnt Amazon S3 die Anforderung ab.

  2. Im Bucket-Kontext ist der Bucket-Eigentümer, das AWS-Konto 2222-2222-2222, die Kontextautorität. Amazon S3 wertet die Bucket-Richtlinie aus, um festzustellen, ob der Bucket-Eigentümer Jill explizit die Berechtigung entzogen hat, auf das Objekt zuzugreifen.

  3. Im Objektkontext ist die Kontextautorität das AWS-Konto 3333-3333-3333, der Objekteigentümer. Amazon S3 wertet die Objekt-ACL aus, um festzustellen, ob Jill die Berechtigung besitzt, auf das Objekt zuzugreifen. Ist dies der Fall, autorisiert Amazon S3 die Anfrage.