翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
IMDS 認証情報プロバイダー
Instance Metadata Service (IMDS) は、実行中のインスタンスを設定または管理するために使用できるインスタンスに関するデータを提供します。利用可能なデータの詳細については、「Amazon ユーザーガイド」の「インスタンスメタデータの使用」を参照してください。 EC2 Amazon EC2 は、インスタンスにさまざまな情報を提供できるローカルエンドポイントを提供します。インスタンスにロールがアタッチされている場合は、そのロールに有効な認証情報のセットが使用できます。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
- 共有 AWSconfig
ファイル設定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
- 共有 AWSconfig
ファイル設定AWS_EC2_METADATA_SERVICE_ENDPOINT
- 環境変数aws.ec2MetadataServiceEndpoint
- JVMシステムプロパティ: Java/Kotlin のみ-
のエンドポイントIMDS。
デフォルト値:
ec2_metadata_service_endpoint_mode
がIPv4
に等しい場合、デフォルトエンドポイントはhttp://169.254.169.254
です。ec2_metadata_service_endpoint_mode
がIPv6
に等しい場合、デフォルトのエンドポイントはhttp://[fd00:ec2::254]
です。有効な値: 有効な URI。
ec2_metadata_service_endpoint_mode
- 共有 AWSconfig
ファイル設定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 Instance Metadata Service が偽装される可能性のある信頼できないネットワークのセキュリティが強化されます。
注記
AWS SDK 有効な認証情報で設定された クライアントは、これらの設定に関係なく、 IMDSを使用して認証情報を取得することはありません。
Amazon EC2IMDS認証情報の使用を無効にする
この環境変数の設定方法は、使用中のオペレーティングシステムと、変更を持続的にしたいかどうかによって異なります。
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 for Java 2.x | あり | |
SDK for Java 1.x | 部分的 | JVM システムプロパティ: com.amazonaws.sdk.disableEc2MetadataV1 の代わりに aws.ec2MetadataServiceEndpoint を使用しaws.disableEc2MetadataV1 、aws.ec2MetadataServiceEndpointMode サポートされていません。 |
SDK JavaScript 3.x 用 | あり | |
SDK JavaScript 2.x 用 | あり | |
SDK Kotlin 用 | あり | IMDSv1 フォールバックを使用しません。 |
SDK の 。NET 3.x | あり | |
SDK 3.x PHP 用 | あり | |
SDK for Python (Boto3) |
あり | |
SDK Ruby 3.x 用 | あり | |
SDK Rust 用 | あり | IMDSv1 フォールバックを使用しません。 |
SDK Swift 用 | あり | |
のツール PowerShell | あり | を使用して、コードでIMDSv1フォールバックを明示的に無効にできます[Amazon.Util.EC2InstanceMetadata]::EC2MetadataV1Disabled = $true 。 |