Funktionsweise von Amazon S3 mit IAM
Bevor Sie mit IAM den Zugriff auf Amazon S3 verwalten können, sollten Sie sich darüber informieren, welche IAM-Features Sie mit AmazonS3 verwenden können.
| IAM-Feature | Amazon-S3-Support |
|---|---|
|
Ja |
|
|
Ja |
|
|
Ja |
|
|
Ja |
|
|
Ja |
|
|
Ja |
|
|
Teilweise |
|
|
Ja |
|
|
Ja |
|
|
Ja |
|
|
Teilweise |
Einen allgemeinen Überblick über das Zusammenwirken von Amazon S3 und anderen AWS-Services mit den meisten IAM-Features finden Sie unter AWS-Services, die mit IAM funktionieren im IAM-Benutzerhandbuch.
Weitere Informationen zu den Berechtigungen für S3-API-Operationen nach S3-Ressourcentypen finden Sie unter Erforderliche Berechtigungen für Amazon-S3-API-Operationen.
Identitätsbasierte Richtlinien für Amazon S3
Unterstützt Richtlinien auf Identitätsbasis: Ja
Identitätsbasierte Richtlinien sind JSON-Berechtigungsrichtliniendokumente, die Sie einer Identität anfügen können, wie z. B. IAM-Benutzern, -Benutzergruppen oder -Rollen. Diese Richtlinien steuern, welche Aktionen die Benutzer und Rollen für welche Ressourcen und unter welchen Bedingungen ausführen können. Informationen zum Erstellen identitätsbasierter Richtlinien finden Sie unter Definieren benutzerdefinierter IAM-Berechtigungen mit vom Kunden verwalteten Richtlinien im IAM-Benutzerhandbuch.
Mit identitätsbasierten IAM-Richtlinien können Sie angeben, welche Aktionen und Ressourcen zugelassen oder abgelehnt werden. Darüber hinaus können Sie die Bedingungen festlegen, unter denen Aktionen zugelassen oder abgelehnt werden. Informationen zu sämtlichen Elementen, die Sie in einer JSON-Richtlinie verwenden, finden Sie in der IAM-Referenz für JSON-Richtlinienelemente im IAM-Benutzerhandbuch.
Beispiele für identitätsbasierte Richtlinien für Amazon S3
Beispiele für identitätsbasierte Amazon-S3-Richtlinien finden Sie unter Identitätsbasierte Richtlinien für Amazon S3.
Ressourcenbasierte Richtlinien in Amazon S3
Unterstützt ressourcenbasierte Richtlinien: Ja
Ressourcenbasierte Richtlinien sind JSON-Richtliniendokumente, die Sie an eine Ressource anfügen. Beispiele für ressourcenbasierte Richtlinien sind IAM-Rollen-Vertrauensrichtlinien und Amazon-S3-Bucket-Richtlinien. In Services, die ressourcenbasierte Richtlinien unterstützen, können Service-Administratoren sie verwenden, um den Zugriff auf eine bestimmte Ressource zu steuern. Für die Ressource, an welche die Richtlinie angehängt ist, legt die Richtlinie fest, welche Aktionen ein bestimmter Prinzipal unter welchen Bedingungen für diese Ressource ausführen kann. Sie müssen in einer ressourcenbasierten Richtlinie einen Prinzipal angeben. Prinzipale können Konten, Benutzer, Rollen, Verbundbenutzer oder AWS-Services umfassen.
Um kontoübergreifenden Zugriff zu ermöglichen, können Sie ein gesamtes Konto oder IAM-Entitäten in einem anderen Konto als Prinzipal in einer ressourcenbasierten Richtlinie angeben. Weitere Informationen finden Sie unter Kontoübergreifender Ressourcenzugriff in IAM im IAM-Benutzerhandbuch.
Der Amazon-S3-Service unterstützt Bucket-Richtlinien, Zugangspunktrichtlinien und Zugriffsgewährungen:
-
Bucket-Richtlinien sind ressourcenbasierte Richtlinien, die einem Amazon-S3-Bucket angefügt sind. Eine Bucket-Richtlinie definiert, welche Prinzipale Aktionen auf dem Bucket ausführen dürfen.
-
Zugangspunktrichtlinien sind ressourcenbasierte Richtlinien, die in Verbindung mit der zugrunde liegenden Bucket-Richtlinie bewertet werden.
-
Zugriffsgewährungen sind ein vereinfachtes Modell für die Definition von Zugriffsberechtigungen für Daten in Amazon S3 nach Präfix, Bucket oder Objekt. Informationen zu S3 Access Grants finden Sie unter Verwalten des Zugriffs mit S3-Zugriffsberechtigungen.
Prinzipale für Bucket-Richtlinien
Das Principal-Element gibt an, welchem Benutzer, Konto, Dienst oder welcher anderen Entität der Zugriff auf eine Ressource gewährt oder verweigert wird. Die folgenden sind Beispiele legen den fes Principal. Weitere Informationen finden Sie unter Prinzipal im IAM-Benutzerhandbuch.
Erteilen von Berechtigungen für ein AWS-Konto
Um einem AWS-Konto Berechtigungen zu erteilen, identifizieren Sie das Konto im folgenden Format.
"AWS":"account-ARN"
Im Folgenden sind einige Beispiele aufgeführt.
"Principal":{"AWS":"arn:aws:iam::AccountIDWithoutHyphens:root"}
"Principal":{"AWS":["arn:aws:iam::AccountID1WithoutHyphens:root","arn:aws:iam::AccountID2WithoutHyphens:root"]}
Anmerkung
In den obigen Beispielen werden dem Root-Benutzer Berechtigungen erteilt, der diese auf die Kontoebene delegiert. IAM-Richtlinien sind jedoch weiterhin für die spezifischen Rollen und Benutzer des Kontos erforderlich.
Erteilen von Berechtigungen für einen IAM-Benutzer
Um einem IAM-Benutzer in Ihrem Konto eine Berechtigung zu erteilen, müssen Sie ein "AWS":"-Name-Wert-Paar bereitstellen.user-ARN"
"Principal":{"AWS":"arn:aws:iam::account-number-without-hyphens:user/username"}
Ausführliche Beispiele, die schrittweise Anweisungen enthalten, finden Sie unter Beispiel 1: Bucket-Eigentümer erteilt seinen Benutzern Bucket-Berechtigungen und Beispiel 3: Bucket-Eigentümer, der Berechtigungen für Objekte erteilt, die ihm nicht gehören.
Anmerkung
Wenn eine IAM-Identität gelöscht wird, nachdem Sie Ihre Bucket-Richtlinie aktualisiert haben, zeigt die Bucket-Richtlinie anstelle eines ARN eine eindeutige Kennung im Hauptelement an. Diese eindeutigen IDs werden niemals wiederverwendet, sodass Sie Prinzipale mit eindeutigen Identifikatoren ohne Risiko aus all Ihren Versicherungserklärungen entfernen können. Weitere Informationen zu eindeutigen Kennungen finden Sie unter IAM-Kennungen im IAM-Benutzerhandbuch.
Erteilen anonymer Berechtigungen
Warnung
Seien Sie vorsichtig, wenn Sie anonymen Zugriff auf Ihren Amazon-S3-Bucket erteilen. Wenn Sie anonymen Zugriff gewähren, kann jeder auf der ganzen Welt auf Ihren Bucket zugreifen. Wir empfehlen dringend, nie einen anonymen Schreibzugriff auf Ihren S3-Bucket zu gewähren.
Um jedem Benutzer Berechtigung zu erteilen, auch als anonymer Zugriff bezeichnet, legen Sie den Platzhalter ("*") auf den Wert Principal fest. Wenn Sie beispielsweise ihren Bucket als Website konfigurieren, müssen Sie alle Objekte im Bucket öffentlich zugänglich machen.
"Principal":"*"
"Principal":{"AWS":"*"}
Benutzen von "Principal": "*" mit einem Allow-Effekt in einer ressourcenbasierten Richtlinie ermöglicht es jedem, auch wenn er nicht bei AWS angemeldet ist, auf Ihre Ressource zuzugreifen.
Das Verwenden von "Principal" : { "AWS" : "*" } mit einem Allow-Effekt in einer ressourcenbasierten Richtlinie ermöglicht jeden Stammbenutzer, IAM-Benutzer, angenommener Rollensitzung oder Verbundbenutzer in einem beliebigen Konto in der selben Partition, auf Ihre Ressource zuzugreifen.
Für anonyme Benutzer sind diese beiden Methoden gleichwertig. Weitere Informationen finden Sie unter Alle Prinzipale im IAM-Benutzerhandbuch.
Sie können keinen Platzhalter verwenden, um einen Teil eines Namens oder eines ARNs zu ersetzen.
Wichtig
In AWS-Zugriffsrichtlinien verhalten sich die Prinzipale "*" und {"AWS": "*"} verhalten sich identisch.
Ressourcenberechtigungen beschränken
Sie können die Ressourcenrichtlinie auch verwenden, um den Zugriff auf Ressourcen einzuschränken, die sonst für IAM-Prinzipale verfügbar wären. Verwenden Sie eine Deny-Anweisung, um den Zugriff zu verhindern.
Das folgende Beispiel blockiert den Zugriff, wenn kein sicheres Transportprotokoll verwendet wird:
Es hat sich für diese Richtlinie bewährt, "Principal": "*" so zu verwenden, dass diese Einschränkung für alle gilt, anstatt zu versuchen, mit dieser Methode nur bestimmten Konten oder Prinzipalen den Zugriff zu verweigern.
Erfordern des Zugriffs über CloudFront-URLs
Sie können verlangen, dass Ihre Benutzer nur auf Ihre Amazon-S3-Inhalte zugreifen, indem Sie CloudFront-URLs anstelle von Amazon-S3-URLs verwenden. Erstellen Sie hierfür eine CloudFront-Origin-Zugriffssteuerung (OAC) Ändern Sie anschließend die Berechtigungen für Ihre S3-Daten. In Ihrer Bucket-Richtlinie können Sie CloudFront wie folgt als Prinzipal festlegen:
"Principal":{"Service":"cloudfront.amazonaws.com"}
Verwenden Sie ein Condition-Element in der Richtlinie, um CloudFront nur dann Zugriff auf den Bucket zu ermöglichen, wenn die Anforderung im Namen der CloudFront-Verteilung erfolgt, die den S3-Ursprung enthält.
"Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/CloudFront-distribution-ID" } }
Weitere Informationen darüber, wie der S3-Zugriff über CloudFront-URLs erzwungen wird, finden Sie unter Einschränken des Zugriffs auf einen Amazon-Simple-Storage-Service-Ursprung im Amazon-CloudFront-Entwicklerhandbuch. Weitere Informationen zu den Sicherheits- und Datenschutzvorteilen der Verwendung von Amazon CloudFront finden Sie unter Konfigurieren des sicheren Zugriffs und Einschränken des Zugriffs auf Inhalte.
Beispiele für ressourcenbasierte Richtlinien in Amazon S3
Beispiele für Amazon S3-Bucket-Richtlinien finden Sie unter Bucket-Richtlinien für Amazon S3.
Richtlinienbeispiele für Zugangspunkte finden Sie unter Konfigurieren von IAM-Richtlinien für die Verwendung von Zugriffspunkten.
Richtlinienaktionen für Amazon S3
Unterstützt Richtlinienaktionen: Ja
Administratoren können mit AWS-JSON-Richtlinien festlegen, welche Personen zum Zugriff auf welche Ressourcen berechtigt sind. Das heißt, welcher Prinzipal Aktionen für welche Ressourcen und unter welchen Bedingungen ausführen kann.
Das Element Action einer JSON-Richtlinie beschreibt die Aktionen, mit denen Sie den Zugriff in einer Richtlinie zulassen oder verweigern können. Schließen Sie Aktionen in eine Richtlinie ein, um Berechtigungen zur Durchführung der zugeordneten Operation zu erteilen.
Nachstehend sehen Sie verschiedene Arten von Zuordnungsbeziehungen zwischen S3-API-Operationen und den erforderlichen Richtlinienaktionen.
Eins-zu-Eins-Zuordnung mit demselben Namen. Um beispielsweise die
PutBucketPolicy-API-Operation zu verwenden, ist dies3:PutBucketPolicy-Richtlinienaktion erforderlich.Eins-zu-Eins-Zuordnung mit unterschiedlichen Namen. Um beispielsweise die
ListObjectsV2-API-Operation zu verwenden, ist dies3:ListBucket-Richtlinienaktion erforderlich.Eins-zu-viele-Zuordnung. Um beispielsweise die
HeadObject-API-Operation verwenden zu können, ists3:GetObjecterforderlich. Wenn Sie S3 Object Lock verwenden und den Status der rechtlichen Aufbewahrung oder die Aufbewahrungseinstellungen eines Objekts abrufen möchten, sind außerdem die entsprechendens3:GetObjectLegalHold- oders3:GetObjectRetention-Richtlinienaktionen erforderlich, bevor Sie dieHeadObject-API-Operation verwenden können.Viele-zu-eins-Zuordnung. Um beispielsweise die
ListObjectsV2- oderHeadBucket-API-Operationen zu verwenden, ist dies3:ListBucket-Richtlinienaktion erforderlich.
Eine Liste der Amazon-S3-Aktionen, die in Richtlinien verwendet werden können, finden Sie unter Von Amazon S3 definierte Aktionen in der Service-Authorization-Referenz. Eine vollständige Liste von Amazon-S3-API-Operationen finden Sie unter Amazon-S3-API-Aktionen in der API-Referenz zum Amazon Simple Storage Service.
Weitere Informationen zu den Berechtigungen für S3-API-Operationen nach S3-Ressourcentypen finden Sie unter Erforderliche Berechtigungen für Amazon-S3-API-Operationen.
Richtlinienaktionen in Amazon S3 verwenden das folgende Präfix vor der Aktion:
s3
Um mehrere Aktionen in einer einzigen Anweisung anzugeben, trennen Sie sie mit Kommata:
"Action": [ "s3:action1", "s3:action2" ]
Bucket-Operationen
Bucket-Operationen sind S3-API-Operationen, die auf dem Bucket-Ressourcentyp ausgeführt werden. Beispiel: CreateBucket, ListObjectsV2 und PutBucketPolicy. Für S3-Richtlinienaktionen für Bucket-Operationen muss das Resource-Element in Bucket-Richtlinien oder identitätsbasierten IAM-Richtlinien die Amazon Resource Name (ARN)-Kennung vom S3-Bucket-Typ im folgenden Beispielformat sein.
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
Die folgende Bucket-Richtlinie gewährt dem Benutzer mit dem Konto Akua die 12345678901s3:ListBucket-Berechtigung, die ListObjectsV2-API-Operation durchzuführen und Objekte in einem S3-Bucket aufzulisten.
Bucket-Operationen in Richtlinien für Zugangspunkts für Allzweck-Buckets
Die in einer Zugangspunktrichtlinie für Allzweck-Buckets erteilten Berechtigungen sind nur dann wirksam, wenn der zugrunde liegende Bucket dieselben Berechtigungen zulässt. Wenn Sie S3 Access Points verwenden, müssen Sie die Zugriffssteuerung vom Bucket an den Zugangspunkt delegieren oder die gleichen Berechtigungen in den Zugangspunktrichtlinien zur Richtlinie des zugrunde liegenden Buckets hinzufügen. Weitere Informationen finden Sie unter Konfigurieren von IAM-Richtlinien für die Verwendung von Zugriffspunkten. In Zugangspunktrichtlinien erfordern S3-Richtlinienaktionen für Bucket-Operationen, dass Sie den Zugangspunkt-ARN für das Resource-Element im folgenden Format verwenden.
"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/example-access-point"
Die folgende Zugangspunktrichtlinie gewährt dem Benutzer mit dem Konto Akua die 12345678901s3:ListBucket-Berechtigung, die ListObjectsV2-API-Operation über den S3-Zugangspunkt namens durchzuführen. Diese Berechtigung ermöglicht es example-access-point, die Objekte in dem Bucket aufzulisten, der mit Akua verknüpft ist. example-access-point
Anmerkung
Nicht alle Bucket-Vorgänge werden von Zugangspunkten für Allzweck-Buckets unterstützt. Weitere Informationen finden Sie unter Zugangspunkt-Kompatibilität mit S3-Vorgänge.
Bucket-Operationen in Richtlinien für Zugangspunkte für Verzeichnis-Buckets
Berechtigungen, die in einer Richtlinie für Zugangspunkte für Verzeichnis-Buckets gewährt werden, sind nur dann wirksam, wenn der zugrunde liegende Bucket die gleichen Berechtigungen zulässt. Wenn Sie S3 Access Points verwenden, müssen Sie die Zugriffssteuerung vom Bucket an den Zugangspunkt delegieren oder die gleichen Berechtigungen in den Zugangspunktrichtlinien zur Richtlinie des zugrunde liegenden Buckets hinzufügen. Weitere Informationen finden Sie unter Konfigurieren von IAM-Richtlinien für die Verwendung von Zugangspunkten für Verzeichnis-Buckets. In Zugangspunktrichtlinien erfordern S3-Richtlinienaktionen für Bucket-Operationen, dass Sie den Zugangspunkt-ARN für das Resource-Element im folgenden Format verwenden.
"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/example-access-point--usw2-az1--xa-s3"
Die folgende Zugangspunktrichtlinie gewährt dem Benutzer mit dem Konto Akua die 12345678901s3:ListBucket-Berechtigung, die ListObjectsV2-API-Operation über den Zugangspunkt namens durchzuführen. Diese Berechtigung ermöglicht es example-access-point--usw2-az1--xa-s3, die Objekte in dem Bucket aufzulisten, der mit Akua verknüpft ist. example-access-point--usw2-az1--xa-s3
Anmerkung
Nicht alle Bucket-Vorgänge werden von den Zugangspunkten für Verzeichnis-Bucket unterstützt. Weitere Informationen finden Sie unter Objektoperationen für Zugangspunkte für Verzeichnis-Buckets.
Objektoperationen
Objektoperationen sind S3-API-Operationen, die auf dem Objektressourcentyp ausgeführt werden. Beispiel: GetObject, PutObject und DeleteObject. S3-Richtlinienaktionen für Objektoperationen erfordern, dass das Resource-Element in Richtlinien der S3-Objekt-ARN in den folgenden Beispielformaten ist.
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/*"
Anmerkung
Der Objekt-ARN muss nach dem Bucket-Namen einen Schrägstrich enthalten, wie in den vorherigen Beispielen gezeigt.
Die folgende Bucket-Richtlinie erteilt dem Benutzer mit dem Konto Akua die 12345678901s3:PutObject-Berechtigung. Diese Berechtigung ermöglicht es , mithilfe der PutObject-API-Operation Objekte in den S3-Bucket namens Akua hochzuladen.amzn-s3-demo-bucket
Objektoperationen in Zugangspunktrichtlinien
Wenn Sie S3 Access Points verwenden, um den Zugriff auf Objektoperationen zu steuern, können Sie Zugangspunktrichtlinien verwenden. Wenn Sie Zugangspunktrichtlinien verwenden, erfordern S3-Richtlinienaktionen für Objektoperationen, dass Sie den Zugangspunkt-ARN für das Resource-Element im folgenden Format verwenden: arn:aws:s3:. Für Objektoperationen, die Zugangspunkte verwenden, müssen Sie den region:account-id:accesspoint/access-point-name/object/resource/object/-Wert nach dem vollständigen Zugangspunkt-ARN im Resource-Element einfügen. Hier sind einige Beispiele.
"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/example-access-point/object/*"
"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/example-access-point/object/prefix/*"
Die folgende Zugangspunktrichtlinie erteilt dem Benutzer mit dem Konto Akua die 12345678901s3:GetObject-Berechtigung. Diese Berechtigung ermöglicht die Ausführung der GetObject-API-Operation über den Zugangspunkt mit dem Namen Akua auf allen Objekten im Bucket, der mit dem Zugangspunkt verknüpft ist. example-access-point
Anmerkung
Nicht alle Objektoperationen werden von Zugangspunkten unterstützt. Weitere Informationen finden Sie unter Zugangspunkt-Kompatibilität mit S3-Vorgänge.
Objektoperationen in Richtlinien für Zugangspunkte für Verzeichnis-Buckets
Wenn Sie Zugangspunkte für Verzeichnis-Buckets verwenden, um den Zugriff auf Objektoperationen zu steuern, können Sie Zugriffsrichtlinien verwenden. Wenn Sie Zugangspunktrichtlinien verwenden, erfordern S3-Richtlinienaktionen für Objektoperationen, dass Sie den Zugangspunkt-ARN für das Resource-Element im folgenden Format verwenden: arn:aws:s3:. Für Objektoperationen, die Zugangspunkte verwenden, müssen Sie den region:account-id:accesspoint/access-point-name/object/resource/object/-Wert nach dem vollständigen Zugangspunkt-ARN im Resource-Element einfügen. Hier sind einige Beispiele.
"Resource": "arn:aws:s3express:us-west-2:123456789012:accesspoint/example-access-point--usw2-az1--xa-s3/object/*"
"Resource": "arn:aws:s3express:us-west-2:123456789012:accesspoint/example-access-point--usw2-az1--xa-s3/object/prefix/*"
Die folgende Zugangspunktrichtlinie erteilt dem Benutzer mit dem Konto Akua die 12345678901s3:GetObject-Berechtigung. Diese Berechtigung ermöglicht die Ausführung der GetObject-API-Operation über den Zugangspunkt mit dem Namen Akua auf allen Objekten im Bucket, der mit dem Zugangspunkt verknüpft ist. example-access-point--usw2-az1--xa-s3
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAkuato get objects through access point", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901:user/Akua" }, "Action": "s3express:CreateSession","s3:GetObject" "Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/example-access-point--usw2-az1--xa-s3/object/*" } ] }
Anmerkung
Nicht alle Objektoperationen werden von Zugangspunkten für Verzeichnis-Buckets unterstützt. Weitere Informationen finden Sie unter Objektoperationen für Zugangspunkte für Verzeichnis-Buckets.
Zugangspunkt für Allzweck-Bucket-Operationen
Zugangspunktoperationen sind S3-API-Operationen, die auf dem accesspoint-Ressourcentyp ausgeführt werden. Beispiel: CreateAccessPoint, DeleteAccessPoint und GetAccessPointPolicy. S3-Richtlinienaktionen für Zugangspunktoperationen können nur in identitätsbasierten IAM-Richtlinien verwendet werden, nicht in Bucket-Richtlinien oder Zugangspunktrichtlinien. Für Zugangspunktoperationen muss das Resource-Element der Zugangspunkt-ARN das folgende Beispielformat haben.
"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/example-access-point"
Die folgende identitätsbasierte IAM-Richtlinie gewährt die s3:GetAccessPointPolicy-Berechtigung, die GetAccessPointPolicy-API-Operation auf dem S3-Zugriffspunkt namens auszuführen.example-access-point
Informationen zur Steuerung des Zugriffs auf Bucket-Operationen mithilfe von Zugangspunkten finden Sie unter Bucket-Operationen in Richtlinien für Zugangspunkts für Allzweck-Buckets. Informationen zur Steuerung des Zugriffs auf Objektoperationen finden Sie unter Objektoperationen in Zugangspunktrichtlinien. Weitere Informationen über das Konfigurieren von Zugangspunktrichtlinien finden Sie unter Konfigurieren von IAM-Richtlinien für die Verwendung von Zugriffspunkten.
Zugangspunkt für Operationen mit Verzeichnis-Buckets
Zugangspunkt für Verzeichnis-Buckets Operationen sind S3-API-Operationen, die mit dem Ressourcentyp accesspoint arbeiten. Beispiel: CreateAccessPoint, DeleteAccessPoint und GetAccessPointPolicy. S3-Richtlinienaktionen für Zugangspunktoperationen können nur in identitätsbasierten IAM-Richtlinien verwendet werden, nicht in Bucket-Richtlinien oder Zugangspunktrichtlinien. Zugangspunkte für Operationen mit Verzeichnis-Buckets erfordern das Element Resource als Zugangspunkt-ARN im folgenden Beispielformat.
"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/example-access-point--usw2-az1--xa-s3"
Die folgende identitätsbasierte IAM-Richtlinie gewährt die s3express:GetAccessPointPolicy-Berechtigung, die GetAccessPointPolicy-API-Operation auf dem Zugangspunkt namens auszuführen.example-access-point--usw2-az1--xa-s3
Die folgende identitätsbasierte IAM-Richtlinie gewährt die s3express:CreateAccessPoint Berechtigung, Zugangspunkte für Verzeichnis-Buckets zu erstellen.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Grant CreateAccessPoint.", "Principal": "*", "Action": "s3express:CreateSession", "s3express:CreateAccessPoint""Effect": "Allow", "Resource": "*" } ] }
Die folgende identitätsbasierte IAM-Richtlinie gewährt die s3express:PutAccessPointScope Genehmigung, einen Zugangspunktbereich für Zugangspunkte für Verzeichnis-Buckets zu erstellen.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Grant PutAccessPointScope", "Principal": "*", "Action": "s3express:CreateSession", "s3express:CreateAccessPoint", "S3Express:PutAccessPointScope""Effect": "Allow", "Resource": "*", } ] }
Wenn Sie Zugangspunkte für Verzeichnis-Buckets verwenden, um den Zugriff auf Bucket-Operationen zu steuern, siehe Bucket-Operationen in Richtlinien für Zugangspunkte für Verzeichnis-Buckets; um den Zugriff auf Objektoperationen zu steuern, siehe Objektoperationen in Richtlinien für Zugangspunkte für Verzeichnis-Buckets. Weitere Informationen über die Konfiguration von Zugangspunkten für Verzeichnis-Buckets-Richtlinien finden Sie unter Konfigurieren von IAM-Richtlinien für die Verwendung von Zugangspunkten für Verzeichnis-Buckets.
Object Lambda Access Point – Operationen
Mit S3 Object Lambda können Sie GET-, LIST- und HEAD-Anforderungen von Amazon S3 eigenen Code hinzufügen, um Daten zu ändern und zu verarbeiten, wenn sie an eine Anwendung zurückgegeben werden. Sie können Anfragen über einen Object Lambda Access Point stellen, der auf die gleiche Weise funktioniert wie Anfragen über andere Zugangspunkte. Weitere Informationen finden Sie unter Transformieren von Objekten mit S3 Object Lambda.
Weitere Informationen zur Konfiguration von Richtlinien für Operationen mit Object Lambda Access Points finden Sie unter Konfigurieren von IAM-Richtlinien für Object Lambda Access Points.
Multi-Region Access Point – Operationen
Ein Multi-Region Access Point stellt einen globalen Endpunkt bereit, mit dem Anwendungen Anforderungen von S3-Buckets ausführen können, die sich in mehreren AWS-Region-Regionen befinden. Sie können einen Multi-Region Access Point verwenden, um Anwendungen für mehrere Regionen mit der gleichen Architektur zu erstellen, die in einer einzelnen Region verwendet wird, und diese Anwendungen dann überall auf der Welt ausführen. Weitere Informationen finden Sie unter Verwalten von Multi-Region-Traffic mit Multi-Region Access Points.
Weitere Informationen zur Konfiguration von Richtlinien für Operationen mit Multi-Region Access Points finden Sie unter Beispielrichtlinien für Multi-Region Access Points.
Batch-Auftragsoperationen
(Batch Operations)-Auftragsoperationen sind S3-API-Operationen, die auf dem Auftragsressourcentyp ausgeführt werden. Beispiel: DescribeJob und CreateJob. S3-Richtlinienaktionen für Auftragsoperationen können nur in identitätsbasierten IAM-Richtlinien verwendet werden, nicht in Bucket-Richtlinien. Für Auftragsoperationen muss das Resource-Element in identitätsbasierten IAM-Richtlinien außerdem der job-ARN das folgende Beispielformat haben.
"Resource": "arn:aws:s3:*:123456789012:job/*"
Die folgende identitätsbasierte IAM-Richtlinie gewährt die s3:DescribeJob-Berechtigung zum Ausführen der DescribeJob-API-Operation für den S3-Batch-Operations-Auftrag namens .example-job
S3 Storage Lens – Konfigurationsoperationen
Weitere Informationen zur Konfiguration von S3-Storage-Lens-Konfigurationsoperationen finden Sie unter Festlegen der Berechtigungen für Amazon S3 Storage Lens.
Kontooperationen
Kontovorgänge sind S3-API-Operationen, die auf Kontoebene ausgeführt werden. Zum Beispiel GetPublicAccessBlock (für ein Konto). Konto ist kein von Amazon S3 definierter Ressourcentyp. S3-Richtlinienaktionen für Kontooperationen können nur in identitätsbasierten IAM-Richtlinien verwendet werden, nicht in Bucket-Richtlinien. Außerdem erfordern Kontooperationen, dass das Resource-Element in IAM-identitätsbasierten Richtlinien "*" ist
Die folgende identitätsbasierte IAM-Richtlinie gewährt die s3:GetAccountPublicAccessBlock-Berechtigung, die GetPublicAccessBlock-API-Operation auf Kontoebene durchzuführen und die Einstellungen für das Blockieren des öffentlichen Zugriffs auf Kontoebene abzurufen.
Richtlinienbeispiele für Amazon S3
-
Beispiele für identitätsbasierte Amazon-S3-Richtlinien finden Sie unter Identitätsbasierte Richtlinien für Amazon S3.
-
Beispiele für ressourcenbasierte Amazon-S3-Richtlinien finden Sie unter Bucket-Richtlinien für Amazon S3 und Konfigurieren von IAM-Richtlinien für die Verwendung von Zugriffspunkten.
Richtlinienressourcen für Amazon S3
Unterstützt Richtlinienressourcen: Ja
Administratoren können mit AWS-JSON-Richtlinien festlegen, welche Personen zum Zugriff auf welche Ressourcen berechtigt sind. Das heißt, welcher Prinzipal Aktionen für welche Ressourcen und unter welchen Bedingungen ausführen kann.
Das JSON-Richtlinienelement Resource gibt die Objekte an, auf welche die Aktion angewendet wird. Als bewährte Methode geben Sie eine Ressource mit dem zugehörigen Amazon-Ressourcennamen (ARN) an. Verwenden Sie für Aktionen, die keine Berechtigungen auf Ressourcenebene unterstützen, einen Platzhalter (*), um anzugeben, dass die Anweisung für alle Ressourcen gilt.
"Resource": "*"
Einige API-Aktionen von Amazon S3 unterstützen mehrere Ressourcen. Beispielsweise greift s3:GetObject auf und example-resource-1 zu, sodass ein Prinzipal Berechtigungen für den Zugriff auf beide Ressourcen haben muss. Um mehrere Ressourcen in einer einzigen Anweisung anzugeben, trennen Sie die ARNs durch Kommas, wie im folgenden Beispiel gezeigt. example-resource-2
"Resource": [ "example-resource-1", "example-resource-2"
Ressourcen in Amazon S3 sind Buckets, Objekte, Zugangspunkte oder Aufträge. Verwenden Sie in einer Richtlinie den Amazon-Ressourcennamen (ARN) des Buckets, Objekts, Zugangspunkts oder Auftrags, um die Ressource zu identifizieren.
Eine Liste von Amazon-S3-Ressourcentypen und deren ARNs finden Sie unter Von Amazon S3 definierte Ressourcen in der Service-Authorization-Referenz. Informationen zu den Aktionen, mit denen Sie den ARN einzelner Ressourcen angeben können, finden Sie unter Von Amazon S3 definierte Aktionen.
Weitere Informationen zu den Berechtigungen für S3-API-Operationen nach S3-Ressourcentypen finden Sie unter Erforderliche Berechtigungen für Amazon-S3-API-Operationen.
Platzhalterzeichen in Ressourcen-ARNs
Sie können Platzhalterzeichen als Teil des Ressourcen-ARN verwenden. Sie können Platzhalterzeichen (* und ?) in einem beliebigen ARN-Segment (durch Doppelpunkte getrennte Teile) verwenden. Ein Sternchen (*) steht für kein Zeichen oder eine beliebige Kombination von mehreren Zeichen und ein Fragezeichen (?) entspricht einem beliebigen einzelnen Zeichen. Sie können mehrere *- oder ?-Zeichen in jedem Segment verwenden. Ein Platzhalterzeichen kann sich jedoch nicht über mehrere Segmente erstrecken.
-
Der folgende ARN verwendet das Platzhalterzeichen
*im Teilrelative-IDdes ARN, um alle Objekte im Bucketanzugeben.amzn-s3-demo-bucketarn:aws:s3:::amzn-s3-demo-bucket/* -
Der folgende ARN verwendet
*, um alle S3-Buckets und -Objekte anzugeben.arn:aws:s3:::* -
Der folgende ARN verwendet beide Platzhalterzeichen,
*und?, im Teilrelative-ID. Dieser ARN identifiziert alle Objekte in Buckets wie,amzn-s3-demo-example1bucket,amzn-s3-demo-example2bucketusw.amzn-s3-demo-example3bucketarn:aws:s3:::amzn-s3-demo-example?bucket/*
Richtlinienvariablen für Ressourcen-ARNs
Sie können Richtlinienvariablen in Amazon-S3-ARNs verwenden. Bei der Richtlinienauswertung werden diese vordefinierten Variablen durch ihre entsprechenden Werte ersetzt. Angenommen, Sie organisieren Ihren Bucket als eine Sammlung von Ordnern mit je einem Ordner für jeden Ihrer Benutzer. Der Ordnername entspricht dabei dem Benutzernamen. Um den Benutzern Berechtigungen für ihre Ordner zu erteilen, können Sie eine Richtlinienvariable im Ressourcen-ARN angeben:
arn:aws:s3:::bucket_name/developers/${aws:username}/
Zur Laufzeit wird bei der Auswertung der Richtlinie die Variable ${aws:username} im Ressourcen-ARN durch den Benutzernamen der Person ersetzt, die die Anforderung stellt.
Richtlinienbeispiele für Amazon S3
-
Beispiele für identitätsbasierte Amazon-S3-Richtlinien finden Sie unter Identitätsbasierte Richtlinien für Amazon S3.
-
Beispiele für ressourcenbasierte Amazon-S3-Richtlinien finden Sie unter Bucket-Richtlinien für Amazon S3 und Konfigurieren von IAM-Richtlinien für die Verwendung von Zugriffspunkten.
Richtlinienbedingungsschlüssel für Amazon S3
Unterstützt servicespezifische Richtlinienbedingungsschlüssel: Ja
Administratoren können mit AWS-JSON-Richtlinien festlegen, welche Personen zum Zugriff auf welche Ressourcen berechtigt sind. Das heißt, welcher Prinzipal Aktionen für welche Ressourcen und unter welchen Bedingungen ausführen kann.
Das Element Condition gibt an, wann Anweisungen auf der Grundlage definierter Kriterien ausgeführt werden. Sie können bedingte Ausdrücke erstellen, die Bedingungsoperatoren verwenden, z. B. ist gleich oder kleiner als, damit die Bedingung in der Richtlinie mit Werten in der Anforderung übereinstimmt. Eine Liste aller globalen AWS-Bedingungsschlüssel finden Sie unter Globale AWS-Bedingungskontextschlüssel im IAM-Benutzerhandbuch.
Jeder Amazon S3-Bedingungsschlüssel entspricht dem gleichen Namen des Anfrage-Headers, der von der API erlaubt ist, auf der die Bedingung festgelegt werden kann. Amazon-S3-spezifische Bedingungsschlüssel bestimmen das Verhalten der Anforderungs-Header mit demselben Namen. Beispielsweise definiert der Bedingungsschlüssel s3:VersionId, der verwendet wird, um bedingte Berechtigungen für die s3:GetObjectVersion-Berechtigung zu gewähren, das Verhalten des versionId-Abfrageparameters, den Sie in einer GET-Object-Anforderung festlegen.
Eine Liste von Amazon-S3-Bedingungsschlüsseln finden Sie unter Bedingungsschlüssel für Amazon S3 in der Service-Authorization-Referenz. Informationen dazu, für welche Aktionen und Ressourcen Sie einen Bedingungsschlüssel verwenden können, finden Sie unter Von Amazon S3 definierte Aktionen.
Beispiel: Beschränken von Objekt-Uploads auf Objekte mit einer bestimmten Speicherklasse
Angenommen, Konto A, dargestellt durch Konto-ID , besitzt einen Bucket. Der Administrator von Konto A möchte 123456789012, einen Benutzer in Konto A, so einschränken, dass Dave nur dann Objekte in das Bucket hochladen kann, wenn das Objekt in der Speicherklasse DaveSTANDARD_IA gespeichert ist. Um das Hochladen von Objekten auf eine bestimmte Speicherklasse einzuschränken, kann der Administrator von Konto A den Bedingungsschlüssel s3:x-amz-storage-class verwenden wie in der folgenden Bucket-Beispielrichtlinie gezeigt.
Im Beispiel gibt der Block Condition die Bedingung StringEquals an, die auf das angegebene Schlüssel-Wert-Paar angewendet wird, "s3:x-amz-acl":["public-read"]. Es gibt einen Satz vordefinierter Schlüssel, die Sie zum Ausdruck einer Bedingung verwenden können. Das Beispiel verwendet den Bedingungsschlüssel s3:x-amz-acl. Diese Bedingung erfordert, dass der Benutzer in jeder PutObject-Anforderung den Header x-amz-acl mit dem Wert public-read angibt.
Richtlinienbeispiele für Amazon S3
-
Beispiele für identitätsbasierte Amazon-S3-Richtlinien finden Sie unter Identitätsbasierte Richtlinien für Amazon S3.
-
Beispiele für ressourcenbasierte Amazon-S3-Richtlinien finden Sie unter Bucket-Richtlinien für Amazon S3 und Konfigurieren von IAM-Richtlinien für die Verwendung von Zugriffspunkten.
ACLs in Amazon S3
Unterstützt ACLs: Ja
In Amazon S3 steuern Zugriffssteuerungslisten (ACLs), welche AWS-Konten Berechtigungen für den Zugriff auf eine Ressource haben. ACLs sind ähnlich wie ressourcenbasierte Richtlinien, verwenden jedoch nicht das JSON-Richtliniendokumentformat.
Wichtig
Die meisten modernen Anwendungsfälle in Amazon S3 erfordern keine ACLs mehr.
Informationen über das Verwenden von ACLs zum Steuern von Zugriff in Amazon S3 finden Sie unter Zugriffsverwaltung mit ACLs.
ABAC mit Amazon S3
Unterstützt ABAC (Tags in Richtlinien): Teilweise
Die attributbasierte Zugriffskontrolle (ABAC) ist eine Autorisierungsstrategie, bei der Berechtigungen basierend auf Attributen, auch als Tags bezeichnet, definiert werden. Sie können Tags an IAM-Entitäten und AWS-Ressourcen anhängen und dann ABAC-Richtlinien entwerfen, die Operationen zulassen, wenn das Tag des Prinzipals mit dem Tag der Ressource übereinstimmt.
Um den Zugriff auf der Grundlage von Tags zu steuern, geben Sie im Bedingungselement einer Richtlinie Tag-Informationen an, indem Sie die Schlüssel aws:ResourceTag/, key-nameaws:RequestTag/, oder Bedingung key-nameaws:TagKeys verwenden.
Wenn ein Service alle drei Bedingungsschlüssel für jeden Ressourcentyp unterstützt, lautet der Wert für den Service Ja. Wenn ein Service alle drei Bedingungsschlüssel für nur einige Ressourcentypen unterstützt, lautet der Wert Teilweise.
Weitere Informationen zu ABAC finden Sie unter Definieren von Berechtigungen mit ABAC-Autorisierung im IAM-Benutzerhandbuch. Um ein Tutorial mit Schritten zur Einstellung von ABAC anzuzeigen, siehe Attributbasierte Zugriffskontrolle (ABAC) verwenden im IAM-Benutzerhandbuch.
Informationen über Ressourcen, die ABAC in Amazon S3 unterstützen, finden Sie unter Verwendung von Tags für attributbasierte Zugriffskontrolle (ABAC).
Ein Beispiel für eine identitätsbasierte Richtlinie zur Einschränkung des Zugriffs auf S3-Batch-Operations-Aufträge auf der Grundlage von Tags finden Sie unter Steuern von Berechtigungen für Batch Operations mithilfe von Auftragsmarkierungen.
ABAC und Objekt-Tags
In ABAC-Richtlinien verwenden Objekte s3:-Tags anstelle von aws:-Tags. Um den Zugriff auf Objekte basierend auf Objekt-Tags zu steuern, geben Sie Tag-Informationen im Condition-Element einer Richtlinie unter Verwendung der folgenden Tags an:
-
s3:ExistingObjectTag/tag-key -
s3:RequestObjectTagKeys -
s3:RequestObjectTag/tag-key
Informationen zur Verwendung von Objekt-Tags zur Zugriffssteuerung, einschließlich beispielhafter Berechtigungsrichtlinien, finden Sie unter Markierungs- und Zugriffskontrollrichtlinien.
Verwenden von temporären Anmeldeinformationen mit Amazon S3
Unterstützt temporäre Anmeldeinformationen: Ja
Temporäre Anmeldeinformationen bieten kurzfristigen Zugriff auf AWS Ressourcen und werden automatisch erstellt, wenn Sie den Verbund verwenden oder die Rolle wechseln. AWS Es wird empfohlen, temporäre Anmeldeinformationen dynamisch zu generieren, anstatt langfristige Zugriffsschlüssel zu verwenden. Weitere Informationen finden Sie unter Temporäre Anmeldeinformationen in IAM und AWS-Services, die mit IAM funktionieren im IAM-Benutzerhandbuch.
Forward Access Sessions für Amazon S3
Unterstützt Forward Access Sessions (FAS): Ja
Forward access sessions (FAS) verwendet die Berechtigungen des Prinzipals, der einen AWS-Service aufruft, in Kombination mit der Anforderung an den AWS-Service, Anforderungen an nachgelagerte Services zu stellen. Einzelheiten zu den Richtlinien für FAS-Anfragen finden Sie unter Zugriffssitzungen weiterleiten.
FAS wird von Amazon S3 verwendet, um Aufrufe an AWS KMS zur Entschlüsselung eines Objekts zu stellen, wenn SSE-KMS zur Verschlüsselung verwendet wurde. Weitere Informationen finden Sie unter Verwenden serverseitiger Verschlüsselung mit AWS KMS-Schlüsseln (SSE-KMS).
S3 Access Grants verwendet auch FAS. Nachdem Sie eine Zugriffsberechtigung für Ihre S3-Daten für eine bestimmte Identität erstellt haben, fordert der Empfänger temporäre Anmeldeinformationen von S3 Access Grants an. S3 Access Grants ruft temporäre Anmeldeinformationen für den Anforderer von AWS STS ab und sendet die Anmeldeinformationen an den Anforderer. Weitere Informationen finden Sie unter Anfordern des Zugriffs auf Amazon-S3-Daten über S3 Access Grants.
Servicerollen für Amazon S3
Unterstützt Servicerollen: Ja
Eine Servicerolle ist eine IAM-Rolle, die ein Service annimmt, um Aktionen in Ihrem Namen auszuführen. Ein IAM-Administrator kann eine Servicerolle innerhalb von IAM erstellen, ändern und löschen. Weitere Informationen finden Sie unter Erstellen einer Rolle zum Delegieren von Berechtigungen an einen AWS-Service im IAM-Benutzerhandbuch.
Warnung
Das Ändern der Berechtigungen für eine Servicerolle könnte die Funktionalität von Amazon EFS beeinträchtigen. Bearbeiten Sie Servicerollen nur, wenn Amazon S3 dazu Anleitungen gibt.
Serviceverknüpfte Rollen für Amazon S3
Unterstützt serviceverknüpfte Rollen: Ja
Eine serviceverknüpfte Rolle ist eine Art von Servicerolle, die mit einem verknüpft ist AWS-Service. Der Service kann die Rolle übernehmen, um eine Aktion in Ihrem Namen auszuführen. Serviceverknüpfte Rollen werden in Ihrem AWS-Konto angezeigt und gehören zum Service. Ein IAM-Administrator kann die Berechtigungen für Service-verknüpfte Rollen anzeigen, aber nicht bearbeiten.
Amazon S3 unterstützt serviceverknüpfte Rollen für Amazon S3 Storage Lens. Details zum Erstellen oder Verwalten von serviceverknüpften Amazon-S3-Rollen finden Sie unter Verwenden von serviceverknüpften Rollen für Amazon S3 Storage Lens.
Amazon-S3-Service als Prinzipal
| Dienstname in der Richtlinie | S3-Feature | Weitere Informationen |
|---|---|---|
|
|
S3-Replikation |
|
|
|
S3-Ereignisbenachrichtigungen |
|
|
|
S3-Bestand |
|
|
|
S3 Access Grants |
|
|
|
S3 Batch Operations |
|
|
|
S3 Server Access Logging |
|
|
|
S3 Storage Lens |
Anzeigen von Amazon S3-Storage-Lens-Metriken mit einem Datenexport |