새 인스턴스에 대한 인스턴스 메타데이터 옵션 구성 - Amazon Elastic Compute Cloud

새 인스턴스에 대한 인스턴스 메타데이터 옵션 구성

IMDSv2의 사용 요구

다음과 같이 시작 시 인스턴스에서 IMDSv2를 사용하도록 지정할 수 있는 다양한 방법이 있습니다.

시작 시 인스턴스 구성

인스턴스를 시작할 때 다음 필드를 구성하여 IMDSv2를 사용하도록 인스턴스를 구성할 수 있습니다.

  • Amazon EC2 콘솔: Metadata version(메타데이터 버전)을 V2 only (token required)(V2 전용(토큰 필요))로 설정합니다.

  • AWS CLI: HttpTokensrequired로 설정합니다.

IMDSv2를 사용하도록 지정하면 메타데이터 액세스 가능활성화됨(콘솔)로 설정하거나 HttpEndpointenabled(AWS CLI)로 설정하여 인스턴스 메타데이터 서비스(IMDS) 엔드포인트도 활성화해야 합니다.

New console
새 인스턴스에서 IMDSv2를 사용해야 하도록 설정하려면
  • Amazon EC2 콘솔에서 새 인스턴스를 시작할 때 고급 세부 정보를 확장하고 다음을 수행합니다.

    • 액세스 가능한 메타데이터(Metadata accessible)활성화(Enabled)를 선택합니다.

    • 메타데이터 버전(Metadata version)V2만 해당(토큰 필요)(V2 only (token required))를 선택합니다.

    자세한 내용은 고급 세부 정보 섹션을 참조하세요.

Old console
새 인스턴스에서 IMDSv2를 사용해야 하도록 설정하려면
  • Amazon EC2 콘솔에서 새 인스턴스를 시작할 때 인스턴스 세부 정보 구성 페이지에서 다음 옵션을 선택합니다.

    • 고급 세부 정보에서 액세스 가능한 메타데이터에 대해 활성화를 선택합니다.

    • 메타데이터 버전의 경우 V2(토큰 필요)를 선택합니다.

자세한 내용은 3단계: 인스턴스 세부 정보 구성 섹션을 참조하세요.

AWS CLI
새 인스턴스에서 IMDSv2를 사용해야 하도록 설정하려면

다음 run-instances 예에서는 c3.large--metadata-options로 설정하여 HttpTokens=required 인스턴스를 시작합니다. 또한 HttpTokens의 값을 지정할 때 HttpEndpointenabled로 설정해야 합니다. 메타데이터 검색 요청에 대해 보안 토큰 헤더가 required로 설정되어 있으므로 인스턴스 메타데이터를 요청할 때 인스턴스가 IMDSv2를 사용해야 합니다.

aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type c3.large \ ... --metadata-options "HttpEndpoint=enabled,HttpTokens=required"
AWS CloudFormation

AWS CloudFormation을 사용하여 인스턴스에 대한 메타데이터 옵션을 지정하려면 AWS CloudFormation 사용 설명서의 AWS::EC2::LaunchTemplate MetadataOptions 속성을 참조하세요.

AMI 구성

새 AMI를 등록하거나 기존 AMI를 수정할 때 imds-support 파라미터를 v2.0로 설정할 수 있습니다. 이 AMI에서 시작된 인스턴스의 Metadata version(메타데이터 버전)은 V2 only (token required)(V2 전용(토큰 필요))(콘솔)로 설정되거나 HttpTokensrequired(AWS CLI)로 설정됩니다. 이러한 설정을 사용하면 인스턴스에서 인스턴스 메타데이터를 요청할 때 IMDSv2를 사용하도록 지정됩니다.

imds-supportv2.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의 값을 지정할 때 HttpEndpointenabled로 설정해야 합니다.

aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type t3.large \ ... --metadata-options "HttpEndpoint=enabled,HttpProtocolIpv6=enabled"

인스턴스 메타데이터에 대한 액세스 비활성화

사용 중인 IMDS의 버전에 관계없이 인스턴스 메타데이터에 대한 액세스가 꺼져 있는지 확인할 수 있습니다. 나중에 액세스를 켤 수 있습니다. 자세한 내용은 인스턴스 메타데이터에 대한 액세스 활성화 섹션을 참조하세요.

New console
인스턴스 메타데이터에 대한 액세스를 끄려면
  • Advanced details(고급 세부 정보)에서 다음을 지정하여 Amazon EC2 콘솔에서 인스턴스를 시작합니다.

    • 액세스 가능한 메타데이터(Metadata accessible)비활성화(Disabled)를 선택합니다.

자세한 내용은 고급 세부 정보 섹션을 참조하세요.

Old console
인스턴스 메타데이터에 대한 액세스를 끄려면
  • Configure Instance Details(인스턴스 세부 정보 구성) 페이지에서 다음 옵션을 선택하여 Amazon EC2 콘솔에서 인스턴스를 시작합니다.

    • 고급 세부 정보에서 액세스 가능한 메타데이터에 대해 비활성화를 선택합니다.

자세한 내용은 3단계: 인스턴스 세부 정보 구성 섹션을 참조하세요.

AWS CLI
인스턴스 메타데이터에 대한 액세스를 끄려면

--metadata-optionsHttpEndpoint=disabled로 설정하여 인스턴스를 시작합니다.

aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type c3.large \ ... --metadata-options "HttpEndpoint=disabled"
AWS CloudFormation

AWS CloudFormation을 사용하여 인스턴스에 대한 메타데이터 옵션을 지정하려면 AWS CloudFormation 사용 설명서AWS::EC2::LaunchTemplate MetadataOptions 속성을 참조하세요.