某位 DevOps 工程師必須使用 AWS Control Tower 管理帳戶和 CloudFormation StackSets,為尚未啟用 Amazon GuardDuty 的帳戶啟用 GuardDuty。為避免 StackSets 部署失敗,應如何設計 CloudFormation 範本?
選擇一個答案
點擊一個選項來檢查您的答案。
正確答案: 新增一個叫用 Lambda 函數的 CloudFormation 自訂資源;讓 Lambda 檢查 GuardDuty 是否已啟用,並僅在 GuardDuty 尚未啟用時才啟用它。.
為什麼這是答案
正確答案是新增一個叫用 Lambda 函數的 CloudFormation 自訂資源;讓 Lambda 檢查 GuardDuty 是否已啟用,並僅在 GuardDuty 尚未啟用時才啟用它。這是因為 CloudFormation StackSets 在部署到已啟用 GuardDuty 的帳戶時會失敗,因為 GuardDuty 服務無法重複啟用。透過自訂資源和 Lambda 函數,可以在部署前檢查 GuardDuty 的狀態,並僅在尚未啟用時才執行啟用操作,從而確保 StackSets 成功部署。 使用 CloudFormation 範本的 Conditions 區段無法直接檢查 GuardDuty 的啟用狀態,因為 Conditions 區段主要用於基於輸入參數或偽參數進行條件判斷,無法執行即時的 API 呼叫。Fn::GetAtt 內部函數用於獲取資源的屬性,但無法在資源建立之前判斷 GuardDuty 是否已啟用。手動組裝帳戶 ID 清單並使用 Fn::ImportValue 不切實際,因為這需要手動維護清單,且無法自動化處理新帳戶或已啟用 GuardDuty 的帳戶。
通過考試 — 無需無休止地尋找答案
集中一處獲取此考試的所有核實題目和解釋,節省數小時的準備時間。1,000 多種認證 · 20 多種語言 · 免費開始。
更快通過您的考試 → 無需信用卡