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

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-Zugriffskontrollliste (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 die Berechtigung von dem übergeordneten AWS-Konto erhalten, 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 unter Verwendung 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 gleich dem Bucket-Eigentümer ist, überprüft Amazon S3 im Bucket-Kontext die Richtlinien daraufhin, ob der Bucket-Eigentümer für das Objekt eine explizite Zugriffsverweigerung festgelegt 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 des IAM-Prinzipals ist, kann es Objekt-Berechtigungen 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.

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

Beispiel 1: Anforderung einer Objekt-Operation

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

Jill benötigt die Berechtigung vom ü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, überprüft Amazon S3 den Benutzerkontext daraufhin, ob das übergeordnete AWS-Konto 1111-1111-1111 Jill zum Ausführen der angeforderten Operation berechtigt 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.