Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 인스턴스 메타데이터 서비스(IMDS)를 설정하고 싶습니다.
간략한 설명
모든 AWS 리전에서 AWS 계정의 새 인스턴스에 대한 기본 IMDS 기능을 설정할 수 있습니다. 기본적으로 최신 인스턴스 유형은 인스턴스 메타데이터 서비스 버전 2(IMDSv2)를 사용합니다. 이러한 인스턴스 유형에서 인스턴스 메타데이터 서비스 버전 1(IMDSv1)을 사용하려면 인스턴스에서 IMDSv1을 수동으로 활성화해야 합니다. IMDSv1을 반드시 사용해야 하는 경우가 아니라면 보안을 위해 IMDSv2를 사용하는 것이 가장 좋습니다.
중요: 인스턴스에 IMDSv2를 구성하면 IMDSv1이 더 이상 작동하지 않고 IMDSv1을 사용하는 애플리케이션이 제대로 작동하지 않을 수 있습니다. IMDSv2를 적용하기 전에 Amazon EC2 메타데이터를 사용하는 애플리케이션을 IMDSv2를 지원하는 버전으로 업그레이드하십시오. IMDSv1과 IMDSv2의 차이점에 대한 자세한 내용은 인스턴스 메타데이터 서비스를 사용하여 인스턴스 메타데이터에 액세스를 참조하십시오.
기본적으로 Amazon EC2는 인스턴스 메타데이터의 인스턴스 태그에 대한 액세스를 제공하지 않습니다. 인스턴스 시작 시 또는 실행 중이거나 중지된 인스턴스에서 시작 후에 액세스를 허용해야 합니다.
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
다음 방법을 조합하여 인스턴스 메타데이터를 구성할 수 있습니다. 그러나 인스턴스 시작 시 메타데이터 옵션의 계층적 우선 순위를 설정합니다.
AMI 수준에서 인스턴스 메타데이터 구성
IMDSv2를 사용하도록 기존 또는 새 Amazon Machine Image(AMI)를 구성할 수 있습니다. 구성된 AMI로 인스턴스를 시작하면 Amazon EC2가 자동으로 인스턴스 메타데이터 버전을 IMDSv2로 설정하고 홉 제한을 2로 설정합니다.
중요: AMI 소프트웨어가 IMDSv2를 지원하는지 확인하십시오. imds-support 값을 v2.0으로 설정한 후에는 되돌릴 수 없습니다. AMI를 재설정하는 유일한 방법은 기본 스냅샷을 사용하여 새 AMI를 생성하는 것입니다.
IMDSv2를 사용하도록 새 AMI를 구성하려면 다음 register-image AWS CLI 명령을 실행합니다.
aws ec2 register-image \
--name my-image \
--root-device-name /dev/xvda \
--block-device-mappings DeviceName=/dev/xvda,Ebs={SnapshotId=snap-0123456789example} \
--architecture x86_64 \
--imds-support v2.0
참고: my-image를 AMI 이름으로, /dev/xvda를 루트 볼륨 디바이스 이름으로, snap-0123456789example을 스냅샷 ID로, x86_64를 아키텍처로 바꾸십시오.
IMDSv2를 사용하도록 기존 AMI를 구성하려면 다음 modify-image-attribute 명령을 실행합니다.
aws ec2 modify-image-attribute \
--image-id ami-0123456789example \
--imds-support v2.0
참고: ami-0123456789example을 기존 AMI ID로 바꾸십시오.
시작 템플릿의 메타데이터에 태그 허용
AMI의 태그에 대한 액세스를 직접 구성할 수는 없습니다. Amazon EC2 시작 템플릿을 생성해야 합니다. 고급 세부 정보에서 메타데이터에서 태그 허용을 **-**로 설정합니다. 이 시작 템플릿에서 시작한 인스턴스는 인스턴스 메타데이터의 모든 인스턴스 태그에 대한 액세스를 허용합니다.
계정 수준에서 인스턴스 메타데이터 구성
계정의 모든 인스턴스에 대해 IMDSv2를 설정합니다. 또는 IMDSv1을 허용하려면 메타데이터 버전에서 **V1 및 V2(토큰 선택 사항)**를 선택합니다. 계정 수준에서 인스턴스 메타데이터의 태그에 대한 액세스를 허용하려면 IMDS 기본값에서 메타데이터의 태그에 대한 액세스를 활성화됨으로 설정하십시오.
중요: 계정의 각 리전에 대해 인스턴스 메타데이터를 한 번씩 구성해야 합니다.
인스턴스 수준에서 인스턴스 메타데이터 구성
참고: AWS Identity and Access Management(IAM) 정책 또는 서비스 제어 정책(SCP)은 인스턴스 설정에 적용할 수 있는 변경을 제한할 수 있습니다.
새 인스턴스의 메타데이터에 있는 IMDS 및 태그에 대한 액세스를 구성하려면 인스턴스를 시작할 때 고급 세부 정보를 확장하십시오. 그 후 다음 설정을 구성합니다.
- **메타데이터 액세스 가능
**에서 활성화됨을 선택합니다.
- 메타데이터 버전에서 V2만(토큰 필수) 또는 **V1 및 V2(토큰 선택 사항)**를 선택합니다.
참고: Amazon Elastic Container Service(Amazon ECS) 또는 Amazon Elastic Kubernetes Service(Amazon EKS)와 같은 컨테이너 환경을 사용하는 경우 메타데이터 응답 홉 제한에서 2를 선택합니다.
- 메타데이터의 태그에 대한 액세스에서 활성화됨을 선택합니다.
기존 인스턴스를 수정하려면 설정을 수정합니다. IMDSv1 또는 IMDSv2를 사용하려면 IMDSv2에 대해 선택 사항을 선택하십시오. IMDSv2를 적용하려면 필수를 선택합니다. 그런 다음, 인스턴스 설정에서 인스턴스 메타데이터의 태그 허용을 선택합니다.
관련 정보
Amazon EC2 인스턴스 메타데이터 서비스 IMDSv2 기본 설정
IMDSv2의 이점을 최대한 활용하고 AWS 인프라 전체에서 IMDSv1 비활성화