在您的環境執行個體上設定執行個體中繼資料服務 - AWS Elastic Beanstalk

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在您的環境執行個體上設定執行個體中繼資料服務

執行個體中繼資料是與 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體相關的資料,可供應用程式用來設定或管理執行中的執行個體。執行個體中繼資料服務 (IMDS) 是一種執行個體上的元件,可供執行個體上的程式碼用來安全地存取執行個體中繼資料。此代碼可以是環境實例上的 Elastic Beanstalk 平台代碼,應用程序可能正在使用的 AWS SDK,甚至是應用程序自己的代碼。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的執行個體中繼資料與使用者資料

程式碼可使用下列兩種方法之一,從執行中執行個體存取執行個體中繼資料:執行個體中繼資料服務第 1 版 (IMDSv1) 或執行個體中繼資料服務第 2 版 (IMDSv2)。IMDSv2 會使用工作階段導向的請求,並減緩可能用來嘗試存取 IMDS 的幾種漏洞類型。如需這兩種方法的相關資訊,請參閱 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 發套件會進行 IMDS 呼叫,而較新的 SDK 版本會盡可能使用 IMDSv2。如果您曾停用 IMDSv1,或若您的應用程式使用舊版 SDK,IMDS 呼叫可能會失敗。

  • 您的應用程式程式碼 — 如果您的應用程式進行 IMDS 呼叫,請考慮使用 AWS SDK,以便您可以進行呼叫,而不是直接發出 HTTP 要求。如此一來,您就不需要變更程式碼以在 IMDS 方法之間切換。 AWS SDK 會盡可能使用 IMDSv2。

  • Elastic Beanstalk 平台代碼 — 我們的代碼通過 AWS SDK 進行 IMDS 調用,因此在所有支持的平台版本上使用 IMDSv2。如果您的程式碼使用 up-to-date AWS SDK 並透過 SDK 進行所有 IMDS 呼叫,您可以安全地停用 IMDSv1。

使用 Elastic Beanstalk 主控台來設定 IMDS。

您可以在 Elastic Beanstalk 主控台中修改 Elastic Beanstalk 環境的 Amazon EC2 執行個體組態。

在 Elastic Beanstalk 主控台中,於 Amazon EC2 執行個體上設定 IMDS
  1. 開啟彈性魔豆控制台,然後在區域清單中選取您的. AWS 區域

  2. 在導覽窗格中,選擇環境,然後在清單中選擇您環境的名稱。

    注意

    如果您有許多環境,請使用搜尋列來篩選環境清單。

  3. 在導覽窗格中,選擇 Configuration (組態)

  4. Instances (執行個體) 組態類別中,選擇 Edit (編輯)

    Elastic Beanstalk 執行個體組態視窗上的 IMDS 選項
  5. 設定 Disable IMDSv1 (停用 IMDSv1) 以強制執行 IMDSv2。清除 Disable IMDSv1 (停用 IMDSv1) 以同時啟用 IMDSv1 和 IMDSv2。

  6. 若要儲存變更,請選擇頁面底部的儲存變更

aws:autoscaling:launchconfiguration 命名空間

您可以使用 aws:autoscaling:launchconfiguration 命名空間中的組態選項,以在您環境的執行個體上設定 IMDS。

下列組態檔案範例會使用 DisableIMDSv1 選項來停用 IMDSv1。

option_settings: aws:autoscaling:launchconfiguration: DisableIMDSv1: true