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
als Ressourcenwert. Wenn Sie diese Richtlinien testen möchten, ersetzen Sie die amzn-s3-demo-bucket
durch Ihre eigenen Informationen (z. B. Ihren Bucket-Namen). user input placeholders
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:
-
Eine Liste der IAM Richtlinienaktionen, Ressourcen und Bedingungsschlüssel, die Sie bei der Erstellung einer Bucket-Richtlinie verwenden können, finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für Amazon S3 in der Service Authorization Reference.
-
Weitere Informationen zu den Berechtigungen für API S3-Operationen nach S3-Ressourcentypen finden Sie unterErforderliche Berechtigungen für Amazon S3 API S3-Operationen.
-
Anleitungen zur Erstellung einer S3-Richtlinie finden Sie unter Hinzufügen einer Bucket-Richtlinie mit der Amazon-S3-Konsole.
-
Informationen zur Behebung von Fehlern mit einer Richtlinie finden Sie unter Problembehandlung bei verweigertem Zugriff beheben (403 Forbidden) Fehler in Amazon S3.
Themen
- Einem öffentlichen anonymen Benutzer nur Lesezugriff gewähren
- Erfordern von Verschlüsselung
- Verwaltung von Buckets mithilfe von Containern ACLs
- Verwaltung des Objektzugriffs mit Objektmarkierung
- Verwalten des Objektzugriffs mithilfe globaler Bedingungsschlüssel
- Verwaltung des Zugriffs auf der Grundlage HTTP unserer HTTPS Anfragen
- Verwalten des Benutzerzugriffs auf bestimmte Ordner
- Verwalten des Zugriffs für Zugriffsprotokolle
- Zugriff auf einen Amazon verwalten CloudFront OAI
- Verwalten des Zugriffs für Amazon S3 Storage Lens
- Verwalten von Berechtigungen für S3 Inventory, S3 Analytics und S3-Inventory-Berichte
- Erforderlich MFA
- Benutzer daran hindern, Objekte zu löschen
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?
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.
-
Öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/
. -
Wählen Sie den Namen des Buckets aus, den Sie als statische Website konfiguriert haben.
-
Wählen Sie Permissions (Berechtigungen).
-
Wählen Sie unter Block public access (bucket settings) (Öffentlichen Zugriff blockieren (Bucket-Einstellungen)), die Option Edit (Bearbeiten).
-
Löschen Sie Block all public access (Gesamten öffentlichen Zugriff blockieren) und wählen Sie Save (Speichern).
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:::/*", "Condition": { "Null": { "s3:x-amz-server-side-encryption-aws-kms-key-id": "true" } } }] }
amzn-s3-demo-bucket
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:::/*", "Condition": { "ArnNotEqualsIfExists": { "s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:
amzn-s3-demo-bucket
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:::/*", "Condition": { "StringEquals": { "s3:x-amz-acl": [ "public-read" ] } } } ] }
amzn-s3-demo-bucket
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 (
) die Möglichkeit, Objekte nur hochzuladen, wenn das Konto beim Upload die 111122223333
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:::/*", "Condition": { "StringEquals": {"s3:x-amz-acl":"bucket-owner-full-control"} } } ] }
amzn-s3-demo-bucket
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:::/*" ], "Condition": {"ForAnyValue:StringEquals": {"s3:RequestObjectTagKeys": [ "Owner", "CreationDate" ] } } } ] }
amzn-s3-demo-bucket
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.
) mit dem Wert Project
angibt.X
{ "Version": "2012-10-17", "Statement": [ {"Principal":{"AWS":[ "arn:aws:iam::
111122223333
:user/JohnDoe
" ] }, "Effect": "Allow", "Action": [ "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::/*" ], "Condition": {"StringEquals": {"s3:RequestObjectTag/
amzn-s3-demo-bucket
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 (
) mit dem Wert Department
haben.Finance
{ "Version": "2012-10-17", "Statement": [{ "Principal":{ "AWS":[ "arn:aws:iam::
111122223333
:user/JohnDoe
" ] }, "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::/*" ], "Condition": { "StringEquals": { "s3:RequestObjectTag/
amzn-s3-demo-bucket
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:::/*", "Condition": { "StringEquals": { "aws:SourceAccount": "
amzn-s3-demo-bucket
-logs111111111111
" }, "ArnLike": { "aws:SourceArn": "arn:aws:s3:::EXAMPLE-SOURCE-BUCKET
" } } }, { "Sid": "RestrictToS3ServerAccessLogs
", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::/*", "Condition": { "StringNotEqualsIfExists": { "aws:PrincipalServiceName": "logging.s3.amazonaws.com" } } } ] }
amzn-s3-demo-bucket
-logs
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:::
/*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": ["
amzn-s3-demo-bucket
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:::
", "arn:aws:s3:::
amzn-s3-demo-bucket
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
or www.example.com
mit Links zu Fotos und Videos, die in Ihrem Bucket gespeichert sindexample.com
. Standardmäßig sind alle Amazon S3 S3-Ressourcen privat, sodass nur derjenige AWS-Konto darauf zugreifen kann, der die Ressourcen erstellt hat. amzn-s3-demo-bucket
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
vollen Konsolenzugriff nur auf seinen Ordner (JohnDoe
home/
). Indem Sie einen JohnDoe
/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:
-
: Erlaubt dem Benutzer (AllowRootAndHomeListingOfCompanyBucket
), Objekte auf der Stammebene desJohnDoe
-Buckets und imamzn-s3-demo-bucket
home
-Ordner aufzulisten. Diese Anweisung erlaubt dem Benutzer außerdem, mithilfe der Konsole nach dem Präfixhome/
zu suchen. -
: Erlaubt dem Benutzer (AllowListingOfUserFolder
), alle Objekte imJohnDoe
home/
-Ordner und entsprechenden Unterordnern aufzulisten.JohnDoe
/ -
: Erlaubt dem Benutzer, alle Amazon-S3-Aktionen durchzuführen, indemAllowAllS3ActionsInUserFolder
Read
-,Write
- undDelete
-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:::"], "Condition": { "StringEquals": { "s3:prefix": ["", "home/", "home/
amzn-s3-demo-bucket
JohnDoe
"], "s3:delimiter": ["/"] } } }, { "Sid": "AllowListingOfUserFolder
", "Principal": { "AWS": [ "arn:aws:iam::111122223333
:user/JohnDoe
" ] }, "Action": ["s3:ListBucket"], "Effect": "Allow", "Resource": ["arn:aws:s3:::"], "Condition": { "StringLike": { "s3:prefix": ["home/
amzn-s3-demo-bucket
JohnDoe
/*"] } } }, { "Sid": "AllowAllS3ActionsInUserFolder
", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333
:user/JohnDoe
" ] }, "Action": ["s3:*"], "Resource": ["arn:aws:s3:::/home/
amzn-s3-demo-bucket
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
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.elb-account-id
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:
-
Ersetze es
durch OAI die ID. Um die OAI s-ID zu finden, besuche die Origin Access Identity-SeiteEH1HDMB1FH2TC
auf der CloudFront Konsole oder verwende ListCloudFrontOriginAccessIdentitiesin der CloudFront API. -
Ersetzen Sie
durch den Namen von Ihrem Bucket.amzn-s3-demo-bucket
{ "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 (
) unter bestimmten Bedingungen die Berechtigung, eine Inventarkonfiguration zu erstellen. Die Ana
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
sie also eine Inventarkonfiguration erstellt, sind die einzigen optionalen Metadatenfelder, die sie einbeziehen kann, Ana
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
dem Benutzer, eine Inventarkonfiguration im Quell-Bucket zu erstellen, die Ana
die optionalen Felder DOC-EXAMPLE-SOURCE-BUCKET
ObjectAccessControlList
oder ObjectOwner
Metadatenfelder enthält. Der Benutzer
kann weiterhin eine Inventarkonfiguration mit anderen optionalen Metadatenfeldern erstellen.Ana
{ "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
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
Ordner im /steuerdokumente
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.amzn-s3-demo-bucket
{ "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 (
). Eine weitere Anweisung schränkt den Zugriff auf den amzn-s3-demo-bucket
Ordner im Bucket weiter ein, indem sie verlangtMFA. amzn-s3-demo-bucket
/taxdocuments
{ "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
/*" } ] }
Benutzer daran hindern, Objekte zu löschen
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:DeleteObject
s3: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
Berechtigungen
. Eine ausdrückliche MaryMajor
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/" }, "Action": [ "s3:GetObjectVersion", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::
MaryMajor
", "arn:aws:s3:::
amzn-s3-demo-bucket1
" ] }, { "Sid": "statement2", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::
amzn-s3-demo-bucket1
/*123456789012
:user/" }, "Action": [ "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:PutLifecycleConfiguration" ], "Resource": [ "arn:aws:s3:::
MaryMajor
", "arn:aws:s3:::
amzn-s3-demo-bucket1
" ] } ] }
amzn-s3-demo-bucket1
/*