本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
帳戶自訂
AFT 可以在佈建帳戶中部署標準或自訂組態。在 AFT 管理帳戶中,AFT 為每個帳戶提供一個管道。使用此管道,您可以在所有帳戶、一組帳戶或個別帳戶中實作自訂。您可以執行 Python 指令碼、Bash 指令碼和 Terraform 組態,也可以在帳戶自訂階段中與 AWS CLI 互動。
概觀
在您選擇的git
儲存庫中指定自訂項目後,無論是儲存全域自訂項目,或是儲存帳戶自訂項目,帳戶自訂階段都會由 AFT 管道自動完成。若要回溯自訂帳戶,請參閱 重新叫用自訂。
全域自訂 (選用)
您可以選擇將特定自訂套用至 AFT 佈建的所有帳戶。例如,如果您需要建立特定的 IAM 角色,或在每個帳戶中部署自訂控制項,則 AFT 管道中的全域自訂階段可讓您自動執行此操作。
帳戶自訂 (選用)
若要自訂個別帳戶或一組帳戶,與其他 AFT 佈建帳戶不同,您可以利用 AFT 管道的帳戶自訂部分來實作帳戶特定的組態。例如,只有特定帳戶可能需要存取網際網路閘道。
自訂先決條件
開始自訂帳戶之前,請確定已備妥這些先決條件。
-
完全部署的 AFT。如需如何部署的資訊,請參閱 設定並啟動您的 AWS Control Tower 帳戶工廠 for Terraform。
-
預先填入
git
的儲存庫,用於您環境中的全域自訂和帳戶自訂。如需詳細資訊部署後步驟,請參閱步驟 3:在 中填入每個儲存庫。
套用全域自訂
若要套用全域自訂,您必須將特定資料夾結構推送至您選擇的儲存庫。
-
如果您的自訂組態採用 Python 程式或指令碼的形式,請將這些組態放在儲存庫的 api_helpers/python 資料夾下。
-
如果您的自訂組態是 Bash 指令碼的形式,請將這些組態放在儲存庫的 api_helpers 資料夾下。
-
如果您的自訂組態是 Terraform 格式,請將它們放在儲存庫中的 terraform 資料夾下。
-
如需建立自訂組態的詳細資訊,請參閱全域自訂 README 檔案。
注意
在 AFT 管道的 AFT 帳戶佈建架構階段之後,會自動套用全域自訂。
套用帳戶自訂
您可以將特定資料夾結構推送至您選擇的儲存庫,以套用帳戶自訂。帳戶自訂會在 AFT 管道中自動套用,並在全域自訂階段之後套用。您也可以在帳戶自訂儲存庫中建立包含不同帳戶自訂的多個資料夾。對於您需要的每個帳戶自訂,請使用下列步驟。
套用帳戶自訂
-
步驟 1:建立帳戶自訂的資料夾
在您選擇的儲存庫中,將 AFT 提供的
ACCOUNT_TEMPLATE
資料夾複製到新的資料夾。新資料夾的名稱應符合您account_customizations_name
在帳戶請求中提供的 。 -
將組態新增至您的特定帳戶自訂資料夾
您可以根據組態的格式,將組態新增至您的帳戶自訂資料夾。
-
如果您的自訂組態採用 Python 程式或指令碼的形式,請將它們放在 儲存庫中的
【account_customizations_name】
/api_helpers/python 資料夾下。 -
如果您的自訂組態是 Bash 指令碼的形式,請將它們放在 儲存庫中的
【account_customizations_name】
/api_helpers 資料夾下。 -
如果您的自訂組態是 Terraform 格式,請將它們放在 儲存庫中的
【account_customizations_name】
/terraform 資料夾下。
如需建立自訂組態的詳細資訊,請參閱帳戶自訂 README 檔案。
-
-
請參閱帳戶請求檔案中的特定
account_customizations_name
參數AFT 帳戶請求檔案包含輸入參數
account_customizations_name
。輸入您帳戶自訂的名稱做為此參數的值。
注意
您可以為環境中的帳戶提交多個帳戶請求。當您想要套用不同或類似的帳戶自訂時,請在帳戶請求中使用account_customizations_name
輸入參數來指定帳戶自訂。如需詳細資訊,請參閱提交多個帳戶請求。
重新叫用自訂
AFT 提供在 AFT 管道中重新叫用自訂項目的方法。當您新增新的自訂步驟,或變更現有的自訂時,此方法非常有用。當您重新叫用 時,AFT 會啟動自訂管道,以對 AFT 佈建帳戶進行變更。event-source-based重新叫用可讓您將自訂套用至個別帳戶、所有帳戶、根據其 OU 的帳戶,或根據標籤選取的帳戶。
請依照這三個步驟來重新叫用 AFT 佈建帳戶的自訂。
步驟 1:將變更推送至全域或帳戶自訂git
儲存庫
您可以視需要更新全域和帳戶自訂,並將變更推回git
儲存庫。此時,不會發生任何情況。自訂管道必須由事件來源叫用,如接下來兩個步驟所述。
步驟 2:啟動 AWS Step Function 執行以重新叫用自訂
AFT 提供在 AFT 管理帳戶中呼叫aft-invoke-customizations
的 AWS Step Function。該函數的目的是為 AFT 佈建的帳戶重新叫用自訂管道。
以下是您可以建立以將輸入傳遞至 aft-invoke-customizations
AWS Step Function 的事件結構描述 (JSON 格式) 範例。
{ "include": [ { "type": "all" }, { "type": "ous", "target_value": [ "ou1","ou2"] }, { "type": "tags", "target_value": [ {"key1": "value1"}, {"key2": "value2"}] }, { "type": "accounts", "target_value": [ "acc1_ID","acc2_ID"] } ], "exclude": [ { "type": "ous", "target_value": [ "ou1","ou2"] }, { "type": "tags", "target_value": [ {"key1": "value1"}, {"key2": "value2"}] }, { "type": "accounts", "target_value": [ "acc1_ID","acc2_ID"] } ] }
範例事件結構描述顯示,您可以選擇要包含在重新叫用程序中包含或排除的帳戶。您可以依組織單位 (OU)、帳戶標籤和帳戶 ID 進行篩選。如果您未套用任何篩選條件並包含陳述式 "type":"all"
,則會重新叫用所有 AFT 佈建帳戶的自訂。
注意
如果您的 AWS Control Tower Account Factory for Terraform (AFT) 版本為 1.6.5 或更新版本,您可以使用語法 鎖定巢狀 OUsOU Name (ou-id-1234
)。如需詳細資訊,請參閱 GitHub
在您填寫事件參數之後,Step Functions 會執行並叫用對應的自訂。AFT 一次最多可以叫用 5 個自訂項目。Step Functions 會等待 和 迴圈,直到符合事件條件的所有帳戶都完成為止。
步驟 3:監控 AWS Step Function 輸出並觀看執行中的 AWS CodePipeline
-
產生的 Step Function 輸出包含符合 Step Function 輸入事件來源的帳戶 IDs。
-
在開發人員工具下導覽至 AWS CodePipeline,並檢視帳戶 ID 對應的自訂管道。
使用 AFT 帳戶自訂請求追蹤進行故障診斷
基於 AWS Lambda 的帳戶自訂工作流程會發出包含目標帳戶和自訂請求 IDs日誌。AFT 可讓您透過 Amazon CloudWatch Logs 追蹤和疑難排解自訂請求,方法是為您提供 CloudWatch Logs Insights 查詢,讓您根據目標帳戶或自訂請求 ID 來篩選與自訂請求相關的 CloudWatch Logs。如需詳細資訊,請參閱《Amazon CloudWatch Logs 使用者指南》中的使用 Amazon CloudWatch Logs 分析日誌資料。 Amazon CloudWatch
使用適用於 AFT 的 CloudWatch Logs Insights
-
透過 https://console.aws.amazon.com/cloudwatch/
開啟 CloudWatch 主控台。 -
從導覽窗格中,選擇日誌,然後選擇日誌洞察。
-
選擇查詢。
-
在範例查詢下,選擇 Account Factory for Terraform,然後選擇下列其中一個查詢:
-
依帳戶 ID 的自訂日誌
注意
請務必將
"YOUR-ACCOUNT-ID"
取代為您的目標帳戶 ID。fields @timestamp, log_message.account_id as target_account_id, log_message.customization_request_id as customization_request_id, log_message.detail as detail, @logStream | sort @timestamp desc | filter log_message.account_id ==
"YOUR-ACCOUNT-ID"
and @message like /customization_request_id/ -
依自訂請求 ID 的自訂日誌
注意
請務必將
「YOUR-CUSTOMIZATION-REQUEST-ID」
取代為您的自訂請求 ID。您可以在 AFT 帳戶佈建架構 AWS Step Functions 狀態機器的輸出中找到自訂請求 ID。如需 AFT 帳戶佈建架構的詳細資訊,請參閱 AFT 帳戶佈建管道fields @timestamp, log_message.account_id as target_account_id, log_message.customization_request_id as customization_request_id, log_message.detail as detail, @logStream | sort @timestamp desc | filter log_message.customization_request_id ==
"YOUR-CUSTOMIZATION-REQUEST-ID"
-
-
選取查詢後,請務必選取時間間隔,然後選擇執行查詢。