La CLI di AWS genera "Impossibile individuare le credenziali", la seconda volta che viene eseguita


9

Sto cercando di scaricare alcuni file da S3 a un'istanza EC2 utilizzando l'interfaccia della riga di comando di AWS (1.8.7) all'avvio utilizzando uno script dati utente. Questa istanza ha un ruolo IAM e un profilo istanza con le autorizzazioni appropriate. A volte, l'interfaccia della riga di comando non riesce con l'errore "Impossibile individuare le credenziali". Succede spesso (non sempre), ma sempre dopo un comando S3 separato, che ha funzionato. Ecco l'output dello 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

Qualche idea di cosa potrebbe causare questo?

Modifica: questo è un server Amazon Linux.


Hai provato a mettere un ritardo di 10 secondi prima di provare a recuperare i file? Forse le credenziali IAM non sono ancora presenti alla prima esecuzione del comando.
EEAA,

Sto riscontrando esattamente lo stesso problema con Ubuntu 16.04 LTS.
sj26

Risposte:


3

Ho avuto lo stesso problema, ho anche contattato l'assistenza e non sono stati in grado di fornire una risposta. L'esportazione delle credenziali in variabili ambientali non funziona per i aws s3 ...comandi. Devi utilizzare l' aws configureutility o creare un ~/.aws/configfile come questo:

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

Fare riferimento alla documentazione di AWS all'indirizzo http://docs.aws.amazon.com/cli/latest/topic/config-vars.html

Non solo ho riscontrato che non si eseguiva affatto con le esportazioni dell'ambiente all'avvio di EC2 tramite i Dati utente, ma ho anche postato l'avvio dalla riga di comando su un'istanza in esecuzione completamente distribuita.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.