翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
IMDS 認証情報プロバイダー
注記
設定ページのレイアウトの理解、または以下の AWS SDKs「」を参照してくださいこのガイドの設定ページについて。
インスタンスメタデータサービス (IMDS) は、インスタンスに関するデータで、実行中のインスタンスを設定または管理するために使用します。利用可能なデータの詳細については、Amazon EC2 ユーザーガイド」の「インスタンスメタデータの操作」を参照してください。Amazon EC2 では、インスタンスにさまざまな情報を提供できるローカルエンドポイントをインスタンスで利用可能です。インスタンスにロールがアタッチされている場合は、そのロールに有効な認証情報のセットが使用できます。SDK はそのエンドポイントを使用して、デフォルトの認証情報プロバイダーチェーンの一部として認証情報を解決できます。インスタンスメタデータサービスバージョン 2 (IMDSv2) は、IMDS のより安全なバージョンであり、デフォルトで使用されます。再試行できない条件(HTTP エラーコード 403、404、405)が原因で失敗した場合は、IMDSv1 がフォールバックとして使用されます。
この機能を設定するには、以下のように使用します。
AWS_EC2_METADATA_DISABLED
- 環境変数-
認証情報の取得に Amazon EC2 インスタンスメタデータサービス (IMDS) を使用するかどうか。
デフォルト値:
false
。有効な値:
-
true
– 認証情報を取得するために IMDS を使用しません。 -
false
– 認証情報を取得するために IMDS を使用します。
-
ec2_metadata_v1_disabled
- 共有 AWSconfig
ファイル設定AWS_EC2_METADATA_V1_DISABLED
- 環境変数aws.disableEc2MetadataV1
- JVM システムプロパティ: Java/Kotlin のみ-
IMDSv2 が失敗した場合に、Instance Metadata Service Version 1 (IMDSv1) をフォールバックとして使用するかどうか。
注記
新しい SDK は IMDSv1 をサポートしていないため、この設定はサポートされていません。詳細については、表 AWS SDKsとツールによるサポート を参照してください。
デフォルト値:
false
。有効な値:
-
true
– IMDSv1 をフォールバックとして使用しません。 -
false
– IMDSv1 をフォールバックとして使用します。
-
ec2_metadata_service_endpoint
- 共有 AWSconfig
ファイル設定AWS_EC2_METADATA_SERVICE_ENDPOINT
- 環境変数aws.ec2MetadataServiceEndpoint
- JVM システムプロパティ: Java/Kotlin のみ-
IMDS のエンドポイント。この値は、 AWS SDKsとツールが Amazon EC2 インスタンスメタデータを検索するデフォルトの場所を上書きします。
デフォルト値:
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 インスタンスメタデータサービスが偽装される可能性がある信頼できないネットワークのセキュリティが強化されます。
注記
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とツールによるサポート
以下の SDK は、このトピックで説明する機能と設定をサポートします。部分的な例外があれば、すべて記載されています。JVM システムプロパティ設定は、 AWS SDK for Java と AWS SDK for Kotlin でのみサポートされます。
SDK | サポート | 注意または詳細情報 |
---|---|---|
AWS CLI v2 | はい | |
SDK for C++ | はい | |
SDK for Go V2 (1.x) |
はい | |
SDK for Go 1.x (V1) | はい | 共有 config ファイル設定を使用するには、設定ファイルからの読み込みを有効にする必要があります。「セッション」を参照してください。 |
SDK for Java 2.x | はい | |
SDK for Java 1.x | 部分的 | JVM システムプロパティ: com.amazonaws.sdk.disableEc2MetadataV1 の代わりに を使用しますaws.disableEc2MetadataV1 。aws.ec2MetadataServiceEndpoint サポートaws.ec2MetadataServiceEndpointMode されません。 |
SDK for JavaScript 3.x | はい | |
SDK for JavaScript 2.x | はい | |
SDK for Kotlin | はい | IMDSv1 フォールバックを使用しません。 |
SDK for .NET 3.x | はい | |
SDK for PHP 3.x | はい | |
SDK for Python (Boto3) |
はい | |
SDK for Ruby 3.x | はい | |
SDK for Rust | はい | IMDSv1 フォールバックを使用しません。 |
SDK for Swift | はい | |
Tools for PowerShell | はい | を使用して、コードで IMDSv1 フォールバックを明示的に無効にできます[Amazon.Util.EC2InstanceMetadata]::EC2MetadataV1Disabled = $true 。 |