인스턴스 메타데이터 서비스 옵션 구성
인스턴스 메타데이터 서비스(IMDS)는 모든 EC2 인스턴스에서 로컬로 실행됩니다. 인스턴스 메타데이터 옵션은 EC2 인스턴스에서 IMDS의 액세스 가능성과 동작을 제어하는 일련의 구성입니다.
각 인스턴스에서 다음 인스턴스 메타데이터 옵션을 구성할 수 있습니다.
- 인스턴스 메타데이터 서비스(IMDS):
enabled
|disabled
-
인스턴스에서 IMDS를 활성화 또는 비활성화할 수 있습니다. 비활성화하면 사용자 또는 다른 코드에서 인스턴스의 인스턴스 메타데이터에 액세스할 수 없습니다.
IMDS에는 인스턴스에 IPv4(
169.254.169.254
) 및 IPv6([fd00:ec2::254]
)이라는 두 개의 엔드포인트가 있습니다. IMDS를 활성화하면 IPv4 엔드포인트가 자동으로 활성화됩니다. IPv6 엔드포인트를 활성화하려면 명시적으로 활성화해야 합니다. - IMDS IPv6 엔드포인트:
enabled
|disabled
-
인스턴스에서 IPv6 IMDS 엔드포인트를 명시적으로 활성화할 수 있습니다. IPv6 엔드포인트가 활성화된 경우 IPv4 엔드포인트는 활성화된 상태로 유지됩니다. IPv6 엔드포인트는 AWSNitro 시스템에 구축된 인스턴스와 IPv6 지원 서브넷(이중 스택 또는 IPv6만 해당)에서만 지원됩니다.
- 메타데이터 버전:
IMDSv1 or IMDSv2 (token optional)
|IMDSv2 only (token required)
-
인스턴스 메타데이터를 요청할 때 IMDSv2를 직접 호출하려면 토큰이 필요합니다. IMDSv1 직접 호출에는 토큰이 필요하지 않습니다. IMDSv1 또는 IMDSv2 직접 호출(토큰은 선택 사항)을 허용하거나 IMDSv2 직접 호출만(토큰은 필수) 허용하도록 인스턴스를 구성할 수 있습니다.
- 메타데이터 응답 홉 제한:
1
–64
-
홉 제한은 PUT 응답에 허용된 네트워크 홉 수입니다. 홉 제한을 최소
1
및 최대64
로 설정할 수 있습니다. 컨테이너 환경에서는 홉 제한을2
로 설정하는 것이 좋습니다. 자세한 내용은 인스턴스 메타데이터 액세스 고려 사항 단원을 참조하십시오. - 인스턴스 메타데이터에서 태그에 대한 액세스:
enabled
|disabled
-
인스턴스 메타데이터에서 인스턴스의 태그에 대한 액세스를 활성화하거나 비활성화할 수 있습니다. 자세한 내용은 인스턴스 메타데이터를 사용하여 EC2 인스턴스의 태그 보기 단원을 참조하십시오.
인스턴스 메타데이터 옵션을 구성하는 위치
인스턴스 메타데이터 옵션은 다음과 같이 다양한 수준에서 구성할 수 있습니다.
-
계정 - 각 AWS 리전의 계정 수준에서 인스턴스 메타데이터 옵션의 기본값을 설정할 수 있습니다. 인스턴스가 시작되면 인스턴스 메타데이터 옵션이 계정 수준 값으로 자동 설정됩니다. 이러한 값은 시작할 때 변경할 수 있습니다. 계정 수준의 기본값은 기존 인스턴스에 영향을 주지 않습니다.
-
AMI - AMI를 등록하거나 수정할 때
imds-support
파라미터를v2.0
으로 설정할 수 있습니다. 이 AMI로 인스턴스를 시작하면 인스턴스 메타데이터 버전이 자동으로 IMDSv2로 설정되고 홉 제한은 2로 설정됩니다. -
인스턴스 - 시작할 때 인스턴스의 모든 인스턴스 메타데이터 옵션을 변경하여 기본 설정을 재정의할 수 있습니다. 실행 중이거나 중지된 인스턴스에서 시작 후 인스턴스 메타데이터 옵션을 변경할 수도 있습니다. 단, IAM 또는 SCP 정책에 따라 변경이 제한될 수 있습니다.
자세한 내용은 새 인스턴스에 대한 인스턴스 메타데이터 옵션 구성 및 기존 인스턴스에 대한 인스턴스 메타데이터 옵션 수정 단원을 참조하세요.
인스턴스 메타데이터 옵션의 우선순위
각 인스턴스 메타데이터 옵션의 값은 계층적 우선순위에 따라 인스턴스를 시작할 때 결정됩니다. 계층 구조는 다음과 같습니다(맨 위의 우선순위가 가장 높음).
-
우선순위 1: 시작 시 인스턴스 구성 - 시작 템플릿 또는 인스턴스 구성에서 값을 지정할 수 있습니다. 여기에 지정된 모든 값은 계정 수준 또는 AMI에서 지정된 값을 재정의합니다.
-
우선순위 2: 계정 설정 - 인스턴스 시작 시 값을 지정하지 않은 경우 계정 수준 설정(각 AWS 리전에 대해 설정됨)에 따라 값이 결정됩니다. 계정 수준 설정은 각 메타데이터 옵션의 값을 포함하거나 기본 설정이 없음을 나타냅니다.
-
우선순위 3: AMI 구성 - 인스턴스 시작 시 또는 계정 수준에서 값이 지정되지 않은 경우 AMI 구성에 따라 값이 결정됩니다. 이것은
HttpTokens
및HttpPutResponseHopLimit
에만 적용됩니다.
각 메타데이터 옵션은 개별적으로 평가됩니다. 인스턴스는 직접 인스턴스 구성, 계정 수준 기본값 및 AMI의 구성을 혼합하여 구성할 수 있습니다.
IAM 또는 SCP 정책에 의해 변경이 제한되지 않는 한, 실행 중이거나 중지된 인스턴스에서 시작 후 모든 메타데이터 옵션의 값을 변경할 수 있습니다.
메타데이터 옵션 값 결정 - 예 1
이 예에서는 계정 수준에서 HttpPutResponseHopLimit
가 1
로 설정된 리전에서 EC2 인스턴스가 시작됩니다. 지정된 AMI에서 ImdsSupport
가 v2.0
으로 설정되었습니다. 시작할 때 인스턴스에서 직접 메타데이터 옵션이 지정되지 않습니다. 인스턴스는 다음 메타데이터 옵션으로 시작됩니다.
"MetadataOptions": {
...
"HttpTokens": "required",
"HttpPutResponseHopLimit": 1,
...
이러한 값은 다음과 같이 결정됩니다.
-
시작 시 지정된 메타데이터 옵션 없음: 인스턴스를 시작하는 동안 인스턴스 시작 파라미터나 시작 템플릿에 메타데이터 옵션의 특정 값이 제공되지 않습니다.
-
계정 설정이 다음 우선순위: 시작 시 지정된 특정 값이 없는 경우 리전 내 계정 수준의 설정이 우선됩니다. 즉, 계정 수준에서 구성된 기본값이 적용됩니다. 이 경우에는
HttpPutResponseHopLimit
가1
로 설정되었습니다. -
AMI 설정이 마지막 우선순위: 시작 시 또는
HttpTokens
에 대한 계정 수준(인스턴스 메타데이터 버전)에서 특정 값이 지정되지 않은 경우 AMI 설정이 적용됩니다. 이 경우 AMI 설정ImdsSupport: v2.0
은HttpTokens
가required
로 설정되었음을 확인했습니다. AMI 설정ImdsSupport: v2.0
은HttpPutResponseHopLimit: 2
를 설정하도록 설계되었지만 우선순위가 더 높은 계정 수준 설정HttpPutResponseHopLimit: 1
로 재정의되었습니다.
메타데이터 옵션 값 결정 - 예 2
이 예에서 EC2 인스턴스는 이전 예 1과 동일한 설정으로 시작되지만 시작 시 인스턴스에서 HttpTokens
가 optional
로 직접 설정되어 있습니다. 인스턴스는 다음 메타데이터 옵션으로 시작됩니다.
"MetadataOptions": {
...
"HttpTokens": "optional",
"HttpPutResponseHopLimit": 1,
...
HttpPutResponseHopLimit
의 값은 예 1과 같은 방식으로 결정됩니다. 하지만 HttpTokens
의 값은 다음과 같이 결정됩니다. 시작할 때 인스턴스에서 구성된 메타데이터 옵션이 우선 적용됩니다. AMI가 ImdsSupport: v2.0
(즉, HttpTokens
가 required
로 설정됨)으로 구성되어 있더라도 시작 시 인스턴스에 지정된 값(HttpTokens
가 optional
로 설정됨)이 우선됩니다.
인스턴스 메타데이터 버전 설정
인스턴스 시작 시 인스턴스 메타데이터 버전 값은 IMDSv1 or IMDSv2
(token optional)
또는 IMDSv2 only (token required)
입니다.
인스턴스를 시작할 때 메타데이터 버전의 값을 수동으로 지정하거나 기본값을 사용할 수 있습니다. 값을 수동으로 지정하면 해당 값이 기본값을 재정의합니다. 값을 수동으로 지정하지 않는 경우 다음 테이블에 설명된 대로 기본 설정의 조합에 따라 값이 결정됩니다.
이 테이블에서는 시작 시 인스턴스의 메타데이터 버전(4번째 열의 결과 인스턴스 구성으로 표시됨)이 다양한 구성 수준의 설정에 따라 어떻게 결정되는지를 보여줍니다. 우선순위는 왼쪽에서 오른쪽 순서이며, 다음과 같이 첫 번째 열이 우선순위가 가장 높습니다.
-
열 1: 시작 파라미터 - 시작 시 수동으로 지정하는 인스턴스의 설정을 나타냅니다.
-
열 2: 계정 수준 기본값 - 계정 설정을 나타냅니다.
-
열 3: AMI 기본값 - AMI의 설정을 나타냅니다.
시작 파라미터 | 계정 수준 기본값 | AMI 기본값 | 결과 인스턴스 구성 |
---|---|---|---|
V2 전용(토큰 필요) | 기본 설정 없음 | V2 전용 | V2 전용 |
V2 전용(토큰 필요) | V2 전용 | V2 전용 | V2 전용 |
V2 전용(토큰 필요) | V1 또는 V2 | V2 전용 | V2 전용 |
V1 또는 V2(토큰 선택 사항) | 기본 설정 없음 | V2 전용 | V1 또는 V2 |
V1 또는 V2(토큰 선택 사항) | V2 전용 | V2 전용 | V1 또는 V2 |
V1 또는 V2(토큰 선택 사항) | V1 또는 V2 | V2 전용 | V1 또는 V2 |
설정되지 않음 | 기본 설정 없음 | V2 전용 | V2 전용 |
설정되지 않음 | V2 전용 | V2 전용 | V2 전용 |
설정되지 않음 | V1 또는 V2 | V2 전용 | V1 또는 V2 |
V2 전용(토큰 필요) | 기본 설정 없음 | null | V2 전용 |
V2 전용(토큰 필요) | V2 전용 | null | V2 전용 |
V2 전용(토큰 필요) | V1 또는 V2 | null | V2 전용 |
V1 또는 V2(토큰 선택 사항) | 기본 설정 없음 | null | V1 또는 V2 |
V1 또는 V2(토큰 선택 사항) | V2 전용 | null | V1 또는 V2 |
V1 또는 V2(토큰 선택 사항) | V1 또는 V2 | null | V1 또는 V2 |
설정되지 않음 | 기본 설정 없음 | null | V1 또는 V2 |
설정되지 않음 | V2 전용 | null | V2 전용 |
설정되지 않음 | V1 또는 V2 | null | V1 또는 V2 |
IAM 조건 키를 사용하여 인스턴스 메타데이터 옵션 제한
다음과 같이 IAM 정책 또는 SCP에서 IAM 조건 키를 사용할 수 있습니다.
-
IMDSv2를 사용해야 하도록 구성된 경우에만 인스턴스를 시작하도록 허용
-
허용된 홉 수 제한
-
인스턴스 메타데이터에 대한 액세스 비활성화
참고
작업을 조심스럽게 진행해야 하며 무엇이든 변경하기 전에 세심하게 테스트해야 합니다. 다음에 유의하세요.
-
IMDSv2를 사용해야 하도록 설정하면 인스턴스 메타데이터 액세스에 IMDSv1를 사용하는 애플리케이션이나 에이전트는 중단됩니다.
-
인스턴스 메타데이터에 대한 모든 액세스를 끄면 인스턴스 메타데이터 액세스를 이용하여 작동하는 애플리케이션이나 에이전트는 중단됩니다.
-
IMDSv2의 경우 토큰을 검색할 때
/latest/api/token
을 사용해야 합니다. -
(Windows만 해당) PowerShell 버전이 4.0 이전 버전인 경우 IMDSv2를 사용하려면 Windows Management Framework 4.0으로 업데이트
해야 합니다.