Solução de problemas gerais do IAM - AWS Identity and Access Management

Solução de problemas gerais do IAM

Use as informações contidas aqui para ajudar a diagnosticar e corrigir problemas de acesso negado ou outros problemas comuns ao trabalhar com o AWS Identity and Access Management (IAM).

Não consigo fazer login na minha conta da AWS

Verifique se você tem as credenciais corretas e se está usando o método correto para fazer login. Para obter mais informações, consulte Solução de problemas de login no Guia do usuário do Início de Sessão da AWS.

Perdi minhas chaves de acesso

As chaves de acesso consistem em duas partes:

  • O identificador da chave de acesso. Não se trata de um segredo e pode ser visto no console do IAM sempre que as chaves de acesso forem listadas, como na página de resumo do usuário.

  • A chave de acesso secreta. É fornecida quando você cria inicialmente o par de chaves de acesso. Assim como uma senha, ela não pode ser recuperada posteriormente. Se você perdeu sua chave de acesso secreta, crie um novo par de chaves de acesso. Se você já tiver o número máximo de chaves de acesso, será necessário excluir um par existente antes de criar outro.

Para obter mais informações, consulte Redefinição de senhas perdidas ou esquecidas ou chaves de acesso para a AWS.

Eu recebo a mensagem de “acesso negado” quando faço uma solicitação a um serviço da AWS

  • Verifique se a mensagem de erro inclui o tipo de política responsável por negar o acesso. Por exemplo, se o erro mencionar que o acesso é negado devido a uma política de controle de serviço (SCP), você poderá se concentrar na solução de problemas de SCP. Quando você conhece o tipo de política, também pode verificar se há uma instrução de negação ou se falta uma permissão na ação específica em políticas desse tipo de política. Para obter mais informações, consulte Solução de problemas de mensagens de erro de acesso negado. Se a mensagem de erro não mencionar o tipo de política responsável por negar o acesso, use o restante das diretrizes desta seção para solucionar problemas adicionais.

  • Verifique se você tem permissão de política baseada em identidade para chamar a ação e o recurso que solicitou. Se condições forem definidas, você também deverá cumpri-las ao enviar a solicitação. Para obter informações sobre como visualizar ou modificar políticas para um usuário, grupo ou função do IAM, consulte Gerenciamento de políticas do IAM.

  • Se o AWS Management Console retornar uma mensagem informando que você não está autorizado a executar uma ação, entre em contato com o administrador para obter assistência. Seu administrador forneceu a você suas credenciais de login ou link de login.

    O erro de exemplo a seguir ocorre quando o usuário do IAM mateojackson tenta usar o console para visualizar detalhes sobre um recurso de my-example-widget fictício, mas não tem as permissões de widgets:GetWidget fictícias.

    User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: widgets:GetWidget on resource: my-example-widget

    Neste caso, Mateo pede ao administrador para atualizar suas políticas para permitir o acesso ao recurso my-example-widget usando a ação widgets:GetWidget.

  • Você está tentando acessar um serviço que oferece suporte a políticas baseadas em recurso, como o Amazon S3, Amazon SNS ou Amazon SQS? Nesse caso, verifique se a política especifica você como uma entidade principal e lhe concede acesso. Se você fizer uma solicitação para um serviço na sua conta, as políticas baseadas em identidade ou as políticas baseadas em recurso poderão conceder permissão. Se você fizer uma solicitação para um serviço em uma conta diferente, tanto as políticas baseadas em identidade quanto as políticas baseadas em recurso deverão conceder permissão. Para visualizar os serviços que são compatíveis com políticas baseadas em recursos, consulte Serviços da AWS que funcionam com o IAM.

  • Se sua política incluir uma condição com um par de chave-valor, revise-a com atenção. Os exemplos incluem a chave de condição global aws:RequestTag/tag-key, a kms:EncryptionContext:encryption_context_key do AWS KMS e a chave de condição ResourceTag/tag-key compatível com vários serviços. Certifique-se de que o nome da chave não corresponda a vários resultados. Como os nomes das chaves da condição não diferenciam maiúsculas de minúsculas, uma condição que verifica uma chave chamada foo corresponderá a foo, Foo ou FOO. Se sua solicitação inclui vários pares de chave-valor com nomes de chaves apenas com a capitalização diferente, o acesso pode ser inesperadamente negado. Para obter mais informações, consulte Elementos de política JSON do IAM: Condition.

  • Se você tiver um limite de permissões, verifique se a política usada para o limite de permissões permite sua solicitação. Se suas políticas baseadas em identidade permitirem a solicitação, mas seu limite de permissões não permitir, a solicitação será negada. Um limite de permissões controla o número máximo de permissões que uma entidade de segurança do IAM (usuário ou função) pode ter. As políticas baseadas em recurso não são limitadas pelos limites de permissões. Os limites de permissões não são comuns. Para obter mais informações sobre como a AWS avalia políticas, consulte Lógica da avaliação de política.

  • Se você assinar solicitações manualmente (sem usar os AWS SDKs), verifique se você assinou a solicitação corretamente.

Eu recebo uma mensagem de "acesso negado" quando faço uma solicitação com credenciais de segurança temporárias

  • Primeiro, certifique-se de que não lhe foi negado acesso por um motivo que não esteja relacionado às suas credenciais temporárias. Para obter mais informações, consulte Eu recebo a mensagem de “acesso negado” quando faço uma solicitação a um serviço da AWS.

  • Para verificar se o serviço aceita credenciais de segurança temporárias, consulte Serviços da AWS que funcionam com o IAM.

  • Verifique se suas solicitações estão sendo assinadas corretamente e se a solicitação é bem formada. Para obter mais detalhes, consulte a documentação do toolkit ou Uso de credenciais temporárias com recursos da AWS.

  • Verifique se suas credenciais de segurança temporárias não expiraram. Para obter mais informações, consulte Credenciais de segurança temporárias no IAM.

  • Verifique se o usuário ou a função do IAM tem as permissões corretas. As permissões para credenciais de segurança temporárias são derivadas de um usuário ou uma função do IAM. Como resultado, as permissões são limitadas àquelas que são concedidas à função cujas credenciais temporárias são assumidas. Para obter mais informações sobre como permissões para credenciais de segurança temporárias são determinadas, consulte Controle de permissões para credenciais de segurança temporárias.

  • Se você tiver assumido uma função, a sessão da função pode estar limitada por políticas de sessão. Quando solicita credenciais de segurança temporárias de forma programática usando o AWS STS, você pode opcionalmente passar políticas de sessão em linha ou gerenciadas. As políticas de sessão são políticas avançadas que você passa como um parâmetro ao criar uma sessão de credenciais temporárias de forma programática para uma função. Você pode passar um único documento de política JSON de sessão em linha usando o parâmetro Policy. Você pode usar o parâmetro PolicyArns para especificar até 10 políticas de sessão gerenciadas. As permissões da sessão resultante são a interseção das políticas baseadas em identidade da função e das políticas de sessão. Como alternativa, se o administrador ou um programa personalizado fornecer credenciais temporárias a você, ele poderá incluir uma política de sessão para limitar seu acesso.

  • Se você for um usuário federado, a sessão poderá ser limitada pelas políticas de sessão. Você se torna um usuário federado fazendo login na AWS como um usuário do IAM e solicitando um token de federação. Para obter mais informações sobre usuários federados, consulte GetFederationToken: federação por meio de um agente de identidades personalizado. Se você ou seu agente de identidade tiver passado políticas de sessão ao solicitar um token de federação, a sessão será limitada por essas políticas. As permissões da sessão resultantes são a interseção de suas políticas baseadas em identidade do usuário do IAM e as políticas de sessão. Para obter mais informações sobre políticas de sessão, consulte Políticas de sessão.

  • Se você estiver acessando um recurso que tenha uma política baseada em recursos usando uma função, verifique se a política concede permissões à função. Por exemplo, a política a seguir permite que MyRole da conta 111122223333 acesse MyBucket.

    { "Version": "2012-10-17", "Statement": [{ "Sid": "S3BucketPolicy", "Effect": "Allow", "Principal": {"AWS": ["arn:aws:iam::111122223333:role/MyRole"]}, "Action": ["s3:PutObject"], "Resource": ["arn:aws:s3:::MyBucket/*"] }] }

As variáveis da política não estão funcionando

  • Verifique se todas as políticas que incluem variáveis incluem o seguinte número da versão na política: "Version": "2012-10-17". Sem o número da versão correta, as variáveis não são substituídas durante a avaliação. Em vez disso, as variáveis são avaliadas literalmente. Todas as políticas que não incluírem variáveis ainda funcionarão se você incluir o número da versão mais recente.

    Um elemento de política Version é diferente de uma versão de política. O elemento de política Version é usado em uma política e define a versão da linguagem da política. A versão da política, por outro lado, é criada quando você faz alterações em uma política gerenciada pelo cliente no IAM. A política alterada não substitui a política existente. Em vez disso, o IAM cria uma nova versão da política gerenciada. Para saber mais sobre o elemento de política Version, consulte Elementos de política JSON do IAM: Version. Para saber mais sobre as versões de política, consulte Versionamento de políticas do IAM.

  • Verifique se as variáveis de política estão no caso certo. Para obter mais detalhes, consulte Elementos de política do IAM: variáveis e etiquetas.

As alterações que eu faço nem sempre ficam imediatamente visíveis

Como um serviço que é acessado por meio de computadores em datacenters em todo o mundo, o IAM usa um modelo de computação distribuído chamado consistência final. Qualquer alteração feita no IAM (ou outros serviços da AWS), incluindo etiquetas usadas no attribute-based access control (ABAC – Controle de acesso baseado em atributo), leva tempo para se tornar visível em todos os endpoints possíveis. Parte do atraso resulta do tempo necessário para enviar os dados de um servidor para outro, de uma zona de replicação para outra e de uma região para outra em todo o mundo. O IAM também usa o armazenamento em cache para melhorar a performance, porém, em alguns casos, isso pode adicionar tempo. A alteração talvez não fique visível enquanto os dados armazenados em cache anteriormente não atingirem o tempo limite.

Você deve projetar seus aplicativos globais levando em conta esses possíveis atrasos. Garanta que eles funcionem conforme o esperado, mesmo quando uma alteração feita em um local não fique imediatamente visível em outro. Essas alterações incluem a criação ou a atualização de usuários, grupos, funções ou políticas. Recomendamos que você não inclua essas alterações do IAM nos caminhos de código crítico de alta disponibilidade do seu aplicativo. Em vez disso, faça alterações do IAM em uma rotina de inicialização ou de configuração separada que você executa com menos frequência. Além disso, certifique-se de verificar se as alterações foram propagadas antes que os fluxos de trabalho de produção dependam delas.

Para obter mais informações sobre como alguns outros serviços da AWS são afetados por isso, consulte os seguintes recursos:

Não estou autorizado a executar: iam:DeleteVirtualMFADevice

Você pode receber o seguinte erro ao tentar atribuir ou remover um dispositivo MFA virtual para você ou para outras pessoas:

User: arn:aws:iam::123456789012:user/Diego is not authorized to perform: iam:DeleteVirtualMFADevice on resource: arn:aws:iam::123456789012:mfa/Diego with an explicit deny

Isso pode acontecer se, anteriormente, alguém tiver começado a atribuir um dispositivo com MFA virtual a um usuário no console do IAM e tiver cancelado o processo. Isso cria um dispositivo de MFA virtual para o usuário no IAM, mas nunca o associa a esse usuário. Você deve excluir o dispositivo de MFA virtual existente antes de criar um novo com o mesmo nome de dispositivo.

Para corrigir esse problema, um administrador não deve editar permissões de política. Em vez disso, o administrador deve usar a AWS CLI ou a API da AWS para excluir o dispositivo de MFA virtual existente, mas não atribuído.

Para excluir um dispositivo de MFA virtual existente, mas não atribuído
  1. Visualize os dispositivos MFA virtuais em sua conta.

  2. Na resposta, localize o ARN do dispositivo de MFA virtual para o usuário que você está tentando corrigir.

  3. Exclua o dispositivo de MFA virtual.

Como faço para criar usuários do IAM com segurança?

Se houver funcionários que precisam de acesso à AWS, você poderá criar usuários do IAM ou usar o IAM Identity Center para autenticação. Se você usa o IAM, a AWS recomenda que você crie um usuário do IAM e informe com segurança as credenciais ao funcionário. Se você não estiver fisicamente localizado ao lado de seu funcionário, use um fluxo de trabalho seguro para comunicar as credenciais aos funcionários.

Use o fluxo de trabalho a seguir para criar um novo usuário com segurança no IAM:

  1. Crie um novo usuário usando o AWS Management Console. Conceda acesso ao AWS Management Console com uma senha gerada automaticamente. Se necessário, marque a caixa de seleção Users must create a new password at next sign-in (Usuários devem criar uma nova senha no próximo login). Não adicione uma política de permissões ao usuário até que ele tenha alterado sua senha.

  2. Depois que o usuário for adicionado, copie o URL de login, o nome de usuário e a senha para o novo usuário. Para visualizar a senha, escolha Show (Mostrar).

  3. Envie a senha para seu funcionário usando um método de comunicação segura em sua empresa, como e-mail, chat ou um sistema de emissão de bilhetes. Separadamente, forneça aos usuários o link do console do usuário e o nome de usuário do IAM. Peça que o funcionário confirme se ele pode fazer login com sucesso antes de conceder permissões a ele.

  4. Depois que o funcionário confirmar, adicione as permissões que forem necessárias. Como prática recomendada de segurança, adicione uma política que exija que o usuário autentique usando MFA para gerenciar suas credenciais. Para ver um exemplo de política, consulte AWS: permite que os usuários do IAM autenticados por MFA gerenciem as próprias credenciais na página My security credentials (Minhas credenciais de segurança).

Recursos adicionais

Os seguintes recursos podem ajudar você a solucionar problemas enquanto trabalha com o AWS.