EC2 인스턴스 메타데이터(IMDS)
intance_id, instance_type, ami-id 등과 같이 실행 중인 인스턴스를 구성하거나 관리하는 데 사용하는 인스턴스 관련 데이터
EC2 생성 시 메타데이터의 엑세스 여부와 버전 등을 선택할 수 있다.
인스턴스 메타데이터를 사용해 인스턴스를 시작할 때 지정한 사용자 데이터(실행 스크립트)에도 접근이 가능하다. 다만 인증 또는 암호화 등의 방법으로 보호되지 않으며 인스턴스에 접근할 수 있는 모든 사용자는 제한 없이 접근할 수 있다.
ec2metadata
ec2metadata를 검색할 수 있는 명령어로, EC2에는 기본적으로 포함되어 있는 것 같다.
만약 명령어가 설치되어 있지 않다면, 아래의 명령어를 이용해 설치할 수 있다.
apt install cloud-utils
옵션 없이 사용하면 모든 데이터가 출력된다.
ec2metadata
특정 속성만 확인할 때는 옵션으로 확인할 속성을 지정한다.
API
ec2metadata 명령어 대신 인스턴스 메타데이터 서비스에 데이터를 요청할 수 있다.
# IMDSv1 사용 시
curl http://169.254.169.254/latest/meta-data/
# IMDSv2 사용 시
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
&& curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/
참고 문서
https://github.com/canonical/cloud-utils
https://bosungtea9416.tistory.com/entry/AWS-EC2-Metadata-%EA%B4%80%EB%A0%A8%ED%95%98%EC%97%AC