AWS CLI lança "Não é possível localizar credenciais", na segunda vez em que é executado

9

Estou tentando baixar alguns arquivos do S3 para uma instância do EC2 usando a AWS CLI (1.8.7) na inicialização usando um script de dados do usuário. Esta instância possui um perfil de função e instância do IAM com as permissões apropriadas. Às vezes, a CLI falha com o erro "Não é possível localizar credenciais". Isso acontece com frequência (não sempre), mas sempre após um comando S3 separado, que funcionou. Aqui está a saída do script:

++ date +%r
03:24:10 AM
++ aws s3 cp s3://non-public-bucket-1/15mb-zip-file.zip ./15mb-zip-file.zip
Completed 1 of 1 part(s) with 1 file(s) remaining^Mdownload: s3://non-public-bucket-1/15mb-zip-file.zip to 15mb-zip-file.zip
++ date +%r
03:24:14 AM
++ unzip 15mb-zip-file.zip

# Snip

++ date +%r
03:26:01 AM
++ curl http://169.254.169.254/latest/meta-data/instance-id
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    10  100    10    0     0  13831      0 --:--:-- --:--:-- --:--:-- 10000
i-12345678++ date +%r
03:26:01 AM
++ aws s3 cp s3://non-public-bucket-2/my-small-text-file.json ./output.json
download failed: s3://non-public-bucket-2/my-small-text-file.json to output.json Unable to locate credentials

++ date +%r
03:26:34 AM

Alguma ideia sobre o que poderia causar isso?

Edit: Este é um servidor Amazon Linux.

Simon Paris
fonte
Você já tentou colocar um atraso de 10 segundos antes de tentar buscar os arquivos? Talvez as credenciais do IAM ainda não estejam no local na primeira vez em que o comando é executado.
EEAA
Estou tendo exatamente o mesmo problema com o Ubuntu 16.04 LTS.
precisa saber é

Respostas:

3

Eu tive o mesmo problema, até contatei o suporte e eles não puderam fornecer uma resposta. Exportar credenciais para variáveis ​​ambientais não funciona para aws s3 ...comandos. Você precisa usar o aws configureutilitário ou criar um ~/.aws/configarquivo como este:

[default]
aws_access_key_id=foo
aws_secret_access_key=bar
region=us-west-2

Consulte a documentação da AWS em http://docs.aws.amazon.com/cli/latest/topic/config-vars.html

Não só achei que ele não estava sendo executado com as exportações do ambiente na inicialização do EC2 por meio dos Dados do Usuário, mas também após a inicialização da linha de comando em uma instância em execução totalmente implantada.

Steven K7FAQ
fonte