本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定執行處理中繼資料服務選
執行個體中繼資料服務 (IMDS) 會在每個執行個體本機EC2執行。執行個體中繼資料選項是指控制執行個體上的協助工具和行為IMDS的一組組EC2態。
您可以為每個執行個體設定下列執行個體中繼資料選項:
- 執行個體中繼資料服務 (IMDS):
enabled
|disabled
-
您可以在執行個體IMDS上啟用或停用。停用時,您或任何程式碼都無法存取執行個體上的執行個體中繼資料。
執行個體上IMDS有兩個端點:IPv4(
169.254.169.254
) 和 IPv6 ([fd00:ec2::254]
)。當您啟用時IMDS,IPv4端點會自動啟用。如果要啟用IPv6端點,則需要明確執行此操作。 - IMDSIPv6端點:
enabled
|disabled
-
您可以在執行個體上明確啟用IPv6IMDS端點。啟用IPv6端點後,IPv4端點會保持啟用狀態。IPv6端點僅支援建置於 AWS 硝基系統和IPv6支持的子網(雙堆棧或IPv6僅)。
- 中繼資料版本:
IMDSv1 or IMDSv2 (token optional)
|IMDSv2 only (token required)
-
要求執行個體中繼資料時,IMDSv2呼叫需要 Token。IMDSv1調用不需要令牌。您可以將執行個體設定為允許IMDSv1或IMDSv2呼叫 (其中 Token 為選用項目),或僅允許IMDSv2呼叫 (需要 Token)。
- 中繼資料回應躍點限制:
1
—64
-
躍點限制是允許PUT回應建立的網路躍點數目。您可以將躍點限制設定為最小值
1
和最大值64
。在容器環境中,建議將躍點限制設定為2
。如需詳細資訊,請參閱執行個體元資料存取。 - 存取執行個體中繼資料中的標籤:
enabled
|disabled
-
您可以從執行個體的中繼資料啟用或停用執行個體標籤的存取權。如需詳細資訊,請參閱使用執行個體中繼資料檢視EC2執行個體的。
執行個體中繼資料選項的設定
執行個體中繼資料選項可以在不同層級設定,如下所示:
-
帳戶 — 您可以在帳戶層級為每個執行個體中繼資料選項設定預設值 AWS 區域。 啟動執行個體時,執行個體中繼資料選項會自動設定為帳戶層級值。您可以在啟動時變更這些值。帳戶層級的預設值不會影響現有例項。
-
AMI— 您可以在註冊或修改
imds-support
參數v2.0
時將參數設定為AMI。使用此功能啟動執行個體時AMI,執行個體中繼資料版本會自動設定為,IMDSv2且躍點限制設定為 2。 -
執行個體 — 您可以在啟動時變更執行個體的所有執行個體中繼資料選項,覆寫預設設定。您也可以在執行中或已停止的執行個體上啟動後,變更執行個體中繼資料選項。請注意,變更可能受到IAM或SCP原則的限制。
如需詳細資訊,請參閱 設定新執行個體的執行個體中繼資料選項 和 修改現有執行個體的執行個體中繼資料選項。
執行個體中繼資料選項的優先順序
每個執行個體中繼資料選項的值都會在執行個體啟動時決定,並遵循階層優先順序。最上方優先順序最高的階層如下所示:
-
優先順序 1:啟動時的執行個體組態 — 您可以在啟動範本或執行個體組態中指定值。此處指定的任何值都會覆寫在帳戶層級或中指定的值AMI。
-
優先順序 2:帳戶設定 — 如果在執行個體啟動時未指定值,則由帳戶層級設定決定 (針對每個設定) AWS 區域). 帳戶層級設定可以包含每個中繼資料選項的值,或完全不指定任何偏好設定。
-
優先順序 3:AMI組態 — 如果未在執行個體啟動時或帳戶層級指定值,則由AMI組態決定。這僅會套用到
HttpTokens
和HttpPutResponseHopLimit
。
每個中繼資料選項都會分別評估。執行個體可以混合使用直接執行個體組態、帳戶層級預設值,以及. AMI
您可以在執行中或已停止的執行個體上啟動後變更任何中繼資料選項的值,除非變更受IAM或SCP政策的限制。
決定中繼資料選項的值-範例 1
在此範例中,EC2執行個體會啟動至「HttpPutResponseHopLimit
區域」,其中的帳戶層級設定為1
。指定的AMI已ImdsSupport
設定為v2.0
。啟動時不會直接在執行個體上指定中繼資料選項。執行個體會使用下列中繼資料選項啟動:
"MetadataOptions": {
...
"HttpTokens": "required",
"HttpPutResponseHopLimit": 1,
...
這些值的確定方式如下:
-
啟動時未指定中繼資料選項:在執行個體啟動期間,執行個體啟動參數或啟動範本中未提供中繼資料選項的特定值。
-
科目設定採用下一個優先順序:如果在啟動時沒有指定的特定值,則會優先考慮「區域」內帳戶層次的設定。這表示會套用在帳戶層級設定的預設值。在此情況下,會將設定
HttpPutResponseHopLimit
為1
。 -
AMI設定優先順序為最後:如果在啟動時或帳戶層級
HttpTokens
(執行個體中繼資料版本) 沒有指定的特定值,則會套用此AMI設定。在這種情況下,AMI設置ImdsSupport: v2.0
確定的設置HttpTokens
被設置為required
。請注意,雖然設定已AMI設定ImdsSupport: v2.0
為設定HttpPutResponseHopLimit: 2
,但帳戶層級設定已覆寫,而帳戶層級設定HttpPutResponseHopLimit: 1
具有較高的優先順序。
決定中繼資料選項的值-範例 2
在此範例中,EC2執行個體的啟動設定與上一個範例 1 相同,但在啟動時將HttpTokens
設定為optional
直接在執行個體上。執行個體會使用下列中繼資料選項啟動:
"MetadataOptions": {
...
"HttpTokens": "optional",
"HttpPutResponseHopLimit": 1,
...
的值HttpPutResponseHopLimit
是以與範例 1 中相同的方式來決定。不過,的值決定如下:啟動時在執行個體上設定的中繼資料選項優先。HttpTokens
即使已使用 ImdsSupport: v2.0
(換句話說,HttpTokens
設定AMI為required
) 進行設定,但在啟動時 (HttpTokens
設為optional
) 在執行個體上指定的值優先。
設定執行個體元資料版本
啟動執行個體時,執行個體中繼資料版本的值為IMDSv1 or IMDSv2
(token optional)
或IMDSv2 only (token required)
。
執行個體啟動時,您可以手動指定中繼資料版本的值,或使用預設值。如果您手動指定值,它會取代任何預設值。如果您選擇不手動指定值,它將由預設設定組合決定,如下表所述。
此表格顯示啟動時執行處理的中繼資料版本 (由欄 4 中的「結果執行處理組態」指示) 如何由不同組態層級的設定決定。優先順序是從左到右,其中第一欄的優先順序最高,如下所示:
-
欄 1:啟動參數 — 代表您在啟動時手動指定之執行處理的設定。
-
欄 2:帳戶層級預設值 — 代表帳戶的設定。
-
欄 3:AMI預設 — 代表上的設定AMI。
啟動參數 | 帳戶層級預設值 | AMI默認 | 產生的實例配置 |
---|---|---|---|
僅 V2(需要令牌) | 無偏好 | 僅限 V2 | 僅限 V2 |
僅 V2(需要令牌) | 僅限 V2 | 僅限 V2 | 僅限 V2 |
僅 V2(需要令牌) | V1 或 V2 | 僅限 V2 | 僅限 V2 |
V1 或 V2(令牌可選) | 無偏好 | 僅限 V2 | V1 或 V2 |
V1 或 V2(令牌可選) | 僅限 V2 | 僅限 V2 | V1 或 V2 |
V1 或 V2(令牌可選) | V1 或 V2 | 僅限 V2 | V1 或 V2 |
未設定 | 無偏好 | 僅限 V2 | 僅限 V2 |
未設定 | 僅限 V2 | 僅限 V2 | 僅限 V2 |
未設定 | V1 或 V2 | 僅限 V2 | V1 或 V2 |
僅 V2(需要令牌) | 無偏好 | null | 僅限 V2 |
僅 V2(需要令牌) | 僅限 V2 | null | 僅限 V2 |
僅 V2(需要令牌) | V1 或 V2 | null | 僅限 V2 |
V1 或 V2(令牌可選) | 無偏好 | null | V1 或 V2 |
V1 或 V2(令牌可選) | 僅限 V2 | null | V1 或 V2 |
V1 或 V2(令牌可選) | V1 或 V2 | null | V1 或 V2 |
未設定 | 無偏好 | null | V1 或 V2 |
未設定 | 僅限 V2 | null | 僅限 V2 |
未設定 | V1 或 V2 | null | V1 或 V2 |
使用IAM條件鍵限制執行個體中繼資料選項
您可以在IAM策略中使用IAM條件金鑰,或SCP如下所示:
-
僅當執行個體設定為需要使用時,才允許啟動 IMDSv2
-
限制允許的轉跳數目
-
關閉對執行個體中繼資料的存取
注意
您應該謹慎繼續執行和仔細進行測試,然後再進行任何變更。請記得下列事項:
-
如果您強制使用IMDSv2,用於執行個體中繼資料存取的應IMDSv1用程式或代理程式將會中斷。
-
如果您關閉對執行個體中繼資料的所有存取,則需要存取執行個體中繼資料才能正常運作的應用程式或代理程式便會中斷。
-
對於IMDSv2,您必須在擷取權杖
/latest/api/token
時使用。 -
(僅適用於視窗) 如果您的 PowerShell 版本早於 4.0,您必須更新至視窗管理架構 4.0
,才能要求使用IMDSv2.