Dieses Handbuch wird nicht mehr aktualisiert. Aktuelle Informationen und Anweisungen finden Sie im neuen Amazon S3-Benutzerhandbuch.
Verwenden von Amazon S3 Block Public Access
Die Amazon S3 Block Public Access-Funktion bietet Einstellungen für Zugriffspunkte, Buckets und Konten, mit denen Sie den öffentlichen Zugriff auf Amazon S3-Ressourcen verwalten können. Standardmäßig erlauben neue Buckets, Zugriffspunkte und Objekte keinen öffentlichen Zugriff. Benutzer können jedoch Bucket-Richtlinien, Zugriffspunkt-Richtlinien oder Objektberechtigungen ändern, um öffentlichen Zugriff zu ermöglichen. S3 Block Public Access-Einstellungen überschreiben diese Richtlinien und Berechtigungen, damit Sie den öffentlichen Zugriff auf diese Ressourcen einschränken können.
Mit S3 Block Public Access können Administratoren und Bucket-Eigentümer problemlos zentrale Kontrollen zur Begrenzung des öffentlichen Zugriffs auf ihre Amazon S3-Ressourcen einrichten. Diese Kontrollen werden unabhängig davon durchgesetzt, wie die Ressourcen erstellt wurden.
Wenn Amazon S3 eine Anforderung zum Zugriff auf einen Bucket oder ein Objekt erhält, wird ermittelt, ob für den Bucket oder das Konto des Bucket-Eigentümers eine Block Public Access-Einstellung vorliegt. Wenn die Anforderung über einen Zugriffspunkt einging, prüft Amazon S3 auch auf Block Public Access-Einstellungen für den Zugriffspunkt. Wenn eine Block Public Access-Einstellung vorhanden ist, die den angeforderten Zugriff verbietet, lehnt Amazon S3 die Anforderung ab.
Amazon S3 Block Public Access bietet vier Einstellungen. Diese Einstellungen sind voneinander unabhängig und können in beliebiger Kombination verwendet werden. Jede Einstellung kann auf einen Zugriffspunkt, einen Bucket oder ein gesamtes AWS-Konto angewendet werden. Wenn sich die Block Public Access-Einstellungen für den Zugriffspunkt, den Bucket oder das Konto unterscheiden, wendet Amazon S3 die restriktivste Kombination der Zugriffspunkt-, Bucket- und Kontoeinstellungen an.
Wenn Amazon S3 ermittelt, ob eine Operation von einer Block Public Access-Einstellung untersagt wird, werden alle Anforderungen abgelehnt, die gegen eine Zugriffspunkt-, Bucket- oder Konto-Einstellung verstoßen.
Öffentlicher Zugriff für Buckets und Objekte wird über Zugriffskontrolllisten (ACLs), Zugriffspunktrichtlinien und Bucket-Richtlinien gewährt. Um sicherzustellen, dass der öffentliche Zugriff für alle Amazon S3-Zugriffspunkte, -Buckets und -Objekte blockiert ist, empfehlen wir, alle vier Einstellungen zur Blockierung des öffentlichen Zugriffs für das Konto zu aktivieren. Diese Einstellungen blockieren den öffentlichen Zugriff für alle aktuellen und künftigen Buckets und Zugriffspunkte.
Bevor Sie diese Einstellungen anwenden, verifizieren Sie, dass Ihre Anwendungen ohne öffentlichen Zugriff korrekt funktionieren. Wenn ein bestimmter Umfang an öffentlichem Zugriff auf Ihre Buckets oder Objekte nötig ist, z. B. zum Hosten einer statischen Website, wie unter Hosten einer statischen Website auf Amazon S3 beschrieben, können Sie die einzelnen Einstellungen an Ihre Speicheranwendungsfälle anpassen.
-
Sie können die Einstellungen für Block Public Access nur für Zugangspunkte, Buckets und AWS-Konten aktivieren. Amazon S3 unterstützt keine Block Public Access-Einstellungen für den öffentlichen Zugriff pro Objekt.
-
Wenn Sie die Block Public Access-Einstellungen auf ein Konto anwenden, gelten die Einstellungen global für alle AWS-Regionen. Die Einstellungen werden möglicherweise nicht in allen Regionen umgehend oder gleichzeitig wirksam, werden aber auf jeden Fall von allen Regionen übernommen.
Themen
Aktivieren von Block Public Access auf der Amazon S3-Konsole
Amazon S3 Block Public Access bietet vier Einstellungen. Sie können diese Einstellungen in jeder Kombination auf einzelne Zugriffspunkte, Buckets oder ganze AWS-Konten anwenden. Die folgende Abbildung zeigt die Aktivierung von Block Public Access auf der Amazon S3-Konsole für Ihr Konto. Weitere Informationen finden Sie unter Festlegen von Berechtigungen: Block Public Access im Benutzerhandbuch der Amazon Simple Storage Service-Konsole.

Block Public Access-Einstellungen
S3 Block Public Access bietet vier Einstellungen. Sie können diese Einstellungen in jeder Kombination auf einzelne Zugriffspunkte, Buckets oder ganze AWS-Konten anwenden. Wenn Sie eine Einstellung auf ein Konto anwenden, gilt sie für alle Buckets und Zugriffspunkte, die dem Konto gehören. Wenn Sie eine Einstellung auf einen Bucket anwenden, gilt diese auch für alle Zugriffspunkte, die diesem Bucket zugeordnet sind.
Die folgende Tabelle enthält die verfügbaren Einstellungen.
Name | Beschreibung |
---|---|
BlockPublicAcls |
Das Festlegen dieser Option auf
Wen diese Einstellung auf Zugriffspunkten sind keine ACLs zugeordnet. Wenn Sie diese Einstellung auf einen Zugriffspunkt anwenden, fungiert sie als Passthrough zum zugrunde liegenden Bucket. Wenn diese Einstellung für einen Zugriffspunkt aktiviert ist, verhalten sich Anforderungen, die über den Zugriffspunkt vorgenommen werden, so als ob der zugrunde liegende Bucket diese Einstellung aktiviert hat, unabhängig davon, ob diese Einstellung für den Bucket tatsächlich aktiviert ist. |
IgnorePublicAcls |
Wenn Sie diese Option auf Zugriffspunkten sind keine ACLs zugeordnet. Wenn Sie diese Einstellung auf einen Zugriffspunkt anwenden, fungiert sie als Passthrough zum zugrunde liegenden Bucket. Wenn diese Einstellung für einen Zugriffspunkt aktiviert ist, verhalten sich Anforderungen, die über den Zugriffspunkt vorgenommen werden, so als ob der zugrunde liegende Bucket diese Einstellung aktiviert hat, unabhängig davon, ob diese Einstellung für den Bucket tatsächlich aktiviert ist. |
BlockPublicPolicy |
Wenn Sie diese Option auf Mit dieser Einstellung können Sie es Benutzern gestatten, Zugriffspunkt- und Bucket-Richtlinien zu verwalten, ohne ihnen die öffentliche Freigabe des Buckets oder der darin enthaltenen Objekte zu erlauben. Die Aktivierung dieser Einstellung hat keine Auswirkungen auf vorhandene Zugriffspunkt- oder Bucket-Richtlinien. Um diese Einstellung effektiv zu nutzen, empfehlen wir Ihnen, sie auf Konto-Ebene anzuwenden. Eine Bucket-Richtlinie kann Benutzern das Ändern der Block Public Access-Einstellungen eines Buckets gestatten. Daher könnten Benutzer mit der Berechtigung zum Ändern einer Bucket-Richtlinie eine Richtlinie einfügen, die es ihnen erlaubt, die Block Public Access-Einstellungen für den Bucket zu deaktivieren. Wenn diese Einstellung dann für das ganze Konto aktiviert wird statt für einen bestimmten Bucket, blockiert Amazon S3 öffentliche Richtlinien selbst dann, wenn ein Benutzer die Bucket-Richtlinie so ändert, dass diese Einstellung deaktiviert wird. |
RestrictPublicBuckets |
Durch das Festlegen dieser Option auf Die Aktivierung dieser Einstellung wirkt sich nicht auf vorhandene Zugriffspunkt- oder Bucket-Richtlinien aus – mit folgender Ausnahme: Amazon S3 blockiert den öffentlichen und kontenübergreifenden Zugriff, der von einer öffentlichen Zugriffspunkt- oder Bucket-Richtlinie abgeleitet wird, darunter auch die nicht-öffentliche Delegation auf bestimmte Konten. |
-
"GET Bucket acl"- und "GET Object acl"-Aufrufe geben immer die effektiven Berechtigungen für den angegebenen Bucket oder das angegebene Objekt zurück. Nehmen wir als Beispiel an, dass ein Bucket über eine ACL verfügt, die den öffentlichen Zugriff zulässt, dass für den Bucket aber auch die Einstellung
IgnorePublicAcls
aktiviert ist. In diesem Fall gibt „GET Bucket acl“ statt der ACL, die tatsächlich mit dem Bucket verknüpft ist, eine ACL zurück, die die von Amazon S3 durchgesetzten Zugriffsberechtigungen widerspiegelt. -
Die Block Public Access-Einstellungen ändern keine vorhandenen Richtlinien oder ACLs. Daher sorgt das Entfernen einer Block Public Access-Einstellung dafür, dass ein Bucket oder ein Objekt mit einer öffentlichen Richtlinie oder ACLs wieder öffentlich zugänglich ist.
Die Bedeutung von „öffentlich“
Buckets
-
ACLs
-
Amazon S3 betrachtet eine Bucket- oder Objekt-ACL als öffentlich, wenn sie Mitgliedern der vordefinierten Gruppen
AllUsers
oderAuthenticatedUsers
irgendwelche Berechtigungen erteilt. Weitere Informationen zu vordefinierten Gruppen finden Sie unter Vordefinierte Gruppen in Amazon S3.
-
-
Richtlinien
-
Bei der Evaluierung einer Bucket-Richtlinie beginnt Amazon S3 mit der Annahme, dass die Richtlinie öffentlich ist. Dann evaluiert es die Richtlinie, um festzustellen, ob sie als nicht-öffentlich eingestuft werden kann. Um als nicht-öffentlich zu gelten, darf eine Bucket-Richtlinie nur Zugriff für feste Werte (Werte, die keine Platzhalter aufweisen) gewähren, wie einen oder mehrere der folgenden Werte:
-
einen Satz von Classless Inter-Domain Routings (CIDRs), unter Verwendung von
aws:SourceIp
. Weitere Informationen zu CIDR finden Sie unter RFC 4632auf der RFC-Editor-Website. -
Ein AWS-Prinzipal, Benutzer, Rolle, oder Service-Prinzipal (z. B.
aws:PrincipalOrgID
) -
aws:SourceArn
-
aws:SourceVpc
-
aws:SourceVpce
-
aws:SourceOwner
-
aws:SourceAccount
-
s3:x-amz-server-side-encryption-aws-kms-key-id
-
aws:userid
, außerhalb des Musters "AROLEID:*
" -
s3:DataAccessPointArn
Anmerkung Bei Verwendung in einer Bucket-Richtlinie kann dieser Wert einen Platzhalter für den Namen des Zugriffspunkts enthalten, ohne die Richtlinie öffentlich zu machen, solange die Konto-ID fixiert ist. Das Zulassen des Zugriffs auf
arn:aws:s3:us-west-2:123456789012:accesspoint/*
würde beispielsweise den Zugriff auf jeden Zugriffspunkt ermöglichen, der dem Konto123456789012
in Regionus-west-2
zugeordnet ist, ohne die Bucket-Richtlinie öffentlich zu machen. Beachten Sie, dass sich dieses Verhalten von dem von Zugriffspunkt-Richtlinien unterscheidet. Weitere Informationen finden Sie unter Zugriffspunkte. -
s3:DataAccessPointAccount
-
-
Nach diesen Regeln gelten die folgenden Beispielrichtlinien als öffentlich.
{ "Principal": { "Federated": "graph.facebook.com" }, "Resource": "*", "Action": "s3:PutObject", "Effect": "Allow" }
{ "Principal": "*", "Resource": "*", "Action": "s3:PutObject", "Effect": "Allow" }
{ "Principal": "*", "Resource": "*", "Action": "s3:PutObject", "Effect": "Allow", "Condition": { "StringLike": {"aws:SourceVpc": "vpc-*"}} }
Diese Richtlinien können zu nicht-öffentlichen Richtlinien gemacht werden, indem einer der vorgenannten Bedingungsschlüssel unter Verwendung eines festen Wertes eingefügt wird. So können Sie beispielsweise die letzte oben angeführte Richtlinie zu einer nicht-öffentlichen Richtlinie machen, indem Sie
aws:SourceVpc
wie folgt auf einen festen Wert festlegen.{ "Principal": "*", "Resource": "*", "Action": "s3:PutObject", "Effect": "Allow", "Condition": {"StringEquals": {"aws:SourceVpc": "vpc-91237329"}} }
-
Weitere Informationen zu Bucket-Richtlinien finden Sie unter Verwendung von Bucket-Richtlinien und Benutzerrichtlinien.
-
Beispiel
Dieses Beispiel zeigt, wie Amazon S3 eine Bucket-Richtlinie bewertet, die Berechtigungen sowohl für den öffentlichen wie auch für den nicht-öffentlichen Zugriff enthält.
Nehmen wir an, dass ein Bucket eine Richtlinie aufweist, die den Zugriff auf einen
Satz an festen Prinzipalen gewährt. Nach den zuvor beschriebenen Regeln gilt diese
Richtlinie nicht als öffentlich. Wenn Sie daher die Einstellung RestrictPublicBuckets
aktivieren, bleibt die Richtlinie wie geschrieben in Kraft, da RestrictPublicBuckets
nur für Buckets mit öffentlichen Richtlinien gilt. Wenn Sie jedoch der Richtlinie
eine öffentliche Anweisung hinzufügen, wird RestrictPublicBuckets
für den Bucket wirksam. Nur AWS-Service-Prinzipalen und autorisierten Benutzern des
Kontos des Bucket-Eigentümers wird der Zugriff auf den Bucket gewährt.
Nehmen wir beispielsweise an, dass ein Bucket, der „Konto-1“ gehört, eine Richtlinie aufweist, die Folgendes enthält:
-
Eine Anweisung, die Zugriff auf AWS CloudTrail gewährt (einen AWS-Serviceprinzipal)
-
eine Anweisung, die Konto "Konto-2" Zugriff gewährt
-
eine Anweisung, die der Öffentlichkeit Zugriff gewährt, z. B. durch das Festlegen von
"Principal": "*"
ohne einschränkendeCondition
Diese Richtlinie gilt wegen der dritten Anweisung als öffentlich. Wenn diese Richtlinie
vorhanden und RestrictPublicBuckets
aktiviert ist, erlaubt Amazon S3 den Zugriff nur von CloudTrail aus. Beachten Sie:
Obwohl die zweite Anweisung nicht öffentlich ist, deaktiviert Amazon S3 den Zugriff
durch „Account-2“. Das liegt daran, dass die dritte Anweisung die gesamte Richtlinie
zu einer öffentlichen Richtlinie macht, so dass RestrictPublicBuckets
gilt. Somit deaktiviert Amazon S3 den kontoübergreifenden Zugriff, obwohl die Richtlinie
den Zugriff an ein bestimmtes Konto („Account-2“) delegiert. Wenn Sie aber die dritte
Anweisung aus der Richtlinie entfernen, gilt die Richtlinie nicht als öffentlich,
und RestrictPublicBuckets
ist nicht mehr gültig. Somit erhält „Konto-2“ wieder Zugriff auf den Bucket, selbst
wenn Sie RestrictPublicBuckets
aktiviert lassen.
Zugriffspunkte
Amazon S3 wertet Block Public Access-Einstellungen für Zugriffspunkte geringfügig anders als für Buckets aus. Die Regeln, die Amazon S3 anwendet, um zu bestimmen, wann eine Zugriffspunkt-Richtlinie öffentlich ist, sind für Zugriffspunkte im Allgemeinen dieselben wie für Buckets, außer in den folgenden Situationen:
-
Ein Zugriffspunkt mit einem VPC-Netzwerkursprung wird unabhängig vom Inhalt seiner Zugriffspunkt-Richtlinie immer als nicht öffentlich betrachtet.
-
Eine Zugriffspunktrichtlinie, die Zugriff auf eine Gruppe von Zugriffspunkten unter Verwendung von
s3:DataAccessPointArn
gewährt, gilt als öffentlich. Beachten Sie, dass sich dieses Verhalten von dem von Bucket-Richtlinien unterscheidet. Beispielsweise wird eine Bucket-Richtlinie, die Zugriff aufs3:DataAccessPointArn
-Werte gewährt, diearn:aws:s3:us-west-2:123456789012:accesspoint/*
entsprechen, nicht als öffentlich betrachtet. Dieselbe Anweisung in einer Zugriffspunkt-Richtlinie würde jedoch den Zugriffspunkt öffentlich machen.
Verwenden des Zugriffs-Analyzer für S3 zur Überprüfung öffentlicher Buckets
Sie können den Zugriffs-Analyzer für S3 verwenden, um Buckets mit Bucket-ACLs, Bucket-Richtlinien oder Zugriffspunktrichtlinien zu überprüfen, die öffentlichen Zugriff gewähren. Der Zugriffs-Analyzer für S3 macht Sie auf S3-Buckets aufmerksam, die so konfiguriert sind, dass jedem im Internet oder anderen AWS-Konten, einschließlich AWS-Konten außerhalb Ihrer Organisation, Zugriff gewährt wird. Für jeden öffentlichen oder freigegebenen Bucket erhalten Sie Ergebnisse, die die Quelle und die Ebene des öffentlichen oder freigegebenen Zugriffs melden.
Bewaffnet mit dem Wissen, das in den Ergebnissen präsentiert wird, können Sie sofortige und präzise Korrekturmaßnahmen ergreifen. Im Zugriffs-Analyzer für S3 können Sie den gesamten öffentlichen Zugriff auf einen Bucket mit einem einzigen Klick blockieren. Sie können auch einen Drilldown in die Berechtigungseinstellungen auf Bucket-Ebene ausführen, um detaillierte Zugriffsebenen zu konfigurieren. Für bestimmte und geprüfte Anwendungsfälle, die öffentlichen oder freigegebenen Zugriff erfordern, können Sie Ihre Absicht bestätigen und aufzeichnen, dass der Bucket öffentlich oder freigegeben bleibt, indem Sie die Ergebnisse für den Bucket archivieren.
In seltenen Fällen meldet der Zugriffs-Analyzer für S3 möglicherweise keine Ergebnisse für einen Bucket, den eine Amazon S3 Block Public Access-Auswertung als öffentlich meldet. Dies ist der Fall, da Amazon S3 Block Public Access Richtlinien für aktuelle Aktionen und potenzielle Aktionen, die in Zukunft hinzugefügt werden könnten und die dazu führen könnten, dass ein Bucket öffentlich wird, überprüft. Andererseits analysiert der Zugriffs-Analyzer für S3 nur die aktuellen Aktionen, die für den Amazon S3-Service bei der Bewertung des Zugriffsstatus festgelegt wurden.
Weitere Informationen zum Zugriffs-Analyzer für S3 finden Sie unter Verwenden des Zugriffs-Analyzer für S3 im Amazon Simple Storage Service Konsolen-Benutzerhandbuch.
Berechtigungen
Um die Funktionen von Amazon S3 Block Public Access zu nutzen, benötigen Sie die folgenden Berechtigungen:
Operation | Erforderliche Berechtigungen |
---|---|
GET bucket policy status | s3:GetBucketPolicyStatus |
GET bucket Block Public Access settings | s3:GetBucketPublicAccessBlock |
PUT bucket Block Public Access settings | s3:PutBucketPublicAccessBlock |
DELETE bucket Block Public Access settings | s3:PutBucketPublicAccessBlock |
GET account Block Public Access settings | s3:GetAccountPublicAccessBlock |
PUT account Block Public Access settings | s3:PutAccountPublicAccessBlock |
DELETE account Block Public Access settings | s3:PutAccountPublicAccessBlock |
PUT Zugriffspunkt-Block Public Access-Einstellungen | s3:PutAccessPointPublicAccessBlock |
Für die DELETE-Operationen sind dieselben Berechtigungen erforderlich wie für die PUT-Operationen. Es gibt keine separaten Berechtigungen für die DELETE-Operationen.
Beispiele
Verwenden von Block Public Access mit der AWS CLI
Sie können Amazon S3 Block Public Access über die AWS CLI verwenden. Welchen Befehl Sie verwenden, hängt davon ab, ob Sie einen Block Public Access-Aufruf auf einem Zugriffspunkt, einem Bucket oder einem Konto durchführen möchten. Weitere Informationen zum Einrichten und Verwenden der AWS CLI finden Sie unter Was ist die AWS-Befehlszeilenschnittstelle?
-
Zugriffspunkt
-
Um Block Public Access-Operationen für einen Zugriffspunkt durchzuführen, verwenden Sie den AWS-CLI-Service
s3control
. Beachten Sie, dass es derzeit nicht möglich ist, die Block Public Accesss-Einstellungen eines Zugriffspunkts nach dem Erstellen des Zugriffspunkts zu ändern. Die einzige Möglichkeit, Block Public Access-Einstellungen für einen Zugriffspunkt anzugeben, besteht darin, diese beim Erstellen des Zugriffspunkts einzuschließen.
-
-
Bucket
-
Um Block Public Access-Operationen auf einem Bucket durchzuführen, verwenden Sie den AWS-CLI-Service
s3api
. Folgende Operationen auf Bucket-Ebene verwenden diesen Service:-
PUT PublicAccessBlock (für einen Bucket)
-
GET PublicAccessBlock (für einen Bucket)
-
DELETE PublicAccessBlock (für einen Bucket)
-
GET BucketPolicyStatus
-
-
-
Konto
-
Um Block Public Access-Operationen auf einem Konto durchzuführen, verwenden Sie den AWS-CLI-Service
s3control
. Folgende Operationen auf Konto-Ebene verwenden diesen Service:-
PUT PublicAccessBlock (für ein Konto)
-
GET PublicAccessBlock (für ein Konto)
-
DELETE PublicAccessBlock (für ein Konto)
-
-
Verwenden von Block Public Access mit dem AWS SDK für Java
Die folgenden Beispiele zeigen, wie Sie Amazon S3 Block Public Access mit dem AWS SDK für Java verwenden. Anweisungen zum Erstellen und Testen eines funktionierenden Beispiels finden Sie unter Using the AWS SDK for Java.
Beispiel 1
Dieses Beispiel zeigt, wie Sie mit dem AWS SDK für Java eine Block Public Access-Konfiguration auf einem S3-Bucket einrichten.
AmazonS3 client = AmazonS3ClientBuilder.standard() .withCredentials(
<credentials>
) .build(); client.setPublicAccessBlock(new SetPublicAccessBlockRequest() .withBucketName(<bucket-name>
) .withPublicAccessBlockConfiguration(new PublicAccessBlockConfiguration() .withBlockPublicAcls(<value>
) .withIgnorePublicAcls(<value>
) .withBlockPublicPolicy(<value>
) .withRestrictPublicBuckets(<value>
)));
Dieses Beispiel trifft nur für Operationen auf Bucket-Ebene zu, die die AmazonS3
-Client-Klasse verwenden. Sehen Sie sich für Operationen auf Konto-Ebene das folgende
Beispiel an.
Beispiel 2
Dieses Beispiel zeigt, wie Sie mit dem AWS SDK für Java eine Block Public Access-Konfiguration auf einem Amazon S3-Konto einrichten.
AWSS3ControlClientBuilder controlClientBuilder = AWSS3ControlClientBuilder.standard(); controlClientBuilder.setRegion(
<region>
); controlClientBuilder.setCredentials(<credentials>
); AWSS3Control client = controlClientBuilder.build(); client.putPublicAccessBlock(new PutPublicAccessBlockRequest() .withAccountId(<account-id>
) .withPublicAccessBlockConfiguration(new PublicAccessBlockConfiguration() .withIgnorePublicAcls(<value>
) .withBlockPublicAcls(<value>
) .withBlockPublicPolicy(<value>
) .withRestrictPublicBuckets(<value>
)));
Dieses Beispiel trifft nur für Operationen auf Konto-Ebene zu, die die AWSS3Control
-Client-Klasse verwenden. Sehen Sie sich für Operationen auf Bucket-Ebene das vorhergehende
Beispiel an.
Verwenden von Block Public Access mit anderen AWS SDKs
Weitere Informationen zur Verwendung von anderen AWS SDKs finden Sie unter Verwenden der AWS SDKs, CLI und Explorer.
Verwenden von Block Public Access mit den REST-APIs
Informationen zur Verwendung von Amazon S3 Block Public Access über die REST-APIs finden Sie in den folgenden Themen der Amazon Simple Storage Service API-Referenz.
-
Operationen auf Konto-Ebene
-
Operationen auf Bucket-Ebene