Por que minha instância do Amazon EC2 está usando credenciais de usuário do IAM em vez de credenciais de perfil?

3 minuto de leitura
0

Anexei um perfil do AWS Identity and Access Management (IAM) a uma instância do Amazon Elastic Compute Cloud (Amazon EC2). No entanto, a instância do Amazon EC2 faz chamadas de API com um usuário do IAM em vez de um perfil do IAM.

Descrição resumida

A AWS Command Line Interface (AWS CLI) usa um conjunto de provedores de credenciais para procurar credenciais da AWS em uma sequência. As credenciais usadas dependem da ordem e da precedência dos provedores de credenciais. Para obter mais informações, consulte Definições de configuração e precedência.

Resolução

Siga as instruções para encontrar a ID do usuário do IAM e o local em que as credenciais do usuário do IAM estão armazenadas. Em seguida, use a AWS CLI para gerenciar as credenciais do IAM e descartar a configuração de precedência maior.

Observação: se você receber erros ao executar comandos da AWS CLI, verifique se está utilizando a versão mais recente da AWS CLI.

Encontre a ID do usuário do IAM e obtenha a localização da credencial do usuário do IAM

1.    Execute o seguinte comando get-caller-identity para verificar quais credenciais do IAM são usadas para fazer chamadas de API:

aws sts get-caller-identity

Você receberá uma saída semelhante à seguinte:

{

    "Account": "123456789012",

    "UserId": "AIDACKCEVSQ6C2EXAMPLE",

    "Arn": "arn:aws:iam::123456789012:user/ExampleIAMuser"

}

Neste exemplo de saída, as credenciais do IAM usadas são do ExampleIAMuser.

2.    Use a opção --debug para verificar a localização das credenciais do usuário semelhante à seguinte:

aws s3 ls --debug
2020-03-28 02:04:29,478 - MainThread - botocore.credentials - INFO - Found credentials in shared credentials file: ~/.aws/credentials

Neste exemplo de saída, as credenciais do usuário do IAM são armazenadas no arquivo .aws/credentials. Como essas credenciais têm uma precedência maior do que as credenciais de perfil, as credenciais de usuário do IAM são usadas para fazer chamadas de API.

Use a AWS CLI para gerenciar as credenciais do IAM e descartar a configuração de precedência maior

Use as seguintes práticas recomendadas:

  • Certifique-se de não usar a opção --profile com a AWS CLI.
  • Desmarque ou remova todas as variáveis de ambiente.
  • Para o comando configure, exclua o arquivo de credenciais na pasta .aws/credentials. Em seguida, exclua a pasta .aws para definir as credenciais padrão do perfil de instância.
  • Para perfis configurados no arquivo .aws/config, exclua o perfil. Em seguida, exclua a pasta .aws.

Depois de remover as definições de configuração que precedem as credenciais do IAM, execute o comando get-caller-identity para verificar as credenciais do perfil do IAM semelhantes às seguintes:

aws sts get-caller-identity

{
    "UserId": "AROACKCEVSQ6C2EXAMPLE:i-01773d4a8ed647342",
    "Account": "123456789012",
    "Arn": "arn:aws:sts::123456789012:assumed-role/ExampleInstanceRole/i-01773d4a8ed647342"
}

Neste exemplo de saída, as credenciais do IAM usadas são do perfil do IAM ExampleInstanceRole.


AWS OFICIAL
AWS OFICIALAtualizada há 3 anos