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 ressourcenbasierte Richtlinien für Glue AWS
Dieser Abschnitt enthält beispielhafte Ressourcenrichtlinien, einschließlich Richtlinien, die kontoübergreifenden Zugriff gewähren.
In den Beispielen wird das AWS Command Line Interface (AWS CLI) verwendet, um mit AWS Glue Service-API-Vorgängen zu interagieren. Sie können dieselben Operationen auf der AWS Glue Konsole oder mit einem der ausführen AWS SDKs.
Wichtig
Durch das Ändern einer AWS Glue-Ressourcenrichtlinie können Sie versehentlich Berechtigungen für bestehende AWS Glue-Benutzer in Ihrem Konto entziehen und unerwartete Störungen verursachen. Probieren Sie diese Beispiele nur in Entwicklungs- oder Testkonten aus und stellen Sie sicher, dass sie keine bestehenden Arbeitsabläufe unterbrechen, bevor Sie die Änderungen vornehmen.
Themen
Überlegungen zur Verwendung ressourcenbasierter Richtlinien mit Glue AWS
Anmerkung
IAM-Richtlinien und AWS Glue-Ressourcenrichtlinien brauchen zur Umsetzung einige Sekunden. Nachdem Sie eine neue Richtlinie angefügt haben, stellen Sie möglicherweise fest, dass die alte Richtlinie noch in Kraft ist, bis die neue Richtlinie durch das System verbreitet wurde.
Sie verwenden ein im JSON-Format geschriebenes Richtliniendokument, um eine Ressourcenrichtlinie zu erstellen oder zu ändern. Die Richtliniensyntax ist die gleiche wie bei einer identitätsbasierten IAM-Richtlinie (siehe IAM-JSON-Richtlinienreferenz), mit den folgenden Ausnahmen:
-
Ein
"Principal"
- oder"NotPrincipal"
-Block ist für jede Richtlinienanweisung erforderlich. -
Das
"Principal"
oder"NotPrincipal"
muss gültige bestehende Prinzipale identifizieren. Platzhalter-Muster (z. B.arn:aws:iam::
) sind nicht erlaubt.account-id
:user/* -
Der
"Resource"
Block in der Richtlinie erfordert, dass alle Ressourcen ARNs der folgenden Syntax für reguläre Ausdrücke entsprechen (wobei die erste%s
dieregion
und die zweite die%s
account-id
ist):*arn:aws:glue:%s:%s:(\*|[a-zA-Z\*]+\/?.*)
Zum Beispiel sind sowohl
arn:aws:glue:us-west-2:
als auchaccount-id
:*arn:aws:glue:us-west-2:
erlaubt, aberaccount-id
:database/default*
ist nicht erlaubt. -
Im Gegensatz zu identitätsbasierten Richtlinien darf eine AWS Glue Ressourcenrichtlinie nur Amazon-Ressourcennamen (ARNs) von Ressourcen enthalten, die zu dem Katalog gehören, an den die Richtlinie angehängt ist. Solche beginnen ARNs immer mit.
arn:aws:glue:
-
Eine Richtlinie kann nicht dazu führen, dass die Identität, die sie erstellt, von der weiteren Erstellung oder Änderung von Richtlinien ausgeschlossen wird.
-
Ein JSON-Dokument für Ressourcenrichtlinien darf eine Größe von 10 kB nicht überschreiten.
Verwenden einer Ressourcenrichtlinie, um den Zugriff auf das gleiche Konto zu steuern
In diesem Beispiel erstellt ein Admin-Benutzer in Konto A eine Ressourcenrichtlinie, die dem IAM-Benutzer Alice
in Konto A Vollzugriff auf den Katalog gewährt. Alice hat keine angefügte IAM-Richtlinie.
Dazu führt der Admin-Benutzer den folgenden AWS CLI Befehl aus.
# Run as admin of Account A $ aws glue put-resource-policy --profile
administrator-name
--region us-west-2 --policy-in-json '{ "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": [ "arn:aws:iam::account-A-id
:user/Alice" ] }, "Effect": "Allow", "Action": [ "glue:*" ], "Resource": [ "arn:aws:glue:us-west-2:account-A-id
:*" ] } ] }'
Anstatt das JSON-Richtliniendokument als Teil Ihres AWS CLI Befehls einzugeben, können Sie ein Richtliniendokument in einer Datei speichern und im AWS CLI
Befehl auf den Dateipfad mit dem Präfix verweisen. file://
Im Folgenden finden Sie ein Beispiel dafür, wie Sie dies tun können.
$ echo '{ "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": [ "arn:aws:iam::
account-A-id
:user/Alice" ] }, "Effect": "Allow", "Action": [ "glue:*" ], "Resource": [ "arn:aws:glue:us-west-2:account-A-id
:*" ] } ] }' > /temp/policy.json $ aws glue put-resource-policy --profile admin1 \ --region us-west-2 --policy-in-json file:///temp/policy.json
Nachdem diese Ressourcenrichtlinie verbreitet wurde, kann Alice auf alle AWS Glue-Ressourcen in Konto A zugreifen.
# Run as user Alice $ aws glue create-database --profile alice --region us-west-2 --database-input '{ "Name": "new_database", "Description": "A new database created by Alice", "LocationUri": "s3://amzn-s3-demo-bucket" }' $ aws glue get-table --profile alice --region us-west-2 --database-name "default" --table-name "tbl1"}
Als Reaktion auf den get-table
-Aufruf von Alice gibt der AWS Glue-Service Folgendes zurück.
{ "Table": { "Name": "tbl1", "PartitionKeys": [], "StorageDescriptor": { ...... }, ...... } }