반응형
IMDSv2(Instance Metadata Service v2)를 사용하여 EC2 인스턴스 내에서 AMI ID, 인스턴스 타입, 호스트 이름 등 주요 메타데이터를 조회하는 방법
EC2 인스턴스 메타데이터 설정
IMDS 버전 지원 여부 확인 방법
IMDSv2 토큰 요청
curl -s -o /dev/null -w "%{http_code}\n" -X PUT \
"http://169.254.169.254/latest/api/token" \
-H "X-aws-ec2-metadata-token-ttl-seconds: 21600"
200
- 결과가 200이면 : IMDSv2 지원
IMDSv1 확인
curl -s http://169.254.169.254/latest/meta-data/
ami-id
ami-launch-index
ami-manifest-path
block-device-mapping/
events/
hostname
iam/
identity-credentials/
instance-action
instance-id
instance-life-cycle
instance-type
local-hostname
local-ipv4
mac
metrics/
network/
placement/
profile
public-hostname
public-ipv4
public-keys/
reservation-id
security-groups
services/
system
- 메타데이터 경로 목록이 정상적으로 출력되면 IMDSv1을 지원
EC2 인스턴스 속성에서 확인(AWS CLI 사용)
aws ec2 describe-instances \
--instance-id <INSTANCE_ID> \
--query "Reservations[].Instances[].MetadataOptions"
[
{
"State": "applied",
"HttpTokens": "required",
"HttpPutResponseHopLimit": 1,
"HttpEndpoint": "enabled",
"HttpProtocolIpv6": "disabled",
"InstanceMetadataTags": "disabled"
}
]
[
{
"State": "applied",
"HttpTokens": "optional",
"HttpPutResponseHopLimit": 1,
"HttpEndpoint": "enabled",
"HttpProtocolIpv6": "disabled",
"InstanceMetadataTags": "disabled"
}
]
- "HttpTokens": "required" → IMDSv2만 허용 (IMDSv1 차단)
- "HttpTokens": "optional" → IMDSv1, IMDSv2 모두 허용
토큰 조회
TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" \
-H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
echo $TOKEN
728x90
AMI ID 조회
curl -s -H "X-aws-ec2-metadata-token: $TOKEN" \
http://169.254.169.254/latest/meta-data/ami-id
인스턴스 타입 조회
curl -s -H "X-aws-ec2-metadata-token: $TOKEN" \
http://169.254.169.254/latest/meta-data/instance-type
인스턴스 ID 조회
curl -H "X-aws-ec2-metadata-token: $TOKEN" \
http://169.254.169.254/latest/meta-data/instance-id
호스트 이름(private DNS hostname)
curl -s -H "X-aws-ec2-metadata-token: $TOKEN" \
http://169.254.169.254/latest/meta-data/hostname
지역(Region)
curl -s -H "X-aws-ec2-metadata-token: $TOKEN" \
http://169.254.169.254/latest/dynamic/instance-identity/document | jq -r .region
전체 메타데이터 경로 보기
curl -s -H "X-aws-ec2-metadata-token: $TOKEN" \
http://169.254.169.254/latest/meta-data/
ami-id
ami-launch-index
ami-manifest-path
block-device-mapping/
events/
hostname
iam/
identity-credentials/
instance-action
instance-id
instance-life-cycle
instance-type
local-hostname
local-ipv4
mac
metrics/
network/
placement/
profile
public-hostname
public-ipv4
public-keys/
reservation-id
security-groups
services/
system
참고URL
- AWS Documentation : 설명서 > Amazon EC2> 사용자 > 인스턴스 메타데이터
- AWS Documentation : 설명서 > Amazon EC2> 사용자 > EC2 인스턴스에 대한 인스턴스 메타데이터에 액세스
728x90
반응형
'퍼블릭 클라우드' 카테고리의 다른 글
Amazon Linux 2에서 rpcbind 서비스 중지 및 비활성화 방법 (0) | 2025.07.18 |
---|---|
AWS NAT Gateway와 NAT Instance 비교 (1) | 2025.06.24 |
AWS Graviton 프로세서 (0) | 2025.06.24 |
AWS Snowball와 AWS Snowmobile간의 주요한 차이점 (0) | 2025.06.19 |
AWS CLI 명령어 자동 완성을 활성화하고 쉘 환경에 적용하는 방법 (1) | 2025.06.13 |