

# Uso de políticas de IAM para el control del acceso al grupo de trabajo
<a name="workgroups-iam-policy"></a>

Para controlar el acceso a los grupos de trabajo, utilice permisos de IAM de nivel de recursos o políticas de IAM basadas en identidad. Siempre que utilice políticas de IAM, asegúrese de seguir las prácticas recomendadas de IAM. Para más información, consulte [Prácticas recomendadas de seguridad en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la *Guía del usuario de IAM*.

**nota**  
Para acceder a los grupos de trabajo habilitados para la propagación de identidad de confianza, los usuarios del IAM Identity Center deben estar asignados al `IdentityCenterApplicationArn` que se devuelve en la respuesta de la acción de la API [GetWorkGroup](https://docs.aws.amazon.com/athena/latest/APIReference/API_GetWorkGroup.html) de Athena.

El siguiente procedimiento es específico de Athena. 

Para obtener información específica sobre IAM, consulte los enlaces que se enumeran al final de esta sección. Para obtener información sobre políticas de grupos de trabajo JSON de ejemplo, consulte [Ejemplos de políticas de grupo de trabajo](example-policies-workgroup.md).

**Para utilizar el editor visual de la consola de IAM para crear una política de grupo de trabajo**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación de la izquierda, elija **Políticas** y, a continuación, elija **Crear política**.

1. En la pestaña **Editor visual**, elija **Elegir un servicio**. A continuación, elija un servicio de Athena para agregar a la política.

1. Elija **Seleccionar acciones** y, a continuación, elija las acciones que desea añadir a la política. El editor visual muestra las acciones disponibles en Athena. Para obtener más información, consulte [Acciones, recursos y claves de condición de Amazon Athena](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html) en la *Referencia de autorizaciones de servicio*.

1. Elija **Añadir acciones** para escribir una acción específica o utilice comodines (\$1) para especificar varias acciones. 

   De forma predeterminada, la política que está creando permite las acciones que usted elija. Si eligió una o más acciones que admiten permisos en el nivel de recursos para el recurso `workgroup` en Athena, el editor visual enumera el recurso `workgroup`. 

1. Elija **Recursos** para especificar grupos de trabajo específicos para su política. Para ver políticas de JSON grupos de trabajo de ejemplo, consulte [Ejemplos de políticas de grupo de trabajo](example-policies-workgroup.md).

1. Especifique el recurso `workgroup` como se indica a continuación:

   ```
   arn:aws:athena:<region>:<user-account>:workgroup/<workgroup-name>
   ```

1. Elija **Revisar la política** y, a continuación, escriba un **Nombre** y una **Descripción** (opcional) para la política que está creando. Revise el resumen de la política para asegurarse de que ha concedido los permisos deseados. 

1. Elija **Crear política** para guardar la nueva política.

1. Adjunte esta política basada en identidad a un usuario, grupo o rol.

Para obtener más información, consulte los siguientes temas en la *Referencia de autorizaciones de servicio* y la *Guía del usuario de IAM*:
+  [Acciones, recursos y claves de condición de Amazon Athena](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html) 
+  [Creación de políticas con el editor visual](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-visual-editor) 
+  [Adición y eliminación de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) 
+  [Control del acceso a los recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_controlling.html#access_controlling-resources) 

Para ver políticas de JSON grupos de trabajo de ejemplo, consulte [Ejemplos de políticas de grupo de trabajo](example-policies-workgroup.md).

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](https://docs.aws.amazon.com/athena/latest/APIReference/). 

# Ejemplos de políticas de grupo de trabajo
<a name="example-policies-workgroup"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) 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](https://docs.aws.amazon.com/athena/latest/APIReference/). Para obtener más información sobre las políticas de IAM, consulte [Creación de políticas con el editor visual](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-visual-editor) 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 [Uso de políticas de IAM para el control del acceso al grupo de trabajo](workgroups-iam-policy.md).
+  [Example policy for full access to all workgroups](#example1-full-access-all-wkgs) 
+  [Example policy for full access to a specified workgroup](#example2-full-access-this-wkg) 
+  [Example policy for running queries in a specified workgroup](#example3-user-access) 
+  [Example policy for running queries in the primary workgroup](#example4-run-in-primary-access) 
+  [Example policy for management operations on a specified workgroup](#example5-manage-wkgs-access) 
+  [Example policy for listing workgroups](#example6-list-all-wkgs-access) 
+  [Example policy for running and stopping queries in a specific workgroup](#example7-run-queries-access) 
+  [Example policy for working with named queries in a specific workgroup](#example8-named-queries-access) 
+  [Example policy for working with Spark notebooks](#example9-spark-workgroup) 

**Example 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": [
                "*"
            ]
        }
    ]
}
```

**Example 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"
            ]
        }
    ]
}
```

**Example 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. Tenga en cuenta que la política de ejemplo no limita a los usuarios solo a este grupo de trabajo ni niega el acceso a otros grupos de trabajo.    
****  

```
{
    "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"
            ]
        }
    ]
}
```

**Example 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.   
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](#example3-user-access), como en el siguiente ejemplo.  

```
arn:aws:athena:us-east-1:123456789012:workgroup/primary"
```

**Example 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"
            ]
        }
    ]
}
```

**Example 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": "*"
        }
    ]
}
```

**Example 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"
            ]
        }
    ]
}
```

**Example 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"            ]
        }
    ]
}
```

**Example 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": "*"
        }
    ]
}
```