本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Elastic Beanstalk 環境的執行個體IMDS上設定
本主題說明執行個體中繼資料服務 (IMDS)。
執行個體中繼資料是與 Amazon Elastic Compute Cloud (AmazonEC2) 執行個體相關的資料,應用程式可用來設定或管理執行中的執行個體。執行個體中繼資料服務 (IMDS) 是執行個體上的程式碼用來安全存取執行個體中繼資料的執行個體元件。此程式碼可以是環境執行個體上的 Elastic Beanstalk 平台程式碼、 AWS SDK應用程式可能正在使用的 ,甚至是應用程式自己的程式碼。如需詳細資訊,請參閱 Amazon EC2使用者指南 中的執行個體中繼資料和使用者資料。
程式碼可以使用下列兩種方法之一,從執行中的執行個體存取執行個體中繼資料:執行個體中繼資料服務第 1 版 (IMDSv1) 或執行個體中繼資料服務第 2 版 (IMDSv2)。IMDSv2 使用工作階段導向請求,並緩解可用於嘗試存取 的多種漏洞類型IMDS。如需這兩種方法的相關資訊,請參閱 Amazon EC2使用者指南 中的設定執行個體中繼資料服務。
的平台支援 IMDS
在 Amazon Linux 2 和 Amazon Linux 2023 和 Windows 伺服器上執行的 Elastic Beanstalk 平台都支援 IMDSv1和 IMDSv2。如需詳細資訊,請參閱 IMDS 使用 Elastic Beanstalk 主控台設定
選擇IMDS方法
決定您希望環境支援IMDS的方法時,請考慮下列使用案例:
-
AWS SDK – 如果您的應用程式使用 AWS SDK,請務必使用最新版本的 SDK。IMDS 呼叫 和較新的SDK版本IMDSv2會盡可能使用 AWS SDKs。如果您曾經停用 IMDSv1,或者您的應用程式使用舊SDK版本,IMDS呼叫可能會失敗。
-
您的應用程式碼 – 如果您的應用程式IMDS撥打電話,請考慮使用 AWS SDK ,以便您可以撥打電話,而不是直接HTTP請求。如此一來,您不需要變更程式碼即可在IMDS方法之間切換。IMDSv2 盡可能使用 AWS SDK。
-
Elastic Beanstalk 平台程式碼 – 我們的程式碼會透過 進行IMDS呼叫 AWS SDK,因此在所有支援的平台版本IMDSv2上使用 。如果您的程式碼使用 up-to-date AWS SDK並透過 進行所有IMDS呼叫SDK,您可以安全地停用 IMDSv1。
IMDS 使用 Elastic Beanstalk 主控台設定
您可以在 Elastic Beanstalk 主控台中修改 Elastic Beanstalk 環境的 Amazon EC2執行個體組態。
重要
DisableIMDSv1
選項設定可能會導致 Elastic Beanstalk 使用啟動範本建立環境,或將現有環境從啟動組態更新為啟動範本。如需詳細資訊,請參閱 啟動範本。
在 Elastic Beanstalk 主控台的 Amazon EC2執行個體IMDS上進行設定
開啟 Elastic Beanstalk 主控台
,然後在區域清單中選取您的 AWS 區域。 -
在導覽窗格中,選擇環境,然後在清單中選擇您環境的名稱。
注意
如果您有許多環境,請使用搜尋列來篩選環境清單。
在導覽窗格中,選擇組態。
-
在 Instance traffic and scaling (執行個體流量和擴展) 組態類別中,選擇 Edit (編輯)。
-
設定停用IMDSv1以強制執行 IMDSv2。清除停用IMDSv1以啟用 IMDSv1和 IMDSv2。
-
若要儲存變更,請選擇頁面底部的儲存變更。
aws:autoscaling:launchconfiguration 命名空間
您可以使用aws:autoscaling:launchconfiguration
命名空間中的組態選項,在環境的執行個體IMDS上進行設定。
重要
DisableIMDSv1
選項設定可能會導致 Elastic Beanstalk 使用啟動範本建立環境,或將現有環境從啟動組態更新為啟動範本。如需詳細資訊,請參閱 啟動範本。
下列組態檔案範例IMDSv1會使用 DisableIMDSv1
選項停用 。
option_settings:
aws:autoscaling:launchconfiguration:
DisableIMDSv1: true
將 D isableIMDSv1 設定為 true
以停用IMDSv1和強制執行 IMDSv2。
將 D isableIMDSv1 設定為 false
以啟用 IMDSv1和 IMDSv2。