aws 금융 클라우드 진단홈카탈로그진단 항목 전체ap-northeast-2 · 3820-1174-9265
클라우드 관리체계 보안 취약점 평가기준 (퍼블릭 클라우드) / 5. 운영 관리 / 5.3 정보처리시스템 보호대책
PISM-064컴퓨팅 인스턴스에서 IMDSv1 비활성화 여부
위험도 5기술적 보안EC2평가 구분: 스크립트
IMDSv1 은 별도의 인증을 요구하지 않아 SSRF(Server-Side Request Forgery)를 통해 자격증명 탈취 위협 등이 존재하므로 IMDSv2 활성화 여부를 점검합니다.
1. 점검 대상 확인
2. CLI 진단
3. 양호/취약 판정
4. 조치 · 재확인
방법 1AWS Management Console 경로
EC2 → 인스턴스 → 대상 인스턴스 ID 클릭 → 작업 → 인스턴스 메타데이터 옵션 수정 → IMDSv2 옵션 확인
콘솔은 화면이 자주 바뀝니다. 실제 점검에서는 아래 CLI(방법 2) 로 증적을 남기는 편이 재현성이 높습니다.
방법 2AWS CLI 진단
아래 명령을 눌러 실행하거나, 직접 입력해 보세요. 응답은 실제 AWS CLI 출력 형식을 따릅니다.
$ aws sts get-caller-identity
{
"UserId": "AIDA4XQ7N2VZK3RJTPLWE",
"Account": "382011749265",
"Arn": "arn:aws:iam::382011749265:user/audit-readonly"
}
진단 계정으로 로그인되었습니다. 아래 명령을 실행해 점검을 시작하세요.
판정이 환경은 양호합니까, 취약합니까?
평가기준의 판단 근거는 명령 출력입니다. 먼저 위에서 명령을 실행해 출력을 확인하세요.
🛠️ 조치 방법
IMDSv2 를 required 로 바꾸고 홉 제한을 1 로 낮춥니다. 재시작 없이 적용되지만, 구형 SDK 나 직접 curl 로 메타데이터를 읽는 스크립트는 깨집니다 — 먼저 CloudWatch 지표로 IMDSv1 사용량을 확인하세요.
# 0) 먼저 IMDSv1 을 실제로 쓰고 있는지 확인 (끊기면 서비스 장애)
$ aws cloudwatch get-metric-statistics --namespace AWS/EC2 \
--metric-name MetadataNoToken \
--dimensions Name=InstanceId,Value=i-0a3f72be91c4d5e80 \
--start-time 2026-09-07T00:00:00Z --end-time 2026-09-14T00:00:00Z \
--period 86400 --statistics Sum
# → Sum 이 0 이면 안전하게 전환 가능
# 1) IMDSv2 강제 + 홉 제한 1
$ aws ec2 modify-instance-metadata-options \
--instance-id i-0a3f72be91c4d5e80 \
--http-tokens required \
--http-put-response-hop-limit 1 \
--http-endpoint enabled
$ aws ec2 modify-instance-metadata-options \
--instance-id i-0c81d5fa27e93b146 \
--http-tokens required --http-put-response-hop-limit 1
# 2) 신규 인스턴스 기본값도 IMDSv2 로 (리전 단위)
$ aws ec2 modify-instance-metadata-defaults \
--http-tokens required --http-put-response-hop-limit 1
📐 IaC 로 고정하기
콘솔에서 한 번 고쳐도 다음 배포에서 되돌아갑니다. 코드로 고정해야 재발하지 않습니다.
resource "aws_instance" "core_app" {
metadata_options {
http_endpoint = "enabled"
http_tokens = "required" # IMDSv2 강제
http_put_response_hop_limit = 1 # 컨테이너에서 접근 차단
instance_metadata_tags = "disabled"
}
}
# 시작 템플릿에도 반드시 — ASG 가 만드는 인스턴스가 새는 경로다
resource "aws_launch_template" "core_app" {
metadata_options {
http_tokens = "required"
http_put_response_hop_limit = 1
}
}
# SCP 로 optional 인스턴스 생성 자체를 금지
# Deny ec2:RunInstances when ec2:MetadataHttpTokens != "required"
주의 — 인스턴스만 고치고 시작 템플릿(Launch Template)·AMI 를 놓치면 오토스케일링이 만드는 새 인스턴스가 다시 optional 로 태어납니다. 이 항목의 재발률이 높은 이유입니다. 또한 ECS on EC2 나 Kubernetes 파드는 홉이 하나 더 필요해 hop-limit=1 로 바꾸면 태스크 역할이 깨질 수 있습니다 — 컨테이너 환경은 홉 2 를 유지하되 파드 수준 자격증명(IRSA·태스크 역할) 로 분리하는 것이 정석입니다.
📋 평가항목 정보
평가항목 ID
PISM-064
구분
기술적 보안
통제분야
5. 운영 관리
통제구분(대)
5.3 정보처리시스템 보호대책
평가항목
컴퓨팅 인스턴스에서 IMDSv1 비활성화 여부
위험도
5
평가 구분 (AWS)
스크립트
상세설명
IMDSv1 은 별도의 인증을 요구하지 않아 SSRF(Server-Side Request Forgery)를 통해 자격증명 탈취 위협 등이 존재하므로 IMDSv2 활성화 여부를 점검합니다.
📎 확인 자료 (증적)
metadata-options.http-tokens=optional 필터 조회 결과 (대상 인스턴스 목록)
전체 인스턴스의 HttpTokens·HopLimit 값
CloudWatch MetadataNoToken 지표 (IMDSv1 실사용 여부)
시작 템플릿·AMI 의 메타데이터 옵션 설정
조치 후 토큰 없는 호출이 401 로 거부되는 검증 결과
평가에서는 화면 캡처보다 CLI 출력이 강한 증적입니다. 명령·실행시각·계정 ARN 이 함께 남기 때문입니다. 위 진단 탭의 출력을 그대로 보고서에 붙이면 됩니다.
🏦 금융 관점
IMDSv1 은 애플리케이션 취약점 하나를 계정 장악으로 증폭시키는 경로입니다. 금융권 웹 애플리케이션에서 SSRF 는 드물지 않고(이미지 프록시·웹훅·PDF 렌더러 등), 그 순간 인스턴스 역할의 모든 권한이 공격자에게 넘어갑니다. 전자금융감독규정의 접근통제·권한 최소화 요구가 애플리케이션 계층 하나로 무력화되는 것을 막는 항목이라, 위험도 5 가 부여됩니다.
「클라우드 관리체계 보안 취약점 평가기준(퍼블릭 클라우드)」의 평가항목을 교육용으로 재구성한 시뮬레이터입니다.
계정 ID·ARN·리소스 ID 는 형식만 실제와 같게 만든 가상 값이며, 어떤 AWS 환경에도 접속하지 않습니다.
실제 평가에서는 기관의 최신 평가기준 원문과 AWS 공식 문서를 따르십시오.