Richtlinien für Zugriffsrichtlinien - Amazon Simple Storage Service

Richtlinien für Zugriffsrichtlinien

Amazon S3 unterstützt ressourcenbasierte Richtlinien und Benutzerrichtlinien für die Verwaltung des Zugriffs auf Ihre Amazon S3-Ressourcen. Weitere Informationen finden Sie unter Verwalten des Zugriffs auf Ressourcen. Ressourcenbasierte Richtlinien umfassen Bucket-Richtlinien, Bucket-Zugriffskontrolllisten (ACLs) und Objekt-ACLs. Dieser Abschnitt beschreibt spezifische Szenarien für die Verwendung ressourcenbasierter Zugriffsrichtlinien für die Verwaltung des Zugriffs auf Ihre Amazon S3-Ressourcen.

Wann eine ACL-basierte Zugriffsrichtlinie verwendet wird (Bucket- und Objekt-ACLs)

Buckets und Objekten sind ACLs zugeordnet, die Sie verwenden können, um Berechtigungen zu erteilen. Die folgenden Abschnitte beschreiben Szenarien, in denen Objekt-ACLs und Bucket-ACLs verwendet werden.

Wann Objekt-ACLs verwendet werden

Neben einer Objekt-ACL gibt es noch andere Methoden, wie ein Objekt-Besitzer Objekt-Berechtigungen verwalten kann – zum Beispiel:

  • Wenn das AWS-Konto, dem das Objekt gehört, auch Eigentümer des Buckets ist, kann es eine Bucket-Richtlinie schreiben, um die Objekt-Berechtigungen zu verwalten.

  • Wenn das AWS-Konto, das Eigentümer des Objekts ist, einem Benutzer in seinem Konto Berechtigungen erteilen will, kann es eine Benutzerrichtlinie verwenden.

Wann verwenden Sie Objekt-ACLs zur Verwaltung von Objektberechtigungen? Im Folgenden sind die Szenarien aufgeführt, in denen Sie dies tun würden.

Objekte sind nicht im Besitz des Bucket-Eigentümers

Eine Objekt-ACL ist die einzige Möglichkeit, den Zugriff auf Objekte zu verwalten, die nicht dem Bucket-Eigentümer gehören. Ein AWS-Konto, dem ein Bucket gehört, kann einem anderen AWS-Konto die Berechtigung erteilen, Objekte hochzuladen. Dem Bucket-Eigentümer gehören diese Objekte nicht. Das AWS-Konto, das das Objekt erstellt hat, muss Berechtigungen unter Verwendung der Objekt-ACLs erteilen.

Anmerkung

Ein Bucket-Eigentümer kann keine Berechtigungen für Objekte erteilen, die ihm nicht gehören. Beispielsweise gilt eine Bucket-Richtlinie, die Objektberechtigungen erteilt, nur für Objekte, die dem Bucket-Eigentümer gehören. Ein Bucket-Eigentümer, der die Rechnung zahlt, kann jedoch eine Bucket-Richtlinie schreiben, die den Zugriff auf Objekte im Bucket verweigern, unabhängig davon, wem dieser gehört. Der Bucket-Eigentümer kann auch beliebige Objekte im Bucket löschen

Sie müssen Berechtigungen auf Objektebene verwalten

Angenommen, die Berechtigungen variieren je nach Objekt und Sie müssen Berechtigungen auf Objektebene verwalten. Sie können eine einzelne Richtlinienanweisung schreiben, die einem AWS-Konto Leseberechtigung für Millionen von Objekten mit einem bestimmten Schlüsselnamenpräfix erteilt. Beispielsweise könnten Sie Leseberechtigung für Objekte erteilen, die mit dem Schlüsselnamepräfix "logs" beginnen. Wenn Ihre Zugriffsberechtigungen jedoch zwischen den Objekten variieren, ist die Erteilung von Berechtigungen für einzelne Objekte unter Verwendung einer Bucket-Richtlinie möglicherweise nicht praktisch. Außerdem sind Bucket-Richtlinien auf eine Größe von 20 KB beschränkt.

In diesem Fall ist die Verwendung von Objekt-ACLs möglicherweise eine geeignetere Alternative. Das gilt auch, obwohl eine Objekt-ACL ebenfalls auf maximal 100 Rechte beschränkt ist. Weitere Informationen finden Sie unter Zugriffskontrolllisten (ACL) – Übersicht.

Objekt-ACLs steuern nur Berechtigungen auf Objektebene

Es gibt eine Bucket-Richtlinie für den gesamten Bucket, aber Objekt-ACLs werden pro Objekt eingerichtet.

Ein AWS-Konto, dem ein Bucket gehört, kann einem anderen AWS-Konto die Berechtigung erteilen, die Zugriffsrichtlinie zu verwalten. Es gestattet diesem Konto, die Richtlinie beliebig zu verändern. Um die Berechtigungen besser verwalten zu können, sollten Sie keine so allgemeine Berechtigung erteilen, sondern besser nur READ-ACP - und WRITE-ACP-Berechtigungen für Untermengen von Objekten. Damit kann das Konto nur für bestimmte Objekte Berechtigungen verwalten, indem es die ACLs einzelner Objekte aktualisiert.

Verwendung einer Bucket-ACL

Der einzige empfohlene Anwendungsfall für die Bucket-ACL ist, der Amazon S3 Log Delivery-Gruppe Schreibberechtigung zu erteilen, damit sie Zugriffsprotokollobjekte in Ihren Bucket schreiben kann. Weitere Informationen finden Sie unter Protokollieren von Anfragen mit Server-Zugriffsprotokollierung.

Wenn Amazon S3 Zugriffsprotokolle in Ihren Bucket schreiben soll, müssen Sie der Log Delivery-Gruppe Schreibberechtigung für den Bucket erteilen. Die einzige Möglichkeit, wie Sie der Log Delivery-Gruppe die erforderlichen Berechtigungen erteilen können, ist eine Bucket-ACL, wie im folgenden Auszug aus einer Bucket-ACL gezeigt.

<?xml version="1.0" encoding="UTF-8"?> <AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Owner> ... </Owner> <AccessControlList> <Grant> ... </Grant> <Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group"> <URI>http://acs.amazonaws.com/groups/s3/LogDelivery</URI> </Grantee> <Permission>WRITE</Permission> </Grant> </AccessControlList> </AccessControlPolicy>

Verwendung einer Bucket-Richtlinie

Wenn ein AWS-Konto, dem ein Bucket gehört, Benutzern Berechtigungen in seinem Konto erteilen will, kann es eine Bucket-Richtlinie oder eine Benutzerrichtlinie verwenden. In den folgenden Szenarien müssen Sie eine Bucket-Richtlinie verwenden.

Sie möchten kontoübergreifende Berechtigungen für alle Amazon S3-Berechtigungen verwalten

Sie können ACLs verwenden, um anderen Konten kontoübergreifende Berechtigungen zu gewähren. ACLs unterstützen jedoch nur einen endlichen Satz von Berechtigungen, die nicht alle Amazon S3-Berechtigungen enthalten. Weitere Informationen finden Sie unter Welche Berechtigungen kann ich erteilen? Beispielsweise können Sie mit einer ACL keine Berechtigungen für Bucket-Subressourcen erteilen. Weitere Informationen finden Sie unter Identity and Access Management in Amazon S3.

Sowohl Bucket- als auch Benutzerrichtlinien unterstützen die Erteilung der Berechtigung für alle Amazon S3-Vorgänge. (Weitere Informationen finden Sie unter Amazon S3-Aktionen.) Die Benutzerrichtlinien dienen jedoch der Verwaltung von Berechtigungen für Benutzer in Ihrem Konto. Für kontenübergreifende Berechtigungen für andere AWS-Konten oder Benutzer in einem anderen Konto müssen Sie eine Bucket-Richtlinie verwenden.

Verwendung einer Benutzerrichtlinie

Im Allgemeinen können Sie eine Benutzerrichtlinie oder eine Bucket-Richtlinie verwenden, um Berechtigungen zu verwalten. Sie können Berechtigungen verwalten, indem Sie Benutzer erstellen und Berechtigungen einzeln verwalten, indem Sie Richtlinien an Benutzer (oder Benutzergruppen) anhängen. Oder Sie stellen möglicherweise fest, dass ressourcenbasierte Richtlinien, z. B. eine Bucket-Richtlinie, besser für Ihr Szenario funktionieren.

Mit AWS Identity and Access Management (IAM) können Sie mehrere Benutzer innerhalb Ihres AWS-Kontos erstellen und ihre Berechtigungen über Benutzerrichtlinien verwalten. Ein IAM-Benutzer muss Berechtigungen von dem übergeordneten AWS-Konto erhalten, zu dem er gehört, und von dem AWS-Konto, dem die Ressource gehört, auf die der Benutzer Zugriff erhalten will. Die Berechtigungen können folgt erteilt werden:

  • Berechtigung vom übergeordneten Konto – Das übergeordnete Konto kann seinem Benutzer Berechtigungen erteilen, indem es ihm eine Benutzerrichtlinie zuordnet.

  • Berechtigung vom Ressourceneigentümer – Der Ressourceneigentümer kann dem IAM-Benutzer (unter Verwendung einer Bucket-Richtlinie) oder dem übergeordneten Konto (unter Verwendung einer Bucket-Richtlinie, Bucket-ACL oder Objekt-ACL) Berechtigungen erteilen.

Das ist vergleichbar mit einem Kind, das mit einem Spielzeug spielen möchte, das jemand anderem gehört. Das Kind muss die Berechtigung von einem Elternteil erhalten, um mit dem Spielzeug zu spielen, als auch eine Berechtigung vom Eigentümer des Spielzeugs.

Bucket-Richtlinien und Benutzerrichtlinien

Berechtigungsdelegation

Wenn einem AWS-Konto eine Ressource gehört, kann es diese Berechtigungen einem anderen AWS-Konto erteilen. Dieses Konto kann diese Berechtigungen oder eine Untermenge davon an Benutzer in dem Konto delegieren. Dies wird auch als Berechtigungsdelegation bezeichnet. Ein Konto, das Berechtigungen von einem anderen Konto erhält, kann die Berechtigungen nicht kontenübergreifend an ein anderes AWS-Konto delegieren.

Wir empfehlen Ihnen, zunächst alle einführenden Themen zu lesen, die erklären, wie Sie den Zugriff auf Ihre Amazon S3-Ressourcen verwalten, sowie alle zugehörigen Anleitungen. Weitere Informationen finden Sie unter Identity and Access Management in Amazon S3. Die folgenden Themen enthalten weitere Informationen über spezifische Zugriffsrichtlinienoptionen.