

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

# Elastic Beanstalk 環境のインスタンスでの IMDS の設定
<a name="environments-cfg-ec2-imds"></a>

このトピックでは、インスタンスメタデータサービス (IMDS) について説明します。

*インスタンスメタデータ*は、アプリケーションが実行中のインスタンスを設定または管理するために使用できる Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに関連するデータです。インスタンスメタデータサービス (IMDS) は、インスタンス上のコードによって、インスタンスメタデータに安全にアクセスするために使用されるインスタンス上のコンポーネントです。このコードは、環境インスタンスの Elastic Beanstalk プラットフォームコード、アプリケーションが使用している AWS SDK、またはアプリケーション独自のコードです。詳細については、「*Amazon EC2 ユーザーガイド*」の「[Instance Metadata and User Data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)」を参照してください。

コードは、手法としてインスタンスメタデータサービスバージョン 1 (IMDSv1) またはインスタンスメタデータサービスバージョン 2 (IMDSv2) のいずれかを使用して、実行中のインスタンスからインスタンスメタデータにアクセスできます。IMDSv2 はセッション指向のリクエストを使用し、IMDS へのアクセス試行に利用される可能性があるいくつかのタイプの脆弱性を軽減します。これら 2 つの方法については、「Amazon EC2 ユーザーガイド」の[インスタンスメタデータサービスの設定に関するページ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)を参照してください。

**Topics**
+ [IMDSのプラットフォームサポート](#environments-cfg-ec2-imds.plat)
+ [IMDS 手法の選択](#environments-cfg-ec2-imds.choose)
+ [Elastic Beanstalk コンソールを使用した IMDS の設定](#environments-cfg-ec2-imds.console)
+ [aws:autoscaling:launchconfiguration 名前空間](#environments-cfg-ec2-imds.namespace)

## IMDSのプラットフォームサポート
<a name="environments-cfg-ec2-imds.plat"></a>

Amazon Linux 2、Amazon Linux 2023、および Windows サーバーで実行されている Elastic Beanstalk プラットフォームはすべて IMDSv1 と IMDSv2 の両方をサポートしています。詳細については、[Elastic Beanstalk コンソールを使用した IMDS の設定](#environments-cfg-ec2-imds.console)を参照してください。

## IMDS 手法の選択
<a name="environments-cfg-ec2-imds.choose"></a>

ご使用の環境でサポートする IMDS 手法を決定する際には、次のユースケースについて考慮してください。
+ *AWS SDK* – アプリケーションが AWS SDK を使用している場合は、必ず最新バージョンの SDK を使用してください。 AWS SDKs IMDS 呼び出しを行い、新しい SDK バージョンでは可能な限り IMDSv2 を使用します。IMDSv1 を無効にすると、アプリケーションで以前の SDK バージョンが使用されている場合に、IMDS 呼び出しが失敗することがあります。
+ *アプリケーションコード* – アプリケーションが IMDS 呼び出しを行う場合は、直接 HTTP リクエストを行う代わりに呼び出しを行うことができるように AWS SDK の使用を検討してください。このようにすると、異なる IMDS 手法間で切り替えるためにコードを変更する必要はありません。 AWS SDK は可能な限り IMDSv2 を使用します。
+ *Elastic Beanstalk プラットフォームコード* – このコードは AWS SDK を介して IMDS 呼び出しを行うため、サポートされているすべてのプラットフォームバージョンで IMDSv2 を使用します。コードがup-to-date AWS SDK を使用していて、SDK を介してすべての IMDS 呼び出しを行う場合は、IMDSv1 を安全に無効にできます。

## Elastic Beanstalk コンソールを使用した IMDS の設定
<a name="environments-cfg-ec2-imds.console"></a>

Elastic Beanstalk コンソールで、Elastic Beanstalk 環境の Amazon EC2 インスタンス設定を変更できます。

**重要**  
`DisableIMDSv1` オプション設定により、Elastic Beanstalk は起動設定から起動テンプレートに既存の環境を移行することができます。これを行うには、起動テンプレートを管理するために必要なアクセス許可が必要です。これらのアクセス許可は、マネージドポリシーに含まれています。マネージドポリシーの代わりにカスタムポリシーを使用した場合、環境設定を更新すると、環境の作成または更新が失敗する可能性があります。詳細情報と重要な考慮事項については、「[Elastic Beanstalk 環境を起動テンプレートに移行する](environments-cfg-autoscaling-launch-templates.md)」を参照してください。

**Elastic Beanstalk コンソールで Amazon EC2 インスタンスの IMDS を設定するには**

1. [Elastic Beanstalk コンソール](https://console.aws.amazon.com/elasticbeanstalk)を開き、**リージョン**リストで を選択します AWS リージョン。

1. ナビゲーションペインで、[**環境**] を選択し、リストから環境の名前を選択します。

1. ナビゲーションペインで、[**設定**] を選択します。

1. **[Instance traffic and scaling]** (インスタンスのトラフィックおよびスケーリング) 設定カテゴリで、**[Edit]** (編集) を選択します。

1. IMDSv2 を適用するには、[**Disable IMDSv1 (IMDSv1 の無効化)**] を設定します。IMDSv1 と IMDSv2 の両方を有効にするには、[**Disable IMDSv1 (IMDSv1 の無効化)**] をオフにします。

1. ページの最下部で **[適用]** を選択し変更を保存します。

## aws:autoscaling:launchconfiguration 名前空間
<a name="environments-cfg-ec2-imds.namespace"></a>

`aws:autoscaling:launchconfiguration` 名前空間の[設定オプション](command-options.md)を使用して、環境のインスタンスで IMDS を設定します。

**重要**  
`DisableIMDSv1` オプション設定により、Elastic Beanstalk は起動設定から起動テンプレートに既存の環境を移行することができます。これを行うには、起動テンプレートを管理するために必要なアクセス許可が必要です。これらのアクセス許可は、マネージドポリシーに含まれています。マネージドポリシーの代わりにカスタムポリシーを使用した場合、環境設定を更新すると、環境の作成または更新が失敗する可能性があります。詳細情報と重要な考慮事項については、「[Elastic Beanstalk 環境を起動テンプレートに移行する](environments-cfg-autoscaling-launch-templates.md)」を参照してください。

次に示す[設定ファイル](ebextensions.md)例では、`DisableIMDSv1` オプションを使用して IMDSv1 を無効にしています。

```
option_settings:
  aws:autoscaling:launchconfiguration:
    DisableIMDSv1: true
```

IMDSv1 を無効にして IMDSv2 が適用されるようにするには、**DisableIMDSv1** を `true` に設定します。

IMDSv1 と IMDSv2 の両方を有効にするには、**DisableIMDSv1** を `false` に設定します。