Amazon-S3-Aktionen - Amazon Simple Storage Service

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.

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": "*"

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.

Die folgende Beispiel-Benutzerrichtlinie erteilt die s3:GetBucketAcl-Berechtigung für den Bucket DOC-EXAMPLE-BUCKET1 für den Benutzer Dave.

{ "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 DOC-EXAMPLE-BUCKET1-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.

{ "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:::DOC-EXAMPLE-BUCKET1", "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*" ] }, { "Sid": "statement2", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Dave" }, "Action": [ "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:PutLifecycleConfiguration" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET1", "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*" ] } ] }

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":[ "*" ] } ] }