Saya mencoba mengunduh beberapa file dari S3 ke instance EC2 menggunakan AWS CLI (1.8.7) saat startup menggunakan User-Data Script. Mesin virtual ini memiliki Profil Peran & Instansi IAM dengan izin yang sesuai. Terkadang, CLI akan gagal dengan kesalahan "Tidak dapat menemukan kredensial". Ini sering terjadi, (tidak setiap waktu), tetapi selalu setelah perintah S3 terpisah, yang berfungsi. Inilah output dari skrip:
++ 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
Adakah yang tahu apa yang menyebabkan ini?
Sunting: Ini adalah server Amazon Linux.
amazon-ec2
amazon-web-services
amazon-s3
aws-cli
cloud-init
Simon Paris
sumber
sumber
Jawaban:
Saya memiliki masalah yang sama, bahkan menghubungi dukungan dan mereka tidak dapat memberikan jawaban. Mengekspor kredensial ke variabel lingkungan tidak berfungsi untuk
aws s3 ...
perintah. Anda harus menggunakanaws configure
util atau membuat~/.aws/config
file seperti ini:Silakan merujuk dokumentasi AWS di http://docs.aws.amazon.com/cli/latest/topic/config-vars.html
Saya tidak hanya gagal menjalankan sama sekali dengan ekspor lingkungan pada peluncuran EC2 melalui Data Pengguna tetapi juga memposting peluncuran dari baris perintah pada instance berjalan yang sepenuhnya dikerahkan.
sumber