IMDS 자격 증명 공급자 - AWS SDKs 및 도구

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

IMDS 자격 증명 공급자

인스턴스 메타데이터 서비스(IMDS)는 실행 중인 인스턴스를 구성하거나 관리하는 데 사용할 수 있는 인스턴스에 대한 데이터를 제공합니다. 사용 가능한 데이터에 대한 자세한 내용은 Amazon EC2 사용 설명서인스턴스 메타데이터 작업을 참조하세요. AmazonEC2은 인스턴스에 다양한 정보 비트를 제공할 수 있는 인스턴스에 사용할 수 있는 로컬 엔드포인트를 제공합니다. 인스턴스에 역할이 연결된 경우 해당 역할에 유효한 보안 인증 세트를 제공할 수 있습니다. 는 해당 엔드포인트를 사용하여 기본 자격 증명 공급자 체인의 일부로 자격 증명을 확인할 SDKs 수 있습니다. 인스턴스 메타데이터 서비스 버전 2(IMDSv2)는 세션 토큰을 IMDS 사용하는 보다 안전한 버전이며 기본적으로 사용됩니다. 재시도할 수 없는 조건(HTTP오류 코드 403, 404, 405)으로 인해 실패하는 경우 IMDSv1가 대체로 사용됩니다.

다음을 사용하여 이 기능을 구성하십시오.

AWS_EC2_METADATA_DISABLED - 환경 변수

Amazon EC2 Instance Metadata Service(IMDS)를 사용하여 자격 증명을 얻으려는지 여부입니다.

기본값: false

유효값:

  • true - IMDS를 사용하여 자격 증명을 가져오지 마세요.

  • false - IMDS를 사용하여 자격 증명을 가져옵니다.

ec2_metadata_v1_disabled - 공유 AWS config 파일 설정
AWS_EC2_METADATA_V1_DISABLED - 환경 변수
aws.disableEc2MetadataV1 - JVM 시스템 속성: Java/Kotlin만 해당

IMDSv2 가 실패할 경우 인스턴스 메타데이터 서비스 버전 1(IMDSv1)을 대체로 사용할지 여부입니다.

참고

새 SDKs 는 이 설정을 지원하지 IMDSv1 않으므로 지원하지 않습니다. 자세한 내용은 테이블 와의 호환성 AWS SDKs를 참조하세요.

기본값: false

유효값:

  • true - 폴백IMDSv1으로 사용하지 마세요.

  • false - 을 대체IMDSv1로 사용합니다.

ec2_metadata_service_endpoint - 공유 AWS config 파일 설정
AWS_EC2_METADATA_SERVICE_ENDPOINT - 환경 변수
aws.ec2MetadataServiceEndpoint - JVM 시스템 속성: Java/Kotlin만 해당

의 엔드포인트입니다IMDS. 이 값은 및 도구가 Amazon EC2 인스턴스 메타데이터를 검색할 기본 위치를 AWS SDKs 재정의합니다.

기본값: ec2_metadata_service_endpoint_modeIPv4이 같으면 기본 엔드포인트는 http://169.254.169.254입니다. ec2_metadata_service_endpoint_modeIPv6이 같으면 기본 엔드포인트는 http://[fd00:ec2::254]입니다.

유효한 값: 유효한 URI.

ec2_metadata_service_endpoint_mode - 공유 AWS config 파일 설정
AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE - 환경 변수
aws.ec2MetadataServiceEndpointMode - JVM 시스템 속성: Java/Kotlin만 해당

의 엔드포인트 모드입니다IMDS.

기본값:IPv4.

유효한 값: IPv4, IPv6.

참고

IMDS 자격 증명 공급자는 의 일부입니다자격 증명 공급자 체인 이해. 그러나 자격 IMDS 증명 공급자는 이 시리즈에 속한 다른 여러 공급자 이후에만 확인됩니다. 따라서 프로그램에서 이 공급자의 보안 인증을 사용하려면 구성에서 다른 유효한 보안 인증 공급자를 제거하거나 다른 프로파일을 사용해야 합니다. 또는 자격 증명 공급자 체인에 의존하여 유효한 자격 증명을 반환하는 공급자를 자동으로 검색하는 대신 코드에 자격 IMDS 증명 공급자 사용을 지정합니다. 서비스 클라이언트를 생성할 때 보안 인증 소스를 직접 지정할 수 있습니다.

IMDS 보안 인증 정보 보안

기본적으로 AWS SDK가 유효한 보안 인증 정보로 구성되지 않은 경우 SDK는 Amazon EC2 인스턴스 메타데이터 서비스(IMDS)를 사용하여 AWS 역할에 대한 보안 인증을 검색하려고 시도합니다. AWS_EC2_METADATA_DISABLED환경 변수를 true로 설정하여 이 동작을 비활성화할 수 있습니다. 이렇게 하면 불필요한 네트워크 활동이 방지되고 Amazon EC2 인스턴스 메타데이터 서비스가 가장될 수 있는 신뢰할 수 없는 네트워크의 보안이 강화됩니다.

참고

AWS SDK 유효한 자격 증명으로 구성된 클라이언트는 이러한 설정에 관계없이 IMDS를 사용하여 자격 증명을 검색하지 않습니다.

Amazon EC2 IMDS 자격 증명 사용 비활성화

이 환경 변수를 설정하는 방법은 사용 중인 운영 체제와 변경 내용을 지속적으로 적용할지 여부에 따라 달라집니다.

Linux 및 macOS

Linux 또는 macOS를 사용하는 고객은 다음 명령을 사용해 이 환경 변수를 설정할 수 있습니다.

$ export AWS_EC2_METADATA_DISABLED=true

여러 쉘 세션 및 시스템 재시작 시에도 이 설정을 유지하려면 위의 명령을 .bash_profile, .zsh_profile, 혹은 .profile 등의 쉘 프로파일 파일에 추가할 수 있습니다.

Windows

Windows를 사용하는 고객은 다음 명령을 사용해 이 환경 변수를 설정할 수 있습니다.

$ set AWS_EC2_METADATA_DISABLED=true

이 설정을 여러 쉘 세션 및 시스템 재시작에 걸쳐 지속되게 하려면 다음 명령을 대신 사용할 수 있습니다.

$ setx AWS_EC2_METADATA_DISABLED=true
참고

setx 명령은 현재 쉘 세션에 값을 적용하지 않으므로 변경 내용을 적용하려면 쉘을 다시 로드하거나 다시 열어야 합니다.

와의 호환성 AWS SDKs

다음은 이 주제에 설명된 기능 및 설정을 SDKs 지원합니다. 모든 일부 예외가 기록됩니다. 모든 JVM 시스템 속성 설정은 AWS SDK for Java 및 AWS SDK for Kotlin 에서만 지원됩니다.

SDK 지원 참고 또는 추가 정보
AWS CLI v2
SDK C++용
SDK Go V2용(1.x)
SDK Go 1.x(V1)용 공유 config 파일 설정을 사용하려면 구성 파일에서 로드를 켜야 합니다. 세션을 참조하십시오.
SDK Java 2.x용
SDK Java 1.x용 부분 JVM 시스템 속성: com.amazonaws.sdk.disableEc2MetadataV1 대신 aws.disableEc2MetadataV1aws.ec2MetadataServiceEndpoint를 사용하고 지원되지 aws.ec2MetadataServiceEndpointMode 않습니다.
SDK JavaScript 3.x용
SDK JavaScript 2.x용
SDK Kotlin용 IMDSv1 대체를 사용하지 않습니다.
SDK 용.NET 3.x
SDK 3.xPHP용
SDK Python용(Boto3)
SDK Ruby 3.x용
SDK Rust용 IMDSv1 대체를 사용하지 않습니다.
SDK Swift용
용 도구 PowerShell 를 사용하여 코드에서 IMDSv1 대체를 명시적으로 비활성화할 수 있습니다[Amazon.Util.EC2InstanceMetadata]::EC2MetadataV1Disabled = $true.