본문 바로가기
AWS

AWS EC2의 IMDS(Instance Metadata Service)란?

by 열정루프 2025. 2. 27.
728x90

AWS EC2 인스턴스를 사용하다 보면, **EC2 메타데이터 서비스(IMDS)**라는 용어를 자주 접하게 됩니다. IMDS는 EC2 인스턴스 내에서 실행 중인 애플리케이션이 환경 정보를 안전하게 조회할 수 있도록 도와주는 서비스입니다.
이번 포스트에서는 IMDS가 무엇인지, 어떻게 사용되는지, 그리고 보안 강화를 위한 설정 방법까지 자세히 설명하겠습니다.

1. IMDS란 무엇인가?

**IMDS(Instance Metadata Service)**는 AWS EC2 인스턴스에서 자신의 환경 정보를 조회할 수 있도록 제공하는 서비스입니다. EC2 인스턴스 내부에서만 접근할 수 있는 **특수한 링크-로컬 IP 주소 169.254.169.254**를 통해 메타데이터에 접근할 수 있습니다.
IMDS를 사용하면 인스턴스 정보, IAM 역할 자격 증명, 네트워크 정보 등 다양한 정보를 동적으로 조회할 수 있습니다.

 

2. IMDS를 통해 얻을 수 있는 정보들

IMDS를 통해 EC2 인스턴스의 다양한 환경 정보를 조회할 수 있습니다.

(1) EC2 인스턴스 정보

  • 인스턴스 ID
    curl http://169.254.169.254/latest/meta-data/instance-id
  • 인스턴스 타입
    curl http://169.254.169.254/latest/meta-data/instance-type
  • 프라이빗 IP 주소
    curl http://169.254.169.254/latest/meta-data/local-ipv4
  • 퍼블릭 IP 주소
    curl http://169.254.169.254/latest/meta-data/public-ipv4
  • 리전 정보
    curl http://169.254.169.254/latest/meta-data/placement/region

(2) IAM 역할 자격 증명

EC2에 IAM 역할이 할당되면, 해당 역할의 임시 자격 증명을 IMDS를 통해 조회할 수 있습니다.
자격 증명 정보에는 Access Key, Secret Key, Session Token 등이 포함됩니다.

sh
복사편집
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/{IAM_ROLE_NAME}

3. IMDSv1 vs IMDSv2

AWS는 보안 강화를 위해 **IMDSv2(Instance Metadata Service Version 2)**를 도입했습니다. IMDSv2는 토큰 기반 인증 방식을 사용하여 보안을 강화합니다. 반면, IMDSv1은 단순한 curl 요청으로 메타데이터를 조회할 수 있어 보안상 취약점이 있을 수 있습니다.

항목IMDSv1IMDSv2

접근 방식 curl 요청만으로 조회 가능 토큰 기반 인증 필요
보안 수준 취약 (서버 사이드 요청 위조 공격 가능) 보안 강화 (토큰 기반 접근)
사용 권장 여부  (비추천)  (권장)

IMDSv2 사용 방법

IMDSv2에서는 토큰을 먼저 생성한 후, 해당 토큰을 사용하여 메타데이터를 조회해야 합니다.

  1. 토큰 생성
  2. sh
    복사편집
    TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
  3. 토큰을 사용하여 IAM 역할 정보 조회
  4. sh
    복사편집
    curl -H "X-aws-ec2-metadata-token: $TOKEN" \ "http://169.254.169.254/latest/meta-data/iam/security-credentials/{IAM_ROLE_NAME}"

IMDSv2를 사용하면 보안이 강화되므로 AWS에서는 IMDSv2를 기본적으로 사용하는 것을 권장합니다.

4. IMDS의 중요성

IMDS는 AWS EC2 인스턴스에서 실행 중인 애플리케이션이 자신의 자격 증명 정보나 환경 정보를 안전하게 조회할 수 있도록 도와줍니다.

자동화된 자격 증명 관리

IMDS를 활용하면, EC2 인스턴스에 IAM 역할을 할당하여 Access Key나 Secret Key 없이도 AWS 서비스에 접근할 수 있습니다.
이 방식은 애플리케이션에서 자격 증명을 하드코딩할 필요가 없어 보안상 안전하며, AWS SDK나 CLI가 자동으로 자격 증명을 갱신하고 적용해줍니다.

보안 강화

AWS에서는 IMDSv1이 보안상 취약할 수 있기 때문에 IMDSv2 사용을 권장합니다. IMDSv2는 토큰 기반 인증 방식을 사용하여, 서버 사이드 요청 위조(SSRF) 공격과 같은 보안 취약점을 방지할 수 있습니다.

5. IMDS 사용 시 주의사항

IMDS는 AWS 환경에서만 사용 가능합니다. 따라서 EC2 인스턴스가 외부에서 메타데이터에 접근하려는 시도는 차단됩니다.
또한, IMDS를 비활성화하면 EC2에서 IAM 역할 자격 증명에 접근할 수 없게 되므로 주의해야 합니다.

IMDS 비활성화 방법

EC2 인스턴스에서 IMDS를 비활성화하려면, 아래 명령어를 사용하여 비활성화할 수 있습니다.

sh
복사편집
sudo ec2-metadata --disable-metadata-service

그러나 IMDS를 비활성화하면 EC2와 AWS 서비스 간의 자동화된 연동이 불가능하므로 권장하지 않습니다.

6. 결론

  • **IMDS(Instance Metadata Service)**는 EC2 인스턴스에서 실행 중인 애플리케이션이 자신의 IAM 역할 자격 증명, 네트워크, 인스턴스 정보 등을 조회할 수 있도록 하는 서비스입니다.
  • IMDSv2는 보안 강화를 위해 토큰 기반 인증 방식을 사용하며, AWS에서는 IMDSv2 사용을 권장합니다.
  • EC2에 IAM 역할을 할당하면, Access Key나 Secret Key 없이도 AWS 서비스에 안전하게 접근할 수 있습니다.
  • IMDS를 사용하면 AWS SDK와 CLI가 자동으로 자격 증명을 갱신하고 적용하므로 보안과 편의성을 동시에 누릴 수 있습니다.

EC2 인스턴스를 활용할 때 IMDS를 통해 안전하고 자동화된 환경을 구축하는 것이 중요합니다. AWS를 안전하게 활용하기 위해 IMDSv2 사용을 적극적으로 고려하세요!

728x90