기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Lightsail에서 인스턴스 메타데이터 서비스 (IMDS) 액세스 및 구성
다음 방법 중 하나를 사용하여 실행 중인 인스턴스에서 인스턴스 메타데이터에 액세스할 수 있습니다.
-
인스턴스 메타데이터 서비스 버전 1(IMDSv1) – 요청/응답 방법
-
인스턴스 메타데이터 서비스 버전 2(IMDSv2) – 세션 지향 방법
중요
Lightsail의 모든 인스턴스 블루프린트가 IMDSv2를 지원하는 것은 아닙니다. IMDSv1을 사용하는 인스턴스 메타데이터 서비스에 대한 호출 수를 추적하려면
MetadataNoToken
인스턴스 지표를 사용하세요. 자세한 내용은 인스턴스 지표 보기를 참조하세요.
기본적으로 IMDSv1 또는 IMDSv2를 사용하거나 둘 다 사용할 수 있습니다. 인스턴스 메타데이터 서비스는 IMDSv2에 고유한 PUT
또는 GET
헤더가 주어진 요청에 있는지 여부에 따라 IMDSv1과 IMDSv2 요청을 구별합니다. 자세한 내용은 EC2 인스턴스 메타데이터 서비스의 향상된 기능을 통해 개방형 방화벽, 역방향 프록시 및 SSRF 취약성에 대한 심층적인 방어 기능 추가
로컬 코드 또는 사용자가 IMDSv2를 사용해야 하도록 각 인스턴스에서 인스턴스 메타데이터 서비스를 구성할 수 있습니다. IMDSv2를 사용해야 하도록 지정하면 IMDSv1는 더 이상 작동하지 않습니다. 자세한 내용은 Amazon EC2 - Linux 인스턴스용 사용 설명서의 인스턴스 메타데이터 옵션 구성을 참조하세요.
인스턴스 메타데이터를 검색하려면 Amazon EC2 - Linux 인스턴스용 사용 설명서의 인스턴스 메타데이터 검색을 참조하세요.
참고
이 섹션의 예에서는 인스턴스 메타데이터 서비스의 IPv4 주소(169.254.169.254
)를 사용합니다. IPv6 주소를 통해 인스턴스의 인스턴스 메타데이터를 검색하는 경우 대신 IPv6 주소(fd00:ec2::254
)를 활성화하고 사용해야 합니다. 인스턴스 메타데이터 서비스의 IPv6 주소는 IMDSv2 명령과 호환됩니다.
인스턴스 메타데이터 서비스 버전 2 작동 방식
IMDSv2는 세션 지향 요청을 사용합니다. 세션 지향 요청을 사용하여 세션 기간을 정의하는 세션 토큰을 생성합니다. 세션 기간은 최소 1초에서 최대 6시간일 수 있습니다. 지정된 기간 중에는 후속 요청에 동일한 세션 토큰을 사용할 수 있습니다. 지정된 기간이 만료된 후에는 향후 요청에 사용할 새로운 세션 토큰을 생성할 수 있습니다.
중요
아마존 리눅스 2023에서 시작된 Lightsail 인스턴스는 기본적으로 IMDSv2가 구성되어 있습니다.
다음 예제는 Linux 및 PowerShell 셸 스크립트와 IMDSv2를 사용하여 최상위 인스턴스 메타데이터 항목을 검색합니다. 이 예제는 다음을 수행합니다.
-
PUT
요청을 사용하여 6시간(21,600초) 동안 지속되는 세션 토큰 생성 -
TOKEN
(Linux의 경우) 또는token
(Windows의 경우)이라는 변수에 세션 토큰 헤더 저장 -
토큰을 사용하여 최상위 메타데이터 항목 요청
다음 명령을 실행하여 시작합니다.
-
Linux의 경우:
-
먼저 다음 명령을 사용하여 토큰을 생성합니다.
[ec2-user ~]$
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` -
그런 다음 해당 토큰을 사용하여 다음 명령으로 최상위 메타데이터 항목을 생성합니다.
[ec2-user ~]$
curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/
-
-
Windows의 경우:
-
먼저 다음 명령을 사용하여 토큰을 생성합니다.
PS C:\>
[string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/api/token
-
그런 다음 해당 토큰을 사용하여 다음 명령으로 최상위 메타데이터 항목을 생성합니다.
PS C:\>
Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/
-
토큰을 생성한 후에는 만료될 때까지 토큰을 재사용할 수 있습니다. 다음 예제에서 각 명령은 인스턴스를 시작하는 데 사용되는 블루프린트(Amazon Machine Image(AMI))의 ID를 가져옵니다. 이전 예제의 토큰이 재사용됩니다. 토큰은 $TOKEN
(Linux의 경우) 또는 $token
(Windows의 경우)에 저장됩니다.
-
Linux의 경우:
[ec2-user ~]$
curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/ami-id -
Windows의 경우:
PS C:\>
Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} ` -Method GET -uri http://169.254.169.254/latest/meta-data/ami-id
IMDSv2를 사용하여 인스턴스 메타데이터를 요청하는 경우 요청에는 다음이 포함되어야 합니다.
-
PUT
요청 -PUT
요청을 사용하여 인스턴스 메타데이터 서비스의 세션을 초기화합니다.PUT
요청은 후속GET
요청에 포함되어야 하는 토큰을 인스턴스 메타데이터 서비스에 반환합니다. 토큰은 IMDSv2 사용 시 메타데이터에 액세스하는 데 필요합니다. -
토큰 - 인스턴스 메타데이터 서비스에 대한 모든
GET
요청에 토큰을 포함합니다. 토큰 사용이required
로 설정되면 유효한 토큰이 없거나 만료된 토큰이 있는 요청은401 - Unauthorized
HTTP 오류 코드를 수신합니다. 토큰 사용 요구 사항 변경에 대한 자세한 내용은 명령 참조를 참조하십시오 update-instance-metadata-options.AWS CLI-
토큰은 인스턴스에 특정한 키입니다. 토큰은 다른 인스턴스에서 유효하지 않으며 해당 토큰이 생성된 인스턴스 외부에서 사용하려고 시도하면 거부됩니다.
-
PUT
요청에는 토큰의 TTL(Time to Live)을 초 단위로 지정하는 헤더가 포함되어야 합니다. TTL은 최대 6시간(21,600초)까지 지정할 수 있습니다. 토큰은 논리 세션을 나타냅니다. TTL은 토큰이 유효한 시간 길이를 지정하며 따라서 세션 기간을 지정합니다. -
토큰이 만료된 후 인스턴스 메타데이터에 계속 액세스하려면 다른
PUT
요청을 사용하여 새 세션을 생성해야 합니다. -
토큰을 재사용하거나 모든 요청에 새 토큰을 생성하도록 선택할 수 있습니다. 요청 수가 적은 경우 인스턴스 메타데이터 서비스에 액세스해야 할 때마다 토큰을 생성하고 즉시 사용하는 것이 더 간편할 수 있습니다. 하지만 효율성을 향상하려면 인스턴스 메타데이터를 요청해야 할 때마다
PUT
요청을 작성하는 대신 토큰에 더 긴 기간을 지정하고 토큰을 재사용할 수 있습니다. 동시 토큰 수에는 실질적인 제한이 없으며 각각은 자체 세션을 나타냅니다. 그러나 IMDSv2에는 표준 인스턴스 메타데이터 서비스 연결 및 조절 제한이 여전히 적용됩니다. 자세한 내용은 Amazon EC2 - Linux 인스턴스용 사용 설명서의 쿼리 제한을 참조하세요.
-
IMDSv2 인스턴스 메타데이터 요청에서는 HTTP GET
및 HEAD
메서드가 허용됩니다. PUT
요청은 X-Forwarded-For
헤더가 포함된 경우 거부됩니다.
기본적으로 PUT
요청에 대한 응답에는 IP 프로토콜 수준에서 1
의 응답 홉 제한(TTL(Time to Live))이 있습니다. 더 큰 홉 제한이 필요한 경우 update-instance-metadata-options
명령을 사용하여 홉 제한을 조정할 수 있습니다. 예를 들어, 인스턴스에서 실행 중인 컨테이너 서비스가 있는 경우 이전 버전과의 호환성을 위해 더 큰 홉 제한이 필요할 수 있습니다. 자세한 내용은 AWS CLI 명령 update-instance-metadata-options참조를 참조하십시오.
인스턴스 메타데이터 서비스 버전 2 사용으로 전환
Instance Metadata Service 버전 2(IMDSv2) 사용은 선택 사항입니다. Instance Metadata Service 버전 1(IMDSv1)은 무기한 지원됩니다. IMDSv2 사용으로 마이그레이션하도록 선택하는 경우 다음과 같은 도구와 전환 경로를 사용하는 것이 좋습니다.
IMDSv2로 전환하는 데 도움이 되는 도구
소프트웨어가 IMDSv1을 사용하는 경우 다음 도구를 사용하면 IMDSv2를 사용하도록 소프트웨어를 재구성하는 데 도움이 됩니다.
-
AWS 소프트웨어: 최신 버전의 AWS SDK와 IMDSv2를 AWS CLI 지원합니다. IMDSv2를 사용하려면 인스턴스에 최신 버전의 SDK와 SDK가 설치되어 있어야 합니다. AWS AWS CLI업데이트에 대한 자세한 내용은 사용 설명서의 설치, 업데이트 및 제거를 참조하십시오. AWS CLI AWS CLIAWS Command Line Interface 모든 Amazon Linux 2 소프트웨어 패키지에서는 IMDSv2가 지원됩니다.
-
인스턴스 지표: IMDSv2는 토큰 지원 세션을 사용하지만 IMDSv1은 사용하지 않습니다.
MetadataNoToken
인스턴스 지표는 IMDSv1을 사용하는 인스턴스 메타데이터 서비스에 대한 호출 수를 추적합니다. 이 지표를 0까지 추적하면 모든 소프트웨어가 IMDSv2를 사용하도록 업그레이드되었는지 여부와 업그레이드된 시간을 확인할 수 있습니다. 자세한 내용은 Amazon Lightsail에서 인스턴스 메트릭 보기를 참조하십시오. -
Lightsail API 작업 AWS CLI 및 명령 업데이트: 기존 인스턴스의 경우 명령 (또는 UpdateInstanceMetadataOptionsAPI 작업) update-instance-metadata-options AWS CLI 을 사용하여 IMDSv2를 사용하도록 요구할 수 있습니다. 다음 명령은 예제입니다. 반드시 인스턴스 이름으로 바꾸고
InstanceName
, 인스턴스가 들어RegionName
있는 이름으로 바꿔야 합니다 AWS 리전 .aws lightsail update-instance-metadata-options --region
RegionName
--instance-nameInstanceName
--http-tokens required
IMDSv2에 액세스해야 하도록 설정하는 권장 경로
위의 도구를 사용하여 IMDSv2로 전환하기 위해 다음 경로를 따르는 것이 좋습니다.
1단계: 시작 시
인스턴스의 역할 자격 증명을 사용하는 AWS SDK AWS CLI, 및 소프트웨어를 IMDSv2 호환 버전으로 업데이트하십시오. 업데이트에 대한 자세한 내용은 사용 설명서의 AWS CLI최신 버전으로 업그레이드를 참조하십시오. AWS CLIAWS Command Line Interface
그런 다음 IMDSv2 요청을 사용하여 인스턴스 메타데이터에 직접 액세스하는 소프트웨어 (즉, AWS SDK를 사용하지 않음) 를 변경하십시오.
2단계: 전환 도중
인스턴스 지표 MetadataNoToken
을 사용하여 전환 진행률을 추적합니다. 이 지표는 인스턴스에서 IMDSv1을 사용하는 인스턴스 메타데이터 서비스에 대한 호출 수를 표시합니다. 자세한 내용은 인스턴스 지표 보기를 참조하세요.
3단계: 모든 인스턴스에서 모든 준비가 완료될 때
인스턴스 지표 MetadataNoToken
이 IMDSv1 사용량 0을 기록하면 모든 인스턴스에서 준비가 모두 완료됩니다. 이 단계에서 명령을 통해 IMDSv2를 사용하도록 요구할 수 있습니다. update-instance-metadata-options 실행 중인 인스턴스에서 이렇게 변경할 수 있으며, 인스턴스를 다시 시작할 필요는 없습니다.
기존 인스턴스의 인스턴스 메타데이터 옵션 업데이트는 Lightsail API 또는 를 통해서만 가능합니다. AWS CLI현재 Lightsail 콘솔에서는 사용할 수 없습니다. 자세한 내용은 update-instance-metadata-options를 참조하세요.
추가 IMDS 문서
다음 IMDS 설명서는 Amazon EC2 - Linux 인스턴스용 사용 설명서와 Amazon EC2 - Windows 인스턴스용 사용 설명서에서 확인할 수 있습니다.
참고
Amazon EC2에서 인스턴스 블루프린트는 Amazon Machine Image(AMI)라고 합니다.
-
Linux 인스턴스의 경우:
-
Windows 인스턴스의 경우: