Vous pouvez ajouter ce script à vos données utilisateur cloud-init pour télécharger les balises EC2 dans un fichier local:
#!/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
Vous avez besoin des outils AWS CLI installés sur votre système: vous pouvez les installer avec une packages
section dans un fichier de configuration cloud avant le script, utiliser une AMI qui les inclut déjà, ou ajouter un apt
ouyum
commande au début du script.
Pour accéder aux balises EC2, vous avez besoin d'une stratégie comme celle-ci dans le rôle IAM de votre instance:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1409309287000",
"Effect": "Allow",
"Action": [
"ec2:DescribeTags"
],
"Resource": [
"*"
]
}
]
}
Les balises EC2 de l'instance seront disponibles /etc/ec2-tags
dans ce format:
FOO="Bar"
Name="EC2 tags with cloud-init"
Vous pouvez inclure le fichier tel quel dans un script shell en utilisant . /etc/ec2-tags
, par exemple:
#!/bin/sh
. /etc/ec2-tags
echo $Name
Les balises sont téléchargées lors de l'initialisation de l'instance, elles ne refléteront donc pas les modifications ultérieures.
Le script et la stratégie IAM sont basés sur la réponse d'itaifrenkel.