Por que minha instância do Amazon EC2 está usando credenciais de usuário do IAM em vez de credenciais de perfil?
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.
Conteúdo relevante
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 3 anos
- AWS OFICIALAtualizada há 2 anos