Ejemplos de políticas de grupos de trabajo - Amazon Athena

Ejemplos de políticas de grupos de trabajo

En esta sección se incluyen ejemplos de políticas que puede utilizar para habilitar varias acciones en grupos de trabajo. Siempre que utilice políticas de IAM, asegúrese de seguir las prácticas recomendadas de IAM. Para obtener más información, consulte la sección Prácticas recomendadas de seguridad de IAM en la Guía del usuario de IAM.

Un grupo de trabajo es un recurso de IAM administrado por Athena. Por tanto, si su política de grupos de trabajo utiliza acciones que toman workgroup como entrada, deberá especificar el ARN del grupo de trabajo de la siguiente manera:

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

Donde <workgroup-name> es el nombre de su grupo de trabajo. Por ejemplo, para el grupo de trabajo denominado test_workgroup, especifíquelo como un recurso tal y como se indica a continuación:

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

Para obtener una lista completa de las acciones de Amazon Athena, consulte los nombres de acciones de la API en la Referencia de API de Amazon Athena. Para obtener más información sobre las políticas de IAM, consulte Creación de políticas con el editor visual en la Guía del usuario de IAM. Para obtener más información acerca de la creación de políticas de IAM para grupos de trabajo, consulte Políticas de IAM para acceder a los grupos de trabajo.

ejemplo
Ejemplo de política para el acceso completo a todos los grupos de trabajo

La siguiente política permite acceso completo a todos los recursos de grupos de trabajo que podrían existir en la cuenta. Le recomendamos que utilice esta política para aquellos usuarios en su cuenta que deben administrar grupos de trabajo para los demás usuarios.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:*" ], "Resource": [ "*" ] } ] }
ejemplo
Ejemplo de política para el acceso completo a un grupo de trabajo especificado

La siguiente política permite acceso completo al recurso del grupo de trabajo específico individual, denominado workgroupA. Puede utilizar esta política para los usuarios con control total sobre un grupo de trabajo en particular.

{ "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" ] } ] }
ejemplo
Ejemplo de política para la ejecución de consultas en un grupo de trabajo especificado

En la siguiente política, un usuario puede ejecutar consultas en el workgroupA especificado y verlas. El usuario no tiene permiso para realizar las tareas de administración para el grupo de trabajo en sí, como, por ejemplo, actualizar o eliminar.

{ "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" ] } ] }
ejemplo
Ejemplo de política para la ejecución de consultas en el grupo de trabajo principal

Puede modificar el ejemplo anterior para permitir que un usuario determinado también ejecute consultas en el grupo de trabajo principal.

nota

Le recomendamos que agregue el recurso de grupo de trabajo principal para todos los usuarios que, de lo contrario, se configuran para ejecutar consultas en los grupos de trabajo designados. Agregar este recurso a las políticas de usuario del grupo de trabajo es útil en caso de eliminación o deshabilitación del grupo de trabajo designado. En este caso, pueden seguir ejecutando consultas en el grupo de trabajo principal.

Para permitir que los usuarios de su cuenta ejecuten consultas en el grupo de trabajo principal, agregue una línea que contenga el ARN del grupo de trabajo principal a la sección de recursos de Example policy for running queries in a specified workgroup, como en el siguiente ejemplo.

arn:aws:athena:us-east-1:123456789012:workgroup/primary"
ejemplo
Ejemplo de política para la realización de operaciones de administración en un grupo de trabajo especificado

En la siguiente política, se permite a un usuario crear, eliminar, obtener detalles y actualizar un grupo de trabajo 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" ] } ] }
ejemplo
Ejemplo de política para crear una lista de los grupos de trabajo

La siguiente política permite a todos los usuarios crear una lista de todos los grupos de trabajo:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:ListWorkGroups" ], "Resource": "*" } ] }
ejemplo
Ejemplo de política para la ejecución y la detención de consultas en un grupo de trabajo específico

En esta política, se permite a un usuario ejecutar consultas en el grupo de trabajo:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "athena:StopQueryExecution" ], "Resource": [ "arn:aws:athena:us-east-1:123456789012:workgroup/test_workgroup" ] } ] }
ejemplo
Ejemplo de política para trabajar con consultas con nombre en un grupo de trabajo específico

En la siguiente política, un usuario tiene permisos para crear, eliminar y obtener información acerca de consultas con nombre en el grupo de trabajo 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" ] } ] }
ejemplo
Ejemplo de política para trabajar con cuadernos de Spark en Athena

Use una política como la siguiente para trabajar con los cuadernos de Spark en 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": "*" } ] }