Anda dapat menambahkan skrip ini ke data pengguna cloud-init Anda untuk mengunduh tag EC2 ke file lokal:
#!/bin/sh
INSTANCE_ID=`wget -qO- http://instance-data/latest/meta-data/instance-id`
REGION=`wget -qO- http://instance-data/latest/meta-data/placement/availability-zone | sed 's/.$//'`
aws ec2 describe-tags --region $REGION --filter "Name=resource-id,Values=$INSTANCE_ID" --output=text | sed -r 's/TAGS\t(.*)\t.*\t.*\t(.*)/\1="\2"/' > /etc/ec2-tags
Anda memerlukan alat AWS CLI yang diinstal pada sistem Anda: Anda dapat menginstalnya dengan packages
bagian di file konfigurasi cloud sebelum skrip, menggunakan AMI yang sudah menyertakannya, atau menambahkan perintah apt
atau yum
di awal skrip.
Untuk mengakses tag EC2, Anda memerlukan kebijakan seperti ini dalam peran IAM instans Anda:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1409309287000",
"Effect": "Allow",
"Action": [
"ec2:DescribeTags"
],
"Resource": [
"*"
]
}
]
}
Tag EC2 instans akan tersedia dalam /etc/ec2-tags
format ini:
FOO="Bar"
Name="EC2 tags with cloud-init"
Anda dapat memasukkan file apa adanya dalam skrip shell menggunakan . /etc/ec2-tags
, misalnya:
#!/bin/sh
. /etc/ec2-tags
echo $Name
Tag didownload selama inisialisasi instance, jadi tag tidak akan mencerminkan perubahan selanjutnya.
Skrip dan kebijakan IAM didasarkan pada jawaban itaifrenkel.