Wie kann ich den Zugriff auf meinen Amazon S3-Bucket über bestimmte VPC-Endpunkte oder IP-Adressen einschränken?
Ich möchte jeglichen Datenverkehr blockieren, der nicht von einem bestimmten Amazon Virtual Private Cloud (VPC)-Endpunkt oder bestimmten IP-Adressen kommt. Oder ich verwende einen Amazon Simple Storage Service (Amazon S3)-Bucket, um eine statische Website zu hosten. Die Website muss von bestimmten VPC-Endpunkten oder IP-Adressen aus zugänglich sein.
Behebung
**Warnung:**Die Beispiel-Bucket-Richtlinien in diesem Artikel verweigern ausdrücklich den Zugriff auf Anfragen außerhalb der zulässigen VPC-Endpunkte oder IP-Adressen. Stellen Sie sicher, dass Sie die Bucket-Richtlinie sorgfältig überprüfen, bevor Sie sie speichern.
Verwenden Sie eine Bucket-Richtlinie, um anzugeben, welche VPC-Endpunkte, VPC-Quell-IP-Adressen und externen IP-Adressen auf den S3-Bucket zugreifen können.
**Hinweis:**Eine VPC-Quell-IP-Adresse ist eine private IP-Adresse innerhalb einer VPC. Private Adressen sind über das Internet nicht erreichbar und können für die Kommunikation zwischen den Instances in Ihrer VPC verwendet werden. Eine private IP-Adresse kann beispielsweise die private IP-Adresse einer Amazon Elastic Compute Cloud (Amazon EC2)-Instance sein.
Eine externe IP-Adresse ist eine öffentliche IP-Adresse, die sich innerhalb einer VPC oder außerhalb einer VPC befinden kann. Eine externe IP-Adresse kann beispielsweise die elastische oder öffentliche IP-Adresse einer Amazon Elastic Compute Cloud (Amazon EC2)-Instance sein. Oder die externe IP-Adresse kann die IP-Adresse des NAT-Gateways oder Proxyservers einer VPC sein.
Die folgende Beispiel-Bucket-Richtlinie blockiert den Datenverkehr zum Bucket, es sei denn, die Anforderung stammt von bestimmten VPC-Endpunkten (aws:sourceVpce):
{ "Id": "VPCe", "Version": "2012-10-17", "Statement": [ { "Sid": "VPCe", "Action": "s3:*", "Effect": "Deny", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ], "Condition": { "StringNotEquals": { "aws:SourceVpce": [ "vpce-1111111", "vpce-2222222" ] } }, "Principal": "*" } ] }
Hinweis:
- Um diese Richtlinie mit der Bedingung aws:sourceVpce zu verwenden, müssen Sie einen VPC-Endpunkt für Amazon S3 anhängen. Der VPC-Endpunkt muss an die Routing-Tabelle des Subnetzes der EC2-Instance angehängt sein und sich in derselben AWS-Region wie der Bucket befinden.
- Damit Benutzer S3-Aktionen für den Bucket von den VPC-Endpunkten oder IP-Adressen aus ausführen können, müssen Sie die Berechtigungen auf Benutzerebene explizit zulassen. Sie können explizit Berechtigungen auf Benutzerebene entweder für eine AWS Identity and Access Management (IAM)-Richtlinie oder für eine andere Anweisung in der Bucket-Richtlinie zulassen.
Die folgende Beispiel-Bucket-Richtlinie blockiert den Datenverkehr zum Bucket, sofern die Anfrage nicht von bestimmten privaten IP-Adressen stammt (aws:VpcSourceIp):
{ "Id": "VpcSourceIp", "Version": "2012-10-17", "Statement": [ { "Sid": "VpcSourceIp", "Action": "s3:*", "Effect": "Deny", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ], "Condition": { "NotIpAddress": { "aws:VpcSourceIp": [ "10.1.1.1/32", "172.1.1.1/32" ] } }, "Principal": "*" } ] }
**Hinweis:**Um diese Richtlinie mit der aws:VpcSourceIP-Bedingung zu verwenden, müssen Sie einen VPC-Endpunkt für Amazon S3 anhängen. Der VPC-Endpunkt muss an die Routing-Tabelle des Subnetzes der EC2-Instance angehängt sein und sich in derselben AWS-Region wie der Bucket befinden.
Die folgende Beispiel-Bucket-Richtlinie blockiert den Datenverkehr zum Bucket, es sei denn, die Anforderung stammt von bestimmten externen IP-Adressen (aws:SourceIp):
{ "Id": "SourceIP", "Version": "2012-10-17", "Statement": [ { "Sid": "SourceIP", "Action": "s3:*", "Effect": "Deny", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ], "Condition": { "NotIpAddress": { "aws:SourceIp": [ "11.11.11.11/32", "22.22.22.22/32" ] } }, "Principal": "*" } ] }
**Warnung:**Diese Beispiel-Bucket-Richtlinien verweigern ausdrücklich den Zugriff auf Anfragen außerhalb der zulässigen VPC-Endpunkte oder IP-Adressen. Selbst dem Benutzer, der die Bucket-Richtlinie eingegeben hat, kann der Zugriff auf den Bucket verweigert werden, wenn der Benutzer die Bedingungen nicht erfüllt. Stellen Sie daher sicher, dass Sie die Bucket-Richtlinie sorgfältig überprüfen, bevor Sie sie speichern. Wenn Sie versehentlich gesperrt werden, finden Sie weitere Informationen unter Ich habe versehentlich allen Zugriff auf meinen Amazon S3-Bucket verweigert. Wie erhalte ich wieder Zugriff?
Wenn Sie bestimmten Benutzern (innerhalb desselben AWS-Kontos) Zugriff auf den Bucket gewähren müssen, fügen Sie die folgende Aussage in den Condition-Block ein:
- AROAEXAMPLEID ist die Rollen-ID einer IAM-Rolle, die Sie zulassen möchten
- AIDAEXAMPLEID ist die Benutzer-ID eines IAM-Benutzers, den Sie zulassen möchten
- 111111111111 ist die AWS-Konto-ID des Buckets, die die Anmeldeinformationen des Root-Benutzers des AWS-Kontos darstellt
Zum Beispiel:
"Condition": { "StringNotLike": { "aws:userId": [ "AROAEXAMPLEID:*", "AIDAEXAMPLEID", "111111111111" ] } }
Weitere Informationen zum Gewähren des Zugriffs auf bestimmte IAM-Rollen finden Sie unter So beschränken Sie den Amazon S3-Bucket-Zugriff auf eine bestimmte IAM-Rolle.
Ähnliche Informationen
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren