View a markdown version of this page

Resource-based Politikbeispiele für AWS Glue - AWS Glue

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.

Resource-based Politikbeispiele für AWS Glue

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 Service-API-Vorgängen zu interagierenAWS Glue. Sie können dieselben Operationen auf der AWS Glue Konsole oder mit einem der AWS SDKs ausführen.

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.

Überlegungen zur Verwendung ressourcenbasierter Richtlinien mit AWS Glue

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::account-id:user/*) sind nicht erlaubt.

  • Der "Resource" Block in der Richtlinie erfordert, dass alle Ressourcen-ARNs der folgenden Syntax für reguläre Ausdrücke entsprechen (wobei der erste die und die region zweite %s die %s ist): account-id

    *arn:aws:glue:%s:%s:(\*|[a-zA-Z\*]+\/?.*)

    Zum Beispiel sind sowohl arn:aws:glue:us-west-2:account-id:* als auch arn:aws:glue:us-west-2:account-id:database/default erlaubt, aber * ist nicht erlaubt.

  • Im Gegensatz zu identitätsbasierten Richtlinien muss eine AWS Glue-Ressourcenrichtlinie ausschließlich Amazon-Ressourcennamen (ARNs) von Ressourcen enthalten, die zu dem Katalog gehören, dem die Richtlinie angefügt ist. Solche ARN beginnen 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::123456789012:user/Alice" ] }, "Effect": "Allow", "Action": [ "glue:*" ], "Resource": [ "arn:aws:glue:us-west-2:123456789012:*" ] } ] }'

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::123456789012:user/Alice" ] }, "Effect": "Allow", "Action": [ "glue:*" ], "Resource": [ "arn:aws:glue:us-west-2:123456789012:*" ] } ] }' > /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": { ...... }, ...... } }