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.
amazon-ec2
amazon-web-services
amazon-s3
aws-cli
cloud-init
Simon Paris
fonte
fonte
Respostas:
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 oaws configure
utilitário ou criar um~/.aws/config
arquivo como este: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.
fonte