Zugriffskontrolle in Amazon S3
In AWS ist eine Ressource eine Entität, mit der Sie arbeiten können. In Amazon Simple Storage Service (S3) sind Buckets und Objekte die ursprünglichen Amazon-S3-Ressourcen. Jeder S3-Kunde hat wahrscheinlich Buckets mit Objekten darin. Als S3 um neue Features erweitert wurde, kamen auch zusätzliche Ressourcen hinzu, aber nicht jeder Kunde nutzt diese funktionsspezifischen Ressourcen. Weitere Informationen zu Amazon-S3-Ressourcen finden Sie unter S3-Ressourcen.
Standardmäßig werden alle Amazon S3-Ressourcen als privat eingestuft. Standardmäßig können der Root-Benutzer des Kontos, das die Ressource erstellt hat (Ressourcenbesitzer), und IAM-Benutzer innerhalb dieses Kontos mit den erforderlichen Berechtigungen auf eine von ihnen erstellte Ressource zugreifen. Der Ressourceneigentümer entscheidet, wer sonst noch auf die Ressource zugreifen kann und welche Aktionen andere an der Ressource ausführen dürfen. S3 verfügt über verschiedene Tools zur Zugriffsverwaltung, mit denen Sie anderen Zugriff auf Ihre S3-Ressourcen gewähren können.
Die folgenden Abschnitte bieten Ihnen einen Überblick über S3-Ressourcen, die verfügbaren S3-Zugriffsverwaltungstools und die besten Anwendungsfälle für die einzelnen Zugriffsverwaltungstools. Die Listen in diesen Abschnitten sollen umfassend sein und alle S3-Ressourcen, Zugriffsverwaltungstools und allgemeine Anwendungsfälle für die Zugriffsverwaltung enthalten. Gleichzeitig sind diese Abschnitte als Verzeichnisse konzipiert, die Sie zu den gewünschten technischen Details führen. Wenn Sie sich mit einigen der folgenden Themen gut auskennen, können Sie zu dem Abschnitt springen, der für Sie relevant ist.
Weitere Informationen zu den Berechtigungen für S3-API-Operationen nach S3-Ressourcentypen finden Sie unter Erforderliche Berechtigungen für Amazon-S3-API-Operationen.
Themen
S3-Ressourcen
Die ursprünglichen Amazon-S3-Ressourcen sind Buckets und die darin enthaltenen Objekte. Wenn neue Funktionen zu S3 hinzugefügt werden, kommen auch neue Ressourcen hinzu. Nachfolgend sehen Sie eine vollständige Liste der S3-Ressourcen und ihrer jeweiligen Funktionen.
Ressourcentyp | Feature von Amazon S3 | Beschreibung |
---|---|---|
|
Kern-Features |
Ein Bucket ist ein Container für Objekte. Um ein Objekt in Amazon S3 zu speichern, erstellen Sie einen Bucket und laden Sie ein oder mehrere Objekte dann in den Bucket hoch. Weitere Informationen finden Sie unter Erstellen, Konfigurieren und Arbeiten mit Amazon S3-Buckets. |
|
Ein Objekt kann eine Datei und alle Metadaten sein, die diese Datei beschreiben. Wenn sich ein Objekt im Bucket befindet, können Sie es öffnen, herunterladen und verschieben. Weitere Informationen finden Sie unter Arbeiten mit Objekten in Amazon S3. |
|
|
Zugriffspunkte |
Zugangspunkte sind benannte Netzwerkendpunkte, die mit Buckets verbunden sind und mit denen Sie Amazon-S3-Objektoperationen wie |
|
|
Ein Object Lambda Access Point ist ein Zugangspunkt für einen Bucket, der auch mit einer Lambda-Funktion verknüpft ist. Mit Object Lambda Access Point können Sie |
|
|
Multi-Region Access Points stellen einen globalen Endpunkt bereit, mit dem Anwendungen Anforderungen von Amazon-S3-Buckets in mehreren AWS-Regionen ausführen können. Sie können Multi-Region Access Points verwenden, um Multi-Region-Anwendungen mit derselben Architektur zu erstellen, die in einer einzelnen Region verwendet wird, und diese Anwendungen dann überall auf der Welt ausführen. Anstatt Anforderungen über das überlastete öffentliche Internet zu senden, werden Anforderungen von Anwendungen, die an einen globalen Endpunkt eines Multi-Region Access Point gestellt werden, automatisch über das globale AWS-Netzwerk zum nächstgelegenen Amazon-S3-Bucket geleitet. Weitere Informationen finden Sie unter Verwalten von Multi-Region-Traffic mit Multi-Region Access Points. |
|
S3 Batch Operations |
Eine Aufgabe ist eine Ressource des S3-Batch-Operations-Features. Sie können S3 Batch Operations verwenden, um Batch-Vorgänge in großem Umfang für Listen von Amazon-S3-Objekten durchzuführen, die Sie angeben. Amazon S3 verfolgt den Fortschritt der Batch-Vorgangsaufgabe, sendet Benachrichtigungen und speichert einen detaillierten Abschlussbericht über alle Aktionen, wodurch Ihnen eine vollständig verwaltete und überprüfbare Serverless-Erfahrung geboten wird. Weitere Informationen finden Sie unter Ausführen von Objektoperationen in großem Umfang mit Batch Operations. |
|
S3 Storage Lens |
Eine S3-Storage-Lens-Konfiguration erfasst organisationsweite Speichermetriken und Benutzerdaten über Konten hinweg. S3 Storage Lens bietet Administratoren eine zentrale und detaillierte Ansicht der Objektspeichernutzung und der Aktivitäten von Hunderten oder sogar Tausenden von Konten in einem Unternehmen, um Erkenntnisse auf mehreren Aggregationsebenen zu gewinnen. Weitere Informationen finden Sie unter Bewerten Ihrer Speicheraktivität und -nutzung mit Amazon S3 Storage Lens. |
|
Eine S3-Storage-Lens-Gruppe aggregiert Metriken mithilfe benutzerdefinierter Filter auf der Grundlage von Objektmetadaten. Mit Storage-Lens-Gruppen können Sie Details zu den Eigenschaften Ihrer Daten anzeigen, etwa die Objektverteilung nach Alter, die gängigsten Dateitypen usw. Weitere Informationen finden Sie unter Arbeiten mit S3-Storage-Lens-Gruppen zum Filtern und Aggregieren von Metriken. |
|
|
S3 Access Grants |
Eine S3-Access-Grants-Instance ist ein Container für die von Ihnen erstellten S3-Gewährungen. Mit S3 Access Grants können Sie Berechtigungen für Ihre Amazon-S3-Daten für IAM-Identitäten in Ihrem Konto, IAM-Identitäten in anderen Konten (kontoübergreifend) und Verzeichnisidentitäten, die aus Ihrem Unternehmensverzeichnis zu AWS IAM Identity Center hinzugefügt wurden, erstellen. Weitere Informationen zu S3 Access Grants finden Sie unter Verwalten des Zugriffs mit S3-Zugriffsberechtigungen. |
|
Ein Access Grants Location ist ein Bucket, ein Präfix innerhalb eines Buckets oder ein Objekt, das Sie in Ihrer S3-Access-Grants-Instance registrieren. Sie müssen Standorte innerhalb der S3-Access-Grants-Instance registrieren, bevor Sie eine Berechtigung für diesen Standort erstellen können. Mit S3 Access Grants können Sie dann Zugriff auf den Bucket, das Präfix oder das Objekt für IAM-Identitäten innerhalb Ihres Kontos, IAM-Identitäten in anderen Konten (kontenübergreifend) und Verzeichnisidentitäten gewähren, die zu AWS IAM Identity Center aus Ihrem Unternehmensverzeichnis hinzugefügt wurden. Weitere Informationen zu S3 Access Grants finden Sie unter Verwalten des Zugriffs mit S3-Zugriffsberechtigungen. |
|
|
Ein Access Grant ist eine individuelle Gewährung für Ihre Amazon-S3-Daten. Mit S3 Access Grants können Sie Berechtigungen für Ihre Amazon-S3-Daten für IAM-Identitäten in Ihrem Konto, IAM-Identitäten in anderen Konten (kontoübergreifend) und Verzeichnisidentitäten, die aus Ihrem Unternehmensverzeichnis zu AWS IAM Identity Center hinzugefügt wurden, erstellen. Weitere Informationen zu S3 Access Grants finden Sie unter Verwalten des Zugriffs mit S3-Zugriffsberechtigungen. |
Buckets
Es gibt zwei Arten von Amazon-S3-Buckets: Allzweck-Buckets und Verzeichnis-Buckets.
-
Allzweck-Buckets sind der ursprüngliche S3-Bucket-Typ und werden für die meisten Anwendungsfälle und Zugriffsmuster empfohlen. Allzweck-Buckets ermöglichen auch Objekte, die in allen Speicherklassen gespeichert werden, mit Ausnahme von S3 Express One Zone. Weitere Informationen über S3-Speicherklassen finden Sie unter Verstehen und Verwalten von Amazon-S3-Speicherklassen.
-
Verzeichnis-Buckets verwenden die Speicherklasse S3 Express One Zone. Dies wird empfohlen, wenn Ihre Anwendung leistungsempfindlich ist und von
PUT
- undGET
-Latenzen im einstelligen Millisekundenbereich profitiert. Weitere Informationen finden Sie unter Arbeiten mit Verzeichnis-Buckets, S3 Express One Zone und Autorisieren regionaler Endpunkt-API-Operationen mit IAM.
Kategorisierung von S3-Ressourcen
Amazon S3 bietet Funktionen zur Kategorisierung und Organisation Ihrer S3-Ressourcen. Die Kategorisierung Ihrer Ressourcen ist nicht nur nützlich, um sie zu organisieren, sondern Sie können auch Zugriffsverwaltungsregeln auf der Grundlage der Ressourcenkategorien festlegen. Insbesondere Präfixe und Tagging sind zwei Funktionen zur Speicherorganisation, die Sie bei der Festlegung von Zugriffsverwaltungsberechtigungen verwenden können.
Anmerkung
Die folgenden Informationen gelten für Allzweck-Buckets. Verzeichnis-Buckets unterstützen kein Tagging und haben Präfixbeschränkungen. Weitere Informationen finden Sie unter Autorisieren regionaler Endpunkt-API-Operationen mit IAM.
-
Präfixe – Ein Präfix in Amazon S3 ist eine Zeichenfolge am Anfang eines Objektschlüsselnamens, die zur Organisation der in Ihren S3-Buckets gespeicherten Objekte verwendet wird. Sie können ein Trennzeichen verwenden, z. B. einen Schrägstrich (
/
), um das Ende des Präfixes innerhalb des Objektschlüsselnamens anzugeben. Beispielsweise können Sie Objektschlüsselnamen verwenden, die mit dem Präfixengineering/
beginnen, oder Objektschlüsselnamen, die mit dem Präfixmarketing/campaigns/
beginnen. Die Verwendung eines Trennzeichens am Ende Ihres Präfixes, z. B. eines Schrägstrichs/
, emuliert die Benennungskonventionen für Ordner und Dateien. In S3 ist das Präfix jedoch Teil des Objektschlüsselnamens. In S3-Allzweck-Buckets gibt es keine tatsächliche Ordnerhierarchie.Amazon S3 unterstützt das Organisieren und Gruppieren von Objekten mithilfe ihrer Präfixe. Sie können den Zugriff auf Objekte auch anhand ihrer Präfixe verwalten. Beispielsweise können Sie den Zugriff auf Objekte beschränken, deren Namen mit einem bestimmten Präfix beginnen.
Weitere Informationen finden Sie unter Organisieren von Objekten mit Präfixen. Die S3-Konsole verwendet das Konzept von Ordnern, bei denen es sich bei Allzweck-Buckets im Wesentlichen um Präfixe handelt, die dem Objektschlüsselnamen vorangestellt werden. Weitere Informationen finden Sie unter Organisieren von Objekten in der Amazon S3-Konsole mithilfe von Ordnern.
-
Tags – Jeder Tag ist ein Schlüssel-Wert-Paar, das Sie zu Ressourcen zuweisen. Sie können beispielsweise einige Ressourcen mit dem Tag
topicCategory=engineering
markieren. Sie können Tagging verwenden, um die Kostenzuweisung, Kategorisierung und Organisation sowie die Zugriffssteuerung zu erleichtern. Bucket-Tagging wird nur für die Kostenzuweisung verwendet. Sie können Objekte, S3 Storage Lens, Aufträge und S3 Access Grants zu Organisationszwecken oder zur Zugriffskontrolle mit Tags versehen. In S3 Access Grants können Sie Tagging auch für die Kostenzuweisung verwenden. Als Beispiel für die Steuerung des Zugriffs auf Ressourcen mithilfe ihrer Tags können Sie nur Objekte teilen, die über ein bestimmtes Tag oder eine Kombination von Tags verfügen.Weitere Informationen finden Sie unter Steuern des Zugriffs auf AWS-Ressourcen mit Ressourcen-Tags im IAM-Benutzerhandbuch.
Identitäten
In Amazon S3 handelt es sich beim Ressourceneigentümer um die Identität, die die Ressource erstellt hat, z. B. ein Bucket oder ein Objekt. Standardmäßig können nur der Root-Benutzer des Kontos, das die Ressource erstellt hat, und IAM-Identitäten innerhalb des Kontos, die über die erforderlichen Berechtigungen verfügen, auf die S3-Ressource zugreifen. Ressourceneigentümer können anderen Identitäten Zugriff auf ihre S3-Ressourcen gewähren.
Identitäten, die keine Ressource besitzen, können Zugriff auf diese Ressource anfordern. Alle Anforderungen an einem Bucket sind entweder authentifiziert oder nicht authentifiziert. Authentifizierte Anforderungen müssen einen Signaturwert enthalten, der den Absender der Anforderung authentifiziert. Für nicht authentifizierte Anforderungen gilt dies jedoch nicht. Wir empfehlen, den Zugriff nur authentifizierten Benutzern zu gewähren. Weitere Informationen zur Anforderungsauthentifizierung finden Sie unter Senden von Anforderungen in der Amazon-S3-API-Referenz.
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 Root-Benutzer-Anmeldeinformationen für 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.
Es kann sich um eine der folgenden Identitäten handeln, die auf Ihre Daten in Amazon S3 zugreifen:
AWS-Konto-Eigentümer
Das AWS-Konto, das die Ressource erstellt hat. Zum Beispiel das Konto, das den Bucket erstellt hat. Dieses Konto ist Eigentümer der Ressource. Weitere Informationen finden Sie unter AWS-Root-Benutzer-Konto.
IAM-Identitäten im selben Konto wie der AWS-Konto-Eigentümer
Bei der Einrichtung von Konten für neue Teammitglieder, die S3-Zugriff benötigen, kann der AWS-Konto-Eigentümer AWS Identity and Access Management (IAM) verwenden, um Benutzer, Gruppen und Rollen zu erstellen. Der AWS-Konto-Eigentümer kann dann Ressourcen mit diesen IAM-Identitäten teilen. Der Kontoinhaber kann auch die Berechtigungen angeben, mit denen er den IAM-Identitäten zuweisen kann, wodurch die Aktionen, die auf den gemeinsam genutzten Ressourcen ausgeführt werden können, zugelassen oder verweigert werden.
IAM-Identitäten bieten erweiterte Möglichkeiten, einschließlich der Fähigkeit, von Benutzern zu verlangen, Anmeldedaten einzugeben, bevor sie auf geteilte Ressourcen zugreifen können. Indem Sie IAM-Identitäten verwenden, können Sie auch eine Form der IAM-Multi-Faktor-Authentifizierung (MFA) implementieren, um eine robuste Identitätsgrundlage zu unterstützen. Eine bewährte Methode für IAM besteht darin, Rollen für die Zugriffsverwaltung zu erstellen, anstatt jedem einzelnen Benutzer Berechtigungen zu gewähren. Sie weisen einzelnen Benutzern die entsprechende Rolle zu. Weitere Informationen finden Sie unter Bewährte IAM-Methoden.
Andere AWS-Kontoinhaber und ihre IAM-Identitäten (kontoübergreifender Zugriff)
Der AWS-Konto-Eigentümer kann auch anderen AWS-Kontoeigentümern oder IAM-Identitäten, die zu einem anderen AWS Konto gehören, Zugriff auf Ressourcen gewähren.
Anmerkung
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 im gleichen 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.
Anonyme Benutzer (öffentlicher Zugriff)
Der AWS-Konto-Eigentümer kann Ressourcen veröffentlichen. Wenn eine Ressource veröffentlicht wird, wird die Ressource technisch gesehen mit dem anonymen Benutzer geteilt. Buckets, die seit April 2023 erstellt wurden, blockieren standardmäßig den gesamten öffentlichen Zugriff, sofern Sie diese Einstellung nicht ändern. Wir empfehlen, Ihre Buckets so zu konfigurieren, dass sie den öffentlichen Zugriff blockieren und nur authentifizierten Benutzern Zugriff gewähren. Weitere Informationen zum Blockieren des öffentlichen Zugriffs finden Sie unter Blockieren des öffentlichen Zugriffs auf Ihren Amazon-S3-Speicher.
AWS-Services
Der Ressourceneigentümer kann einem anderen AWS-Service Zugriff auf eine Amazon-S3-Ressource gewähren. Sie können dem AWS-CloudTrail-Service beispielsweise die s3:PutObject
-Berechtigung erteilen, Protokolldateien in Ihren Bucket zu schreiben. Weitere Informationen finden Sie unter Gewähren von Zugriff auf einen AWS-Service.
Identitäten aus dem Unternehmensverzeichnis
Der Ressourcenbesitzer kann Benutzern oder Rollen aus Ihrem Unternehmensverzeichnis mithilfe von S3 Access Grants Zugriff auf eine S3-Ressource gewähren. Weitere Informationen zum Hinzufügen Ihres Unternehmensverzeichnisses zu AWS IAM Identity Center finden Sie unter Was ist IAM Identity Center?.
Eigentümer von Buckets oder Ressourcen
Das AWS-Konto, mit dem Sie Buckets und Objekte erstellen und hochladen, ist Besitzer dieser Ressourcen. Ein Bucket-Eigentümer kann einem anderen AWS-Konto (oder Benutzern in einem anderen Konto) kontenübergreifende Berechtigungen erteilen, um Objekte hochzuladen.
Wenn ein Bucket-Eigentümer einem anderen Konto erlaubt, Objekte in einen Bucket hochzuladen, besitzt standardmäßig der Bucket-Besitzer alle Objekte, die in seinen Bucket hochgeladen wurden. Wenn jedoch sowohl die Bucket-Einstellungen Bucket-Eigentümer erzwungen als auch Bucket-Eigentümer bevorzugt deaktiviert sind, besitzt das AWS-Konto, das die Objekte hochlädt, diese Objekte, und der Bucket-Eigentümer hat keine Berechtigungen für die Objekte, die einem anderen Konto 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.
Tools zur Zugriffsverwaltung
Amazon S3 enthält eine Vielzahl von Sicherheitsfunktionen und -tools. Nachstehend finden Sie eine umfassende Liste dieser Funktionen und Tools. Sie benötigen nicht alle diese Tools zur Zugriffsverwaltung, aber Sie müssen eines oder mehrere verwenden, um Zugriff auf Ihre Amazon-S3-Ressourcen zu gewähren. Die ordnungsgemäße Anwendung dieser Tools kann sicherstellen, dass Ihre Ressourcen nur für die vorgesehenen Benutzer zugänglich sind.
Das am häufigsten verwendete Zugriffsverwaltungstool ist eine Zugriffsrichtlinie. Eine Zugriffsrichtlinie kann eine ressourcenbasierte Richtlinie sein, die an eine AWS-Ressource angehängt ist, z .B. eine Bucket-Richtlinie für einen Bucket. Eine Zugriffsrichtlinie kann auch eine identitätsbasierte Richtlinie sein, die an eine AWS Identity and Access Management (IAM)-Identität angefügt ist, z B. einen IAM-Benutzer, eine -Gruppe oder eine -Rolle. Schreiben Sie eine Zugriffsrichtlinie, um AWS-Konten und IAM-Benutzern, -Gruppen und -Rollen die Erlaubnis zu erteilen, Operationen an einer Ressource auszuführen. Sie können beispielsweise die PUT Object
-Berechtigung einem anderen AWS-Konto-Konto erteilen, sodass das andere Konto Objekte in Ihren Bucket hochladen kann.
Eine Zugriffsrichtlinie beschreibt, wer Zugriff auf welche Objekte hat. Wenn Amazon S3 eine Anforderung erhält, muss es alle Zugriffsrichtlinien auswerten, um festzustellen, ob es die Anforderungen genehmigen oder verweigern soll. Weitere Informationen dazu, wie Amazon S3 diese Richtlinien auswertet, finden Sie unter Wie Amazon S3 eine Anforderung autorisiert.
Nachstehend sind die in Amazon S3 verfügbaren Zugriffsverwaltungstools aufgeführt.
Eine Amazon-S3-Bucket-Richtlinie ist eine ressourcenbasierte AWS Identity and Access Management (IAM)-Richtlinie im JSON-Format, die an einen bestimmten Bucket angehängt ist. Verwenden Sie Bucket-Richtlinien, um anderen AWS-Konten oder IAM-Identitäten Berechtigungen für den Bucket und die darin enthaltenen Objekte zu erteilen. Viele Anwendungsfälle für die S3-Zugriffsverwaltung können durch die Verwendung einer Bucket-Richtlinie abgedeckt werden. Mit Bucket-Richtlinien können Sie den Zugriff auf Buckets personalisieren, um sicherzustellen, dass nur die von Ihnen genehmigten Identitäten auf Ressourcen zugreifen und Aktionen innerhalb dieser ausführen können. Weitere Informationen finden Sie unter Bucket-Richtlinien für Amazon S3.
Hier finden Sie ein Beispiel für eine Bucket-Richtlinie. Sie drücken die Bucket-Richtlinie mithilfe einer JSON-Datei aus. Diese Beispielrichtlinie gewährt einer IAM-Rolle die Leseberechtigung für alle Objekte im Bucket. Sie enthält eine Anweisung namens BucketLevelReadPermissions
, die die s3:GetObject
-Aktion (Lesezugriff) für Objekte in einem Bucket namens amzn-s3-demo-bucket1
erlaubt. Durch die Angabe einer IAM-Rolle als Principal
gewährt diese Richtlinie Zugriff für jeden IAM-Benutzer mit dieser Rolle. Wenn Sie diese Beispielrichtlinie verwenden möchten, ersetzen Sie
durch Ihre eigenen Informationen. user
input placeholders
{ "Version":"2012-10-17", "Statement": [ { "Sid":"
BucketLevelReadPermissions
", "Effect":"Allow", "Principal": { "AWS": "arn:aws:iam::123456789101
:role/s3-role
" }, "Action":["s3:GetObject"], "Resource":["arn:aws:s3:::amzn-s3-demo-bucket1/*
"] }] }
Anmerkung
Vermeiden Sie beim Erstellen von Richtlinien die Verwendung von Platzhalterzeichen (*
) im Principal
-Element, da ein Platzhalterzeichen allen Benutzer den Zugriff auf Ihre Amazon-S3-Ressourcen ermöglicht. Listen Sie stattdessen die Benutzer oder Gruppen explizit auf, die auf den Bucket zugreifen dürfen, oder führen Sie die Bedingungen auf, die erfüllt sein müssen, indem Sie eine Bedingungsklausel in der Richtlinie verwenden. Anstatt ein Platzhalterzeichen für die Aktionen ihrer Benutzer und Gruppen einzufügen, gewähren Sie ihnen spezifische Berechtigungen, wenn zutreffend.
Eine identitätsbasierte oder IAM-Benutzerrichtlinie ist eine Art von AWS Identity and Access Management (IAM)-Richtlinie. Eine identitätsbasierte Richtlinie ist eine JSON-formatierte Richtlinie, die IAM-Benutzern, -Gruppen oder -Rollen in Ihrem AWS-Konto zugewiesen wird. Sie können identitätsbasierte Richtlinien verwenden, um einer IAM-Identität Zugriff auf Ihre Buckets oder Objekte zu gewähren. Sie können IAM-Benutzer, Gruppen und Rollen in Ihrem Konto erstellen und ihnen Zugriffsrichtlinien zuordnen. Sie können dann Zugriff auf AWS-Ressourcen gewähren, einschließlich Amazon-S3-Ressourcen. Weitere Informationen finden Sie unter Identitätsbasierte Richtlinien für Amazon S3.
Nachstehend finden Sie ein Beispiel für eine identitätsbasierte Berechtigungsrichtlinie: Die Beispielrichtlinie erlaubt der zugeordneten IAM-Rolle, sechs verschiedene Amazon-S3-Aktionen (Berechtigungen) für einen Bucket und die darin enthaltenen Objekte auszuführen. Wenn Sie diese Richtlinie einer IAM-Rolle in Ihrem Konto zuordnen und die Rolle einigen Ihrer IAM-Benutzer zuweisen, können die Benutzer mit dieser Rolle diese Aktionen mit den in Ihrer Richtlinie angegebenen Ressourcen (Buckets) ausführen. Wenn Sie diese Beispielrichtlinie verwenden möchten, ersetzen Sie
durch Ihre eigenen Informationen.user input placeholders
{ "Version": "2012-10-17", "Statement": [ { "Sid": "
AssignARoleActions
", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket", "s3:DeleteObject", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*
", "arn:aws:s3:::amzn-s3-demo-bucket1
" ] }, { "Sid": "AssignARoleActions2
", "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" } ] }
Verwenden Sie S3 Access Grants, um Zugriffsgewährungen für Ihre Amazon-S3-Daten für beide Identitäten in Unternehmensidentitätsverzeichnissen wie Active Directory, und für AWS Identity and Access Management (IAM)-Identitäten zu erstellen. S3 Access Grants hilft Ihnen dabei, Datenberechtigungen in großem Umfang zu verwalten. Darüber hinaus protokolliert S3 Access Grants die Identität des Endbenutzers und die Anwendung, die für den Zugriff auf die S3-Daten in AWS CloudTrail verwendet wurde. Dies bietet einen detaillierten Auditverlauf bis hin zur Endbenutzeridentität für alle Zugriffe auf die Daten in Ihren S3-Buckets. Weitere Informationen finden Sie unter Verwalten des Zugriffs mit S3-Zugriffsberechtigungen.
Amazon S3 Access Points vereinfacht die Verwaltung des Datenzugriffs in großem Maßstab für Anwendungen, die gemeinsam genutzte Datensätze auf S3 verwenden. Zugangspunkte sind benannte Netzwerkendpunkte, die einem Bucket zugeordnet sind. Sie können Zugangspunkte verwenden, um S3-Objektoperationen in großem Maßstab auszuführen, wie z. B. das Hochladen und Abrufen von Objekten. Einem Bucket können bis zu 10 000 Zugangspunkte zugeordnet sein, und für jeden Zugangspunkt können Sie unterschiedliche Berechtigungen und Netzwerksteuerungen erzwingen, um Ihnen detaillierte Kontrolle über den Zugriff auf Ihre S3-Objekte zu ermöglichen. S3 Access Points können mit Buckets im selben Konto oder in einem anderen vertrauenswürdigen Konto verknüpft werden. Bei Access-Points-Richtlinien handelt es sich um ressourcenbasierte Richtlinien, die in Verbindung mit der zugrunde liegenden Bucket-Richtlinie bewertet werden. Weitere Informationen finden Sie unter Verwalten des Zugriffs auf gemeinsam genutzte Datensätze mit Zugangspunkten.
Eine ACL listet die erteilten Gewährungen auf, die den Empfänger und die erteilte Berechtigung identifizieren. Sie können ACLs verwenden, um anderen AWS-Konten grundlegende Lese- oder Schreibberechtigungen zu erteilen. ACLs verwenden ein für Amazon S3 spezifisches XML-Schema. Eine ACL ist eine Art von AWS Identity and Access Management (IAM)-Richtlinie. Eine Objekt-ACL wird verwendet, um den Zugriff auf ein Objekt zu verwalten, und eine Bucket-ACL wird verwendet, um den Zugriff auf einen Bucket zu verwalten. Bei Bucket-Richtlinien gibt es eine einzige Richtlinie für den gesamten Bucket, während Objekt-ACLs für jedes einzelne Objekt festgelegt werden. Wir empfehlen, ACLs deaktiviert zu lassen, außer in außergewöhnlichen Fällen, in denen Sie den Zugriff für jedes Objekt individuell steuern müssen. Weitere Informationen zur Verwendung von ACLs finden Sie unter Weitere Informationen finden Sie unter Steuern des Eigentums an Objekten und Deaktivieren von ACLs für Ihren Bucket..
Warnung
Die meisten modernen Anwendungsfälle in Amazon S3 erfordern keine Verwendung von ACLs.
Es folgt ein Beispiel für eine Bucket-ACL. Die Gewährung der ACL zeigt einen Bucket-Eigentümer, der eine Berechtigung für die 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>
Um den Zugriff auf Ihre Objekte zu verwalten, müssen Sie der Eigentümer des Objekts sein. Sie können die Bucket-Einstellung für Object Ownership verwenden, um die Eigentümerschaft von Objekten zu steuern, die in Ihren Bucket hochgeladen werden. Verwenden Sie außerdem Object Ownership, um ACLs zu aktivieren. Standardmäßig ist Object Ownership auf die Einstellung Bucket-Eigentümer erzwungen festgelegt und alle ACLs sind deaktiviert. Wenn ACLs deaktiviert sind, besitzt der Bucket-Eigentümer alle Objekte im Bucket und verwaltet den Zugriff auf die Daten ausschließlich selbst. Um den Zugriff zu verwalten, verwendet der Bucket-Eigentümer Richtlinien oder ein anderes Zugriffsverwaltungstool, ausgenommen ACLs. Weitere Informationen finden Sie unter Weitere Informationen finden Sie unter Steuern des Eigentums an Objekten und Deaktivieren von ACLs für Ihren Bucket..
Object Ownership verfügt über drei Einstellungen, mit denen Sie sowohl die Eigentümerschaft von Objekten, die in Ihren Bucket hochgeladen werden, steuern als auch ACLs aktivieren können:
ACLs sind deaktiviert
-
Bucket-Eigentümer erzwungen (Standard) – ACLs sind deaktiviert und der Bucket-Eigentümer besitzt automatisch jedes Objekt im Bucket und hat die volle Kontrolle darüber. ACLs haben keine Auswirkungen auf Berechtigungen für Daten im S3-Bucket. Der Bucket verwendet ausschließlich Richtlinien, um die Zugriffssteuerung zu definieren.
ACLs sind aktiviert
-
Bucket-Eigentümer bevorzugt – Der Bucket-Eigentümer besitzt und hat die volle Kontrolle über neue Objekte, die andere Konten mit der
bucket-owner-full-control
-vordefinierten ACL. -
Objekt-Writer – Das AWS-Konto, das ein Objekt hochlädt, besitzt das Objekt, hat die volle Kontrolle darüber und kann anderen Benutzern über ACLs Zugriff darauf gewähren.
Weitere bewährte Methoden
Überlegen Sie, die folgenden Bucket-Einstellungen und Tools zu verwenden, um Daten während der Übertragung und im Ruhezustand zu schützen, die beide entscheidend für die Aufrechterhaltung der Integrität und Zugänglichkeit Ihrer Daten sind
-
Öffentlichen Zugriff blockieren – Deaktivieren Sie nicht die Standardeinstellung Öffentlichen Zugriff blockieren auf Bucket-Ebene. Diese Einstellung blockiert standardmäßig den öffentlichen Zugriff auf Ihre Daten. Weitere Informationen zum Blockieren des öffentlichen Zugriffs finden Sie unter Blockieren des öffentlichen Zugriffs auf Ihren Amazon-S3-Speicher.
-
S3 Versioning – Aus Gründen der Datenintegrität können Sie die Bucket-Einstellung „S3 Versioning“ implementieren, mit der Ihre Objekte bei Updates versioniert werden, anstatt sie zu überschreiben. Sie können die das S3 Versioning verwenden, um bei Bedarf eine frühere Version zu speichern, abzurufen oder wiederherzustellen. Weitere Informationen über S3 Versioning finden Sie unter Beibehalten mehrerer Versionen von Objekten mit der S3-Versionsverwaltung.
-
S3 Object Lock – S3 Object Lock ist eine weitere Einstellung, die Sie implementieren können, um die Integrität von Daten zu wahren. Diese Funktion kann ein WORM (write-once-read-many)-Modell implementieren, um Objekte unveränderlich zu speichern. Weitere Informationen über Object Lock finden Sie unter Sperren von Objekten mit Object Lock.
-
Objektverschlüsselung – Amazon S3 bietet verschiedene Optionen für die Objektverschlüsselung, um Daten während der Übertragung und im Ruhezustand zu schützen. Bei der serverseitigen Verschlüsselung wird das Objekt verschlüsselt, bevor es auf Datenträgern in Rechenzentren gespeichert wird. Wenn die Objekte heruntergeladen werden, werden sie wieder entschlüsselt. Wenn Sie Ihre Anforderung authentifizieren und über Zugriffsberechtigungen verfügen, gibt es in Bezug auf die Art und Weise, wie Sie auf verschlüsselte oder nicht verschlüsselte Objekte zugreifen, keinen Unterschied. Weitere Informationen finden Sie unter Schützen von Daten mit serverseitiger Verschlüsselung. S3 verschlüsselt standardmäßig neu hochgeladene Objekte. Weitere Informationen finden Sie unter Einstellen des Verhaltens der serverseitigen Verschlüsselung für Amazon S3-Buckets. Client-seitige Verschlüsselung ist der Vorgang, bei dem Daten verschlüsselt werden, bevor sie an Amazon S3 gesendet werden. Weitere Informationen finden Sie unter Schützen von Daten mithilfe der clientseitigen Verschlüsselung.
-
Signaturmethoden – Signature Version 4 ist der Prozess für das Hinzufügen von Authentifizierungs-Informationen zu AWS-Anforderungen, die über HTTP gesendet werden. Aus Sicherheitsgründen müssen die meisten Anforderungen an AWS mit einem Zugriffsschlüssel signiert werden, der aus einer Zugriffsschlüssel-ID und einem geheimen Zugriffsschlüssel besteht. Diese beiden Schlüssel werden in der Regel als Sicherheitsanmeldeinformationen bezeichnet. Weitere Informationen finden Sie unter Authenticating Requests (Authentifizierung von Anforderungen) (AWS Signature Version 4) und Signature Version 4 signing process (Signaturprozess).
Aktionen
Eine vollständige Liste der S3-Berechtigungen und -Bedingungsschlüssel 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.
Aktionen
Die AWS Identity and Access Management (IAM)-Aktionen für Amazon S3 sind die möglichen Aktionen, die für einen S3-Bucket oder ein S3-Objekt ausgeführt werden können. Sie gewähren diese Aktionen Identitäten, damit sie auf Ihre S3-Ressourcen zugreifen können. Beispiele für S3-Aktionen sind s3:GetObject
zum Lesen von Objekten in einem Bucket und s3:PutObject
zum Schreiben von Objekten in einen Bucket.
Bedingungsschlüssel
Zusätzlich zu Aktionen sind IAM-Bedingungsschlüssel darauf beschränkt, Zugriff nur dann zu gewähren, wenn eine Bedingung erfüllt ist. Bedingungsschlüssel sind optional.
Anmerkung
In einer ressourcenbasierten Zugriffsrichtlinie, z. B. einer Bucket-Richtlinie oder in einer identitätsbasierten Richtlinie, können Sie Folgendes angeben:
-
Eine Aktion oder eine Reihe von Aktionen im
Action
-Element der Richtlinienanweisung. -
Im
Effect
-Element der Richtlinienanweisung können SieAllow
angeben, um die aufgeführten Aktionen zu erlauben, oderDeny
, um die aufgeführten Aktionen zu blockieren. Um die Praxis der geringsten Berechtigungen weiter aufrechtzuerhalten, solltenDeny
-Anweisungen imEffect
-Element der Zugriffsrichtlinie so allgemein wie möglich undAllow
-Anweisungen so spezifisch wie möglich sein.Deny
-Effekte in Kombination mit ders3:*
-Aktion sind eine weitere gute Möglichkeit, bewährte Opt-in-Vorgehensweisen für die Identitäten umzusetzen, die in den Bedingungsanweisungen der Richtlinie enthalten sind. -
Ein Bedingungsschlüssel im
Condition
-Element einer Richtlinienanweisung.
Anwendungsfälle für die Zugriffsverwaltung
Amazon S3 bietet Ressourceneigentümern eine Vielzahl von Tools, um Zugriff zu gewähren. Welches S3-Zugriffsverwaltungstool Sie verwenden, hängt von den S3-Ressourcen ab, die Sie teilen möchten, von den Identitäten, für die Sie Zugriff gewähren, und von den Aktionen, die Sie zulassen oder verweigern möchten. Möglicherweise möchten Sie eines oder mehrere S3-Zugriffsverwaltungstools verwenden, um den Zugriff auf Ihre S3-Ressourcen zu verwalten.
In den meisten Fällen können Sie eine Zugriffsrichtlinie verwenden, um Berechtigungen zu verwalten. Eine Zugriffsrichtlinie kann eine ressourcenbasierte Richtlinie sein, die an eine Ressource, z. B. einen Bucket, oder eine andere Amazon-S3-Ressource (S3-Ressourcen) angehängt ist. Eine Zugriffsrichtlinie kann auch eine identitätsbasierte Richtlinie sein, die einem AWS Identity and Access Management (IAM)-Benutzer, einer -Gruppe oder einer -Rolle in Ihrem Konto angefügt ist. Möglicherweise stellen Sie fest, dass eine Bucket-Richtlinie für Ihren Anwendungsfall besser geeignet ist. Weitere Informationen finden Sie unter Bucket-Richtlinien für Amazon S3. Alternativ können Sie mit AWS Identity and Access Management (IAM) IAM-Benutzer, -Gruppen und -Rollen in Ihrem AWS-Konto erstellen und deren Zugriff auf Buckets und Objekte mithilfe identitätsbasierter Richtlinien verwalten. Weitere Informationen finden Sie unter Identitätsbasierte Richtlinien für Amazon S3.
Um Ihnen den Umgang mit diesen Zugriffsverwaltungsoptionen zu erleichtern, finden Sie nachstehend allgemeine Anwendungsfälle und Empfehlungen für Amazon-S3-Kunden in Bezug auf die einzelnen S3-Zugriffsverwaltungstools.
Alle Tools zur Zugriffsverwaltung können diesen grundlegenden Anwendungsfall erfüllen. Für diesen Anwendungsfall empfehlen wir die folgenden Tools zur Zugriffsverwaltung:
-
Bucket-Richtlinie – Wenn Sie Zugriff auf einen Bucket oder eine kleine Anzahl von Buckets gewähren möchten oder wenn Ihre Bucket-Zugriffsberechtigungen von Bucket zu Bucket ähnlich sind, verwenden Sie eine Bucket-Richtlinie. Mit Bucket-Richtlinien verwalten Sie eine Richtlinie für jeden Bucket. Weitere Informationen finden Sie unter Bucket-Richtlinien für Amazon S3.
-
Identitätsbasierte Richtlinie – Wenn Sie eine sehr große Anzahl von Buckets mit unterschiedlichen Zugriffsberechtigungen für jeden Bucket haben und nur wenige Benutzerrollen verwalten müssen, können Sie eine IAM-Richtlinie für Benutzer, Gruppen oder Rollen verwenden. IAM-Richtlinien sind auch eine gute Option, wenn Sie den Benutzerzugriff auf andere AWS-Ressourcen sowie auf Amazon-S3-Ressourcen verwalten. Weitere Informationen finden Sie unter Beispiel 1: Bucket-Eigentümer erteilt seinen Benutzern Bucket-Berechtigungen.
-
S3 Access Grants – Sie können mit S3 Access Grants Zugriff auf Ihre S3-Buckets, -Präfixe oder -Objekte gewähren. Mit S3 Access Grants können Sie unterschiedliche Berechtigungen auf Objektebene nach Bedarf festlegen. Bucket-Richtlinien sind dagegen auf eine Größe von 20 KB begrenzt. Weitere Informationen finden Sie unter Erste Schritte mit S3 Access Grants.
-
Zugangspunkte – Sie können Zugangspunkte verwenden, bei denen es sich um benannte Netzwerkendpunkte handelt, die mit einem Bucket verknüpft sind. Einem Bucket können bis zu 10 000 Zugangspunkte zugeordnet sein, und für jeden Zugangspunkt können Sie unterschiedliche Berechtigungen und Netzwerksteuerungen erzwingen, um Ihnen detaillierte Kontrolle über den Zugriff auf Ihre S3-Objekte zu ermöglichen. Weitere Informationen finden Sie unter Verwalten des Zugriffs auf gemeinsam genutzte Datensätze mit Zugangspunkten.
Um einem anderen AWS-Konto die Erlaubnis zu erteilen, müssen Sie eine Bucket-Richtlinie oder eines der folgenden empfohlenen Zugriffsverwaltungstools verwenden. Für diesen Anwendungsfall können Sie keine identitätsbasierte Zugriffsrichtlinie verwenden. Weitere Informationen zum Gewähren von kontoübergreifendem Zugriff finden Sie unter Wie gewähre ich kontoübergreifenden Zugriff auf Objekte in Amazon-S3-Buckets?
Für diesen Anwendungsfall empfehlen wir die folgenden Tools zur Zugriffsverwaltung:
-
Bucket-Richtlinie – Mit Bucket-Richtlinien verwalten Sie eine Richtlinie für jeden Bucket. Weitere Informationen finden Sie unter Bucket-Richtlinien für Amazon S3.
-
S3 Access Grants – Sie können mit S3 Access Grants kontoübergreifende Berechtigungen für Ihre S3-Buckets, -Präfixe oder -Objekte gewähren. Sie können S3 Access Grants verwenden, um unterschiedliche Berechtigungen auf Objektebene nach Bedarf festzulegen. Bucket-Richtlinien sind dagegen auf eine Größe von 20 KB begrenzt. Weitere Informationen finden Sie unter Erste Schritte mit S3 Access Grants.
-
Zugangspunkte – Sie können Zugangspunkte verwenden, bei denen es sich um benannte Netzwerkendpunkte handelt, die mit einem Bucket verknüpft sind. Einem Bucket können bis zu 10 000 Zugangspunkte zugeordnet sein, und für jeden Zugangspunkt können Sie unterschiedliche Berechtigungen und Netzwerksteuerungen erzwingen, um Ihnen detaillierte Kontrolle über den Zugriff auf Ihre S3-Objekte zu ermöglichen. Weitere Informationen finden Sie unter Verwalten des Zugriffs auf gemeinsam genutzte Datensätze mit Zugangspunkten.
In einer Bucket-Richtlinie können Sie beispielsweise Zugriff auf Objekte innerhalb eines Buckets gewähren, die ein bestimmtes Schlüsselnamenpräfix oder ein bestimmtes Tag haben. Beispielsweise könnten Sie eine Leseberechtigung für Objekte erteilen, die mit dem Schlüsselnamepräfix logs/
beginnen. Wenn Ihre Zugriffsberechtigungen jedoch je nach Objekt variieren, ist es möglicherweise nicht praktikabel, Berechtigungen für einzelne Objekte mithilfe einer Bucket-Richtlinie zu erteilen, insbesondere da Bucket-Richtlinien auf 20 KB begrenzt sind.
Für diesen Anwendungsfall empfehlen wir die folgenden Tools zur Zugriffsverwaltung:
-
S3 Access Grants – Sie können S3 Access Grants verwenden, um Berechtigungen auf Objekt- oder Präfixebene zu verwalten. Im Gegensatz zu Bucket-Richtlinien können Sie S3 Access Grants verwenden, um unterschiedliche Berechtigungen auf Objektebene nach Bedarf festzulegen. Bucket-Richtlinien sind auf eine Größe von 20 KB beschränkt. Weitere Informationen finden Sie unter Erste Schritte mit S3 Access Grants.
-
Zugangspunkte – Sie können Zugangspunkte verwenden, um Berechtigungen auf Objekt- oder Präfix-Ebene zu verwalten. Zugangspunkte sind benannte Netzwerkendpunkte, die einem Bucket zugeordnet sind. Einem Bucket können bis zu 10 000 Zugangspunkte zugeordnet sein, und für jeden Zugangspunkt können Sie unterschiedliche Berechtigungen und Netzwerksteuerungen erzwingen, um Ihnen detaillierte Kontrolle über den Zugriff auf Ihre S3-Objekte zu ermöglichen. Weitere Informationen finden Sie unter Verwalten des Zugriffs auf gemeinsam genutzte Datensätze mit Zugangspunkten.
-
ACLs – Wir raten davon ab, Zugriffssteuerungslisten (ACLs) zu verwenden, vor allem, weil ACLs auf 100 Gewährungen pro Objekt begrenzt sind. Wenn Sie sich jedoch dafür entscheiden, ACLs zu aktivieren, setzen Sie in Ihren Bucket-Einstellungen die Option Objekteigentümerschaft auf Bucket-Eigentümer bevorzugt und ACLs aktiviert. Mit dieser Einstellung gehören neue Objekte, die mit der von
bucket-owner-full-control
vordefinierten ACL geschrieben werden, automatisch dem Bucket-Eigentümer und nicht dem Objekt-Writer. Anschließend können Sie Objekt-ACLs verwenden, bei denen es sich um eine Zugriffsrichtlinie im XML-Format handelt, um anderen Benutzern Zugriff auf das Objekt zu gewähren. Weitere Informationen finden Sie unter Zugriffskontrolllisten (ACL) – Übersicht.
Für diesen Anwendungsfall empfehlen wir die folgenden Tools zur Zugriffsverwaltung:
-
Bucket-Richtlinie – Mit Bucket-Richtlinien verwalten Sie eine Richtlinie für jeden Bucket. Weitere Informationen finden Sie unter Bucket-Richtlinien für Amazon S3.
-
Access Points – Amazon S3 Access Points sind benannte Netzwerk-Endpunkte, die an Buckets angehängt sind. Einem Bucket können bis zu 10 000 Zugangspunkte zugeordnet sein, und für jeden Zugangspunkt können Sie unterschiedliche Berechtigungen und Netzwerksteuerungen erzwingen, um Ihnen detaillierte Kontrolle über den Zugriff auf Ihre S3-Objekte zu ermöglichen. Weitere Informationen finden Sie unter Verwalten des Zugriffs auf gemeinsam genutzte Datensätze mit Zugangspunkten.
Für diesen Anwendungsfall empfehlen wir das folgende Zugriffsverwaltungstool:
-
Access Points – Amazon S3 Access Points sind benannte Netzwerk-Endpunkte, die an Buckets angehängt sind. Einem Bucket können bis zu 10 000 Zugangspunkte zugeordnet sein, und für jeden Zugangspunkt können Sie unterschiedliche Berechtigungen und Netzwerksteuerungen erzwingen, um Ihnen detaillierte Kontrolle über den Zugriff auf Ihre S3-Objekte zu ermöglichen. Jeder Zugriffspunkt erzwingt eine benutzerdefinierte Zugriffspunktrichtlinie, die in Verbindung mit der Bucket-Richtlinie funktioniert, die dem zugrunde liegenden Bucket zugeordnet ist. Weitere Informationen finden Sie unter Verwalten des Zugriffs auf gemeinsam genutzte Datensätze mit Zugangspunkten.
Virtual Private Cloud (VPC)-Endpunkte für Amazon S3 sind logische Entitäten innerhalb einer VPC, die Konnektivität nur mit Amazon S3 ermöglichen. Für diesen Anwendungsfall empfehlen wir die folgenden Tools zur Zugriffsverwaltung:
-
Buckets in einer VPC-Einstellung – Sie können eine Bucket-Richtlinie verwenden, um zu steuern, wer auf Ihre Buckets zugreifen darf und auf welche VPC-Endpunkte sie zugreifen können. Weitere Informationen finden Sie unter Steuern des Zugriffs von VPC-Endpunkten mit Bucket-Richtlinien.
-
Zugangspunkte – Wenn Sie Zugangspunkte einrichten möchten, können Sie eine Zugangspunktrichtlinie verwenden. Sie können jeden Zugriffspunkt so konfigurieren, dass nur Anforderungen aus einer Virtual Private Cloud (VPC) akzeptiert werden, um den Amazon S3-Datenzugriff auf ein privates Netzwerk zu beschränken. Sie können auch benutzerdefinierte Block Public Access-Einstellungen für jeden Zugriffspunkt konfigurieren. Weitere Informationen finden Sie unter Verwalten des Zugriffs auf gemeinsam genutzte Datensätze mit Zugangspunkten.
Mit S3 können Sie eine statische Website hosten und jedem ermöglichen, den Inhalt der Website anzusehen, die von einem S3-Bucket aus gehostet wird.
Für diesen Anwendungsfall empfehlen wir die folgenden Tools zur Zugriffsverwaltung:
-
Amazon CloudFront – Mit dieser Lösung können Sie eine statische Amazon-S3-Website öffentlich hosten und gleichzeitig den gesamten öffentlichen Zugriff auf den Inhalt eines Buckets blockieren. Wenn Sie alle vier Einstellungen für S3 Block Public Access aktiviert lassen und eine statische S3-Website hosten möchten, können Sie die Amazon-CloudFront-Ursprungszugriffssteuerung (Origin Access Control, OAC) verwenden. Amazon CloudFront bietet die Funktionen, die zum Einrichten einer sicheren statischen Website erforderlich sind. Außerdem können statische Amazon-S3-Websites, die diese Lösung nicht verwenden, nur HTTP-Endpunkte unterstützen. CloudFront nutzt den dauerhaften Speicher von Amazon S3 und bietet gleichzeitig zusätzliche Sicherheitsheader wie HTTPS. HTTPS erhöht die Sicherheit, indem eine normale HTTP-Anforderung verschlüsselt und vor gängigen Cyberangriffen geschützt wird.
Weitere Informationen finden Sie unter Erste Schritte mit einer sicheren statischen Website im Amazon CloudFront-Entwicklerhandbuch.
-
Ihren Amazon-S3-Bucket öffentlich zugänglich machen – Sie können einen Bucket konfigurieren, der als eine öffentlich zugängliche statische Website verwendet wird.
Warnung
Wir raten von dieser Methode ab. Stattdessen empfehlen wir Ihnen, statische Amazon-S3-Websites als Teil von Amazon CloudFront zu verwenden. Weitere Informationen finden Sie unter Erste Schritte mit einer sicheren statischen Website.
Um eine statische Amazon-S3-Website ohne Amazon CloudFront zu erstellen, müssen Sie zunächst alle Einstellungen für Block Public Access deaktivieren. Wenn Sie die Bucket-Richtlinie für Ihre statische Website schreiben, achten Sie darauf, nur
s3:GetObject
-Aktionen und keineListObject
- oderPutObject
-Berechtigungen zuzulassen. Dies stellt sicher, dass Benutzer nicht alle Objekte im Bucket anzeigen oder eigene Inhalte hinzufügen können. Weitere Informationen finden Sie unter Festlegen von Berechtigungen für den Website-Zugriff.
Wenn Sie einen neuen Amazon-S3-Bucket erstellen, ist die Einstellung Block Public Access standardmäßig aktiviert. Weitere Informationen zum Blockieren des öffentlichen Zugriffs finden Sie unter Blockieren des öffentlichen Zugriffs auf Ihren Amazon-S3-Speicher.
Wir empfehlen nicht, öffentlichen Zugriff auf Ihren Bucket zu gewähren. Wenn Sie dies jedoch für einen bestimmten Anwendungsfall tun müssen, empfehlen wir das folgende Zugriffsverwaltungstool:
-
Einstellung „Öffentlichen Zugriff blockieren“ deaktivieren – Ein Bucket-Eigentümer kann nicht authentifizierte Anforderungen an den Bucket zulassen. Beispielsweise sind nicht authentifizierte PUT-Object-Anforderungen erlaubt, wenn ein Bucket eine öffentliche Bucket-Richtlinie hat oder wenn eine Bucket-ACL öffentlichen Zugriff gewährt. Alle nicht authentifizierten Anfragen werden von anderen beliebigen AWS-Benutzern oder sogar von nicht authentifizierten, anonymen Benutzern gestellt. Dieser Benutzer ist in ACLs durch die spezifische kanonische Benutzer-ID
65a011a29cdf8ec533ec3d1ccaae921c
repräsentiert. Wenn ein Objekt zuWRITE
oderFULL_CONTROL
hochgeladen wird, gewährt dies ausdrücklich Zugriff auf die Gruppe „Alle Benutzer“ oder den anonymen Benutzer. Weitere Informationen zu öffentlichen Bucket-Richtlinien und öffentlichen Zugriffskontrolllisten (ACLs) finden Sie unter Die Bedeutung von „öffentlich“.
Sowohl für Bucket-Richtlinien als auch für identitätsbasierte Richtlinien gilt eine Größenbeschränkung von 20 KB. Wenn Ihre Anforderungen an Zugriffsberechtigungen komplex sind, überschreiten Sie möglicherweise diese Größenbeschränkung.
Wir haben für diesen Anwendungsfall die folgenden Tools zur Zugriffsverwaltung empfohlen:
-
Zugangspunkt – Verwenden Sie Zugangspunkte, wenn dies für Ihren Anwendungsfall funktioniert. Bei Zugangspunkten hat jeder Bucket mehrere benannte Netzwerkendpunkte, von denen jeder seine eigene Zugangspunktrichtlinie hat, die mit der zugrunde liegenden Bucket-Richtlinie funktioniert. Zugangspunkte können jedoch nur auf Objekte, nicht auf Buckets, einwirken und unterstützen keine regionsübergreifende Replikation. Weitere Informationen finden Sie unter Verwalten des Zugriffs auf gemeinsam genutzte Datensätze mit Zugangspunkten.
-
S3 Access Grants – Verwenden Sie S3 Access Grants, das eine sehr große Anzahl von Erteilungen unterstützt, die Zugriff auf Buckets, Präfixe oder Objekte gewähren. Weitere Informationen finden Sie unter Erste Schritte mit S3 Access Grants.
Anstatt Benutzer, Gruppen und Rollen über AWS Identity and Access Management (IAM) zu verwalten, können Sie Ihr Unternehmensverzeichnis zu AWS IAM Identity Center hinzufügen. Weitere Informationen finden Sie unter Was Ist IAM Identity Center?.
Nachdem Sie Ihr Unternehmensverzeichnis zu AWS IAM Identity Center hinzugefügt haben, empfehlen wir Ihnen, das folgende Zugriffsverwaltungstool zu verwenden, um den Identitäten des Unternehmensverzeichnisses Zugriff auf Ihre S3-Ressourcen zu gewähren:
-
S3 Access Grants – Verwenden Sie S3 Access Grants, das die Gewährung von Zugriff für Benutzer oder Rollen in Ihrem Unternehmensverzeichnis unterstützt. Weitere Informationen finden Sie unter Erste Schritte mit S3 Access Grants.
Für diesen Anwendungsfall haben wir das folgende Zugriffsverwaltungstool empfohlen:
-
Bucket-ACL – Der einzige empfohlene Anwendungsfall für Bucket-ACLs besteht darin, bestimmten AWS-Services, wie dem
awslogsdelivery
- Konto in Amazon-CloudFront, Berechtigungen zu erteilen. Wenn Sie eine Verteilung erstellen oder aktualisieren und die CloudFront-Protokollierung aktivieren, aktualisiert CloudFront die Bucket-ACL, um demawslogsdelivery
-KontoFULL_CONTROL
-Berechtigungen zum Schreiben von Protokollen in Ihren Bucket zu erteilen. Weitere Informationen finden Sie unter Erforderliche Berechtigungen zum Konfigurieren der Standardprotokollierung und zum Zugreifen auf Ihre Protokolldateien im Amazon-CloudFront-Entwicklerhandbuch. Wenn der Bucket, der die Protokolle speichert, die Einstellung Vom Bucket-Eigentümer erzwungen für S3 Object Ownership verwendet, um ACLs zu deaktivieren, kann CloudFront keine Protokolle zum Bucket schreiben. Weitere Informationen finden Sie unter Weitere Informationen finden Sie unter Steuern des Eigentums an Objekten und Deaktivieren von ACLs für Ihren Bucket..
Sie können anderen Konten Zugriff gewähren, um Objekte in Ihren Bucket hochzuladen, indem Sie eine Bucket-Richtlinie, einen Zugangspunkt oder S3 Access Grants verwenden. Wenn Sie kontoübergreifenden Zugriff auf Ihren Bucket gewährt haben, können Sie sicherstellen, dass Sie weiterhin die volle Kontrolle über alle in Ihren Bucket hochgeladenen Objekte haben.
Für diesen Anwendungsfall haben wir das folgende Zugriffsverwaltungstool empfohlen:
-
Objekteigentümerschaft – Behalten Sie für die Einstellung Objekteigentümerschaft auf Bucket-Ebene die Standardeinstellung Bucket-Eigentümer erzwungen bei.
Fehlerbehebung bei der Zugriffsverwaltung
Die folgenden Ressourcen können Sie bei der Behebung von Problemen mit der S3-Zugriffsverwaltung unterstützen:
Beheben von Fehlern aufgrund einer Zugriffsverweigerung (403 Forbidden)
Wenn Sie auf Probleme mit der Zugriffsverweigerung stoßen, überprüfen Sie die Einstellungen auf Konto- und Bucket-Ebene. Überprüfen Sie außerdem die Zugriffsverwaltungsfunktion, mit der Sie den Zugriff gewähren, um sicherzustellen, dass die Richtlinie, Einstellung oder Konfiguration korrekt ist. Weitere Informationen zu den häufigsten Ursachen für den Fehler „Zugriff verweigert“ (403 Forbidden) in Amazon S3 finden Sie unter Beheben von „Zugriff verweigert“-Fehlern (403 Forbidden) in Amazon S3.
IAM Access Analyzer für S3
Wenn Sie keine Ihrer Ressourcen öffentlich zugänglich machen oder den öffentlichen Zugriff auf Ihre Ressourcen einschränken möchten, können Sie IAM Access Analyzer für S3 verwenden. Verwenden Sie in der Amazon-S3-Konsole IAM Access Analyzer für S3, 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 AWS-Konten, einschließlich AWS-Konten außerhalb Ihrer Organisation, 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 einer einzigen Aktion blockieren. Wir empfehlen Ihnen, den gesamten öffentlichen 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 Ihre Berechtigungseinstellungen auf Bucket-Ebene überprüfen, 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 bereitgestellt. Um den IAM Access Analyzer für S3 in der Amazon-S3-Konsole zu verwenden, müssen Sie die IAM-Konsole
Weitere Informationen zu IAM Access Analyzer für S3 finden Sie unter Überprüfen des Bucket-Zugriffs mit IAM Access Analyzer für S3.
Protokollierung und Überwachung
Die Überwachung ist wichtig, um die Zuverlässigkeit, Verfügbarkeit und Leistung Ihrer Amazon S3-Lösungen zu wahren. Damit können Sie Zugriffsfehler leicht beheben. Die Protokollierung kann einen Einblick in alle Fehler geben, die Benutzer erhalten und wann welche Anfragen gestellt werden. AWS bietet mehrere Tools zur Überwachung Ihrer Amazon S3-Ressourcen, wie die folgenden:
-
AWS CloudTrail
-
Amazon-S3-Zugriffsprotokolle
-
AWS Trusted Advisor
-
Amazon-CloudWatch
Weitere Informationen finden Sie unter Protokollierung und Überwachung in Amazon S3.