Beispiele für Amazon S3 S3-Bucket-Richtlinien - Amazon Simple Storage Service

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.

Beispiele für Amazon S3 S3-Bucket-Richtlinien

Mit Amazon-S3-Bucket-Richtlinien können Sie den Zugriff auf Objekte in Ihren Buckets sichern, sodass nur Benutzer mit den entsprechenden Berechtigungen darauf zugreifen können. Sie können sogar verhindern, dass authentifizierte Benutzer ohne die entsprechenden Berechtigungen auf Ihre Amazon-S3-Ressourcen zugreifen.

Dieser Abschnitt veranschaulicht Beispiele für typische Anwendungsfälle für Bucket-Richtlinien. Diese Beispielrichtlinien verwenden amzn-s3-demo-bucket als Ressourcenwert. Wenn Sie diese Richtlinien testen möchten, ersetzen Sie die user input placeholders durch Ihre eigenen Informationen (z. B. Ihren Bucket-Namen).

Um einer Gruppe von Objekten Berechtigungen zu gewähren oder zu verweigern, können Sie Platzhalterzeichen (*) in Amazon-Ressourcennamen (ARNs) und anderen Werten verwenden. Sie können beispielsweise den Zugriff auf Objektgruppen steuern, die mit einem gemeinsamen Präfix beginnen oder mit einer bestimmten Erweiterung enden, z. B. .html

Weitere Hinweise zur Richtliniensprache AWS Identity and Access Management (IAM) finden Sie unterRichtlinien und Berechtigungen in Amazon S3.

Weitere Informationen zu den Berechtigungen für API S3-Operationen nach S3-Ressourcentypen finden Sie unterErforderliche Berechtigungen für Amazon S3 API S3-Operationen.

Anmerkung

Beim Testen von Berechtigungen unter Verwendung der Amazon-S3-Konsole erteilen Sie zusätzliche Berechtigungen, die die Konsole benötigt – s3:ListAllMyBuckets, s3:GetBucketLocation und s3:ListBucket. Ein detailliertes Beispiel für eine Richtlinie, die Berechtigungen für Benutzer erteilt und diese Berechtigungen unter Verwendung der Konsole testet, finden Sie unter Kontrollieren des Zugriffs auf einen Bucket mit Benutzerrichtlinien.

Zu den zusätzlichen Ressourcen für die Erstellung von Bucket-Richtlinien gehören:

Einem öffentlichen anonymen Benutzer nur Lesezugriff gewähren

Sie können Ihre Richtlinieneinstellungen verwenden, um öffentlichen anonymen Benutzern Zugriff zu gewähren. Dies ist nützlich, wenn Sie Ihren Bucket als statische Website konfigurieren. Um öffentlichen anonymen Benutzern Zugriff zu gewähren, müssen Sie die Einstellungen „Öffentlichen Zugriff blockieren“ für Ihren Bucket deaktivieren. Weitere Informationen dazu und zu den erforderlichen Richtlinien finden Sie unterFestlegen von Berechtigungen für den Website-Zugriff. Informationen zum Einrichten restriktiverer Richtlinien für denselben Zweck finden Sie unter Wie kann ich öffentlichen Lesezugriff auf einige Objekte in meinem Amazon S3 S3-Bucket gewähren? im AWS Knowledge Center.

Standardmäßig blockiert Amazon S3 den öffentlichen Zugriff auf Ihr Konto und Ihre Buckets. Wenn Sie einen Bucket verwenden möchten, um eine statische Website zu hosten, können Sie diese Schritte verwenden, um Ihre Einstellungen für Block Public Access zu bearbeiten:

Warnung

Bevor Sie diese Schritte ausführen, sollten Sie sicherstellen, Blockieren des öffentlichen Zugriffs auf Ihren Amazon-S3-Speicher dass Sie die Risiken verstehen und akzeptieren, die mit der Gewährung eines öffentlichen Zugangs verbunden sind. Wenn Sie die Einstellungen für Block Public Access deaktivieren, um Ihren Bucket öffentlich zu machen, kann jeder im Internet auf Ihren Bucket zugreifen. Wir empfehlen Ihnen, den gesamten öffentlichen Zugriff auf Ihre Buckets zu blockieren.

  1. Öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie den Namen des Buckets aus, den Sie als statische Website konfiguriert haben.

  3. Wählen Sie Permissions (Berechtigungen).

  4. Wählen Sie unter Block public access (bucket settings) (Öffentlichen Zugriff blockieren (Bucket-Einstellungen)), die Option Edit (Bearbeiten).

  5. Löschen Sie Block all public access (Gesamten öffentlichen Zugriff blockieren) und wählen Sie Save (Speichern).

    Die Amazon S3 S3-Konsole, auf der die Bucket-Einstellungen für den Block Public Access angezeigt werden.

    Amazon S3 deaktiviert die Einstellungen für den Block Public Access für Ihren Bucket. Um eine öffentliche statische Website zu erstellen, müssen Sie möglicherweise auch die Einstellungen zum Blockieren des öffentlichen Zugriffs für Ihr Konto bearbeiten, bevor Sie eine Bucket-Richtlinie hinzufügen. Wenn die Einstellungen „Öffentlichen Zugriff blockieren“ für Ihr Konto derzeit aktiviert sind, wird unter „Öffentlichen Zugriff blockieren“ (Bucket-Einstellungen) ein Hinweis angezeigt.

Erfordern von Verschlüsselung

Sie können eine serverseitige Verschlüsselung mit AWS Key Management Service (AWS KMS) -Schlüsseln (SSE-KMS) verlangen, wie in den folgenden Beispielen gezeigt.

Erforderlich SSE — KMS für alle Objekte, die in einen Bucket geschrieben werden

Die folgende Beispielrichtlinie verlangt, dass jedes Objekt, das in den Bucket geschrieben wird, mit serverseitiger Verschlüsselung unter Verwendung von AWS Key Management Service (AWS KMS) -Schlüsseln (SSE-KMS) verschlüsselt wird. Wenn das Objekt nicht mit SSE - verschlüsselt istKMS, wird die Anfrage abgelehnt.

{ "Version": "2012-10-17", "Id": "PutObjPolicy", "Statement": [{ "Sid": "DenyObjectsThatAreNotSSEKMS", "Principal": "*", "Effect": "Deny", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "Null": { "s3:x-amz-server-side-encryption-aws-kms-key-id": "true" } } }] }

Erforderlich SSE — KMS mit einem spezifischen Wert AWS KMS key für alle Objekte, die in einen Bucket geschrieben werden

Die folgende Beispielrichtlinie verhindert, dass Objekte in den Bucket geschrieben werden, wenn sie nicht mit SSE - KMS unter Verwendung einer bestimmten KMS Schlüssel-ID verschlüsselt sind. Selbst wenn die Objekte mit SSE — KMS unter Verwendung einer Header- oder Bucket-Standardverschlüsselung pro Anfrage verschlüsselt sind, können die Objekte nicht in den Bucket geschrieben werden, wenn sie nicht mit dem angegebenen KMS Schlüssel verschlüsselt wurden. Achten Sie darauf, den in diesem Beispiel verwendeten KMS Schlüssel ARN durch Ihren eigenen KMS Schlüssel ARN zu ersetzen.

{ "Version": "2012-10-17", "Id": "PutObjPolicy", "Statement": [{ "Sid": "DenyObjectsThatAreNotSSEKMSWithSpecificKey", "Principal": "*", "Effect": "Deny", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "ArnNotEqualsIfExists": { "s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:us-east-2:111122223333:key/01234567-89ab-cdef-0123-456789abcdef" } } }] }

Verwaltung von Buckets mithilfe von Containern ACLs

Erteilen von Berechtigungen für mehrere Konten, um Objekte hochzuladen oder Objekte öffentlich zugänglich ACLs zu machen

Die folgende Beispielrichtlinie gewährt mehreren s3:PutObject Personen die s3:PutObjectAcl Berechtigungen und AWS-Konten. Außerdem verlangt die Beispielrichtlinie, dass alle Anfragen für diese Operationen die gespeicherte public-read Zugriffskontrollliste (ACL) enthalten müssen. Weitere Informationen erhalten Sie unter Politische Maßnahmen für Amazon S3 und Schlüssel für Richtlinienbedingungen für Amazon S3.

Warnung

ACLMit der public-read Option „Gespeichert“ kann jeder auf der Welt die Objekte in Ihrem Bucket einsehen. Seien Sie vorsichtig, wenn Sie anonymen Zugriff auf Ihren Amazon-S3-Bucket gewähren oder die Block-Einstellungen für den öffentlichen Zugriff deaktivieren. Wenn Sie anonymen Zugriff gewähren, kann jeder auf der ganzen Welt auf Ihren Bucket zugreifen. Wir empfehlen Ihnen, niemals anonymen Zugriff auf Ihren Amazon-S3-Bucket zu gewähren, es sei denn, Sie müssen dies ausdrücklich tun, z. B. beim Hosting von statischen Websites. Informationen zum Aktivieren der Einstellungen zum Blockieren des öffentlichen Zugriffs für das Hosten statischer Websites finden Sie unter Tutorial: Konfiguration einer statischen Website in Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AddPublicReadCannedAcl", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ] }, "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "s3:x-amz-acl": [ "public-read" ] } } } ] }

Erteilung von kontoübergreifenden Berechtigungen für das Hochladen von Objekten, wobei sichergestellt wird, dass der Bucket-Eigentümer volle Kontrolle besitzt

Das folgende Beispiel zeigt, wie Sie einer anderen AWS-Konto Person das Hochladen von Objekten in Ihren Bucket ermöglichen und gleichzeitig sicherstellen können, dass Sie die volle Kontrolle über die hochgeladenen Objekte haben. Diese Richtlinie gewährt eine bestimmte AWS-Konto (111122223333) die Möglichkeit, Objekte nur hochzuladen, wenn das Konto beim Upload die bucket-owner-full-control ACL gescannten Objekte enthält. Die StringEquals Bedingung in der Richtlinie gibt den s3:x-amz-acl Bedingungsschlüssel an, mit dem die vordefinierte ACL Anforderung ausgedrückt werden soll. Weitere Informationen finden Sie unter Schlüssel für Richtlinienbedingungen für Amazon S3.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"PolicyForAllowUploadWithACL", "Effect":"Allow", "Principal":{"AWS":"111122223333"}, "Action":"s3:PutObject", "Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": {"s3:x-amz-acl":"bucket-owner-full-control"} } } ] }

Verwaltung des Objektzugriffs mit Objektmarkierung

Einem Benutzer nur das Lesen von Objekten gestatten, die einen bestimmten Tag-Schlüssel und -Wert besitzen

Die folgende Berechtigungsrichtlinie beschränkt einen Benutzer darauf, nur Objekte zu lesen, die den Tag-Schlüssel und -Wert environment: production haben. Diese Richtlinie verwendet den s3:ExistingObjectTag-Bedingungsschlüssel, um den Tag-Schlüssel und -Wert anzugeben.

{ "Version":"2012-10-17", "Statement":[ { "Principal":{ "AWS":"arn:aws:iam::111122223333:role/JohnDoe" }, "Effect":"Allow", "Action":[ "s3:GetObject", "s3:GetObjectVersion" ], "Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition":{ "StringEquals":{ "s3:ExistingObjectTag/environment":"production" } } } ] }

Einschränken, welche Objekt-Tag-Schlüssel Benutzer hinzufügen können

Die folgende Beispielrichtlinie erteilt einem Benutzer die Berechtigungen, die s3:PutObjectTagging-Aktion auszuführen, die dem Benutzer gestattet, einem vorhandenen Objekt Markierungen hinzuzufügen. Die Bedingung verwendet den Bedingungsschlüssel s3:RequestObjectTagKeys, um die zulässigen Tag-Schlüssel zu spezifizieren, z. B. Owner oder CreationDate. Weitere Informationen finden Sie im IAMBenutzerhandbuch unter Erstellen einer Bedingung, die mehrere Schlüsselwerte testet.

Die Richtlinie stellt sicher, dass jeder in der Anfrage angegebene Tag-Schlüssel ein autorisierter Tag-Schlüssel ist. Der ForAnyValue-Qualifizierer in der Bedingung stellt sicher, dass mindestens einer der spezifizierten Schlüssel in der Anfrage enthalten ist.

{ "Version": "2012-10-17", "Statement": [ {"Principal":{"AWS":[ "arn:aws:iam::111122223333:role/JohnDoe" ] }, "Effect": "Allow", "Action": [ "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ], "Condition": {"ForAnyValue:StringEquals": {"s3:RequestObjectTagKeys": [ "Owner", "CreationDate" ] } } } ] }

Einen spezifischen Tag-Schlüssel und -Wert verlangen, wenn Benutzern erlaubt wird, Objekt-Tags hinzuzufügen

Die folgende Beispielrichtlinie erteilt einem Benutzer die Berechtigungen, die s3:PutObjectTagging-Aktion auszuführen, die dem Benutzer gestattet, einem vorhandenen Objekt Markierungen hinzuzufügen. Die Bedingung verlangt, dass der Benutzer einen spezifischen Tag-Schlüssel (z. B. Project) mit dem Wert X angibt.

{ "Version": "2012-10-17", "Statement": [ {"Principal":{"AWS":[ "arn:aws:iam::111122223333:user/JohnDoe" ] }, "Effect": "Allow", "Action": [ "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ], "Condition": {"StringEquals": {"s3:RequestObjectTag/Project": "X" } } } ] }

Einem Benutzer nur das Hinzufügen mit einem bestimmten Tag-Schlüssel und -Wert erlauben

Die folgende Beispielrichtlinie gewährt einem Benutzer die Berechtigung, die s3:PutObject-Aktion auszuführen, sodass er Objekte einem Bucket hinzufügen kann. Die Condition-Anweisung schränkt die Tag-Schlüssel und -Werte jedoch ein, die für die hochgeladenen Objekte zulässig sind. In diesem Beispiel kann der Benutzer dem Bucket nur Objekte hinzufügen, die den spezifischen Tag-Schlüssel (Department) mit dem Wert Finance haben.

{ "Version": "2012-10-17", "Statement": [{ "Principal":{ "AWS":[ "arn:aws:iam::111122223333:user/JohnDoe" ] }, "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ], "Condition": { "StringEquals": { "s3:RequestObjectTag/Department": "Finance" } } }] }

Verwalten des Objektzugriffs mithilfe globaler Bedingungsschlüssel

Globale Bedingungsschlüssel sind Bedingungskontextschlüssel mit einem aws Präfix. AWS-Services kann globale Bedingungsschlüssel oder dienstspezifische Schlüssel unterstützen, die das Dienstpräfix enthalten. Sie können das Condition Element einer JSON Richtlinie verwenden, um die Schlüssel in einer Anfrage mit den Schlüsselwerten zu vergleichen, die Sie in Ihrer Richtlinie angeben.

Beschränken des Zugriffs nur auf Zugriffsprotokollbereitstellungen von Amazon S3 Server

Im folgenden Beispiel ist die Bucket-Richtlinie aws:SourceArnDer globale Bedingungsschlüssel wird verwendet, um den Amazon-Ressourcennamen (ARN) der Ressource zu vergleichen und eine service-to-service Anfrage mit ARN dem in der Richtlinie angegebenen zu stellen. Sie können diesen globalen aws:SourceArn-Bedingungsschlüssel verwenden, um zu verhindern, dass der Amazon-S3-Service bei Transaktionen zwischen Services als verwechselter Stellvertreter verwendet wird. Nur der Amazon-S3-Service darf dem Amazon-S3-Bucket Objekte hinzufügen.

Diese Bucket-Beispielrichtlinie gewährt nur dem Prinzipal des Protokollierungsservices (logging.s3.amazonaws.com) s3:PutObject-Berechtigungen.

Anmerkung

Die NotPrincipalElement kann nicht mit AWS-Service Prinzipalen in ressourcenbasierten Amazon S3 S3-Richtlinien, wie z. B. Bucket-Richtlinien, verwendet werden. Stattdessen empfehlen wir, den aws:PrincipalServiceName Bedingungsschlüssel zu verwenden, wie in der folgenden Richtlinie dargestellt.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutObjectS3ServerAccessLogsPolicy", "Principal": { "Service": "logging.s3.amazonaws.com" }, "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-logs/*", "Condition": { "StringEquals": { "aws:SourceAccount": "111111111111" }, "ArnLike": { "aws:SourceArn": "arn:aws:s3:::EXAMPLE-SOURCE-BUCKET" } } }, { "Sid": "RestrictToS3ServerAccessLogs", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-logs/*", "Condition": { "StringNotEqualsIfExists": { "aws:PrincipalServiceName": "logging.s3.amazonaws.com" } } } ] }

Erlauben des Zugriffs nur für Ihre Organisation

Wenn Sie möchten, dass alle IAMPrincipals, die auf eine Ressource zugreifen, von einem AWS-Konto Mitglied Ihrer Organisation stammen (einschließlich des AWS Organizations Verwaltungskontos), können Sie den aws:PrincipalOrgID globalen Bedingungsschlüssel verwenden.

Wenn Sie diese Art von Zugriff gewähren oder einschränken möchten, definieren Sie die aws:PrincipalOrgID-Bedingung und legen Sie den Wert in der Bucket-Richtlinie auf Ihre Organisations-ID fest. Die Organisations-ID wird verwendet, um den Zugriff auf den Bucket zu kontrollieren. Wenn Sie die aws:PrincipalOrgID-Bedingung verwenden, werden die Berechtigungen aus der Bucket-Richtlinie auch auf alle neuen Konten angewendet, die der Organisation hinzugefügt werden.

Hier ist ein Beispiel für eine ressourcenbasierte Bucket-Richtlinie, mit der Sie bestimmten IAM Prinzipalen in Ihrer Organisation direkten Zugriff auf Ihren Bucket gewähren können. Durch das Hinzufügen des globalen Bedingungsschlüssels aws:PrincipalOrgID zu Ihrer Bucket-Richtlinie muss sich das Prinzipal-Konto nun in Ihrer Organisation befinden, um Zugriff auf die Ressource zu erhalten. Selbst wenn Sie bei der Gewährung des Zugriffs versehentlich ein falsches Konto angeben, aws:PrincipalOrgID Der globale Bedingungsschlüssel dient als zusätzliche Absicherung. Wenn dieser globale Schüssel in einer Richtlinie verwendet wird, verhindert diese, dass alle Prinzipale außerhalb der angegebenen Organisation auf den Amazon-S3-Bucket zugreifen können. Nur Prinzipale von Konten in der aufgelisteten Organisation erhalten Zugriff auf die Ressource.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowGetObject", "Principal": { "AWS": "*" }, "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": ["o-aa111bb222"] } } }] }

Verwaltung des Zugriffs auf der Grundlage HTTP unserer HTTPS Anfragen

Beschränken Sie den Zugriff nur auf HTTPS Anfragen

Wenn Sie verhindern möchten, dass potenzielle Angreifer den Netzwerkverkehr manipulieren, können Sie HTTPS (TLS) verwenden, um nur verschlüsselte Verbindungen zuzulassen und gleichzeitig den Zugriff von HTTP Anfragen auf Ihren Bucket einzuschränken. Um festzustellen, ob es sich bei der Anfrage um HTTP oder handeltHTTPS, verwenden Sie aws:SecureTransportglobaler Bedingungsschlüssel in Ihrer S3-Bucket-Richtlinie. Der aws:SecureTransport Bedingungsschlüssel prüft, ob eine Anfrage mithilfe von gesendet wurdeHTTP.

Wenn eine Anfrage zurückkehrttrue, wurde die Anfrage durchgesendetHTTPS. Wenn die Anfrage zurückkehrtfalse, wurde die Anfrage durchgesendetHTTP. Sie können dann den Zugriff auf Ihren Bucket basierend auf dem gewünschten Anforderungsschema erlauben oder verweigern.

Im folgenden Beispiel lehnt die Bucket-Richtlinie HTTP Anfragen ausdrücklich ab.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "RestrictToTLSRequestsOnly", "Action": "s3:*", "Effect": "Deny", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ], "Condition": { "Bool": { "aws:SecureTransport": "false" } }, "Principal": "*" }] }

Beschränken Sie den Zugriff auf einen bestimmten HTTP Referer

Angenommen, Sie haben eine Website mit dem Domainnamen www.example.com or example.com mit Links zu Fotos und Videos, die in Ihrem Bucket gespeichert sindamzn-s3-demo-bucket. Standardmäßig sind alle Amazon S3 S3-Ressourcen privat, sodass nur derjenige AWS-Konto darauf zugreifen kann, der die Ressourcen erstellt hat.

Wenn Sie Lesezugriff auf diese Objekte von Ihrer Website aus erlauben möchten, können Sie eine Bucket-Richtlinie hinzufügen, die die s3:GetObject-Berechtigung mit der Bedingung erlaubt, dass die GET-Anforderung von bestimmten Webseiten stammen muss. Die folgende Richtlinie schränkt Anforderungen ein, indem die Bedingung StringLike zusammen mit dem aws:Referer-Bedingungsschlüssel verwendet wird.

{ "Version":"2012-10-17", "Id":"HTTP referer policy example", "Statement":[ { "Sid":"Allow only GET requests originating from www.example.com and example.com.", "Effect":"Allow", "Principal":"*", "Action":["s3:GetObject","s3:GetObjectVersion"], "Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition":{ "StringLike":{"aws:Referer":["http://www.example.com/*","http://example.com/*"]} } } ] }

Stellen Sie sicher, dass die von Ihnen verwendeten Browser den HTTP referer Header in die Anfrage aufnehmen.

Warnung

Wir empfehlen, bei der Verwendung des aws:Referer-Bedingungsschlüssels vorsichtig zu sein. Es ist gefährlich, einen öffentlich bekannten HTTP Referer-Header-Wert einzufügen. Nicht autorisierte Parteien können mit modifizierten oder benutzerdefinierten Browsern einen beliebigen aws:Referer-Wert ihrer Wahl bereitstellen. Verwenden Sie es daher nicht, aws:Referer um zu verhindern, dass Unbefugte direkte AWS Anfragen stellen.

Der aws:Referer-Bedingungsschlüssel wird nur bereitgestellt, damit Kunden ihre digitalen, in Amazon S3 gespeicherten Inhalte vor der Referenzierung auf nicht autorisierte Drittanbieter-Websites schützen können. Weitere Informationen finden Sie unter aws:Referer im IAM-Benutzerhandbuch.

Verwalten des Benutzerzugriffs auf bestimmte Ordner

Erteilen des Benutzerzugriffs auf bestimmte Ordner

Angenommen, Sie versuchen, Benutzern Zugriff auf einen bestimmten Ordner zu gewähren. Wenn der IAM Benutzer und der S3-Bucket zu demselben gehören AWS-Konto, können Sie dem Benutzer mithilfe einer IAM Richtlinie Zugriff auf einen bestimmten Bucket-Ordner gewähren. Bei diesem Ansatz müssen Sie Ihre Bucket-Richtlinie nicht aktualisieren, um Zugriff zu gewähren. Sie können die IAM Richtlinie einer IAM Rolle hinzufügen, zu der mehrere Benutzer wechseln können.

Wenn die IAM Identität und der S3-Bucket unterschiedlichen Kategorien angehören AWS-Konten, müssen Sie sowohl in der Richtlinie als auch in der IAM Bucket-Richtlinie kontoübergreifenden Zugriff gewähren. Weitere Informationen zum Gewähren von kontoübergreifendem Zugriff finden Sie unter Bucket-Eigentümer erteilt kontoübergreifende Bucket-Berechtigungen.

Die folgende Bucket-Beispielrichtlinie gewährt JohnDoe vollen Konsolenzugriff nur auf seinen Ordner (home/JohnDoe/). Indem Sie einen home-Ordner erstellen und Ihren Benutzern die entsprechenden Berechtigungen gewähren, können sich mehrere Benutzer einen einzelnen Bucket teilen. Diese Richtlinie besteht aus drei Allow-Anweisungen:

  • AllowRootAndHomeListingOfCompanyBucket: Erlaubt dem Benutzer (JohnDoe), Objekte auf der Stammebene des amzn-s3-demo-bucket-Buckets und im home-Ordner aufzulisten. Diese Anweisung erlaubt dem Benutzer außerdem, mithilfe der Konsole nach dem Präfix home/ zu suchen.

  • AllowListingOfUserFolder: Erlaubt dem Benutzer (JohnDoe), alle Objekte im home/JohnDoe/-Ordner und entsprechenden Unterordnern aufzulisten.

  • AllowAllS3ActionsInUserFolder: Erlaubt dem Benutzer, alle Amazon-S3-Aktionen durchzuführen, indem Read-, Write- und Delete-Berechtigungen gewährt werden. Die Berechtigungen sind auf den Home-Ordner des Bucket-Eigentümers beschränkt.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRootAndHomeListingOfCompanyBucket", "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/JohnDoe" ] }, "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"], "Condition": { "StringEquals": { "s3:prefix": ["", "home/", "home/JohnDoe"], "s3:delimiter": ["/"] } } }, { "Sid": "AllowListingOfUserFolder", "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/JohnDoe" ] }, "Action": ["s3:ListBucket"], "Effect": "Allow", "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"], "Condition": { "StringLike": { "s3:prefix": ["home/JohnDoe/*"] } } }, { "Sid": "AllowAllS3ActionsInUserFolder", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/JohnDoe" ] }, "Action": ["s3:*"], "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/home/JohnDoe/*"] } ] }

Verwalten des Zugriffs für Zugriffsprotokolle

Gewähren des Zugriffs auf Application Load Balancer, um Zugriffsprotokolle zu aktivieren

Wenn Sie die Zugriffsprotokollierung für Ihren Application Load Balancer aktivieren, müssen Sie den Namen des S3-Buckets angeben, in dem der Load Balancer die Protokolle speichert. Dem Bucket muss eine Richtlinie angefügt sein, die Elastic Load Balancing die Berechtigung zum Schreiben in den Bucket gewährt.

Im folgenden Beispiel gewährt die Bucket-Richtlinie Elastic Load Balancing (ELB) die Berechtigung, die Zugriffs-Logs in den Bucket zu schreiben:

{ "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": "arn:aws:iam::elb-account-id:root" }, "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/111122223333/*" } ] }
Anmerkung

Stellen Sie sicher, dass Sie elb-account-id durch die AWS-Konto -ID für Elastic Load Balancing für Ihre AWS-Region ersetzen. Eine Liste der Regionen von Elastic Load Balancing finden Sie unter Hinzufügen von Richtlinien zu Ihrem S3-Bucket im Benutzerhandbuch für Elastic Load Balancing.

Wenn Ihre Region AWS-Region nicht in der Liste der unterstützten Elastic Load Balancing Balancing-Regionen aufgeführt ist, verwenden Sie die folgende Richtlinie, die dem angegebenen Log-Lieferdienst Berechtigungen gewährt.

{ "Version": "2012-10-17", "Statement": [ { "Principal": { "Service": "logdelivery.elasticloadbalancing.amazonaws.com" }, "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/111122223333/*" } ] }

Stellen Sie anschließend sicher, dass Sie Ihre Zugriffsprotokolle von Elastic Load Balancing konfigurieren, indem Sie sie aktivieren. Sie können Ihre Bucket-Berechtigungen überprüfen, indem Sie eine Testdatei erstellen.

Zugriff auf einen Amazon verwalten CloudFront OAI

Erteilen Sie einem Amazon die Erlaubnis CloudFront OAI

Die folgende Beispiel-Bucket-Richtlinie gewährt einer CloudFront Origin-Zugriffsidentität (OAI) die Berechtigung, alle Objekte in Ihrem S3-Bucket abzurufen (zu lesen). Sie können a verwenden CloudFront OAI, um Benutzern den Zugriff auf Objekte in Ihrem Bucket zu ermöglichen CloudFront , aber nicht direkt über Amazon S3. Weitere Informationen finden Sie unter Beschränken des Zugriffs auf Amazon S3 S3-Inhalte mithilfe einer Origin-Zugriffsidentität im Amazon CloudFront Developer Guide.

In der folgenden Richtlinie wird die ID OAI der Richtlinie als die ID der Richtlinie verwendet. Principal Weitere Informationen zur Verwendung von S3-Bucket-Richtlinien zur Gewährung des Zugriffs auf eine CloudFront OAI finden Sie unter Migration von der ursprünglichen Zugriffsidentität (OAI) zur Ursprungszugriffskontrolle (OAC) im Amazon CloudFront Developer Guide.

Zur Verwendung dieses Beispiels gehen Sie wie folgt vor:

{ "Version": "2012-10-17", "Id": "PolicyForCloudFrontPrivateContent", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity EH1HDMB1FH2TC" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }

Verwalten des Zugriffs für Amazon S3 Storage Lens

Erteilen von Berechtigungen für Amazon S3 Storage Lens

S3 Storage Lens aggregiert Ihre Metriken und zeigt die Informationen im Abschnitt Account snapshot (Konto-Snapshot) der Seite Buckets der Amazon-S3-Konsole an. S3 Storage Lens bietet außerdem ein interaktives Dashboard, mit dem Sie Erkenntnisse und Trends visualisieren, Ausreißer kennzeichnen und Empfehlungen zur Optimierung der Speicherkosten erhalten und bewährte Datenschutzmethoden anwenden können. Das Dashboard verfügt über Drilldown-Optionen, um Erkenntnisse auf Organisations-, Konto-, AWS-Region-, Speicherklassen-, Bucket-, Präfix- oder Objekt- oder Storage-Lens-Gruppenebene zu generieren. Sie können auch einen täglichen Metrikexport in CSV oder senden Parquet in einen S3-Bucket formatieren.

S3 Storage Lens kann Ihre aggregierten Speichernutzungsmetriken in einen Amazon-S3-Bucket exportieren, um sie weiter zu analysieren. Der Bucket, in dem S3 Storage Lens seine Metrikexporte speichert, wird als Ziel-Bucket bezeichnet. Sie müssen eine Bucket-Richtlinie für den Ziel-Bucket haben, wenn Sie Ihren Metrikexport in S3 Storage Lens einrichten. Weitere Informationen finden Sie unter Bewerten Ihrer Speicheraktivität und -nutzung mit Amazon S3 Storage Lens.

Die folgende Bucket-Beispielrichtlinie erteilt Amazon S3 die Berechtigung, Objekte (PUT-Anforderungen) in einen Ziel-Bucket zu schreiben. Sie verwenden eine solche Bucket-Richtlinie für den Ziel-Bucket, wenn Sie einen S3-Storage-Lens-Metrik-Export einrichten.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3StorageLensExamplePolicy", "Effect": "Allow", "Principal": { "Service": "storage-lens.s3.amazonaws.com" }, "Action": "s3:PutObject", "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket/destination-prefix/StorageLens/111122223333/*" ], "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": "111122223333", "aws:SourceArn": "arn:aws:s3:region-code:111122223333:storage-lens/storage-lens-dashboard-configuration-id" } } } ] }

Verwenden Sie die folgende Änderung an der vorherigen Resource-Anweisung der Bucket-Richtlinie beim Einrichten eines Metrikexports von S3 Storage Lens auf Organisationsebene.

"Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/destination-prefix/StorageLens/your-organization-id/*",

Verwalten von Berechtigungen für S3 Inventory, S3 Analytics und S3-Inventory-Berichte

Gewähren von Berechtigungen für S3 Inventory und S3 Analytics

S3 Inventory erstellt Listen der Objekte in einem Bucket und der Speicherklassenanalyse-Export von S3 Analytics erstellt Ausgabedateien der in der Analyse verwendeten Daten. Der Bucket, dessen Objekte die Bestandserfassung auflistet, wird als Quell-Bucket bezeichnet. Der Bucket, in dem die Bestandsdatei und die Analyseexportdatei geschrieben werden, wird als Ziel-Bucket bezeichnet. Sie müssen eine Bucket-Richtlinie für den Ziel-Bucket erstellen, wenn Sie den Bestand oder einen Analyseexport einrichten. Weitere Informationen erhalten Sie unter Katalogisieren und Analysieren Ihrer Daten mit S3 Inventory und Amazon S3 analytics – Speicherklassen-Analyse.

Das folgende Beispiel für eine Bucket-Richtlinie erteilt Amazon S3 die Berechtigung, Objekte aus dem Konto für den Quell-Bucket in den Ziel-Bucket zu schreiben (PUT-Anforderungen). Sie verwenden eine solche Bucket-Richtlinie für den Ziel-Bucket, wenn Sie einen S3-Inventory- und S3-Analytics-Export einrichten.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "InventoryAndAnalyticsExamplePolicy", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "s3:PutObject", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-DESTINATION-BUCKET/*" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:::DOC-EXAMPLE-SOURCE-BUCKET" }, "StringEquals": { "aws:SourceAccount": "111122223333", "s3:x-amz-acl": "bucket-owner-full-control" } } } ] }

Steuern Sie die Erstellung der Konfiguration des S3-Inventarberichts

Katalogisieren und Analysieren Ihrer Daten mit S3 Inventory erstellt Listen der Objekte in einem S3-Bucket sowie die Metadaten für jedes Objekt. Die s3:PutInventoryConfiguration Berechtigung ermöglicht es einem Benutzer, eine Inventarkonfiguration zu erstellen, die alle standardmäßig verfügbaren Objektmetadatenfelder enthält, und den Ziel-Bucket zum Speichern des Inventars anzugeben. Ein Benutzer mit Lesezugriff auf Objekte im Ziel-Bucket kann auf alle Objektmetadatenfelder zugreifen, die im Bestandsbericht verfügbar sind. Weitere Informationen über die Metadatenfelder, die in S3 Inventory verfügbar sind, finden Sie unterAmazon-S3-Inventory-Liste.

Um einen Benutzer daran zu hindern, einen S3-Inventarbericht zu konfigurieren, entziehen Sie dem Benutzer die s3:PutInventoryConfiguration Erlaubnis.

Einige Objektmetadatenfelder in Konfigurationen für S3-Inventarberichte sind optional, d. h. sie sind standardmäßig verfügbar, können aber eingeschränkt werden, wenn Sie einem Benutzer die s3:PutInventoryConfiguration entsprechende Berechtigung erteilen. Mithilfe des s3:InventoryAccessibleOptionalFields Bedingungsschlüssels können Sie steuern, ob Benutzer diese optionalen Metadatenfelder in ihre Berichte aufnehmen können. Eine Liste der optionalen Metadatenfelder, die in S3 Inventory verfügbar sind, finden Sie unter OptionalFieldsin der Amazon Simple Storage Service API Reference.

Um einem Benutzer die Erlaubnis zu erteilen, eine Inventarkonfiguration mit bestimmten optionalen Metadatenfeldern zu erstellen, verwenden Sie den s3:InventoryAccessibleOptionalFields Bedingungsschlüssel, um die Bedingungen in Ihrer Bucket-Richtlinie zu verfeinern.

Die folgende Beispielrichtlinie gewährt einem Benutzer (Ana) unter bestimmten Bedingungen die Berechtigung, eine Inventarkonfiguration zu erstellen. Die ForAllValues:StringEquals Bedingung in der Richtlinie verwendet den s3:InventoryAccessibleOptionalFields Bedingungsschlüssel, um die beiden zulässigen optionalen Metadatenfelder anzugeben, nämlich Size undStorageClass. Wenn Ana sie also eine Inventarkonfiguration erstellt, sind die einzigen optionalen Metadatenfelder, die sie einbeziehen kann, Size undStorageClass.

{ "Id": "InventoryConfigPolicy", "Version": "2012-10-17", "Statement": [{ "Sid": "AllowInventoryCreationConditionally", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Ana" }, "Action": "s3:PutInventoryConfiguration", "Resource": "arn:aws:s3:::DOC-EXAMPLE-SOURCE-BUCKET", "Condition": { "ForAllValues:StringEquals": { "s3:InventoryAccessibleOptionalFields": [ "Size", "StorageClass" ] } } } ] }

Um einen Benutzer daran zu hindern, einen S3-Inventarbericht zu konfigurieren, der bestimmte optionale Metadatenfelder enthält, fügen Sie der Bucket-Richtlinie für den Quell-Bucket eine ausdrückliche Deny Anweisung hinzu. Die folgende Beispiel-Bucket-Richtlinie verbietet Ana dem Benutzer, eine Inventarkonfiguration im Quell-Bucket zu erstellen, die DOC-EXAMPLE-SOURCE-BUCKET die optionalen Felder ObjectAccessControlList oder ObjectOwner Metadatenfelder enthält. Der Benutzer Ana kann weiterhin eine Inventarkonfiguration mit anderen optionalen Metadatenfeldern erstellen.

{ "Id": "InventoryConfigSomeFields", "Version": "2012-10-17", "Statement": [{ "Sid": "AllowInventoryCreation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Ana" }, "Action": "s3:PutInventoryConfiguration", "Resource": "arn:aws:s3:::DOC-EXAMPLE-SOURCE-BUCKET", }, { "Sid": "DenyCertainInventoryFieldCreation", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Ana" }, "Action": "s3:PutInventoryConfiguration", "Resource": "arn:aws:s3:::DOC-EXAMPLE-SOURCE-BUCKET", "Condition": { "ForAnyValue:StringEquals": { "s3:InventoryAccessibleOptionalFields": [ "ObjectOwner", "ObjectAccessControlList" ] } } } ] }
Anmerkung

Die Verwendung des s3:InventoryAccessibleOptionalFields Bedingungsschlüssels in Bucket-Richtlinien hat keinen Einfluss auf die Bereitstellung von Inventarberichten, die auf den vorhandenen Inventarkonfigurationen basieren.

Wichtig

Wir empfehlen die Verwendung ForAllValues mit einem Allow Effekt oder ForAnyValue mit einem Deny Effekt, wie in den vorherigen Beispielen gezeigt.

Verwenden Sie die Option weder ForAllValues mit Deny Wirkung noch ForAnyValue mit Allow Wirkung, da diese Kombinationen zu restriktiv sein und das Löschen der Inventarkonfiguration blockieren können.

Weitere Informationen zu den Operatoren ForAllValues und ForAnyValue Bedingungssatzoperatoren finden Sie im Benutzerhandbuch unter Mehrwertige Kontexttasten. IAM

Erforderlich MFA

Amazon S3 unterstützt den MFA -geschützten API Zugriff, eine Funktion, die eine Multi-Faktor-Authentifizierung (MFA) für den Zugriff auf Ihre Amazon S3 S3-Ressourcen erzwingen kann. Die Multi-Faktor-Authentifizierung bietet eine zusätzliche Sicherheitsstufe, die Sie auf Ihre Umgebung anwenden können. AWS MFAist eine Sicherheitsfunktion, bei der Benutzer den physischen Besitz eines MFA Geräts nachweisen müssen, indem sie einen gültigen MFA Code angeben. Weitere Informationen finden Sie unter AWS Multi-Factor-Authentication. Sie können MFA für alle Anfragen den Zugriff auf Ihre Amazon S3 S3-Ressourcen verlangen.

Um die MFA Anforderung durchzusetzen, verwenden Sie den aws:MultiFactorAuthAge Bedingungsschlüssel in einer Bucket-Richtlinie. IAMBenutzer können mithilfe temporärer Anmeldeinformationen, die von AWS Security Token Service (AWS STS) ausgestellt wurden, auf Amazon S3 S3-Ressourcen zugreifen. Sie geben den MFA Code zum Zeitpunkt der AWS STS Anfrage an.

Wenn Amazon S3 eine Anforderung mit Multi-Factor Authentication empfängt, liefert der aws:MultiFactorAuthAge-Bedingungsschlüssel einen numerischen Wert, der angibt, wie lange (in Sekunden) es her ist, dass die temporären Anmeldeinformationen erstellt wurden. Wenn die in der Anfrage angegebenen temporären Anmeldeinformationen nicht mithilfe eines MFA Geräts erstellt wurden, ist dieser Schlüsselwert Null (fehlt). In einer Bucket-Richtlinie können Sie eine Bedingung hinzufügen, um diesen Wert zu überprüfen, wie im folgenden Beispiel gezeigt.

Diese Beispielrichtlinie verweigert jegliche Amazon S3 S3-Operation auf dem /steuerdokumente Ordner im amzn-s3-demo-bucket Bucket, wenn die Anfrage nicht mithilfe von authentifiziert wurde. MFA Weitere Informationen MFA dazu finden Sie unter Verwenden der Multi-Faktor-Authentifizierung (MFA) AWS im IAM Benutzerhandbuch.

{ "Version": "2012-10-17", "Id": "123", "Statement": [ { "Sid": "", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/taxdocuments/*", "Condition": { "Null": { "aws:MultiFactorAuthAge": true }} } ] }

Die Null Bedingung im Condition Block wird dahingehend ausgewertet, true ob der Wert des aws:MultiFactorAuthAge Bedingungsschlüssels Null ist, was darauf hinweist, dass die temporären Sicherheitsanmeldedaten in der Anforderung ohne ein MFA Gerät erstellt wurden.

Die folgende Bucket-Richtlinie ist eine Erweiterung der vorhergehenden Bucket-Richtlinie. Die folgende Richtlinie umfasst zwei Richtlinienerklärungen. Eine Anweisung gewährt jedem die s3:GetObject-Berechtigung für einen Bucket (amzn-s3-demo-bucket). Eine weitere Anweisung schränkt den Zugriff auf den amzn-s3-demo-bucket/taxdocuments Ordner im Bucket weiter ein, indem sie verlangtMFA.

{ "Version": "2012-10-17", "Id": "123", "Statement": [ { "Sid": "", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/taxdocuments/*", "Condition": { "Null": { "aws:MultiFactorAuthAge": true } } }, { "Sid": "", "Effect": "Allow", "Principal": "*", "Action": ["s3:GetObject"], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }

Optional können Sie eine numerische Bedingung verwenden, um die Gültigkeitsdauer des aws:MultiFactorAuthAge-Schlüssels zu beschränken. Die Dauer, die Sie für den aws:MultiFactorAuthAge-Schlüssel angeben, ist unabhängig von der Lebensdauer der temporären Sicherheitsanmeldeinformationen, die für die Authentifizierung der Anforderung verwendet wurden.

Die folgende Bucket-Richtlinie verlangt beispielsweise nicht nur eine MFA Authentifizierung, sondern überprüft auch, wie lange es her ist, dass die temporäre Sitzung erstellt wurde. Die Richtlinie verweigert jede Operation, wenn der aws:MultiFactorAuthAge-Schlüsselwert angibt, dass die temporäre Sitzung vor mehr als einer Stunde erstellt wurde (3600 Sekunden).

{ "Version": "2012-10-17", "Id": "123", "Statement": [ { "Sid": "", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/taxdocuments/*", "Condition": {"Null": {"aws:MultiFactorAuthAge": true }} }, { "Sid": "", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/taxdocuments/*", "Condition": {"NumericGreaterThan": {"aws:MultiFactorAuthAge": 3600 }} }, { "Sid": "", "Effect": "Allow", "Principal": "*", "Action": ["s3:GetObject"], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }

Standardmäßig besitzen Benutzer keine Berechtigungen. Beim Erstellen von Richtlinien können Sie Benutzern jedoch Berechtigungen gewähren, die Sie nicht gewähren wollten. Um solche Berechtigungslücken zu vermeiden, können Sie eine strengere Zugriffsrichtlinie verfassen, indem Sie eine ausdrückliche Verweigerung hinzufügen.

Um Benutzer oder Konten explizit am Löschen von Objekten zu hindern, müssen Sie einer Bucket-Richtlinie die folgenden Aktionen hinzufügen: s3:DeleteObjects3:DeleteObjectVersion, und Berechtigungen. s3:PutLifecycleConfiguration Alle drei Aktionen sind erforderlich, da Sie Objekte löschen können, indem Sie entweder die DELETE Object API Operationen explizit aufrufen oder ihren Lebenszyklus konfigurieren (sieheVerwaltung des Lebenszyklus von Objekten), sodass Amazon S3 die Objekte entfernen kann, wenn ihre Lebensdauer abgelaufen ist.

Im folgenden Richtlinienbeispiel verweigern Sie dem Benutzer ausdrücklich DELETE Object BerechtigungenMaryMajor. Eine ausdrückliche Deny Erklärung hat immer Vorrang vor allen anderen erteilten Genehmigungen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/MaryMajor" }, "Action": [ "s3:GetObjectVersion", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1", "arn:aws:s3:::amzn-s3-demo-bucket1/*" ] }, { "Sid": "statement2", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::123456789012:user/MaryMajor" }, "Action": [ "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:PutLifecycleConfiguration" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1", "arn:aws:s3:::amzn-s3-demo-bucket1/*" ] } ] }