L'AWS CLI lance «Impossible de localiser les informations d'identification», la deuxième fois qu'il est exécuté

9

J'essaie de télécharger certains fichiers de S3 vers une instance EC2 à l'aide de l'AWS CLI (1.8.7) au démarrage à l'aide d'un script de données utilisateur. Cette instance a un profil de rôle et d'instance IAM avec les autorisations appropriées. Parfois, la CLI échouera avec l'erreur "Impossible de localiser les informations d'identification". Cela arrive souvent (pas à chaque fois), mais toujours après une commande S3 distincte, qui a fonctionné. Voici la sortie du 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

Une idée de ce qui pourrait causer cela?

Edit: il s'agit d'un serveur Amazon Linux.

Simon Paris
la source
Avez-vous essayé de mettre un délai de 10 secondes avant d'essayer de récupérer les fichiers? Les informations d'identification IAM ne sont peut-être pas encore en place la première fois que la commande est exécutée.
EEAA
J'ai exactement le même problème avec Ubuntu 16.04 LTS.
sj26

Réponses:

3

J'ai eu le même problème, j'ai même contacté le support et ils n'ont pas pu répondre. L'exportation des informations d'identification vers des variables d'environnement ne fonctionne pas pour les aws s3 ...commandes. Vous devez soit utiliser l' aws configureutilitaire soit créer un ~/.aws/configfichier comme celui-ci:

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

Veuillez consulter la documentation AWS à l' adresse http://docs.aws.amazon.com/cli/latest/topic/config-vars.html

Non seulement je l'ai trouvé ne pas s'exécuter du tout avec les exportations d'environnement au lancement d'EC2 via les données utilisateur, mais aussi après le lancement à partir de la ligne de commande sur une instance en cours d'exécution entièrement déployée.

Steven K7FAQ
la source