Solução de problemas de mensagens de erro de acesso negado - AWS Identity and Access Management

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 user is not authorized to perform action on resource because context. Neste exemplo, 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 type policy na mensagem de acesso negado. Quando a política nega acesso implicitamente, a AWS inclui because no type policy allows the action action na mensagem de erro de acesso negado.

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).

nota

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 para codecommit: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 para codecommit: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 para codecommit: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 para sagemaker: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 para codecommit: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 para codecommit: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 para secretsmanager: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 para secretsmanager: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 para codecommit: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 para arcinteg: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 para codecommit: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 para codedeploy:ListDeployments nas políticas baseadas em identidade anexadas ao usuário JohnDoe.

    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