View a markdown version of this page

Solucionar problemas de mensagens de erro de acesso recusado com o ID de autorização (versão prévia) - AWS Identity and Access Management

Solucionar problemas de mensagens de erro de acesso recusado com o ID de autorização (versão prévia)

Importante

O Solucionador de Problemas de Acesso está em versão prévia pública.

Visão geral

Quando a AWS recusa uma solicitação de uma API compatível, a resposta de erro de acesso recusado geralmente inclui um ID de autorização. Esse ID faz referência à avaliação de autorização para essa solicitação recusada. Para recuperar os detalhes da avaliação e identificar o que causou a recusa, faça uma solicitação à API GetRequestAuthorizationDetails e forneça o ID de autorização ou abra o link presente na mensagem de erro. Isso permite identificar a causa de uma solicitação recusada em uma única chamada, em vez de resolver as recusas uma por vez.

nota

A AWS não garante um ID de autorização para cada solicitação recusada. Consulte Quando você não receber um ID de autorização neste documento.

O exemplo a seguir mostra uma mensagem de erro de acesso recusado que inclui um ARN de política, um link para o Console de Gerenciamento da AWS e um ID de autorização:

User: arn:aws:iam::123456789012:user/janedoe is not authorized to perform: iam:CreateInstanceProfile on resource: arn:aws:iam::123456789012:instance-profile/my-instance-profile with an explicit deny in an identity-based policy: arn:aws:iam::123456789012:policy/ExampleDenyPolicy. Go to https://us-east-1.console.aws.amazon.com/iam/home?region=us-east-1#/authorization-details/EXAMPLE1a2b3c4d5e6f7g8h9i0j for complete details, or call the GetRequestAuthorizationDetails API with the following authorization id: EXAMPLE1a2b3c4d5e6f7g8h9i0j

Conceitos e definições

  • Detalhes da autorização. Os detalhes da autorização incluem o contexto da solicitação, as avaliações realizadas e as políticas que foram avaliadas.

  • ID de autorização. Um identificador exclusivo incluído em uma resposta de erro de acesso recusado compatível. Ele faz referência à avaliação de autorização para esta solicitação recusada e é o valor que você passa para o link do Console de Gerenciamento da AWS ou para a API GetRequestAuthorizationDetails.

  • Contexto da solicitação. Os valores das chaves de contexto da condição avaliadas para a solicitação. Isso inclui as chaves de contexto de condição globais e as chaves de contexto de condição específicas do serviço.

  • Avaliação. Para cada par de ação/recurso na solicitação, as chaves de contexto de condição aplicadas e o resultado avaliado: ALLOW, EXPLICIT_DENY (uma política recusou explicitamente a ação) ou IMPLICIT_DENY (nenhuma política permitiu a ação) e uma referência a cada política e instrução que correspondia ao par ação/recurso. Cada referência é um ARN de política (para políticas gerenciadas) ou um URI (para políticas em linha e outras políticas não gerenciadas) que é reutilizado em toda a resposta.

  • Políticas avaliadas durante a autorização. As políticas da AWS consideradas para a solicitação, incluindo políticas que não correspondem ao par ação/recurso. Cada entrada fornece o tipo de política (por exemplo, baseada em identidade, baseada em recursos, SCP, RCP, limite de permissões ou política de sessão) e o mesmo ARN (para políticas gerenciadas) ou URI usado nas avaliações (para políticas em linha e outras políticas não gerenciadas). Use o ARN ou o URI para combinar uma política com a avaliação que a referenciou. O campo "Anexado a" mostra o ARN principal da entidade principal ao qual a política avaliada está anexada.

Use esses resultados em conjunto para identificar qual política recusou o acesso e por quê. A avaliação reflete as políticas como estavam no momento da recusa. As políticas podem ter mudado desde então.

A AWS inclui automaticamente um ID de autorização nas respostas de erro de acesso recusado para APIs compatíveis, mas os IDs de autorização não são garantidos. Em alguns casos, a AWS não registra os detalhes da autorização de uma recusa e a resposta de erro não inclui um ID de autorização. Quando os detalhes são registrados, eles podem não estar disponíveis imediatamente, pois a AWS os registra de forma assíncrona. Se uma chamada para GetRequestAuthorizationDetails retornar uma resposta não encontrada, aguarde um pouco e tente novamente. A AWS retém os detalhes da autorização por 24 horas após a recusa.

Solucionar problemas usando o Console de Gerenciamento da AWS

Escolha o link na mensagem de erro de acesso recusado para abrir os detalhes da autorização no Console do Solucionador de Problemas de Acesso.

  • O que procurar. O Console do Solucionador de Problemas de Acesso mostra a avaliação de cada par de ações/recursos na solicitação, o resultado de cada um (Allow, Explicit deny ou Implicit deny) e as políticas que foram consideradas. Encontre o par que foi recusado e a política que causou a recusa. Consulte a captura de tela a seguir como exemplo:

    Captura de tela do Console do Solucionador de Problemas de Acesso com uma recusa explícita e uma recusa implícita.
  • Determine se a recusa foi intencional. Revise a avaliação antes de alterar uma política. Uma recusa pode estar correta e, às vezes, a causa é o contexto da solicitação e não a política. Por exemplo, uma solicitação pode não ter uma tag de sessão esperada ou vir de um caminho de rede inesperado.

  • Como resolver a recusa. Localize a política correspondente e atualize-a para resolver o problema de acesso. Para uma recusa explícita, remova ou restrinja a instrução Deny para a ação. Para uma recusa implícita, adicione uma instrução Allow para a ação. Para obter mais informações, consulte Editar políticas do IAM.

Quem pode acessar os detalhes da autorização. Para uma solicitação em uma única conta ou organização, qualquer pessoa que tenha acesso a iam:GetRequestAuthorizationDetails pode acessar os detalhes da solicitação. Para uma solicitação que abrange mais de uma organização, um usuário em uma determinada organização pode visualizar somente os detalhes que dizem respeito à sua própria organização.

Solução de problemas usando a API ou a AWS CLI da AWS

Para solucionar uma recusa usando a API ou a AWS CLI da AWS:

  1. Localize o ID de autorização na resposta de erro de acesso recusado.

  2. Chame GetRequestAuthorizationDetails com o ID de autorização, na mesma região Região da AWS em que a recusa ocorreu. O exemplo a seguir mostra o comando da AWS CLI:

    aws iam-toolbox get-request-authorization-details \ --region us-east-1 \ --authorization-id EXAMPLE1a2b3c4d5e6f7g8h9i0j
  3. Analise os resultados da avaliação para identificar quais políticas recusaram o acesso e o motivo da recusa.

  4. Atualize as políticas identificadas para resolver o problema de acesso. Para obter mais informações, consulte Editar políticas do IAM.

Quando você não receber um ID de autorização

A AWS não retorna um ID de autorização nos seguintes casos:

  • A autorização é muito grande para ser registrada. Quando uma solicitação envolve um grande número de políticas, a AWS pode decidir não registrar a solicitação.

  • O serviço ainda não é compatível. Consulte Serviços com suporte.

  • A API não é compatível. Algumas APIs em um serviço compatível não retornam um ID de autorização.

  • O tipo de solicitação não é compatível. Isto inclui solicitações feitas por um serviço em seu nome e solicitações anônimas.

Se você não receber um ID de autorização, consulte Solucionar problemas de mensagens de erro de acesso negado para outras formas de diagnosticar a recusa.

Considerações adicionais

Permissões obrigatórias. Para chamar GetRequestAuthorizationDetails, você deve ter permissões para a ação iam:GetRequestAuthorizationDetails.

API regional. GetRequestAuthorizationDetails é uma API regional. Chame-a na mesma região Região da AWS em que o erro de acesso recusado e o ID de autorização foram gerados.

Solicitações entre organizações. Quando uma solicitação recusada envolve mais de uma organização, GetRequestAuthorizationDetails retorna somente os detalhes que pertencem à sua própria organização. Isso se aplica em ambas as direções: se você estiver na organização do chamador recusado, verá somente os detalhes relacionados a essa organização. Se você estiver na organização do recurso recusado, verá somente os detalhes que dizem respeito a essa organização. Detalhes pertencentes a outra organização, como as políticas ou os valores de chave de contexto desta organização, não são retornados.

Se você receber um erro de acesso recusado de uma API, serviço ou região que ainda não inclui um ID de autorização, consulte Solucionar problemas de mensagens de erro de acesso negado.

Serviços com suporte

O suporte para GetRequestAuthorizationDetails está sendo implementado gradualmente em APIs da AWS e na região Região da AWS. O(s) seguinte(s) serviço(s) oferece(m) suporte aos GetRequestAuthorizationDetails:

  • A maioria das APIs no IAM