Я пытаюсь загрузить некоторые файлы из S3 в экземпляр EC2 с помощью интерфейса командной строки AWS (1.8.7) при запуске с использованием сценария пользовательских данных. У этого экземпляра есть роль и профиль экземпляра IAM с соответствующими разрешениями. Иногда в интерфейсе командной строки возникает ошибка «Не удалось найти учетные данные». Это случается часто (не каждый раз), но всегда после отдельная команда S3, которая работала. Вот результат скрипта:
++ 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
Есть идеи, что могло вызвать это?
Изменить: это сервер Amazon Linux.
У меня была такая же проблема, даже обращался в службу поддержки, и они не могли дать ответа. Экспорт учетных данных в переменные среды не работает для aws s3 ...
команды. Вы должны либо использовать aws configure
util или создайте ~/.aws/config
файл вроде этого:
[default]
aws_access_key_id=foo
aws_secret_access_key=bar
region=us-west-2
См. Документацию AWS по адресу http://docs.aws.amazon.com/cli/latest/topic/config-vars.html
Я не только обнаружил, что он вообще не может выполняться с экспортом среды при запуске EC2 через пользовательские данные, но и после запуска из командной строки на полностью развернутом запущенном экземпляре.