

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

# 在 Elastic Beanstalk 環境的執行個體上設定 IMDS
<a name="environments-cfg-ec2-imds"></a>

本主題說明執行個體中繼資料服務 (IMDS)。

*執行個體中繼資料*是與 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體相關的資料，可供應用程式用來設定或管理執行中的執行個體。執行個體中繼資料服務 (IMDS) 是一種執行個體上的元件，可供執行個體上的程式碼用來安全地存取執行個體中繼資料。此程式碼可以是環境執行個體上的 Elastic Beanstalk 平台程式碼、應用程式可能正在使用的 AWS SDK，甚至是應用程式自己的程式碼。如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的[執行個體中繼資料與使用者資料](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)。

程式碼可使用下列兩種方法之一，從執行中執行個體存取執行個體中繼資料：執行個體中繼資料服務第 1 版 (IMDSv1) 或執行個體中繼資料服務第 2 版 (IMDSv2)。IMDSv2 會使用工作階段導向的請求，並減緩可能用來嘗試存取 IMDS 的幾種漏洞類型。如需這兩種方法的資訊，請參閱《*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 開發套件* – 如果您的應用程式使用 AWS 開發套件，請務必使用最新版本的開發套件。 AWS SDKs 會發出 IMDS 呼叫，而較新的 SDK 版本會盡可能使用 IMDSv2。如果您曾停用 IMDSv1，或若您的應用程式使用舊版 SDK，IMDS 呼叫可能會失敗。
+ *您的應用程式程式碼* – 如果您的應用程式發出 IMDS 呼叫，請考慮使用 AWS 開發套件，以便您可以發出呼叫，而不是直接提出 HTTP 請求。如此一來，您就不需要變更程式碼以在 IMDS 方法之間切換。 AWS 開發套件會盡可能使用 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. 設定 **Disable IMDSv1 (停用 IMDSv1)** 以強制執行 IMDSv2。清除 **Disable IMDSv1 (停用 IMDSv1)** 以同時啟用 IMDSv1 和 IMDSv2。

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
```

將 **DisableIMDSv1** 設定為 `true`以停用 IMDSv1 並強制執行 IMDSv2。

將 **DisableIMDSv1** 設定為 `false`以啟用 IMDSv1 和 IMDSv2。