Solução de problemas de mensagens de erro de acesso negado
Erros de acesso negado são exibidos quando a AWS nega explícita ou implicitamente uma solicitação de autorização. Uma negação explícita ocorre quando uma política contém uma instrução Deny
para a ação específica da AWS. Uma negação implícita ocorre quando não há nenhuma instrução Deny
aplicável e também nenhuma instrução Allow
aplicável. Como uma política do IAM nega uma entidade principal do IAM por padrão, a política deve permitir explicitamente que a entidade principal realize uma ação. Caso contrário, a política nega acesso implicitamente. Para mais informações, consulte A diferença entre negações explícitas e implícitas.
A maioria das mensagens de erro de acesso negado está no formato User
. Neste exemplo, user
is not authorized to perform
action
on resource
because
context
user
(usuário) é o nome do recurso da Amazon (ARN) que não recebe acesso, action
(ação) é a ação de serviço que a política nega e resource
(recurso) é o ARN do recurso no qual a política atua. O campo context
(contexto) representa contexto adicional sobre o tipo de política que explica por que o acesso é negado.
Quando uma política nega explicitamente o acesso porque ela contém uma instrução Deny
, a AWS inclui a frase with an explicit deny in a
na mensagem de acesso negado. Quando a política nega acesso implicitamente, a AWS inclui type
policybecause no
na mensagem de erro de acesso negado. type
policy allows the action
action
Se várias políticas do mesmo tipo de política negarem uma solicitação de autorização, a AWS não especificará o número de políticas na mensagem de erro de acesso negado. Se vários tipos de políticas negarem uma solicitação de autorização, a AWS só especificará uma dessas políticas na mensagem de erro de acesso negado.
Exemplos de mensagens de acesso negado
Os exemplos a seguir mostram o formato para diferentes tipos de mensagens de acesso negado.
Acesso negado devido a uma política de controle de serviço
Para o erro a seguir, verifique se há uma instrução Deny
ou se falta uma instrução Allow
para codecommit:ListRepositories
nas políticas de controle de serviço (SCPs).
Quando uma SCP nega acesso, a mensagem de erro sempre inclui a frasedue to an explicit deny in a Service Control Policy
, mesmo que a negação esteja implícita.
User: arn:aws:iam::777788889999:user/JohnDoe is not authorized to perform: codecommit:ListRepositories with an explicit deny in a service control policy
Acesso negado devido a uma política de endpoint da VPC
-
Negação implícita: para o erro a seguir, verifique se há uma instrução
Allow
faltando paracodecommit:ListRepositories
nas políticas de endpoint da nuvem privada virtual (VPC)User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codecommit:ListRepositories because no VPC endpoint policy allows the codecommit:ListRepositories action
-
Negação explícita: para o erro a seguir, verifique se há uma instrução explícita
Deny
paracodecommit:ListDeployments
nas políticas de endpoint da VPC.User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codedeploy:ListDeployments on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:* with an explicit deny in a VPC endpoint policy
Acesso negado devido a um limite de permissões
-
Negação implícita: para o erro a seguir, verifique se há uma instrução
Allow
faltando paracodecommit:ListDeployments
no limite de permissões.User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codedeploy:ListDeployments on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:* because no permissions boundary allows the codedeploy:ListDeployments action
-
Negação explícita: para o erro a seguir, verifique se há uma instrução explícita
Deny
parasagemaker:ListModels
no limite de permissões.User: arn:aws:iam::777788889999:user/JohnDoe is not authorized to perform: sagemaker:ListModels with an explicit deny in a permissions boundary
Acesso negado devido às políticas de sessão
-
Negação implícita: para o erro a seguir, verifique se há uma instrução
Allow
faltando paracodecommit:ListRepositories
nas políticas de sessão.User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codecommit:ListRepositories because no session policy allows the codecommit:ListRepositories action
-
Negação explícita: para o erro a seguir, verifique se há uma instrução explícita
Deny
paracodecommit:ListDeployments
nas políticas de sessão.User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codedeploy:ListDeployments on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:* with an explicit deny in a sessions policy
Acesso negado devido a políticas baseadas em recursos
-
Negação implícita: para o erro a seguir, verifique se há uma instrução
Allow
faltando parasecretsmanager:GetSecretValue
na política baseada em recursos.User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: secretsmanager:GetSecretValue because no resource-based policy allows the secretsmanager:GetSecretValue action
-
Negação explícita: para o erro a seguir, verifique se há uma instrução explícita
Deny
parasecretsmanager:GetSecretValue
na política baseada em recursos.User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: secretsmanager:GetSecretValue on resource: arn:aws:secretsmanager:us-east-1:123456789012:secret:* with an explicit deny in a resource-based policy
Acesso negado devido às políticas de confiança do perfil
-
Negação implícita: para o erro a seguir, verifique se há uma instrução
Allow
faltando paracodecommit:ListRepositories
na política de confiança do perfil.User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codecommit:ListRepositories because the role trust policy allows the codecommit:ListRepositories action
-
Negação explícita: para o erro a seguir, verifique se há uma instrução explícita
Allow
paraarcinteg:Echo
na política de confiança do perfil.User: arn:aws:iam::777788889999:user/JohnDoe is not authorized to perform: arcinteg:Echo with an explicit deny in the role trust policy
Acesso negado devido a políticas baseadas em identidade
-
Negação implícita: para o erro a seguir, verifique se há uma instrução
Allow
faltando paracodecommit:ListRepositories
nas políticas baseadas em identidade anexadas ao usuárioJohnDoe
.User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codecommit:ListRepositories because no identity-based policy allows the codecommit:ListRepositories action
-
Negação explícita: para o erro a seguir, verifique se há uma instrução explícita
Deny
paracodedeploy:ListDeployments
nas políticas baseadas em identidade anexadas ao usuárioJohnDoe
.User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codedeploy:ListDeployments on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:* with an explicit deny in an identity-based policy
Acesso negado quando uma solicitação de VPC falha devido a outra política
Para o erro a seguir, verifique se há uma instrução explícita Deny
para SNS:Publish
nas SCPs.
User: arn:aws:sts::111122223333:assumed-role/
role-name
/role-session-name
is not authorized to perform: SNS:Publish on resource: arn:aws:sns:us-east-1:444455556666:role-name-2
with an explicit deny in a VPC endpoint policy transitively through a service control policy