Übersicht über die Verwaltung von Zugriffsberechtigungen - 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.

Übersicht über die Verwaltung von Zugriffsberechtigungen

Beim Erteilen von Berechtigungen in Amazon S3 entscheiden Sie, wer die Berechtigungen erhält, für welche Amazon-S3-Ressourcen die Berechtigungen gelten und welche Aktionen zu diesen Ressourcen gestattet werden sollen. Die folgenden Abschnitte geben einen Überblick über Amazon-S3-Ressourcen und wie Sie die beste Methode zur Kontrolle des Zugriffs auf diese ermitteln können.

Amazon-S3-Ressourcen: Buckets und Objekte

In ist AWS eine Ressource eine Entität, mit der Sie arbeiten können. In Amazon S3 sind Buckets und Objekte die Ressourcen und beiden sind Subressourcen zugeordnet.

Zu den Bucket-Subressourcen gehören unter anderem:

Zu den Objekt-Subressourcen gehören unter anderem:

  • acl – Speichert eine Liste von Zugriffsberechtigungen für das Objekt. Weitere Informationen finden Sie unter Zugriffskontrolllisten (ACL) – Übersicht.

  • restore — unterstützt die temporäre Wiederherstellung eines archivierten Objekts. Weitere Informationen finden Sie unter POST Object restore in der API-Referenz zum Amazon Simple Storage Service.

    Ein Objekt in der Speicherklasse S3 Glacier Flexible Retrieval ist ein archiviertes Objekt. Für den Zugriff auf das Objekt müssen Sie zuerst eine Anforderung zur Wiederherstellung initiieren, die eine Kopie des archivierten Objekts wiederherstellt. Geben Sie in der Anforderung die Anzahl der Tage an, wie lang die wiederhergestellte Kopie existieren soll. Weitere Informationen über das Archivieren von Objekten finden Sie unter Verwalten Ihres Speicher-Lebenszyklus.

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 Ressourceneigentümer bezieht sich auf die AWS-Konto , die die Ressource erstellt. Beispielsweise:

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

  • Wenn Sie ein Objekt mit AWS Identity and Access Management (IAM)-Benutzer- oder -Rollenanmeldeinformationen hochladen, ist das , zu dem der Benutzer oder die Rolle gehört AWS-Konto , Eigentümer des Objekts.

  • Ein Bucket-Eigentümer kann einem anderen AWS-Konto (oder Benutzern in einem anderen Konto) kontoübergreifende Berechtigungen zum Hochladen von Objekten erteilen. In diesem Fall gehören diese Objekte dem , AWS-Konto das Objekte 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 Ihres Speicher-Lebenszyklus.

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 über Anforderungsauthentifizierung finden Sie unter Senden von Anforderungen.

Der Eigentümer eines Buckets kann nicht authentifizierte Anforderungen zulassen. So sind beispielsweise nicht authentifizierte PUT Object-Anforderungen erlaubt, wenn für einen Bucket eine öffentliche Bucket-Richtlinie gilt oder wenn ein Bucket-ACL WRITE- oder FULL_CONTROL-Zugriff für die Gruppe „All Users (Alle Benutzer)“ 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 Bucketrichtlinien 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 empfehlen, die Anmeldeinformationen des AWS-Konto Root-Benutzers nicht 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. Sie können anstelle von AWS-Konto Root-Benutzer-Anmeldeinformationen, die der Administratorrolle zugewiesen sind, Anmeldeinformationen verwenden, um mit zu interagieren AWS und Aufgaben auszuführen, z. B. um einen Bucket zu erstellen, Benutzer zu erstellen und Berechtigungen zu erteilen. Weitere Informationen finden Sie unter Stammbenutzer-Anmeldeinformationen von AWS-Konto und IAM-Benutzer-Anmeldeinformationen in der Allgemeine AWS-Referenz und unter Bewährte Methoden für die Sicherheit in IAM im IAM-Benutzerhandbuch.

Ressourcenvorgänge

Amazon S3 bietet eine Reihe von Vorgängen, um mit den Amazon-S3-Ressourcen zu arbeiten. Eine Liste der verfügbaren Operationen finden Sie unter Von Amazon S3 definierte Aktionen in der Service-Autorisierungs-Referenz.

Verwalten des Zugriffs auf Ressourcen

Die Zugriffsverwaltung bezieht sich darauf, anderen (AWS-Konten und Benutzern) die Berechtigung zum Ausführen der Ressourcenoperationen durch Schreiben einer Zugriffsrichtlinie zu erteilen. Sie können beispielsweise einem Benutzer in einem die PUT Object Berechtigung erteilen, AWS-Konto damit der Benutzer Objekte in Ihren Bucket hochladen kann. Zusätzlich zur Erteilung von Berechtigungen für einzelne Benutzer und Konten können Sie jedem Berechtigungen erteilen (auch als anonymer Zugriff bezeichnet) oder allen authentifizierten Benutzern (Benutzern mit - AWS Anmeldeinformationen). Wenn Sie beispielsweise Ihren Bucket als Website konfigurieren, könnten Sie Objekt öffentlich machen, indem Sie jedem die GET Object-Berechtigung erteilen.

Zugriffsrichtlinienoptionen

Eine Zugriffsrichtlinie beschreibt, wer Zugriff auf welche Objekte hat. Sie können eine Zugriffsrichtlinie einer Ressource (Bucket und Objekt) oder einem Benutzer zuordnen. Dementsprechend können Sie die verfügbaren Amazon-S3-Zugriffsrichtlinien wie folgt kategorisieren:

  • Auf Ressourcen basierende Richtlinien – Bucket-Richtlinien und Zugriffskontrolllisten (ACLs) sind auf Ressourcen basierend, weil Sie sie Ihren Amazon-S3-Ressourcen zuordnen.

    
							Diagramm, das - AWS-Konto Ressourcen darstellt, einschließlich eines S3-Buckets mit einer Bucket-ACL und Bucket-Richtlinie sowie S3-Objekte mit Objekt-ACLs.
    • ACL – Jedem Bucket und Objekt ist eine Zugriffskontrollliste zugeordnet. Eine ACL listet die erteilten Berechtigungen auf, die den Berechtigungsempfänger und die erteilte Berechtigung identifizieren. Sie können ACLs verwenden, um anderen AWS-Konten grundlegende Lese-/Schreibberechtigungen zu erteilen. ACLs verwenden ein für Amazon S3 spezifisches XML-Schema.

      Es folgt ein Beispiel für eine Bucket-ACL. Das Recht der ACL zeigt einen Bucket-Eigentümer, der volle Kontrolle besitzt.

      <?xml version="1.0" encoding="UTF-8"?> <AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Owner> <ID>*** Owner-Canonical-User-ID ***</ID> <DisplayName>owner-display-name</DisplayName> </Owner> <AccessControlList> <Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Canonical User"> <ID>*** Owner-Canonical-User-ID ***</ID> <DisplayName>display-name</DisplayName> </Grantee> <Permission>FULL_CONTROL</Permission> </Grant> </AccessControlList> </AccessControlPolicy>

      Bucket- und Objekt-ACLs verwenden dasselbe XML-Schema.

    • Bucket-Richtlinie – Für Ihren Bucket können Sie eine Bucket-Richtlinie hinzufügen, um anderen AWS-Konten oder IAM-Benutzern Berechtigungen für den Bucket und die darin enthaltenen Objekte zu erteilen. Objektberechtigungen gelten nur für die Objekte, die der Bucket-Eigentümer erstellt. Bucket-Richtlinien ergänzen ACL-basierte Zugriffsrichtlinien, und in vielen Fällen ersetzen sie sie.

      Hier finden Sie ein Beispiel für eine Bucket-Richtlinie. Bucket-Richtlinien (und Benutzerrichtlinien) werden unter Verwendung einer JSON-Datei dargestellt. Die Richtlinie gewährt anonyme Berechtigung zum Lesen aller Objekte in einem Bucket. Die Bucket-Richtlinie enthält eine Anweisung, die die s3:GetObject-Aktion (Leseberechtigung) für Buckets im Bucket examplebucket erlaubt.  Durch die Angabe von principal mit einem Platzhalterzeichen (*) erteilt die Richtlinie anonymen Zugriff und ist mit Vorsicht zu verwenden. Die folgende Bucket-Richtlinie würde beispielsweise Objekte öffentlich zugänglich machen.

      { "Version":"2012-10-17", "Statement": [ { "Sid":"GrantAnonymousReadPermissions", "Effect":"Allow", "Principal": "*", "Action":["s3:GetObject"], "Resource":["arn:aws:s3:::awsexamplebucket1/*"] } ] }
  • Benutzerrichtlinien – Sie können IAM für die Verwaltung des Zugriffs auf Ihre Amazon-S3-Ressourcen verwenden. Sie können IAM-Benutzer, -Gruppen und -Rollen in Ihrem -Konto erstellen und ihnen Zugriffsrichtlinien anfügen, die ihnen Zugriff auf - AWS Ressourcen gewähren, einschließlich Amazon S3.

    
							Diagramm, das den AWS-Konto Administrator und andere Benutzer mit angefügten Benutzerrichtlinien darstellt.

    Weitere Informationen über IAM finden Sie unter AWS Identity and Access Management (IAM).

    Nachstehend finden Sie ein Beispiel für eine Benutzerrichtlinie. In einer IAM-Benutzerrichtlinie können Sie keine anonymen Berechtigungen gewähren, weil die Richtlinie mit einem Benutzer verknüpft ist. Die Beispielrichtlinie gestattet dem entsprechenden Benutzer, dass er sechs verschiedene Amazon-S3-Aktionen für einen Bucket und die darin enthaltenen Objekte ausführt. Sie können diese Richtlinie einem spezifischen IAM-Benutzer, einer Gruppe oder einer Rolle zuordnen.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AssignUserActions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket", "s3:DeleteObject", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1/*", "arn:aws:s3:::awsexamplebucket1" ] }, { "Sid": "ExampleStatement2", "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" } ] }

Wenn Amazon S3 eine Anfrage erhält, muss es alle Zugriffsrichtlinien auswerten, um festzustellen, ob es die Anfrage genehmigen oder verweigern soll. Weitere Informationen dazu, wie Amazon S3 diese Richtlinien auswertet, finden Sie unter Wie Amazon S3 eine Anforderung autorisiert.

IAM Access Analyzer für S3

In der Amazon-S3-Konsole können Sie IAM Access Analyzer für S3 verwenden, um alle Buckets zu überprüfen, die über Bucket-Zugriffssteuerungslisten (ACLs), Bucket-Richtlinien oder Zugriffspunktrichtlinien verfügen, die öffentlichen oder gemeinsamen Zugriff gewähren. IAM Access Analyzer für S3 macht Sie auf Buckets aufmerksam, die so konfiguriert sind, dass jedem im Internet oder anderen , einschließlich AWS-Konten außerhalb Ihrer Organisation AWS-Konten, Zugriff gewährt wird. Für jeden öffentlichen oder freigegebenen Bucket erhalten Sie Ergebnisse, die die Quelle und die Ebene des öffentlichen oder freigegebenen Zugriffs melden.

In IAM Access Analyzer für S3 können Sie den gesamten öffentlichen Zugriff auf einen Bucket mit einem einzigen Klick blockieren. Wir empfehlen Ihnen, den gesamten Zugriff auf Ihre Buckets zu blockieren, es sei denn, Sie benötigen öffentlichen Zugriff, um einen bestimmten Anwendungsfall zu unterstützen. Bevor Sie den gesamten öffentlichen Zugriff blockieren, stellen Sie sicher, dass Ihre Anwendungen ohne öffentlichen Zugriff weiterhin ordnungsgemäß funktionieren. Weitere Informationen finden Sie unter Blockieren des öffentlichen Zugriffs auf Ihren Amazon-S3-Speicher.

Sie können auch einen Drilldown in die Berechtigungseinstellungen auf Bucket-Ebene ausführen, um detaillierte Zugriffsebenen zu konfigurieren. Für bestimmte und geprüfte Anwendungsfälle, die öffentlichen oder freigegebenen Zugriff erfordern, können Sie Ihre Absicht bestätigen und aufzeichnen, dass der Bucket öffentlich oder freigegeben bleibt, indem Sie die Ergebnisse für den Bucket archivieren. Diese Bucket-Konfigurationen sind jederzeit aufrufbar und änderbar. Sie können Ihre Ergebnisse auch als CSV-Bericht zu Auditing-Zwecken herunterladen.

IAM Access Analyzer für S3 ist ohne zusätzliche Kosten in der Amazon-S3-Konsole verfügbar. IAM Access Analyzer für S3 wird von AWS Identity and Access Management (IAM) IAM Access Analyzer unterstützt. Um IAM Access Analyzer für S3 auf der Amazon S3-Konsole zu verwenden, müssen Sie die IAM-Konsole aufrufen und einen Analysator auf Kontoebene in IAM Access Analyzer pro Region erstellen.

Weitere Informationen zu IAM Access Analyzer für S3 finden Sie unter Überprüfen des Bucket-Zugriffs mit IAM Access Analyzer für S3.

Welche Zugriffskontrollmethode sollte ich verwenden?

Angesichts der verschiedenen Optionen zum Schreiben einer Zugriffsrichtlinie ergeben sich die folgenden Fragen:

  • Wann sollte ich welche Zugriffskontrollmethode verwenden? Sollte ich beispielsweise für das Erteilen von Bucket-Berechtigungen eine Bucket-Richtlinie oder eine Bucket-ACL verwenden?

    Ich besitze einen Bucket und die im Bucket enthaltenen Objekte. Sollte ich eine auf Ressourcen basierende Zugriffsrichtlinie oder eine auf IAM-Identitäten Benutzerrichtlinie verwenden?

    Wenn ich eine auf Ressourcen basierende Zugriffsrichtlinie verwende, sollte ich eine Bucket-Richtlinie oder eine Objekt-ACL verwenden, um Objektberechtigungen zu verwalten?

  • Ich besitze einen Bucket, aber nicht alle darin enthaltenen Objekte. Wie werden Zugriffsberechtigungen für die Objekte verwaltet, die jemandem anderen gehören?

  • Wenn ich den Zugriff über eine Kombination aus diesen Zugriffsrichtlinienoptionen erteile, wie kann Amazon S3 feststellen, ob ein Benutzer berechtigt ist, eine angefragte Operation auszuführen?

Die folgenden Abschnitte erklären diese Zugriffskontrollalternativen, wie Amazon S3 einen Zugriffskontrollmechanismus auswertet und wann welche Zugriffskontrollmethode zu verwenden ist. Sie bieten auch Beispiel-Anleitungen.