本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在您的環境執行個體上設定執行個體中繼資料服務
執行個體中繼資料是與 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
開啟彈性魔豆控制台
,然後在區域清單中選取您的. AWS 區域 -
在導覽窗格中,選擇環境,然後在清單中選擇您環境的名稱。
注意
如果您有許多環境,請使用搜尋列來篩選環境清單。
在導覽窗格中,選擇 Configuration (組態)。
-
在 Instances (執行個體) 組態類別中,選擇 Edit (編輯)。
-
設定 Disable IMDSv1 (停用 IMDSv1) 以強制執行 IMDSv2。清除 Disable IMDSv1 (停用 IMDSv1) 以同時啟用 IMDSv1 和 IMDSv2。
-
若要儲存變更,請選擇頁面底部的儲存變更。
aws:autoscaling:launchconfiguration 命名空間
您可以使用 aws:autoscaling:launchconfiguration
命名空間中的組態選項,以在您環境的執行個體上設定 IMDS。
下列組態檔案範例會使用 DisableIMDSv1
選項來停用 IMDSv1。
option_settings:
aws:autoscaling:launchconfiguration:
DisableIMDSv1: true