= AWS/Ec2MetaData = * https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html * Get TOKEN env var and then list of endpoints {{{ TOKEN=`curl -sS -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` echo "TOKEN=$TOKEN" curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/ }}} * Use TOKEN env to get hostname {{{ # for debug replace -sS with -v curl -H "X-aws-ec2-metadata-token: $TOKEN" -sS http://169.254.169.254/latest/meta-data/local-hostname ; echo curl -H "X-aws-ec2-metadata-token: $TOKEN" -sS http://169.254.169.254/latest/meta-data/public-hostname ; echo }}} * Use TOKEN to get tags (Tags not available by default, have to enable see [[https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#work-with-tags-in-IMDS|--metadata-options "InstanceMetadataTags=enabled"]] {{{ TOKEN=`curl -sS -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` echo "TOKEN=$TOKEN" ## Check for tags curl -H "X-aws-ec2-token: $TOKEN" -sS http://169.254.169.254/latest/meta-data/ | grep "tags" || ( echo "no tags exit=$? in metadata, InstanceMetadataTags not enabled for this instance ?") # curl -H "X-aws-ec2-metadata-token: $TOKEN" -sS http://169.254.169.254/latest/meta-data/tags/instance }}} * Get account number from aws meta-data (search with jq or grep) {{{ TOKEN=`curl -sS -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` echo "TOKEN=$TOKEN" curl -s http://169.254.169.254/latest/dynamic/instance-identity/document ; echo }}} * Online grep for account using linux {{{ curl -s http://169.254.169.254/latest/dynamic/instance-identity/document | grep -oP '"accountId"\s*:\s*"\K[^"]+' }}}