環境のインスタンスでのインスタンスメタデータサービスの設定 - AWS Elastic Beanstalk

環境のインスタンスでのインスタンスメタデータサービスの設定

インスタンスメタデータは、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに関するデータで、実行中のインスタンスを設定または管理するためにアプリケーションで使用します。インスタンスメタデータサービス (IMDS) は、インスタンス上のコードによって、インスタンスメタデータに安全にアクセスするために使用されるインスタンス上のコンポーネントです。このコードは、環境インスタンスの Elastic Beanstalk プラットフォームコードや、アプリケーションが使用している可能性のある AWS SDK、あるいはアプリケーション独自のコードである可能性があります。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「インスタンスメタデータとユーザーデータ」を参照してください。

コードは、手法としてインスタンスメタデータサービスバージョン 1 (IMDSv1) またはインスタンスメタデータサービスバージョン 2 (IMDSv2) のいずれかを使用して、実行中のインスタンスからインスタンスメタデータにアクセスできます。IMDSv2 はセッション指向のリクエストを使用し、IMDS へのアクセス試行に利用される可能性があるいくつかのタイプの脆弱性を軽減します。これら 2 つの手法の詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「インスタンスメタデータサービスの設定」を参照してください。

IMDSのプラットフォームサポート

以前の Elastic Beanstalk プラットフォームバージョンでは、IMDSv1 がサポートされていました。新しい Elastic Beanstalk プラットフォームバージョン (すべての Amazon Linux 2 プラットフォームバージョン) では、IMDSv1 と IMDSv2 の両方がサポートされます。環境を設定して、両方の手法のサポート (デフォルト) または IMDSv1 の無効化を指定できます。

注記

IMDSv1 を無効にするには、Amazon EC2 起動テンプレートを使用する必要があります。この機能を環境の作成時や更新時に有効にすると、Elastic Beanstalk は Amazon EC2 起動テンプレートを使用するように環境を設定しようとします (環境でまだ使用されていない場合)。この場合、ユーザーポリシーに必要なアクセス許可がないと、環境の作成や更新は失敗する可能性があります。したがって、管理ユーザーポリシーを使用するか、カスタムポリシーに必要なアクセス許可を追加することをお勧めします。必要なアクセス許可の詳細については、「カスタムユーザーポリシーの作成」を参照してください。

IMDS 手法の選択

ご使用の環境でサポートする IMDS 手法を決定する際には、次のケースについて考慮してください。

  • AWS SDK – アプリケーションが任意の言語の AWS SDK を使用している場合は、必ず SDK の最新バージョンを使用してください。AWS SDK では IMDS 呼び出しを行い、新しいバージョンの SDK では可能な限り IMDSv2 が使用されています。IMDSv1 を無効すると、アプリケーションで以前の SDK バージョンが使用されている場合に、IMDS 呼び出しが失敗することがあります。

  • アプリケーションコード – アプリケーションで IMDS 呼び出しが行われる場合は、直接 HTTP 要求を行うのではなく、 AWS SDK を使用して呼び出しを行うことを検討してください。このようにすると、異なる IMDS 手法間で切り替えるためにコードを変更する必要はありません。AWS SDK では、可能な限り IMDSv2 が使用されています。

  • Elastic Beanstalk プラットフォームコード – 弊社のコードでは、AWS SDKを介して IMDS 呼び出しを行うため、サポートしているすべてのプラットフォームバージョンで IMDSv2 が使用されます。最新の SDK を使用し、AWS SDK を介してすべての IMDS 呼び出しを行うコードでは、IMDSv1 を安全に無効にできます。

Elastic Beanstalk コンソールの使用による IMDS の設定

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

Elastic Beanstalk コンソールを使用して Amazon EC2 インスタンスで IMDS を設定するには

  1. Elastic Beanstalk コンソールを開き、[リージョン] のリストで AWS リージョンを選択します。

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

    注記

    環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。

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

  4. [インスタンス] 設定カテゴリで、[編集] を選択します。

    
            Elastic Beanstalk インスタンス設定ウィンドウの IMDS オプション
  5. IMDSv2 を適用するには、[Disable IMDSv1 (IMDSv1 の無効化)] を設定します。IMDSv1 と IMDSv2 の両方を有効にするには、[Disable IMDSv1 (IMDSv1 の無効化)] をオフにします。

  6. [Apply] を選択します。

aws:autoscaling:launchconfiguration 名前空間

aws:autoscaling:launchconfiguration 名前空間の設定オプションを使用して、環境のインスタンスで IMDS を設定します。

次に示す設定ファイル例では、DisableIMDSv1 オプションを使用して IMDSv1 を無効にしています。

option_settings: aws:autoscaling:launchconfiguration: DisableIMDSv1: true