¿Cómo soluciono el error “El rol de IAM/usuario X no tiene autorización para realizar Y en el recurso Z” en AWS Glue?
Mi trabajo de AWS Glue no funciona debido a un error de falta de permisos de AWS Identity and Access Management (IAM), aunque tengo configurados los permisos necesarios.
Resolución
En AWS Glue, su acción puede fallar debido a un error de falta de permisos por los siguientes motivos:
- El rol de IAM o usuario que está utilizando no tiene los permisos necesarios.
- El usuario de IAM forma parte de una organización de AWS Organizations que cuenta con una política de control de servicio (SCP) que restringe acciones específicas
- La subred utilizada tiene un punto de conexión de nube privada virtual (VPC) con una política que permite o deniega algunas acciones.
El rol de IAM o usuario que se está utilizando no tiene los permisos necesarios
Vea este ejemplo de error de falta de permisos:
"Failed to create job gluestudio-service.us-east-1.amazonaws.com] with exception "errorMessage":"User: arn:aws:sts::<AccountID>:assumed-role/<ConsoleAssumedRole>/<user> is not authorized to perform: iam:PassRole on resource: arn:aws:iam::<AccountID>:role/<GlueRoleName>"
Puede dividir este error en tres factores:
- El rol de IAM/usuario que ejecuta la acción: arn:aws:iam: :111111111111111:role/service-role/awsGlue-xxxxxx
- La acción: Iam:PassRole
- El recurso en el que se está realizando la acción: arn:aws:iam: :xxxxxxxxxxxxxxxx:role/AWSGlue
Compruebe que el rol de IAM o usuario que se está utilizando tenga la acción requerida en el recurso.
1. Abra la consola de IAM.
2. Busque el rol de IAM o usuario que está utilizando y compruebe las políticas adjuntas. En el ejemplo anterior, la función es arn:aws:iam: :xxxxxxxxx:user/yyyyyyyyyyy.
3. Agregue una política en línea similar a la siguiente que permita realizar las acciones necesarias en el recurso:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "FirstStatement", "Effect": "Allow", "Action": ["Action"], "Resource": "<ARN of resource>" } ] }
Nota: Sustituya la acción y el ARN del recurso de este ejemplo por la acción y el recurso específicos que identificó antes en el mensaje de error.
En el ejemplo anterior, su política se parece a lo siguiente:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PassRolePermissions", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<AccountID>:role/<GlueRoleName>" ], "Condition": { "StringLike": { "iam:PassedToService": [ "glue.amazonaws.com" ] } } } ] }
El SCP de una organización impide una acción sobre el recurso
Es posible que reciba un error similar al siguiente:
"createJob: AccessDeniedException: User: arn:aws:sts::111111111111111:assumed-role/xxxxxxxxxx is not authorized to perform: glue:CreateJob on resource: arn:aws:glue:region:22222222222222:job/glue-job with an explicit deny in a service control policy"
Este error se produce porque su usuario de IAM forma parte de una organización que cuenta con un SCP. El SCP le impide realizar acciones específicas. Para comprobar los permisos asociados a su SCP, siga estos pasos:
1. Abra la consola de IAM.
2. Elija Organization Activity (Actividad de la organización) y, a continuación, elija la pestaña Attached SCP (SCP adjunto).
3. Revise los SCP adjuntos a su usuario de IAM. Asegúrese de tener los permisos necesarios para completar la acción deseada en el recurso que está utilizando.
La subred utilizada tiene un punto de conexión de VPC con una política que permite o deniega algunas acciones
Es posible que reciba un error similar al siguiente:
"User: arn:aws:sts::1111111111:assumed-role/xxxxxxxxx/yyyyyyyyyyy is not authorized to perform: glue:CreateJob because no VPC endpoint policy allows the glue:CreateJob action (Service: Glue, Status Code: 400, Request ID:111111111111111)"
Para resolver este problema, siga estos pasos:
1. Abra la consola de Amazon Virtual Private Cloud (Amazon VPC).
2. Seleccione Endpoints (Puntos de conexión) y, a continuación, elija el punto de conexión de VPC conectado a la subred que está utilizando para completar la acción.
3. En Actions (Acciones), seleccione Manage Policy (Administrar política).
4. Actualice la política de puntos de conexión de VPC con la acción deseada en el recurso requerido.
En este ejemplo, actualiza la política de puntos de conexión de VPC necesaria para agregar la acción glue:createJob:
{ "Version": "2012-10-17", "Statement": [ { "Principal": "*", "Effect": "Allow", "Action": [ "glue:CreateJob" ], "Resource": "*" } ] }
Información relacionada
Contenido relevante
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 10 meses
- OFICIAL DE AWSActualizada hace un mes
- OFICIAL DE AWSActualizada hace un mes