새 인스턴스에 대한 인스턴스 메타데이터 옵션 구성
IMDSv2의 사용 요구
다음과 같이 시작 시 인스턴스에서 IMDSv2를 사용하도록 지정할 수 있는 다양한 방법이 있습니다.
시작 시 인스턴스 구성
인스턴스를 시작할 때 다음 필드를 구성하여 IMDSv2를 사용하도록 인스턴스를 구성할 수 있습니다.
-
Amazon EC2 콘솔: Metadata version(메타데이터 버전)을 V2 only (token required)(V2 전용(토큰 필요))로 설정합니다.
-
AWS CLI:
HttpTokens
를required
로 설정합니다.
IMDSv2를 사용하도록 지정하면 메타데이터 액세스 가능을 활성화됨(콘솔)로 설정하거나 HttpEndpoint
를 enabled
(AWS CLI)로 설정하여 인스턴스 메타데이터 서비스(IMDS) 엔드포인트도 활성화해야 합니다.
AMI 구성
새 AMI를 등록하거나 기존 AMI를 수정할 때 imds-support
파라미터를 v2.0
로 설정할 수 있습니다. 이 AMI에서 시작된 인스턴스의 Metadata version(메타데이터 버전)은 V2 only (token required)(V2 전용(토큰 필요))(콘솔)로 설정되거나 HttpTokens
는 required
(AWS CLI)로 설정됩니다. 이러한 설정을 사용하면 인스턴스에서 인스턴스 메타데이터를 요청할 때 IMDSv2를 사용하도록 지정됩니다.
imds-support
를 v2.0
으로 설정하면 이 AMI에서 시작된 인스턴스의 Metadata response hop limit(메타데이터 응답 홉 제한)(콘솔) 또는 http-put-response-hop-limit
(AWS CLI)도 2로 설정됩니다.
중요
AMI 소프트웨어가 IMDSv2를 지원하지 않는 한 이 파라미터를 사용하지 마세요. 값을 v2.0
으로 설정한 후에는 이를 실행 취소할 수 없습니다. AMI를 “재설정”하는 유일한 방법은 기본 스냅샷에 새 AMI를 생성하는 것입니다.
IMDSv2를 위해 새 AMI 구성
다음 register-image 예제는 EBS 루트 볼륨의 지정된 스냅샷을 디바이스 /dev/xvda
로 사용하여 AMI를 등록합니다. 이 AMI에서 시작된 인스턴스가 인스턴스 메타데이터를 요청할 때 IMDSv2를 사용하도록 imds-support
파라미터를 v2.0
으로 지정합니다.
aws ec2 register-image \ --name
my-image
\ --root-device-name /dev/xvda \ --block-device-mappings DeviceName=/dev/xvda,Ebs={SnapshotId=snap-0123456789example
} \ --imds-support v2.0
IMDSv2를 위해 기존 AMI 구성
다음 modify-image-attribute 예제는 IMDSv2에 대해서만 기존 AMI를 수정합니다. 이 AMI에서 시작된 인스턴스가 인스턴스 메타데이터를 요청할 때 IMDSv2를 사용하도록 imds-support
파라미터를 v2.0
으로 지정합니다.
aws ec2 modify-image-attribute \ --image-id
ami-0123456789example
\ --imds-support v2.0
IAM 정책 사용
사용자가 새 인스턴스에서 IMDSv2를 사용하도록 지정하지 않는 경우 새 인스턴스를 시작하지 못하게 하는 IAM 정책을 생성할 수 있습니다.
IAM 정책을 사용하여 모든 새 인스턴스에서 IMDSv2를 사용해야 하도록 설정
사용자가 인스턴스 메타데이터 요청 시 IMDSv2를 사용해야 하는 인스턴스만 시작할 수 있도록 하려면 IMDSv2를 사용해야 한다는 조건을 충족한 후에만 인스턴스를 시작할 수 있도록 지정할 수 있습니다. IAM 정책 예제는 인스턴스 메타데이터 작업 섹션을 참조하세요.
IPv4 및 IPv6 엔드포인트 구성
기본적으로 IPv6 엔드포인트는 비활성화되어 있습니다. IPv6 전용 서브넷으로 인스턴스를 시작하는 경우에도 마찬가지입니다. AWS CLI를 사용할 때 인스턴스 시작 시 IPv6 엔드포인트를 사용하도록 선택할 수 있습니다. Amazon EC2 콘솔에서는 이 옵션을 사용할 수 없습니다.
IMDS용 IPv6 엔드포인트는 Nitro 시스템에 구축된 인스턴스에서만 액세스할 수 있습니다.
IPv4 및 IPv6 엔드포인트 구성
다음 run-instances 예제는 IMDS에 대해 활성화된 IPv6 엔드포인트로 t3.large
인스턴스를 시작합니다. IPv6 엔드포인트를 활성화하려면 --metadata-options
파라미터에 대해 HttpProtocolIpv6=enabled
를 지정합니다. 또한 HttpProtocolIpv6
의 값을 지정할 때 HttpEndpoint
를 enabled
로 설정해야 합니다.
aws ec2 run-instances \ --image-id
ami-0abcdef1234567890
\ --instance-typet3.large
\ ... --metadata-options "HttpEndpoint=enabled,HttpProtocolIpv6=enabled"
인스턴스 메타데이터에 대한 액세스 비활성화
사용 중인 IMDS의 버전에 관계없이 인스턴스 메타데이터에 대한 액세스가 꺼져 있는지 확인할 수 있습니다. 나중에 액세스를 켤 수 있습니다. 자세한 내용은 인스턴스 메타데이터에 대한 액세스 활성화 섹션을 참조하세요.