

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# IMDS 認証情報プロバイダー
<a name="feature-imds-credentials"></a>

**注記**  
設定ページのレイアウトの理解、または以下の ** AWS SDKs**「」を参照してください[このガイドの設定ページについて](settings-reference.md#settingsPages)。

インスタンスメタデータサービス (IMDS) は、インスタンスに関するデータで、実行中のインスタンスを設定または管理するために使用します。利用可能なデータの詳細については、「*Amazon EC2 ユーザーガイド*」の「[インスタンスメタデータを使用して EC2 インスタンスを管理する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)」を参照してください。Amazon EC2 では、インスタンスにさまざまな情報を提供できるローカルエンドポイントをインスタンスで利用可能です。インスタンスにロールがアタッチされている場合は、そのロールに有効な認証情報のセットが使用できます。SDK はそのエンドポイントを使用して、[デフォルトの認証情報プロバイダーチェーン](standardized-credentials.md#credentialProviderChain)の一部として認証情報を解決できます。インスタンスメタデータサービスバージョン 2 (IMDSv2) は、IMDS のより安全なバージョンであり、デフォルトで使用されます。再試行できない条件（HTTP エラーコード 403、404、405）が原因で失敗した場合は、IMDSv1 がフォールバックとして使用されます。

この機能を設定するには、以下のように使用します。

**`AWS_EC2_METADATA_DISABLED` - 環境変数**  
認証情報の取得に Amazon EC2 インスタンスメタデータサービス (IMDS) を使用するかどうか。  
**デフォルト値**: `false`。  
**有効な値:**  
+ **`true`** – 認証情報を取得するために IMDS を使用しません。
+ **`false`** – 認証情報を取得するために IMDS を使用します。

**`ec2_metadata_v1_disabled` - 共有 AWS `config`ファイル設定`AWS_EC2_METADATA_V1_DISABLED` - 環境変数`aws.disableEc2MetadataV1` - JVM システムプロパティ: Java/Kotlin のみ**  
IMDSv2 が失敗した場合に、Instance Metadata Service Version 1 (IMDSv1) をフォールバックとして使用するかどうか。  
新しい SDK は IMDSv1 をサポートしていないため、この設定はサポートされていません。詳細については、表 [AWS SDKsとツールによるサポート](#feature-imds-credentials-sdk-compat) を参照してください。
**デフォルト値**: `false`。  
**有効な値:**  
+ **`true`** – IMDSv1 をフォールバックとして使用しません。
+ **`false`** – IMDSv1 をフォールバックとして使用します。

**`ec2_metadata_service_endpoint` - 共有 AWS `config`ファイル設定`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` - 共有 AWS `config`ファイル設定`AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE` - 環境変数`aws.ec2MetadataServiceEndpointMode` - JVM システムプロパティ: Java/Kotlin のみ**  
IMDS のエンドポイントモード。  
**デフォルト値：**`IPv4`。  
**有効な値：** `IPv4`、`IPv6`。

**注記**  
IMDS 認証情報プロバイダーは [認証情報プロバイダーチェーンを理解する](standardized-credentials.md#credentialProviderChain) の一部です。ただし、IMDS 認証情報プロバイダーは、この一連で他のいくつかのプロバイダーの後にのみチェックされます。そのため、プログラムでこのプロバイダーの認証情報を使用する場合は、設定から他の有効な認証情報プロバイダーを削除するか、別のプロファイルを使用する必要があります。あるいは、認証情報プロバイダチェーンに頼ってどのプロバイダが有効な認証情報を返すかを自動的に検出する代わりに、コード内で IMDS 認証情報プロバイダの使用を指定してください。サービスクライアントを作成するときに、認証情報ソースを直接指定できます。

## IMDS 認証情報のセキュリティ
<a name="feature-imds-credentials-sdk-security"></a>

デフォルトでは、 AWS SDK に有効な認証情報が設定されていない場合、SDK は Amazon EC2 インスタンスメタデータサービス (IMDS) を使用して AWS ロールの認証情報を取得しようとします。この動作は、`AWS_EC2_METADATA_DISABLED` 環境変数を `true` に設定することで無効にできます。これにより、不必要なネットワークアクティビティが防止され、Amazon EC2 インスタンスメタデータサービスが偽装される可能性がある信頼できないネットワークのセキュリティが強化されます。

**注記**  
AWS 有効な認証情報で設定された SDK クライアントは、これらの設定に関係なく、IMDS を使用して認証情報を取得しません。

### Amazon EC2 IMDS 認証情報の使用の無効化
<a name="feature-imds-credentials-disabling"></a>

この環境変数の設定方法は、使用中のオペレーティングシステムと、変更を持続的にしたいかどうかによって異なります。

#### Linux および macOS
<a name="feature-imds-credentials-disabling-unix"></a>

Linux または macOS を使用しているお客様は、次のコマンドを使用して、この環境変数を設定できます。

```
$ export AWS_EC2_METADATA_DISABLED=true
```

この設定を複数のシェルセッションやシステムの再起動後も維持したい場合は、`.bash_profile`、`.zsh_profile`、`.profile` などの上記のコマンドをシェルプロファイルファイルに追加できます。

#### Server
<a name="feature-imds-credentials-disabling-windows"></a>

Windows を使用しているお客様は、次のコマンドを使用して、この環境変数を設定できます。

```
$ set AWS_EC2_METADATA_DISABLED=true
```

この設定を複数のシェルセッションやシステムの再起動後も維持したい場合は、代わりに以下のコマンドを使用できます。

```
$ setx AWS_EC2_METADATA_DISABLED=true
```

**注記**  
**setx** コマンドは現在のシェルセッションに値を適用しないため、変更を有効にするにはシェルをリロードするか再度開く必要があります。

## AWS SDKsとツールによるサポート
<a name="feature-imds-credentials-sdk-compat"></a>

以下の SDK は、このトピックで説明する機能と設定をサポートします。部分的な例外があれば、すべて記載されています。JVM システムプロパティ設定は、 AWS SDK for Java と AWS SDK for Kotlin でのみサポートされます。


| SDK | サポート | 注意または詳細情報 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | はい |  | 
| [SDK for C\$1\$1](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | はい |  | 
| [SDK for Go V2 (1.x)](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | はい |  | 
| [SDK for Go 1.x (V1)](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | はい | 共有 config ファイル設定を使用するには、設定ファイルからの読み込みを有効にする必要があります。「[セッション](https://docs.aws.amazon.com/sdk-for-go/api/aws/session/)」を参照してください。 | 
| [SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | はい |  | 
| [SDK for Java 1.x](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 部分的 | JVM システムプロパティ: aws.disableEc2MetadataV1 の代わりに com.amazonaws.sdk.disableEc2MetadataV1 を使用します。aws.ec2MetadataServiceEndpoint と aws.ec2MetadataServiceEndpointMode はサポートされません。 | 
| [SDK for JavaScript 3.x](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | はい |  | 
| [SDK for JavaScript 2.x](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | はい |  | 
| [SDK for Kotlin](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | はい | IMDSv1 フォールバックを使用しません。 | 
| [SDK for .NET 4.x](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | はい |  | 
| [SDK for .NET 3.x](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | はい |  | 
| [SDK for PHP 3.x](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | はい |  | 
| [SDK for Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | はい |  | 
| [SDK for Ruby 3.x](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | はい |  | 
| [SDK for Rust](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | はい | IMDSv1 フォールバックを使用しません。 | 
| [SDK for Swift](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | はい |  | 
| [PowerShell V5 のツール](https://docs.aws.amazon.com/powershell/latest/userguide/) | はい | [Amazon.Util.EC2InstanceMetadata]::EC2MetadataV1Disabled = \$1true を使用して、コードで IMDSv1 フォールバックを明示的に無効にできます。 | 
| [PowerShell V4 のツール](https://docs.aws.amazon.com/powershell/v4/userguide/) | はい | [Amazon.Util.EC2InstanceMetadata]::EC2MetadataV1Disabled = \$1true を使用して、コードで IMDSv1 フォールバックを明示的に無効にできます。 | 