AWS CLI arroja "No se pueden encontrar las credenciales", la segunda vez que se ejecuta

9

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.

Simon Paris
fuente
¿Has intentado retrasar 10 segundos antes de buscar los archivos? Quizás las credenciales de IAM aún no estén en su lugar la primera vez que se ejecuta el comando.
EEAA
Tengo exactamente el mismo problema con Ubuntu 16.04 LTS.
sj26

Respuestas:

3

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 utilidad aws configureo crear un ~/.aws/configarchivo como este:

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

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.

Steven K7FAQ
fuente