Amazon-S3-Aktionen
Amazon S3 definiert eine Reihe von Berechtigungen, die Sie in einer Richtlinie angeben können. Dies sind Schlüsselwörter, von denen jedes einer bestimmten Amazon-S3-Operation zugeordnet ist. Weitere Informationen zu Amazon-S3-Vorgänge finden Sie unter Aktionen in der Amazon Simple Storage Service API-Referenz.
Informationen dazu, wie Sie Berechtigungen in einer Amazon-S3-Richtlinie angeben, finden Sie in den folgenden Beispielrichtlinien. Eine Liste der Amazon-S3--Aktionen, -Ressourcen und -Bedingungsschlüssel für die Verwendung in Richtlinien finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für Amazon S3. Eine vollständige Liste der Amazon-S3-Aktionen finden Sie unter Aktionen.
Themen
Beispiel – Objekt-Vorgänge
Die folgende Beispiel-Bucket-Richtlinie erteilt die Berechtigungen s3:PutObject
und s3:PutObjectAcl
für den Benutzer (Dave). Wenn Sie das Element Principal
entfernen, können Sie die Richtlinie einem Benutzer zuweisen. Dies sind Objekt-Vorgänge. Dementsprechend identifiziert der Teil relative-id
des Resource
-ARN Objekte (awsexamplebucket1/*
). Weitere Informationen finden Sie unter Amazon-S3-Ressourcen.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901:user/Dave" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::
awsexamplebucket1
/*" } ] }
Berechtigungen für alle Amazon-S3-Aktionen
Sie können ein Platzhalterzeichen verwenden, um die Berechtigung für alle Amazon-S3-Aktionen zu erteilen.
"Action": "*"
Beispiel – Bucket-Vorgänge
Die folgende Beispiel-Benutzerrichtlinie erteilt die Berechtigungen s3:CreateBucket
, s3:ListAllMyBuckets
und s3:GetBucketLocation
für einen Benutzer. Für alle diese Berechtigungen legen Sie den Teil relative-id
des Resource
-ARN auf „*“ fest. Bei allen anderen Bucket-Aktionen müssen Sie einen Bucket-Namen angegeben. Weitere Informationen finden Sie unter Amazon-S3-Ressourcen.
{ "Version":"2012-10-17", "Statement":[ { "Sid":"statement1", "Effect":"Allow", "Action":[ "s3:CreateBucket", "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Resource":[ "arn:aws:s3:::*" ] } ] }
Richtlinie für den Konsolenzugriff
Wenn ein Benutzer die AWS Management Console verwenden möchte, um Buckets und den Inhalt eines dieser Buckets anzuzeigen, muss der Benutzer die Berechtigungen s3:ListAllMyBuckets
und s3:GetBucketLocation
besitzen. Ein Beispiel finden Sie unter Richtlinie für den Konsolenzugriff im Blog-Beitrag Schreiben von IAM-Richtlinien: So gewähren Sie Zugriff auf einen S3-Bucket
Beispiel – Bucket-Subressourcen-Vorgänge
Die folgende Beispiel-Benutzerrichtlinie erteilt die s3:GetBucketAcl
-Berechtigung für den Bucket
für den Benutzer Dave.DOC-EXAMPLE-BUCKET1
{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
123456789012
:user/Dave" }, "Action": [ "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::" ] } ] }
DOC-EXAMPLE-BUCKET1
LÖSCHEN von Objekt-Berechtigungen
Sie können Objekte löschen, indem Sie explizit die DELETE Object-API aufrufen oder ihren Lebenszyklus konfigurieren (siehe Verwalten Ihres Speicher-Lebenszyklus), damit Amazon S3 die Objekte entfernen kann, wenn ihr Lebenszyklus abläuft. Um explizit Benutzer oder Konten vom Löschen von Objekten zu sperren, müssen Sie ihnen die Berechtigungen s3:DeleteObject
, s3:DeleteObjectVersion
und s3:PutLifecycleConfiguration
explizit entziehen.
Explizite Zugriffsverweigerung
Standardmäßig besitzen Benutzer keine Berechtigungen. Wenn Sie Benutzer erstellen, Benutzer zu Gruppen hinzufügen und diesen Berechtigungen erteilen, erhalten diese möglicherweise bestimmte Berechtigungen, die Sie nicht erteilen möchten. Um solche Berechtigungslücken zu vermeiden, können Sie eine strengere Zugriffsrichtlinie schreiben, indem Sie eine explizite Zugriffsverweigerung hinzufügen.
Die vorhergehende Bucket-Richtlinie gewährt dem Benutzer Dave die s3:GetBucketAcl
-Berechtigung
-Bucket. In diesem Beispiel verweigern Sie explizit dem Benutzer Dave DELETE-Objekt-Berechtigungen. Eine explizite Verweigerung ersetzt immer eine anderswo erteilte Erlaubnis. Im Folgenden finden Sie das geänderte Zugriffsrichtlinienbeispiel mit hinzugefügter expliziter Ablehnung.DOC-EXAMPLE-BUCKET1
{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
123456789012
:user/Dave" }, "Action": [ "s3:GetObjectVersion", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::", "arn:aws:s3:::
DOC-EXAMPLE-BUCKET1
" ] }, { "Sid": "statement2", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::
DOC-EXAMPLE-BUCKET1
/*123456789012
:user/Dave" }, "Action": [ "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:PutLifecycleConfiguration" ], "Resource": [ "arn:aws:s3:::", "arn:aws:s3:::
DOC-EXAMPLE-BUCKET1
" ] } ] }
DOC-EXAMPLE-BUCKET1
/*
Beispiel – KontenVorgänge
Die folgende Beispiel-Benutzerrichtlinie erteilt die Berechtigung s3:GetAccountPublicAccessBlock
für einen Benutzer. Für diese Berechtigungen legen Sie den Wert Resource
auf "*"
fest. Weitere Informationen finden Sie unter Amazon-S3-Ressourcen.
{ "Version":"2012-10-17", "Statement":[ { "Sid":"statement1", "Effect":"Allow", "Action":[ "s3:GetAccountPublicAccessBlock" ], "Resource":[ "*" ] } ] }