Konfigurieren von IAM-Richtlinien für die Verwendung von Zugangspunkten für Verzeichnis-Buckets - Amazon Simple Storage Service

Konfigurieren von IAM-Richtlinien für die Verwendung von Zugangspunkten für Verzeichnis-Buckets

Zugangspunkte unterstützen AWS Identity and Access Management (IAM)-Ressourcenrichtlinien, mit denen Sie die Verwendung des Zugangspunkts nach Ressourcen, Benutzern oder anderen Bedingungen steuern können. Damit eine Anwendung oder ein Benutzer über einen Zugangspunkt auf Objekte zugreifen kann, müssen sowohl der Zugangspunkt als auch die zugrunde liegende Bucket-Richtlinie die Anfrage zulassen.

Wichtig

Das Hinzufügen eines Zugangspunkts zu einem Verzeichnis-Bucket ändert nicht das Verhalten des Buckets, wenn der Bucket direkt über den Bucket-Namen aufgerufen wird. Alle vorhandenen Vorgänge für den Bucket funktionieren weiterhin wie zuvor. Einschränkungen, die Sie in eine Zugriffsrichtlinie oder einen Zugriffsbereich für einen Zugangspunkt aufnehmen, gelten nur für Anfragen, die über diesen Zugangspunkt gestellt werden.

Wenn Sie IAM-Ressourcenrichtlinien verwenden, stellen Sie sicher, dass Sie die Sicherheitswarnungen, Fehler, allgemeinen Warnungen und Vorschläge von AWS Identity and Access Management Access Analyzer beheben, bevor Sie Ihre Richtlinie speichern. IAM Access Analyzer führt Richtlinienprüfungen durch, um Ihre Richtlinie anhand der IAM-Richtliniengrammatik und der bewährten Methoden zu validieren. Diese Prüfungen generieren Ergebnisse und bieten Empfehlungen, die Sie beim Erstellen von Richtlinien unterstützen, die funktionsfähig sind und den bewährten Methoden für Sicherheit entsprechen.

Weitere Informationen zum Validieren von Richtlinien mit IAM Access Analyzer finden Sie unter Validierung der IAM-Access-Analyzer-Richtlinien im IAM-Benutzerhandbuch. Eine Liste der Warnungen, Fehler und Vorschläge, die von IAM Access Analyzer zurückgegeben werden, finden Sie unter IAM-Access-Analyzer-Richtlinienprüfungsreferenz.

Beispiele für Zugangspunkte für Verzeichnis-Buckets

Die folgenden Zugangspunktrichtlinien veranschaulichen, wie Anfragen an einen Verzeichnis-Bucket gesteuert werden können. Zugriffsrichtlinien für Zugangspunkte erfordern Bucket-ARNs oder Zugangspunkt-ARNs. Aliasnamen für Zugangspunkte werden in Richtlinien nicht unterstützt. Im Folgenden finden Sie ein Beispiel für einen Zugangspunkt-ARN:

arn:aws:s3express:region:account-id:accesspoint/myaccesspoint--zoneID--xa-s3

Sie können den ARN des Zugangspunkts in den Details eines Zugangspunkts einsehen. Weitere Informationen finden Sie unter Details zu Ihren Zugangspunkten für Verzeichnis-Buckets anzeigen.

Anmerkung

Berechtigungen, die in einer Zugriffspunktrichtlinie erteilt werden, sind nur wirksam, wenn der zugrunde liegende Bucket auch denselben Zugriff zulässt. Sie können dies auf zwei Arten erreichen:

  1. (Empfohlen) Delegieren Sie die Zugriffssteuerung vom Bucket an den Zugriffspunkt, wie unter Delegieren der Zugangskontrolle an Zugriffspunkte beschrieben.

  2. Fügen Sie der Richtlinie des zugrunde liegenden Buckets dieselben Berechtigungen hinzu, die in der Zugriffspunktrichtlinie enthalten sind.

Beispiel 1 – Service-Kontrollrichtlinie zur Beschränkung von Zugangspunkten auf VPC-Netzwerkquellen

Die folgende Service-Kontrollrichtlinie erfordert, dass alle neuen Zugangspunkte mit einem Virtual Private Cloud (VPC)-Netzwerkursprung erstellt werden. Mit dieser Richtlinie können Benutzer in Ihrer Organisation keine neuen Zugangspunkte erstellen, auf die über das Internet zugegriffen werden kann.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "s3express:CreateAccessPoint", "Resource": "*", "Condition": { "StringNotEquals": { "s3express:AccessPointNetworkOrigin": "VPC" } } } ] }
Beispiel 2 – Zugangspunktrichtlinie zur Beschränkung des Bucket-Zugriffs auf Zugangspunkte mit VPC-Netzwerkursprung

Die folgende Zugangspunktrichtlinie beschränkt den gesamten Zugriff auf den Bucket amzn-s3-demo-bucket--zoneID--x-s3 auf einen Zugangspunkt mit einem VPC-Netzwerkursprung.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "DenyCreateSessionFromNonVPC", "Principal": "*", "Action": "s3express:CreateSession", "Effect": "Deny", "Resource": "arn:aws:s3express:us-east-1:111122223333:bucket/amzn-s3-demo-bucket--usw2-az1--x-s3" } ] }

Bedingungsschlüssel

Zugangspunkte für Verzeichnis-Buckets verfügen über Bedingungsschlüssel, die Sie in IAM-Richtlinien zur Kontrolle des Zugriffs auf Ihre Ressourcen verwenden können. Die folgenden Bedingungsschlüssel stellen nur einen Teil einer IAM-Richtlinie dar. Vollständige Richtlinienbeispiele finden Sie unter Beispiele für Zugangspunkte für Verzeichnis-Buckets, Delegieren der Zugangskontrolle an Zugriffspunkte und Erteilen von Berechtigungen für kontoübergreifende Zugriffspunkte.

s3express:DataAccessPointArn

Dieses Beispiel zeigt, wie der Zugriff nach dem Amazon-Ressourcennamen (ARN) eines Zugangspunkts gefiltert wird und entspricht allen Zugangspunkten für AWS-Konto 111122223333 in der Region Region:

"Condition" : { "StringLike": { "s3express:DataAccessPointArn": "arn:aws:s3express:region:111122223333:accesspoint/*" } }
s3express:DataAccessPointAccount

Dieses Beispiel zeigt einen Zeichenfolgenoperator, mit dem Sie die Konto-ID des Besitzers eines Zugriffspunkts abgleichen können. Das folgende Beispiel entspricht allen Zugriffspunkten im Besitz des s AWS-Konto 111122223333.

"Condition" : { "StringEquals": { "s3express:DataAccessPointAccount": "111122223333" } }
s3express:AccessPointNetworkOrigin

Dieses Beispiel zeigt einen Zeichenfolgenoperator, den Sie verwenden können, um für den Netzwerkursprung entweder Internet oder VPC abzugleichen. Im folgenden Beispiel werden nur Zugriffspunkte mit einem VPC-Ursprung abgeglichen.

"Condition" : { "StringEquals": { "s3express:AccessPointNetworkOrigin": "VPC" } }
s3express:Permissions

Sie können s3express:Permissions verwenden, um den Zugriff auf bestimmte API-Operationen im Zugangspunkt-Bereich einzuschränken. Folgende API-Operationen werden unterstützt:

  • PutObject

  • GetObject

  • DeleteObject

  • ListBucket (erforderlich für ListObjectsV2)

  • GetObjectAttributes

  • AbortMultipartUpload

  • ListBucketMultipartUploads

  • ListMultipartUploadParts

Anmerkung

Bei der Verwendung von mehrwertigen Bedingungsschlüsseln empfehlen wir, ForAllValues mit Allow-Anweisungen und ForAnyValue mit Deny-Anweisungen zu verwenden. Weitere Informationen finden Sie unter Kontextschlüssel mit mehreren Werten im IAM-Benutzerhandbuch.

Weitere Informationen zur Verwendung von Bedingungsschlüsseln mit Amazon S3 finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für Amazon S3 in der Service-Authorization-Referenz.

Weitere Informationen zu den erforderlichen Berechtigungen für S3-API-Vorgänge nach S3-Ressourcentypen finden Sie unter Erforderliche Berechtigungen für Amazon-S3-API-Operationen.

Delegieren der Zugangskontrolle an Zugriffspunkte

Sie können die Zugriffskontrolle von der Bucket-Richtlinie an die Zugangspunktrichtlinie delegieren. Die folgende Bucket-Beispielrichtlinie ermöglicht Vollzugriff auf alle Zugriffspunkte, die dem Konto des Bucket-Eigentümers gehören. Nach Anwendung der Richtlinie wird der gesamte Zugriff auf diesen Bucket durch Zugangspunkte gesteuert. Wir empfehlen, Ihre Buckets auf diese Weise für alle Anwendungsfälle zu konfigurieren, die keinen direkten Zugriff auf den Bucket erfordern.

Beispiel Bucket-Richtlinie zum Delegieren der Zugriffskontrolle an Zugangspunkte
{ "Version": "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : { "AWS": "*" }, "Action" : "*", "Resource" : [ "Bucket ARN", "Condition": { "StringEquals" : { "s3express:DataAccessPointAccount" : "Bucket owner's account ID" } } }] }

Erteilen von Berechtigungen für kontoübergreifende Zugriffspunkte

Wenn Sie einen Zugriffspunkt für einen Bucket erstellen möchten, der einem anderen Konto gehört, müssen Sie zuerst den Zugriffspunkt erstellen, indem Sie den Bucket-Namen und die Kontobesitzer-ID angeben. Dann muss der Bucket-Eigentümer die Bucket-Richtlinie aktualisieren, um Anfragen vom Zugriffspunkt zu autorisieren. Ein Zugriffspunkt wird insofern ähnlich erstellt wie ein DNS-CNAME, als der Zugriffspunkt keinen Zugriff auf den Bucket-Inhalt bietet. Der gesamte Bucket-Zugriff wird durch die Bucket-Richtlinie kontrolliert. Die folgende Bucket-Beispielrichtlinie erlaubt GET- und LIST- Anfragen an den Bucket von einem Zugriffspunkt aus, der einem vertrauenswürdigen AWS-Konto gehört.

Ersetzen Sie den Bucket-ARN durch den Namen des Buckets.

Beispiel von Bucket-Richtlinie, die Berechtigungen an ein anderes AWS-Konto delegiert
JSON
{ "Version":"2012-10-17", "Statement" : [ { "Sid": "AllowCreateSessionForDirectoryBucket", "Effect": "Allow", "Principal" : { "AWS": "*" }, "Action" : "s3express:CreateSession", "Resource" : [ "arn:aws:s3express:us-west-2:111122223333:bucket/amzn-s3-demo-bucket--usw2-az1--x-s3" ], "Condition": { "ForAllValues:StringEquals": { "s3express:Permissions": [ "GetObject", "ListBucket" ] } } }] }