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 등이 포함됩니다.
3. IMDSv1 vs IMDSv2
AWS는 보안 강화를 위해 **IMDSv2(Instance Metadata Service Version 2)**를 도입했습니다. IMDSv2는 토큰 기반 인증 방식을 사용하여 보안을 강화합니다. 반면, IMDSv1은 단순한 curl 요청으로 메타데이터를 조회할 수 있어 보안상 취약점이 있을 수 있습니다.
항목IMDSv1IMDSv2
접근 방식 | curl 요청만으로 조회 가능 | 토큰 기반 인증 필요 |
보안 수준 | 취약 (서버 사이드 요청 위조 공격 가능) | 보안 강화 (토큰 기반 접근) |
사용 권장 여부 | (비추천) | (권장) |
IMDSv2 사용 방법
IMDSv2에서는 토큰을 먼저 생성한 후, 해당 토큰을 사용하여 메타데이터를 조회해야 합니다.
- 토큰 생성
-
sh복사편집TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
- 토큰을 사용하여 IAM 역할 정보 조회
-
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를 비활성화하려면, 아래 명령어를 사용하여 비활성화할 수 있습니다.
그러나 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 사용을 적극적으로 고려하세요!
'AWS' 카테고리의 다른 글
AWS VPC 생성 및 서브넷 설정 (0) | 2025.03.01 |
---|---|
Windows Server에서 NTP 설정 확인하는 방법 (0) | 2025.02.28 |
ec2의 인스턴스에 S3 접근을 위한 IAM 역할 설정하기 (0) | 2025.02.27 |