Como soluciono o erro “User/IAM role X is not authorized to perform Y on resource Z” (O usuário/perfil X do IAM não está autorizado a executar Y no recurso Z) no AWS Glue?
Meu trabalho no AWS Glue falha devido a um erro de falta de permissões do AWS Identity and Access Management (IAM), mesmo eu tendo as permissões necessárias configuradas.
Resolução
No AWS Glue, sua ação pode falhar com o erro de falta de permissões pelos seguintes motivos:
- O usuário ou perfil do IAM que você está usando não tem as permissões necessárias.
- O usuário do IAM faz parte de uma organização no AWS Organizations que tem uma política de controle de serviços (SCP) em vigor que restringe ações específicas
- A sub-rede usada tem um endpoint de nuvem privada virtual (VPC) com uma política que permite ou nega algumas ações.
O usuário ou perfil do IAM que está sendo usado não tem as permissões necessárias
Veja este exemplo de erro de falta de permissões:
"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>"
Você pode desmembrar esse erro em três fatores:
- O usuário/perfil do IAM que chama a ação: arn:aws:iam::111111111111111:role/service-role/AWSGlue-xxxxxx
- A ação: iam:PassRole
- O recurso no qual a ação está sendo executada: arn:aws:iam::xxxxxxxxxxxxxxxx:role/AWSGlue
Verifique se o usuário ou o perfil do IAM que está sendo usado tem a ação necessária no recurso.
1. Abra o console do IAM.
2. Pesquise o usuário ou o perfil do IAM que você está usando e verifique as políticas anexadas a ele. No exemplo anterior, o perfil é arn:aws:iam::xxxxxxxxx:user/yyyyyyyyyyy.
3. Adicione uma política em linha semelhante à seguinte que permita a ação necessária no recurso:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "FirstStatement", "Effect": "Allow", "Action": ["Action"], "Resource": "<ARN of resource>" } ] }
Observação: substitua a ação e o ARN do recurso neste exemplo pela ação e recurso específicos que você identificou anteriormente na mensagem de erro.
Usando o exemplo anterior, sua política será semelhante a esta:
{ "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" ] } } } ] }
A SCP de uma organização está impedindo uma ação no recurso
Você pode receber um erro semelhante ao seguinte:
"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"
Esse erro é gerado porque seu usuário do IAM faz parte de uma organização que tem SCPs em vigor. A SCP está impedindo você de realizar ações específicas. Para verificar as permissões associadas à sua SCP, siga estas etapas:
1. Abra o console do IAM.
2. Escolha Organization Activity (Atividade da organização) e, em seguida, escolha a guia Attached SCP (SCP anexada).
3. Analise as SCPs anexadas ao seu usuário do IAM. Verifique se você tem as permissões necessárias para concluir a ação desejada no recurso que está usando.
A sub-rede usada tem um endpoint da VPC com uma política que permite ou nega algumas ações
Você pode receber um erro semelhante ao seguinte:
"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 esse problema, siga estas etapas:
1. Abra o console da Amazon Virtual Private Cloud (Amazon VPC).
2. Escolha Endpoints e, em seguida, escolha o endpoint da VPC anexado à sub-rede que você está usando para concluir sua ação.
3. Em Actions (Ações), escolha Manage Policy (Gerenciar política).
4. Atualize a política de endpoint da VPC com a ação desejada no recurso necessário.
Neste exemplo, você atualiza a política de endpoint da VPC necessária para adicionar a açãoglue:CreateJob:
{ "Version": "2012-10-17", "Statement": [ { "Principal": "*", "Effect": "Allow", "Action": [ "glue:CreateJob" ], "Resource": "*" } ] }
Informações relacionadas
Conteúdo relevante
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há um mês
- AWS OFICIALAtualizada há 9 meses