

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

# `AWSSupport-ConfigureEC2Metadata`
<a name="automation-awssupport-configureec2metadata"></a>

 **Description** 

此 Runbook 可協助您設定 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的執行個體中繼資料服務 (IMDS) 選項。使用此 Runbook，您可以設定下列項目：
+ 強制執行 IMDSv2 用於執行個體中繼資料。
+ 設定 `HttpPutResponseHopLimit`值。
+ 允許或拒絕執行個體中繼資料存取。

如需執行個體中繼資料的詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[設定執行個體中繼資料服務](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)。

[執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-ConfigureEC2Metadata)

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ EnforceIMDSv2

  類型：字串

  有效值：必要 \$1 選用

  預設：選用

  描述：（選用） 強制執行 IMDSv2。如果您選擇 `required`，Amazon EC2 執行個體只會使用 IMDSv2。如果您選擇 `optional`，您可以在 IMDSv1 和 IMDSv2 之間選擇中繼資料存取。
**重要**  
如果您強制執行 IMDSv2，使用 IMDSv1 的應用程式可能無法正常運作。在強制執行 IMDSv2 之前，請確定您使用 IMDS 的應用程式已升級至支援 IMDSv2 的版本。如需執行個體中繼資料服務第 2 版 (IMDSv2) 的相關資訊，請參閱[《Amazon EC2 使用者指南》中的設定執行個體中繼資料服務](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)。 *Amazon EC2 *
+ HttpPutResponseHopLimit

  類型：整數

  有效值：0-64

  預設：0

  描述：（選用） 執行個體中繼資料請求所需的 HTTP PUT 回應跳轉限制值 (1-64)。此值控制 PUT 回應可以周遊的躍點數量。若要防止回應在執行個體之外移動，`1`請為 參數值指定 。
+ InstanceId

  類型：字串

  描述：（必要） 您要設定其中繼資料設定的 Amazon EC2 執行個體 ID。
+ MetadataAccess

  類型：字串

  有效值：已啟用 \$1 已停用

  預設：啟用

  描述：（選用） 允許或拒絕 Amazon EC2 執行個體中的執行個體中繼資料存取。如果您指定 `disabled`，則會忽略所有其他參數，並拒絕執行個體的中繼資料存取。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ec2:DescribeInstances`
+ `ec2:ModifyInstanceMetadataOptions`
+ `ssm:GetAutomationExecution`
+ `ssm:StartAutomationExecution`

 **文件步驟** 

1. branchOnMetadataAccess - 根據 `MetadataAccess` 參數的值分支自動化。

1. disableMetadataAccess - 呼叫 ModifyInstanceMetadataOptions API 動作以停用中繼資料端點存取。

1. branchOnHttpPutResponseHopLimit - 根據`HttpPutResponseHopLimit`參數值分支自動化。

1. maintainHopLimitAndConfigureImdsVersion - 如果 `HttpPutResponseHopLimit`為 0，則維持目前的跳轉限制並變更其他中繼資料選項。

1. waitBeforeAssertingIMDSv2State - 在宣告 IMDSv2 狀態之前等待 30 秒。

1. setHopLimitAndConfigureImdsVersion - 如果 `HttpPutResponseHopLimit`大於 0，則使用指定的輸入參數設定中繼資料選項。

1. waitBeforeAssertingHopLimit - 在宣告中繼資料選項之前等待 30 秒。

1. assertHopLimit - 宣告 `HttpPutResponseHopLimit` 屬性設定為您指定的值。

1. branchVerificationOnIMDSv2Option - 根據`EnforceIMDSv2`參數值進行分支驗證。

1. assertIMDSv2IsOptional - 宣告`HttpTokens`值設定為 `optional`。

1. assertIMDSv2IsEnforced - Asserts `HttpTokens`值設定為 `required`。

1. waitBeforeAssertingMetadataState - 在宣告中繼資料狀態已停用之前等待 30 秒。

1. assertMetadataIsDisabled - Asserts 中繼資料為 `disabled`。

1. describeMetadataOptions - 套用您指定的變更後，取得中繼資料選項。

 **輸出** 

describeMetadataOptions.State

describeMetadataOptions.MetadataAccess

describeMetadataOptions.IMDSv2

describeMetadataOptions.HttpPutResponseHopLimit