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.