Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
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 darüber, wie Amazon S3 und andere AWS Services mit den meisten IAM-Funktionen funktionieren, finden Sie im IAM-Benutzerhandbuch unter AWS Dienste, die mit IAM funktionieren.
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. Sie können den Prinzipal nicht in einer identitätsbasierten Richtlinie angeben, da er für den Benutzer oder die Rolle gilt, dem er zugeordnet ist. 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. Zu den Prinzipalen können Konten, Benutzer, Rollen, Verbundbenutzer oder gehören. AWS-Services
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. Durch das Hinzufügen eines kontoübergreifenden Auftraggebers zu einer ressourcenbasierten Richtlinie ist nur die halbe Vertrauensbeziehung eingerichtet. Wenn sich der Prinzipal und die Ressource unterscheiden AWS-Konten, muss ein IAM-Administrator des vertrauenswürdigen Kontos auch der Prinzipalentität (Benutzer oder Rolle) die Berechtigung zum Zugriff auf die Ressource erteilen. Sie erteilen Berechtigungen, indem Sie der juristischen Stelle eine identitätsbasierte Richtlinie anfügen. Wenn jedoch eine ressourcenbasierte Richtlinie Zugriff auf einen Prinzipal in demselben Konto gewährt, ist keine zusätzliche identitätsbasierte Richtlinie erforderlich. 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 Principal
fest. Weitere Informationen finden Sie unter Prinzipal im IAM-Benutzerhandbuch.
Erteilen Sie Berechtigungen für AWS-Konto
Um einem Berechtigungen zu erteilen AWS-Konto, identifizieren Sie das Konto anhand des folgenden Formats.
"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"]}
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 mit step-by-step Anweisungen finden Sie unter Beispiel 1: Bucket-Eigentümer erteilt seinen Benutzern Bucket-Berechtigungen undBeispiel 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 Daten IDs werden niemals wiederverwendet, sodass Sie Principals mit eindeutigen Kennungen problemlos aus all Ihren Richtlinienerklä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":"*"}
Durch die Verwendung "Principal": "*"
mit Allow
Wirkung in einer ressourcenbasierten Richtlinie kann jeder, auch wenn er nicht angemeldet ist AWS, auf Ihre Ressource zugreifen.
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 Zugriffskontrollrichtlinien verhalten sich die Principals „*“ und {“AWS„: „*"} 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:
{"Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": <bucket ARN>, "Condition": { "Boolean": { "aws:SecureTransport" : "false"} } }
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.
Erfordert Zugriff über CloudFront URLs
Sie können verlangen, dass Ihre Benutzer nur auf Ihre Amazon S3-Inhalte zugreifen, indem sie Amazon S3 CloudFront URLs anstelle von Amazon S3 verwenden URLs. Erstellen Sie dazu eine CloudFront Origin Access Control (OAC). Ändern Sie anschließend die Berechtigungen für Ihre S3-Daten. In Ihrer Bucket-Richtlinie können Sie Folgendes CloudFront als Principal festlegen:
"Principal":{"Service":"cloudfront.amazonaws.com"}
Verwenden Sie ein Condition
Element in der Richtlinie, um nur dann Zugriff auf den Bucket CloudFront zu gewähren, wenn die Anfrage im Namen der CloudFront Distribution erfolgt, die den S3-Ursprung enthält.
"Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::
111122223333
:distribution/CloudFront-distribution-ID
" } }
Weitere Informationen zur Anforderung von S3-Zugriff über CloudFront URLs finden Sie unter Beschränken des Zugriffs auf einen Amazon Simple Storage Service-Ursprung im Amazon CloudFront Developer Guide. Weitere Informationen zu den Sicherheits- und Datenschutzvorteilen der Nutzung von Amazon CloudFront finden Sie unter Konfiguration des sicheren Zugriffs und Beschränkung 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 mithilfe von AWS JSON-Richtlinien angeben, wer Zugriff auf was hat. 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. Richtlinienaktionen haben normalerweise denselben Namen wie der zugehörige AWS API-Vorgang. Es gibt einige Ausnahmen, z. B. Aktionen, die nur mit Genehmigung durchgeführt werden können und für die es keinen passenden API-Vorgang gibt. Es gibt auch einige Operationen, die mehrere Aktionen in einer Richtlinie erfordern. Diese zusätzlichen Aktionen werden als abhängige Aktionen bezeichnet.
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.
One-to-one Zuordnung mit demselben Namen. Um beispielsweise die
PutBucketPolicy
-API-Operation zu verwenden, ist dies3:PutBucketPolicy
-Richtlinienaktion erforderlich.One-to-one Zuordnung mit unterschiedlichen Namen. Um beispielsweise die
ListObjectsV2
-API-Operation zu verwenden, ist dies3:ListBucket
-Richtlinienaktion erforderlich.One-to-many Kartierung. Um beispielsweise die
HeadObject
-API-Operation verwenden zu können, ists3:GetObject
erforderlich. 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.Many-to-one Kartierung. 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 Konto Akua
die 12345678901
s3:ListBucket
Erlaubnis, Folgendes auszuführen ListObjectsV2API-Betrieb und Auflisten von Objekten in einem S3-Bucket.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Akua to list objects in the bucket", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
12345678901
:user/Akua" }, "Action": [ "s3:ListBucket" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
" } ] }
Bucket-Vorgänge in Zugangspunktrichtlinien
Berechtigungen, die in einer Zugangspunktrichtlinie erteilt werden, sind nur wirksam, wenn der zugrunde liegende Bucket auch denselben Zugriff 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 Zugriffspunktrichtlinie gewährt dem Benutzer
mit Konto Akua
die 12345678901
s3:ListBucket
Erlaubnis, Folgendes auszuführen ListObjectsV2API-Betrieb über den genannten S3-Zugangspunkt
. Diese Berechtigung ermöglicht es example-access-point
, die Objekte in dem Bucket aufzulisten, der mit Akua
verknüpft ist. example-access-point
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow
Akua
to list objects in the bucket through access point", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901
:user/Akua
" }, "Action": [ "s3:ListBucket" ], "Resource": "arn:aws:s3:us-west-2
:123456789012
:accesspoint/example-access-point
" } ] }
Anmerkung
Nicht alle Bucket-Operationen werden von S3 Access Point unterstützt. Weitere Informationen finden Sie unter Zugriffspunkt-Kompatibilität mit S3-Vorgänge.
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 12345678901
s3:PutObject
-Berechtigung. Diese Erlaubnis ermöglicht
die Verwendung von PutObjectAPI-Vorgang zum Hochladen von Objekten in den genannten S3-BucketAkua
.amzn-s3-demo-bucket
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow
Akua
to upload objects", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901
:user/Akua
" }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::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 12345678901
s3:GetObject
-Berechtigung. Diese Berechtigung ermöglicht
die Ausführung von GetObjectAPI-Vorgang über den Access Point, Akua
der für alle Objekte im Bucket benannt ist, der dem Access Point zugeordnet ist. example-access-point
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow
Akua
to get objects through access point", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901
:user/Akua
" }, "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:us-west-2
:123456789012
:accesspoint/example-access-point
/object/*" } ] }
Anmerkung
Nicht alle Objektoperationen werden von Zugangspunkten unterstützt. Weitere Informationen finden Sie unter Zugriffspunkt-Kompatibilität mit S3-Vorgänge.
Zugangspunktoperationen
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
Genehmigung zur Ausführung von GetAccessPointPolicyAPI-Vorgang auf dem genannten S3-Zugriffspunkt. example-access-point
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Grant permission to retrieve the access point policy of access point
example-access-point
", "Effect": "Allow", "Action": [ "s3:GetAccessPointPolicy" ], "Resource": "arn:aws:s3:*:123456789012
:accesspoint/example-access-point
" } ] }
Informationen zur Steuerung des Zugriffs auf Bucket-Operationen mithilfe von Zugangspunkten finden Sie unter Bucket-Vorgänge in Zugangspunktrichtlinien. 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.
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
Erlaubnis, den DescribeJobAPI-Vorgang für den genannten S3 Batch Operations-Job auszuführen. example-job
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow describing the Batch operation job
example-job
", "Effect": "Allow", "Action": [ "s3:DescribeJob" ], "Resource": "arn:aws:s3:*:123456789012
:job/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 Erlaubnis, den Vorgang auf Kontoebene durchzuführen s3:GetAccountPublicAccessBlock
GetPublicAccessBlockAPI-Betrieb und Abrufen der Einstellungen für die Sperrung des öffentlichen Zugriffs auf Kontoebene.
{ "Version":"2012-10-17", "Statement":[ { "Sid":"Allow retrieving the account-level Public Access Block settings", "Effect":"Allow", "Action":[ "s3:GetAccountPublicAccessBlock" ], "Resource":[ "*" ] } ] }
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 mithilfe von AWS JSON-Richtlinien angeben, wer auf was Zugriff hat. 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. Anweisungen müssen entweder ein – Resource
oder ein NotResource
-Element enthalten. Als bewährte Methode geben Sie eine Ressource mit dem zugehörigen Amazon-Ressourcennamen (ARN) an. Sie können dies für Aktionen tun, die einen bestimmten Ressourcentyp unterstützen, der als Berechtigungen auf Ressourcenebene bezeichnet wird.
Verwenden Sie für Aktionen, die keine Berechtigungen auf Ressourcenebene unterstützen, z. B. Auflistungsoperationen, 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 sie 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 vollständige Liste der Amazon S3-Ressourcentypen und ihrer ARNs Eigenschaften finden Sie unter Von Amazon S3 definierte Ressourcen in der Service Authorization Reference. 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 der Ressource 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-ID
des ARN, um alle Objekte im Bucket
anzugeben.amzn-s3-demo-bucket
arn: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-example2bucket
usw.amzn-s3-demo-example3bucket
arn:aws:s3:::
amzn-s3-demo-example
?bucket
/*
Richtlinienvariablen für die Ressource ARNs
Sie können Richtlinienvariablen in Amazon S3 verwenden ARNs. 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 mithilfe von AWS JSON-Richtlinien angeben, wer Zugriff auf was hat. Das heißt, welcher Prinzipal kann Aktionen für welche Ressourcen und unter welchen Bedingungen ausführen.
Das Element Condition
(oder Condition
block) ermöglicht Ihnen die Angabe der Bedingungen, unter denen eine Anweisung wirksam ist. Das Element Condition
ist optional. 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.
Wenn Sie mehrere Condition
-Elemente in einer Anweisung oder mehrere Schlüssel in einem einzelnen Condition
-Element angeben, wertet AWS diese mittels einer logischen AND
-Operation aus. Wenn Sie mehrere Werte für einen einzelnen Bedingungsschlüssel angeben, AWS wertet die Bedingung mithilfe einer logischen OR
Operation aus. Alle Bedingungen müssen erfüllt werden, bevor die Berechtigungen der Anweisung gewährt werden.
Sie können auch Platzhaltervariablen verwenden, wenn Sie Bedingungen angeben. Beispielsweise können Sie einem IAM-Benutzer die Berechtigung für den Zugriff auf eine Ressource nur dann gewähren, wenn sie mit dessen IAM-Benutzernamen gekennzeichnet ist. Weitere Informationen finden Sie unter IAM-Richtlinienelemente: Variablen und Tags im IAM-Benutzerhandbuch.
AWS unterstützt globale Bedingungsschlüssel und dienstspezifische Bedingungsschlüssel. Eine Übersicht aller AWS globalen Bedingungsschlüssel finden Sie unter Kontextschlüssel für AWS globale Bedingungen 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 für Konto A möchte 123456789012
, einen Benutzer in Konto A einschränken, sodass Dave
Objekte nur in den Bucket hochladen kann, wenn das Objekt in der Dave
STANDARD_IA
-Speicherklasse 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.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
123456789012
:user/Dave
" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1
/*", "Condition": { "StringEquals": { "s3:x-amz-storage-class": [ "STANDARD_IA" ] } } } ] }
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 auf Amazon S3
Unterstützt ACLs: Ja
In Amazon S3 kontrollieren Zugriffskontrolllisten (ACLs), welche Berechtigungen für den Zugriff auf eine Ressource AWS-Konten haben. ACLs ähneln ressourcenbasierten Richtlinien, verwenden jedoch nicht das Format für JSON-Richtliniendokumente.
Wichtig
Für die meisten modernen Anwendungsfälle in Amazon S3 ist die Verwendung von nicht mehr erforderlich ACLs.
Informationen zur Verwendung ACLs zur Zugriffskontrolle in Amazon S3 finden Sie unterZugriff verwalten 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 definiert werden. In AWS werden diese Attribute als Tags bezeichnet. Sie können Tags an IAM-Entitäten (Benutzer oder Rollen) und an viele AWS Ressourcen anhängen. Das Markieren von Entitäten und Ressourcen ist der erste Schritt von ABAC. Anschließend entwerfen Sie ABAC-Richtlinien, um Operationen zuzulassen, wenn das Tag des Prinzipals mit dem Tag der Ressource übereinstimmt, auf die sie zugreifen möchten.
ABAC ist in Umgebungen hilfreich, die schnell wachsen, und unterstützt Sie in Situationen, in denen die Richtlinienverwaltung mühsam wird.
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-name
aws:RequestTag/
, oder Bedingung key-name
aws: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.
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 auf der Grundlage von Objekt-Tags zu steuern, geben Sie Tag-Informationen in der Condition Element einer Richtlinie unter Verwendung der folgenden Tags:
-
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
Einige funktionieren AWS-Services nicht, wenn Sie sich mit temporären Anmeldeinformationen anmelden. Weitere Informationen, einschließlich Informationen, die mit temporären Anmeldeinformationen AWS-Services funktionieren AWS-Services , finden Sie im IAM-Benutzerhandbuch unter Diese Option funktioniert mit IAM.
Sie verwenden temporäre Anmeldeinformationen, wenn Sie sich mit einer anderen AWS Management Console Methode als einem Benutzernamen und einem Passwort anmelden. Wenn Sie beispielsweise AWS über den Single Sign-On-Link (SSO) Ihres Unternehmens darauf zugreifen, werden bei diesem Vorgang automatisch temporäre Anmeldeinformationen erstellt. Sie erstellen auch automatisch temporäre Anmeldeinformationen, wenn Sie sich als Benutzer bei der Konsole anmelden und dann die Rollen wechseln. Weitere Informationen zum Wechseln von Rollen finden Sie unter Wechseln von einer Benutzerrolle zu einer IAM-Rolle (Konsole) im IAM-Benutzerhandbuch.
Mithilfe der AWS API AWS CLI oder können Sie temporäre Anmeldeinformationen manuell erstellen. Sie können diese temporären Anmeldeinformationen dann für den Zugriff verwenden AWS. AWS empfiehlt, temporäre Anmeldeinformationen dynamisch zu generieren, anstatt langfristige Zugriffsschlüssel zu verwenden. Weitere Informationen finden Sie unter Temporäre Sicherheitsanmeldeinformationen in IAM.
Forward Access Sessions für Amazon S3
Unterstützt Forward Access Sessions (FAS): Ja
Wenn Sie einen IAM-Benutzer oder eine IAM-Rolle verwenden, um Aktionen auszuführen AWS, gelten Sie als Principal. Bei einigen Services könnte es Aktionen geben, die dann eine andere Aktion in einem anderen Service initiieren. FAS verwendet die Berechtigungen des Prinzipals, der einen aufruft AWS-Service, kombiniert mit der Anforderung, Anfragen an nachgelagerte Dienste AWS-Service zu stellen. FAS-Anfragen werden nur gestellt, wenn ein Dienst eine Anfrage erhält, für deren Abschluss Interaktionen mit anderen AWS-Services oder Ressourcen erforderlich sind. In diesem Fall müssen Sie über Berechtigungen zum Ausführen beider Aktionen verfügen. Einzelheiten zu den Richtlinien für FAS-Anfragen finden Sie unter Zugriffssitzungen weiterleiten.
FAS wird von Amazon S3 verwendet, um Aufrufe zur Entschlüsselung eines Objekts AWS KMS zu tätigen, wenn SSE-KMS zur Verschlüsselung verwendet wurde. Weitere Informationen finden Sie unter Verwenden der serverseitigen 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 erhält temporäre Anmeldeinformationen für den Anforderer von AWS STS und sendet die Anmeldeinformationen an den Antragsteller. 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 dienstbezogene Rolle ist eine Art von Servicerolle, die mit einer verknüpft ist. AWS-Service Der Service kann die Rolle übernehmen, um eine Aktion in Ihrem Namen auszuführen. Dienstbezogene Rollen werden in Ihrem Dienst angezeigt AWS-Konto und gehören dem Dienst. 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 |