Estoy tratando de descargar algunos archivos de S3 a una instancia de EC2 usando la AWS CLI (1.8.7) al inicio usando un Script de datos de usuario. Esta instancia tiene un perfil de rol e instancia de IAM con los permisos adecuados. A veces, la CLI fallará con el error "No se pueden ubicar las credenciales". Sucede a menudo (no siempre), pero siempre después de un comando S3 separado, que funcionó. Aquí está la salida del 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
¿Alguna idea de lo que podría causar esto?
Editar: este es un servidor Amazon Linux.
amazon-ec2
amazon-web-services
amazon-s3
aws-cli
cloud-init
Simon Paris
fuente
fuente
Respuestas:
Tuve el mismo problema, incluso contacté a soporte y no pudieron dar una respuesta. La exportación de credenciales a variables ambientales no funciona para los
aws s3 ...
comandos. Tienes que usar la utilidadaws configure
o crear un~/.aws/config
archivo como este:Consulte la documentación de AWS en http://docs.aws.amazon.com/cli/latest/topic/config-vars.html
No solo encontré que no se ejecutó en absoluto con las exportaciones del entorno en el lanzamiento de EC2 a través de los Datos del usuario, sino que también publiqué el lanzamiento desde la línea de comandos en una instancia en ejecución completamente implementada.
fuente