Exemples de politiques de groupe de travail - Amazon Athena

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 de groupe de travail

Cette section inclut des exemples de politiques que vous pouvez utiliser pour activer plusieurs actions sur des groupes de travail. Chaque fois que vous utilisez des IAM politiques, assurez-vous de suivre les IAM meilleures pratiques. Pour plus d'informations, consultez la section Bonnes pratiques en matière de sécurité IAM dans le guide de IAM l'utilisateur.

Un groupe de travail est une IAM ressource gérée par Athena. Par conséquent, si votre politique de groupe de travail utilise des actions qui prennent workgroup comme entrée, vous devez spécifier celles du groupe de travail ARN comme suit :

"Resource": [arn:aws:athena:<region>:<user-account>:workgroup/<workgroup-name>]

<workgroup-name> est le nom de votre groupe de travail. Par exemple, pour le groupe de travail nommé test_workgroup, spécifiez-le en tant que ressource comme suit :

"Resource": ["arn:aws:athena:us-east-1:123456789012:workgroup/test_workgroup"]

Pour obtenir la liste complète des actions Amazon Athena, consultez les noms des actions dans la API référence Amazon API Athena. Pour plus d'informations sur IAM les politiques, voir Création de politiques à l'aide de l'éditeur visuel dans le Guide de IAM l'utilisateur. Pour plus d'informations sur la création de IAM politiques pour les groupes de travail, consultezUtiliser des IAM politiques pour contrôler l'accès aux groupes de travail.

Exemple de politique pour un accès complet à tous les groupes de travail

La politique suivante permet un accès complet à toutes les ressources de groupes de travail susceptibles d'exister dans le compte. Nous vous recommandons d'utiliser cette politique pour ces utilisateurs dans votre compte qui doivent administrer et gérer les groupes de travail pour tous les autres utilisateurs.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:*" ], "Resource": [ "*" ] } ] }
Exemple de politique pour un accès complet à un groupe de travail spécifié

La politique suivante autorise un accès complet à une seule ressource de groupe de travail spécifique nommée workgroupA. Vous pouvez utiliser cette politique pour les utilisateurs ayant un contrôle total sur un groupe de travail en particulier.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:ListEngineVersions", "athena:ListWorkGroups", "athena:ListDataCatalogs", "athena:ListDatabases", "athena:GetDatabase", "athena:ListTableMetadata", "athena:GetTableMetadata" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "athena:BatchGetQueryExecution", "athena:GetQueryExecution", "athena:ListQueryExecutions", "athena:StartQueryExecution", "athena:StopQueryExecution", "athena:GetQueryResults", "athena:GetQueryResultsStream", "athena:CreateNamedQuery", "athena:GetNamedQuery", "athena:BatchGetNamedQuery", "athena:ListNamedQueries", "athena:DeleteNamedQuery", "athena:CreatePreparedStatement", "athena:GetPreparedStatement", "athena:ListPreparedStatements", "athena:UpdatePreparedStatement", "athena:DeletePreparedStatement" ], "Resource": [ "arn:aws:athena:us-east-1:123456789012:workgroup/workgroupA" ] }, { "Effect": "Allow", "Action": [ "athena:DeleteWorkGroup", "athena:UpdateWorkGroup", "athena:GetWorkGroup", "athena:CreateWorkGroup" ], "Resource": [ "arn:aws:athena:us-east-1:123456789012:workgroup/workgroupA" ] } ] }
Exemple de politique pour des requêtes en cours d'exécution dans un groupe de travail spécifié

Dans la politique suivante, un utilisateur est autorisé à exécuter des requêtes dans le workgroupA spécifié, et de les afficher. L'utilisateur n'est pas autorisé à effectuer des tâches de gestion pour le groupe de travail lui-même, telles que le mettre à jour ou le supprimer.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:ListEngineVersions", "athena:ListWorkGroups", "athena:ListDataCatalogs", "athena:ListDatabases", "athena:GetDatabase", "athena:ListTableMetadata", "athena:GetTableMetadata" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "athena:GetWorkGroup", "athena:BatchGetQueryExecution", "athena:GetQueryExecution", "athena:ListQueryExecutions", "athena:StartQueryExecution", "athena:StopQueryExecution", "athena:GetQueryResults", "athena:GetQueryResultsStream", "athena:CreateNamedQuery", "athena:GetNamedQuery", "athena:BatchGetNamedQuery", "athena:ListNamedQueries", "athena:DeleteNamedQuery", "athena:CreatePreparedStatement", "athena:GetPreparedStatement", "athena:ListPreparedStatements", "athena:UpdatePreparedStatement", "athena:DeletePreparedStatement" ], "Resource": [ "arn:aws:athena:us-east-1:123456789012:workgroup/workgroupA" ] } ] }
Exemple de politique pour des requêtes en cours d'exécution dans le groupe de travail principal

Vous pouvez modifier l'exemple précédent pour permettre à un utilisateur particulier d'exécuter des requêtes dans le groupe de travail principal.

Note

Nous vous recommandons d'ajouter la ressource du groupe de travail principal pour tous les utilisateurs qui sont autrement configurés pour exécuter des requêtes dans leurs groupes de travail désignés. L'ajout de cette ressource aux politiques d'utilisation de leur groupe de travail est utile au cas où le groupe de travail désigné serait supprimé ou désactivé. Dans ce cas, ils peuvent continuer à exécuter des requêtes dans le groupe de travail principal.

Pour permettre aux utilisateurs de votre compte d'exécuter des requêtes dans le groupe de travail principal, ajoutez une ligne contenant le nom ARN du groupe de travail principal dans la section des ressources duExample policy for running queries in a specified workgroup, comme dans l'exemple suivant.

arn:aws:athena:us-east-1:123456789012:workgroup/primary"
Exemple de politique pour les opérations de gestion sur un groupe de travail spécifié

Dans la politique suivante, un utilisateur est autorisé à créer, supprimer, obtenir des détails, et mettre à jour un groupe de travail test_workgroup.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:ListEngineVersions" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "athena:CreateWorkGroup", "athena:GetWorkGroup", "athena:DeleteWorkGroup", "athena:UpdateWorkGroup" ], "Resource": [ "arn:aws:athena:us-east-1:123456789012:workgroup/test_workgroup" ] } ] }
Exemple de politique pour répertorier des groupes de travail

La politique suivante autorise tous les utilisateurs à répertorier tous les groupes de travail :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:ListWorkGroups" ], "Resource": "*" } ] }
Exemple de politique pour exécuter et arrêter des requêtes dans un groupe de travail spécifié

Dans cette politique, un utilisateur est autorisé à exécuter des requêtes dans le groupe de travail :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "athena:StopQueryExecution" ], "Resource": [ "arn:aws:athena:us-east-1:123456789012:workgroup/test_workgroup" ] } ] }
Exemple de politique à utiliser avec des requêtes nommées dans un groupe de travail spécifié

Dans la politique suivante, un utilisateur dispose des autorisations pour créer, supprimer et obtenir des informations sur les requêtes nommées dans le groupe de travail spécifié :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:CreateNamedQuery", "athena:GetNamedQuery", "athena:DeleteNamedQuery" ], "Resource": [ "arn:aws:athena:us-east-1:123456789012:workgroup/test_workgroup" ] } ] }
Exemple de politique pour utiliser des blocs-notes Spark dans Athena

Utilisez une politique telle que la suivante pour utiliser les blocs-notes Spark dans Athena.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreatingWorkGroupWithDefaults", "Action": [ "athena:CreateWorkGroup", "s3:CreateBucket", "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy", "s3:GetBucketLocation", "athena:ImportNotebook" ], "Effect": "Allow", "Resource": [ "arn:aws:athena:us-east-1:123456789012:workgroup/Demo*", "arn:aws:s3:::123456789012-us-east-1-athena-results-bucket-*", "arn:aws:iam::123456789012:role/service-role/AWSAthenaSparkExecutionRole-*", "arn:aws:iam::123456789012:policy/service-role/AWSAthenaSparkRolePolicy-*" ] }, { "Sid": "AllowRunningCalculations", "Action": [ "athena:ListWorkGroups", "athena:GetWorkGroup", "athena:StartSession", "athena:CreateNotebook", "athena:ListNotebookMetadata", "athena:ListNotebookSessions", "athena:GetSessionStatus", "athena:GetSession", "athena:GetNotebookMetadata", "athena:CreatePresignedNotebookUrl" ], "Effect": "Allow", "Resource": "arn:aws:athena:us-east-1:123456789012:workgroup/Demo*" }, { "Sid": "AllowListWorkGroupAndEngineVersions", "Action": [ "athena:ListWorkGroups", "athena:ListEngineVersions" ], "Effect": "Allow", "Resource": "*" } ] }