Exemples de politiques basées sur les ressources pour Glue AWS - AWS Glue

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exemples de politiques basées sur les ressources pour Glue AWS

Cette section contient des exemples de politiques basées sur les ressources, y compris les politiques qui accordent l'accès intercompte.

Les exemples utilisent le AWS Command Line Interface (AWS CLI) pour interagir avec les opérations AWS Glue de l'API de service. Vous pouvez effectuer les mêmes opérations sur la AWS Glue console ou à l'aide de l'un des AWS SDKs.

Important

En modifiant une politique de ressource AWS Glue, vous pouvez accidentellement annuler les autorisations des utilisateurs AWS Glue existants dans votre compte et provoquer des interruptions inattendues. Essayez ces exemples uniquement dans les comptes de développement ou de test et assurez-vous qu'ils n'interrompent aucun workflow existant avant d'apporter des modifications.

Considérations relatives à l'utilisation de politiques basées sur les ressources avec Glue AWS

Note

Les politiques IAM et la politique de ressource AWS Glue prennent quelques secondes pour être appliquées. Une fois que vous avez attaché une nouvelle politique, vous pouvez remarquer que l'ancienne politique est toujours en vigueur jusqu'à ce que la nouvelle politique ait été appliquée à tout le système.

Vous utilisez un document de politique écrit au format JSON pour créer ou modifier une politique de ressource. La syntaxe de la politique est la même que pour une politique IAM basée sur l'identité (veuillez consulter la Référence de politique JSON IAM), avec les exceptions suivantes :

  • Un bloc "Principal" ou "NotPrincipal" est requis pour chaque déclaration de politique.

  • Le "Principal" ou "NotPrincipal" doit identifier les principaux existants valides. Les modèles de caractères génériques (tels que arn:aws:iam::account-id:user/*) ne sont pas autorisés.

  • Le "Resource" bloc de la politique nécessite que toutes les ressources correspondent ARNs à la syntaxe d'expression régulière suivante (où la première %s est leregion, et la seconde %s est leaccount-id) :

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

    Par exemple, arn:aws:glue:us-west-2:account-id:* et arn:aws:glue:us-west-2:account-id:database/default sont autorisés, mais * est pas autorisé.

  • Contrairement aux politiques basées sur l'identité, une politique de AWS Glue ressources ne doit contenir que les Amazon Resource Names (ARNs) des ressources appartenant au catalogue auquel la politique est attachée. Cela commence ARNs toujours pararn:aws:glue:.

  • Une politique ne peut pas faire en sorte que l'identité qui la crée ne puisse pas créer ou modifier de politiques.

  • La taille d'un document JSON de politique de ressource ne peut pas dépasser 10 Ko.

Utiliser une politique de ressource pour contrôler l'accès dans le même compte

Dans cet exemple, un utilisateur administrateur du Compte A crée une politique de ressource qui accorde à l'utilisateur IAM Alice du Compte A un accès complet au catalogue. Alice n'a aucune politique IAM attachée.

Pour ce faire, l'utilisateur admin exécute la AWS CLI commande suivante.

# 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:*" ] } ] }'

Au lieu de saisir le document de politique JSON dans le cadre de votre AWS CLI commande, vous pouvez enregistrer un document de politique dans un fichier et référencer le chemin du fichier dans la AWS CLI commande, préfixé parfile://. Voici un exemple de la façon dont vous pourriez procéder :

$ 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

Une fois que cette politique de ressource a été propagée, Alice peut accéder à toutes les ressources AWS Glue du Compte A, comme suit.

# 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"}

En réponse à l'appel get-table d'Alice, le service AWS Glue renvoie ce qui suit.

{ "Table": { "Name": "tbl1", "PartitionKeys": [], "StorageDescriptor": { ...... }, ...... } }