本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
CloudFormation 勾點概念
下列術語和概念是了解和使用 CloudFormation Hooks 的核心。
勾點
勾點包含在 CloudFormation 建立、更新或刪除堆疊或特定資源之前立即調用的程式碼。也可以在建立變更集操作期間叫用。勾點可以檢查 CloudFormation 即將佈建的範本、資源或變更集。此外,您可以在 Cloud Control API 建立、更新或刪除特定資源之前立即叫用勾點。
如果勾點識別不符合勾點邏輯中定義之組織準則的任何組態,則您可以選擇WARN使用者或 FAIL,以防止 CloudFormation 佈建資源。
勾點具有下列特性:
-
主動驗證 – 在建立、更新或刪除不合規資源之前,透過識別這些資源來降低風險、營運開銷和成本。
-
自動強制執行 – 在 中提供強制執行 AWS 帳戶 ,以防止 CloudFormation 佈建不合規的資源。
失敗模式
您的勾點邏輯可以傳回成功或失敗。成功回應將允許操作繼續。不合規資源的失敗可能會導致下列情況:
-
FAIL– 停止佈建操作。 -
WARN– 允許佈建繼續出現警告訊息。
在WARN模式下建立勾點是監控勾點行為的有效方式,而不會影響堆疊操作。首先,在 WARN 模式中啟用勾點,以了解哪些操作會受到影響。評估潛在影響之後,您可以將勾點切換到 FAIL 模式,以開始防止不合規的操作。
掛鉤目標
勾點目標指定勾點將評估的操作。這些可以是 上的操作:
-
CloudFormation 支援的資源 (
RESOURCE) -
堆疊範本 (
STACK) -
變更集 (
CHANGE_SET) -
Cloud Control API (
CLOUD_CONTROL) 支援的資源
您可以定義一或多個目標,指定勾點將評估的最廣泛操作。例如,您可以撰寫 Hook 目標RESOURCE以鎖定所有 AWS 資源STACK,並鎖定所有堆疊範本。
目標動作
目標動作會定義將叫用勾點的特定動作 CREATE(UPDATE、 或 DELETE)。對於 RESOURCE、 STACK和 CLOUD_CONTROL目標,所有目標動作都適用。對於CHANGE_SET目標,僅 CREATE動作適用。
註釋
GetHookResult 回應可以傳回註釋,提供每個評估資源的詳細合規檢查結果和修補指導。如需 API 註釋結構的詳細資訊,請參閱 AWS CloudFormation API 參考中的註釋。如需檢視這些驗證結果的說明,請參閱 檢視 CloudFormation 勾點的調用結果。
您可以在設定勾點時指定自己的 KMS 金鑰,視需要加密敏感合規資訊的註釋。如需詳細資訊,請參閱勾點組態結構描述語法參考。如需設定您為 Hooks 指定 KMS 金鑰時所需金鑰政策的資訊,請參閱 AWS KMS 加密靜態 CloudFormation Hooks 結果的金鑰政策和許可。
重要
請注意,指定客戶受管金鑰KmsKeyId的選項目前只有在您使用 AWS CLI 來設定勾點時才能使用。
勾點處理常式
對於自訂勾點,這是處理評估的程式碼。它與目標叫用點和目標動作相關聯,該動作會標記勾點的確切執行點。您可以撰寫處理常式,以託管這些特定點的邏輯。例如,具有PRE目標動作CREATE的目標調用點會成為 preCreate Hook 處理常式。當相符的目標叫用點和服務執行相關聯的目標動作時,Hook 處理常式內的程式碼會執行。
有效值: (preCreate | preUpdate | preDelete)
重要
導致 狀態的堆疊操作UpdateCleanup不會叫用勾點。例如,在以下兩個案例中,不會叫用 Hook 的preDelete處理常式:
-
堆疊會在從範本中移除一個資源後更新。
-
會刪除具有替代更新類型的資源。
逾時和重試限制
勾點每次調用都有 30 秒的逾時限制,且限制為 3 次重試嘗試。如果調用超過逾時,我們會傳回錯誤訊息,指出勾點執行逾時。第三次重試後,CloudFormation 會將勾點執行標記為失敗。