Solução de problemas do IAM e Amazon EC2 - AWS Identity and Access Management

Solução de problemas do IAM e Amazon EC2

Use as informações contidas aqui para ajudar você a solucionar problemas e corrigir acesso negado ou outros problemas que você pode encontrar ao trabalhar com o Amazon EC2 e o IAM.

Ao tentar iniciar uma instância, não vejo a função que esperava ver na lista de funções do IAM do console do Amazon EC2

Verifique o seguinte:

  • Se você estiver conectado a um usuário do IAM, verifique se tem permissão para chamar ListInstanceProfiles. Para obter informações sobre as permissões necessárias para trabalhar com funções, consulte “Permissões necessárias para usar funções com o Amazon EC2” em Uso de uma função do IAM para conceder permissões a aplicações em execução em instâncias do Amazon EC2. Para obter informações sobre como adicionar permissões a um usuário, consulte Gerenciamento de políticas do IAM.

    Se você não puder modificar suas próprias permissões, deverá entrar em contato com um administrador que possa trabalhar com o IAM para atualizar suas permissões.

  • Se você criou uma função usando a CLI ou a API do IAM, verifique se criou um perfil da instância e adicionou a função a esse perfil. Além disso, se você nomear sua função e o perfil da instância de forma diferente, não verá o nome correto da função na lista de funções do IAM no console do Amazon EC2. A lista IAM Role (Função do IAM) no console do Amazon EC2 lista os nomes dos perfis de instância, não os nomes das funções. Você precisará selecionar o nome do perfil de instância que contém a função desejada. Para obter detalhes sobre os perfis de instância, consulte Usar perfis de instância.

    nota

    Se você usar o console do IAM para criar funções, não precisará trabalhar com perfis de instância. Para cada função criada no console do IAM, um perfil de instância é criado com o mesmo nome da função, e a função é automaticamente adicionada a esse perfil. Um perfil de instância pode conter somente uma função do IAM e esse limite não pode ser aumentado.

As credenciais na minha instância são da função incorreta

A função no perfil da instância pode ter sido substituída recentemente. Nesse caso, seu aplicativo precisará aguardar a próxima rotação de credenciais programada automaticamente para que as credenciais de sua função fiquem disponíveis.

Quando tento chamar AddRoleToInstanceProfile, recebo um erro AccessDenied.

Se você estiver fazendo solicitações como um usuário IAM, verifique se tem as seguintes permissões:

  • iam:AddRoleToInstanceProfile com o recurso correspondente ao nome de região da Amazon (ARN) do perfil da instância (por exemplo, arn:aws:iam::999999999999:instance-profile/ExampleInstanceProfile).

Para obter mais informações sobre as permissões necessárias para trabalhar com funções, consulte “Como faço para começar?” no Uso de uma função do IAM para conceder permissões a aplicações em execução em instâncias do Amazon EC2. Para obter informações sobre como adicionar permissões a um usuário, consulte Gerenciamento de políticas do IAM.

Amazon EC2: Quando tento iniciar uma instância com uma função, recebo um erro AccessDenied

Verifique o seguinte:

  • Execute uma instância sem um perfil de instância. Isso ajudará a garantir que o problema seja limitado às funções do IAM para instâncias do Amazon EC2.

  • Se você estiver fazendo solicitações como um usuário IAM, verifique se tem as seguintes permissões:

    • ec2:RunInstances com um caractere curinga ("*")

    • iam:PassRole com o recurso correspondente ao nome de região da Amazon (ARN) da função (por exemplo, arn:aws:iam::999999999999:role/ExampleRoleName)

  • Chame a ação GetInstanceProfile do IAM para garantir que você esteja usando um nome de perfil de instância válido ou um ARN de perfil de instância válido. Para obter mais informações, consulte Usar funções IAM com instâncias do Amazon EC2.

  • Chame a ação GetInstanceProfile do IAM para garantir que o perfil da instância tenha uma função. Ocorrerá falha em perfis de instância vazias com o erro AccessDenied. Para obter mais informações sobre a criação de uma função, consulte Criação de funções do IAM.

Para obter mais informações sobre as permissões necessárias para trabalhar com funções, consulte “Como faço para começar?” no Uso de uma função do IAM para conceder permissões a aplicações em execução em instâncias do Amazon EC2. Para obter informações sobre como adicionar permissões a um usuário, consulte Gerenciamento de políticas do IAM.

Não é possível acessar as credenciais de segurança temporárias em minha instância do EC2.

Para acessar credenciais de segurança temporárias em sua instância do EC2, você deve primeiro usar o console do IAM para criar uma função. Depois, execute uma instância do EC2 que usa essa função e examine a instância em execução. Para obter mais informações, consulte How Do I Get Started? (Como começar?) em Uso de uma função do IAM para conceder permissões a aplicações em execução em instâncias do Amazon EC2.

Se você ainda não conseguir acessar as credenciais de segurança temporárias na instância do EC2, verifique o seguinte:

  • É possível acessar outra parte do serviço de metadados da instância (IMDS - instance metadata service)? Se não, verifique se não há regras de firewall bloqueando o acesso a solicitações para o IMDS.

    [ec2-user@domU-12-31-39-0A-8D-DE ~]$ GET http://169.254.169.254/latest/meta-data/hostname; echo
  • A subárvore iam do IMDS existe? Caso não exista, verifique se sua instância tem um perfil de instância do IAM associado a ela chamando a operação da API DescribeInstances do EC2 ou usando o comando aws ec2 aws ec2 describe-instances da CLI.

    [ec2-user@domU-12-31-39-0A-8D-DE ~]$ GET http://169.254.169.254/latest/meta-data/iam; echo
  • Verifique se há erro no documento info na subárvore do IAM. Se houver erro, consulte O que os erros do documento info na subárvore do IAM significam? para obter mais informações.

    [ec2-user@domU-12-31-39-0A-8D-DE ~]$ GET http://169.254.169.254/latest/meta-data/iam/info; echo

O que os erros do documento info na subárvore do IAM significam?

O documento iam/info indica "Code":"InstanceProfileNotFound"

Seu perfil de instância do IAM foi excluído e o Amazon EC2 não pode mais fornecer credenciais para sua instância. Você deve anexar um perfil de instância válido à sua instância do Amazon EC2.

Se houver um perfil de instância com esse nome, verifique se o perfil não foi excluído e outro foi criado com o mesmo nome:

  1. Chame a operação GetInstanceProfile do IAM para obter o InstanceProfileId.

  2. Chame a operação DescribeInstances do Amazon EC2 para obter o IamInstanceProfileId para a instância.

  3. Verifique se o InstanceProfileId da operação do IAM corresponde ao IamInstanceProfileId da operação do Amazon EC2.

Se os IDs forem diferentes, o perfil de instância anexado às suas instâncias não será mais válido. Você deve anexar um perfil de instância válido à instância.

O documento iam/info indica um sucesso, mas indica "Message":"Instance Profile does not contain a role..."

A função foi removida do perfil da instância pela ação RemoveRoleFromInstanceProfile do IAM. Você pode usar a ação AddRoleToInstanceProfile do IAM para anexar uma função ao perfil da instância. O aplicativo precisará aguardar até que a próxima atualização programada acesse as credenciais para a função.

O documento iam/security-credentials/[role-name] indica "Code":"AssumeRoleUnauthorizedAccess"

O Amazon EC2 não tem permissão para assumir a função. A permissão para assumir a função é controlada pela política de confiança anexada à função, como o exemplo a seguir. Use a API UpdateAssumeRolePolicy do IAM para atualizar a política de confiança.

{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": {"Service": ["ec2.amazonaws.com"]},"Action": ["sts:AssumeRole"]}]}

O aplicativo precisará aguardar até que a próxima atualização programada automaticamente acesse as credenciais para a função.