Exemplo de políticas de grupo de trabalho - Amazon Athena

Exemplo de políticas de grupo de trabalho

Esta seção inclui exemplos de políticas que você pode usar para habilitar várias ações nos grupos de trabalho. Sempre que você usar as políticas do IAM, siga as práticas recomendadas do IAM. Para obter mais informações, consulte Práticas recomendadas de segurança no IAM no Guia do usuário do IAM.

Um grupo de trabalho é um recurso do IAM gerenciado pelo Athena. Portanto, se sua política de grupo de trabalho usar ações que tomam workgroup como entrada, especifique o ARN do grupo de trabalho da seguinte forma:

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

Onde <workgroup-name> é o nome do seu grupo de trabalho. Por exemplo, para o grupo de trabalho chamado test_workgroup, especifique-o como um recurso da seguinte forma:

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

Para obter uma lista completa de ações do Amazon Athena, consulte os nomes das ações de API na Referência de API do Amazon Athena. Para obter mais informações sobre as políticas do IAM, consulte Criar políticas com o editor visual no Guia do usuário do IAM. Para obter mais informações sobre como criar políticas do IAM para grupos de trabalho, consulte Usar políticas do IAM para controlar o acesso de grupo de trabalho.

exemplo
Exemplo de política para acesso total a todos os grupos de trabalho

A seguinte política permite acesso total a todos os recursos do grupo de trabalho que podem existir na conta. Recomendamos que você use essa política para os usuários da sua conta que devem administrar e gerenciar grupos de trabalho para todos os outros usuários.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:*" ], "Resource": [ "*" ] } ] }
exemplo
Exemplo de política para acesso total a um grupo de trabalho especificado

A seguinte política permite acesso total ao único recurso do grupo de trabalho específico, denominado workgroupA. Você pode usar essa política para os usuários com controle total sobre um determinado grupo de trabalho.

{ "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" ] } ] }
exemplo
Exemplo de política para execução de consultas em um grupo de trabalho especificado

Na política a seguir, um usuário tem permissão para executar consultas no workgroupA especificado e visualizá-las. O usuário não tem permissão de realizar tarefas de gerenciamento para o grupo de trabalho em si, como atualizá-las ou excluí-las. Observe que o exemplo de política não limita os usuários apenas a esse grupo de trabalho nem nega acesso a outros grupos de trabalho.

{ "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" ] } ] }
exemplo
Exemplo de política para execução de consultas em um grupo de trabalho principal

É possível modificar o exemplo anterior para permitir que um determinado usuário também execute consultas no grupo de trabalho principal.

nota

Recomendamos que você adicione o recurso do grupo de trabalho principal para todos os usuários configurados para executar consultas em seus grupos de trabalho designados. Adicionar esse recurso às políticas de usuário do grupo de trabalho será útil caso o grupo de trabalho designado seja excluído ou esteja desabilitado. Neste caso, eles podem continuar executando consultas no grupo de trabalho principal.

Para permitir que os usuários em sua conta executem consultas no grupo de trabalho principal, adicione uma linha que contenha o ARN do grupo de trabalho principal à seção de recursos do Example policy for running queries in a specified workgroup, como no exemplo a seguir.

arn:aws:athena:us-east-1:123456789012:workgroup/primary"
exemplo
Exemplo de política para operações de gerenciamento em um grupo de trabalho especificado

Na política a seguir, o usuário tem permissão de criar, excluir, obter detalhes e atualizar um grupo de trabalho 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" ] } ] }
exemplo
Exemplo de política para listagem de grupos de trabalho

A política a seguir permite que todos os usuários listem todos os grupos de trabalho:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:ListWorkGroups" ], "Resource": "*" } ] }
exemplo
Exemplo de política para execução e interrupção de consultas em um grupo de trabalho específico

Nesta política, o usuário tem a permissão de executar consultas no grupo de trabalho:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "athena:StopQueryExecution" ], "Resource": [ "arn:aws:athena:us-east-1:123456789012:workgroup/test_workgroup" ] } ] }
exemplo
Exemplo de política para trabalhar com consultas nomeadas em um grupo de trabalho específico

Na política a seguir, o usuário tem permissões para criar, excluir e obter informações sobre consultas nomeadas no grupo de trabalho especificado:

{ "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" ] } ] }
exemplo
Exemplo de política para trabalhar com cadernos Spark no Athena

Use uma política como a apresentada a seguir para trabalhar com cadernos Spark no 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": "*" } ] }