Richtlinien und Berechtigungen in Amazon S3 - Amazon Simple Storage Service

Richtlinien und Berechtigungen in Amazon S3

Diese Seite bietet eine Übersicht über Bucket- und Benutzerrichtlinien in Amazon S3 und beschreibt die Basiselemente einer AWS Identity and Access Management (IAM)-Richtlinie. Jedes aufgelistete Element verweist auf weitere Details zu diesem Element und auf Beispiele für die Verwendung dieses Elements.

Eine vollständige Liste der Amazon S3-Aktionen, -Ressourcen und -Bedingungen finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für Amazon S3 in der Service-Authorization-Referenz.

Weitere Informationen zu den Berechtigungen für S3-API-Operationen nach S3-Ressourcentypen finden Sie unter Erforderliche Berechtigungen für Amazon-S3-API-Operationen.

In ihrer einfachsten Form enthält eine Richtlinie die folgenden Elemente:

  • Resource – Der Amazon-S3-Bucket, das Objekt, der Zugangspunkt oder der Auftrag, für den die Richtlinie gilt. Verwenden Sie den Amazon-Ressourcennamen (ARN) des Buckets, Objekts, Zugangspunkts oder Auftrags, um die Ressource zu identifizieren.

    Ein Beispiel für Operationen auf Bucket-Ebene:

    "Resource": "arn:aws:s3:::bucket_name"

    Beispiele für Operationen auf Objektebene:

    • "Resource": "arn:aws:s3:::bucket_name/*" für all Objekte im Bucket.

    • "Resource": "arn:aws:s3:::bucket_name/prefix/*" für Objekte unter einem bestimmten Präfix im Bucket.

    Weitere Informationen finden Sie unter Richtlinienressourcen für Amazon S3.

  • Actions – Für jede Ressource unterstützt Amazon S3 eine Reihe von Operationen. Sie identifizieren RessourcenVorgänge, die Sie zulassen (oder ablehnen) können, indem Sie Aktionsschlüsselwörter verwenden.

    Beispielsweise ermöglicht die Berechtigung s3:ListBucket dem Benutzer die Verwendung der Amazon-S3-Operation ListObjectsV2. (Bei der s3:ListBucket-Berechtigung handelt es sich um einen Fall, in dem der Aktionsname nicht direkt dem Namen der Operation zugeordnet ist.) Weitere Informationen zur Verwendung von Amazon-S3-Aktionen finden Sie unter Richtlinienaktionen für Amazon S3. Eine vollständige Liste der Amazon-S3-Aktionen finden Sie unter Aktionen in der API-Referenz zu Amazon Simple Storage Service.

  • Effect – Welche Auswirkung es hat, wenn der Benutzer die spezifische Aktion anfordert – dies kann entweder Allow oder Deny sein.

    Wenn Sie den Zugriff auf eine Ressource nicht ausdrücklich gestatten („Allow“), wird er automatisch verweigert. Sie können den Zugriff auf eine Ressource auch explizit verweigern. So könnten Sie z. B. sicherstellen, dass ein Benutzer nicht auf die Ressource zugreifen kann, auch wenn der Zugriff durch eine andere Richtlinie gestattet wird. Weitere Informationen finden Sie unter IAM-JSON-Richtlinienelemente: Effect im IAM-Benutzerhandbuch.

  • Principal – Das Konto oder der Benutzer, das oder der Zugriff auf die Aktionen und Ressourcen in der Anweisung hat. In einer Bucket-Richtlinie ist der Prinzipal der Benutzer, das Konto, der Service oder eine andere Entität, der/die/das der Empfänger dieser Berechtigung ist. Weitere Informationen finden Sie unter Prinzipale für Bucket-Richtlinien.

  • Condition – Bedingungen für den Zeitpunkt, an dem eine Richtlinie in Kraft ist. Sie können AWS-weite Schlüssel und Amazon-S3-spezifische Schlüssel verwenden, um Bedingungen in einer Amazon-S3-Zugriffsrichtlinie festzulegen. Weitere Informationen finden Sie unter Beispiele für Bucket-Richtlinien mit Bedingungsschlüsseln.

Die folgende Bucket-Beispielrichtlinie zeigt die Elemente Effect, Principal, Action und Resource. Die Richtlinie gewährt Akua, einem Benutzer im Konto 123456789012, die Amazon-S3-Berechtigungen s3:GetObject, s3:GetBucketLocation und s3:ListBucket im amzn-s3-demo-bucket1-Bucket.

{ "Version": "2012-10-17", "Id": "ExamplePolicy01", "Statement": [ { "Sid": "ExampleStatement01", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Akua" }, "Action": [ "s3:GetObject", "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*", "arn:aws:s3:::amzn-s3-demo-bucket1" ] } ] }

Ausführliche Informationen zur Richtliniensprache finden Sie unter Richtlinien und Berechtigungen in IAM und IAM-JSON-Richtlinienreferenz im IAM-Benutzerhandbuch.

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.

Amazon-S3-Bucket- und Objekt-Eigentümerschaft

Buckets und Objekte sind Amazon-S3-Ressourcen. Standardmäßig kann nur der jeweilige Eigentümer auf diese Ressourcen zugreifen. Der Ressourcen-Besitzer bezieht sich auf das AWS-Konto, das die Ressource erstellt. Zum Beispiel:

  • Das AWS-Konto, mit dem Sie Buckets und Objekte erstellen und hochladen, ist Besitzer dieser Ressourcen.

  • Wenn Sie mit den Anmeldeinformationen eines AWS Identity and Access Management (IAM) Benutzers ein Objekt hochladen, ist das AWS-Konto, zu dem der Benutzer oder die Rolle gehört, Besitzer des Objekts.

  • Ein Bucket-Eigentümer kann einem anderen AWS-Konto (oder Benutzern in einem anderen Konto) kontenübergreifende Berechtigungen erteilen, um Objekte hochzuladen. In diesem Fall gehören diese Objekte dem AWS-Konto, das sie hochlädt. Der Bucket-Eigentümer besitzt keine Berechtigungen für die Objekte, die anderen Konten gehören, mit den folgenden Ausnahmen:

    • Der Bucket-Eigentümer zahlt die Rechnungen. Ein Bucket-Eigentümer kann explizit den Zugriff auf Objekte verweigern oder Objekte im Bucket löschen, unabhängig davon, wem sie gehören.

    • Ein Bucket-Eigentümer kann Objekte archivieren oder archivierte Objekte wiederherstellen, unabhängig davon, wem sie gehören. Die Archivierung bezieht sich auf die Speicherklasse, die beim Speichern der Objekte verwendet wurde. Weitere Informationen finden Sie unter Verwalten des Lebenszyklus von Objekten.

Eigentümerschaft und Anforderungsauthentifizierung

Alle Anforderungen nach einem Bucket sind authentifiziert oder nicht authentifiziert. Authentifizierte Anforderungen müssen einen Signaturwert enthalten, der den Absender der Anforderung authentifiziert, und für nicht authentifizierte Anforderungen gilt dies nicht. Weitere Informationen zur Anforderungsauthentifizierung finden Sie unter Senden von Anforderungen in der Amazon-S3-API-Referenz.

Der Eigentümer eines Buckets kann nicht authentifizierte Anforderungen zulassen. So sind beispielsweise nicht authentifizierte PutObject-Anforderungen erlaubt, wenn für einen Bucket eine öffentliche Bucket-Richtlinie gilt oder wenn eine Bucket-ACL WRITE oder FULL_CONTROL Zugriff für die All Users-Gruppe oder für anonyme Benutzer gewährt. Weitere Informationen zu öffentlichen Bucket-Richtlinien und öffentlichen Zugriffskontrolllisten (ACLs) finden Sie unter Die Bedeutung von „öffentlich“.

Alle nicht authentifizierten Anforderungen werden vom anonymen Benutzer erstellt. Dieser Benutzer ist in ACLs durch die spezifische kanonische Benutzer-ID 65a011a29cdf8ec533ec3d1ccaae921c repräsentiert. Wenn ein Objekt mit einer nicht authentifizierten Anforderung zu einem Bucket hochgeladen wird, ist der anonyme Benutzer Eigentümer des Objekts. Die Standard-Objekt-ACL gewährt dem anonymen Benutzer als dem Eigentümer des Objekts FULL_CONTROL. Daher erlaubt Amazon S3, dass nicht authentifizierte Anforderungen das Objekt abrufen oder seine ACL modifizieren.

Um zu verhindern, dass Objekte von dem anonymen Benutzer modifiziert werden, empfehlen wir, keine Bucket-Richtlinien zu implementieren, die anonyme öffentliche Schreibvorgänge für Ihren Bucket erlauben, oder die ACLs verwenden, den dem anonymen Benutzer Schreibzugriff auf Ihren Bucket gewähren. Sie können diese empfohlene Verhaltensweise durch die Verwendung von Amazon S3 Block Public Access erzwingen.

Weitere Informationen zum Blockieren des öffentlichen Zugriffs finden Sie unter Blockieren des öffentlichen Zugriffs auf Ihren Amazon-S3-Speicher. Weitere Informationen über ACLs finden Sie in Zugriffskontrolllisten (ACL) – Übersicht.

Wichtig

Wir raten davon ab, die Root-Anmeldeinformationen Ihres AWS-Konto für authentifizierte Anforderungen zu verwenden. Erstellen Sie stattdessen eine IAM-Rolle, der Sie vollständigen Zugriff gewähren. Wir bezeichnen Benutzer mit dieser Rolle als Administratorbenutzer. Anstelle von Anmeldeinformationen des Root-Benutzers des AWS-Konto können Sie der Administratorrolle zugewiesene Anmeldeinformationen für Aufgaben in AWS verwenden, z. B. um einen Bucket und Benutzer zu erstellen sowie Berechtigungen zu gewähren. Weitere Informationen finden Sie unter AWS-Sicherheitsanmeldeinformationen und Bewährte Methoden für die Gewährleistung der Sicherheit in IAM im IAM-Benutzerhandbuch.