建立具有服務管理許可的 CloudFormation StackSets
透過服務受管許可,您可以將堆疊部署到特定區域中 AWS Organizations 所管理的帳戶。使用此模型,您不需要在每個目標帳戶和 AWS 區域 中建立 IAM 角色。CloudFormation 會代表您建立 IAM 角色。如需更多詳細資訊,請參閱 啟用受信任存取。
考量事項
建立具有服務受管許可的 StackSet 之前,請考慮下列事項:
-
具有服務受管許可的 StackSets 可由組織的管理帳戶或委派的管理員帳戶啟動,但所有操作均由管理帳戶執行。
-
CloudFormation 不會將堆疊部署到管理帳戶,即使該帳戶是您的組織的一部分或屬於組織單位。
-
StackSet 可以將整個組織 (包括所有帳戶) 或指定的 OU 設為目標。當 StackSet 以父 OU 為目標時,會自動包含任何子 OU。根據預設,當 StackSet 以特定 OU 為目標時,它會包含這些 OU 中的所有帳戶。不過,您可使用帳戶篩選選項將特定帳戶設為目標。
-
多個 StackSets 可以將相同的組織或 OU 設為目標。
-
您無法以組織外部的帳戶為目標。
-
您部署 StackSet 的權限取決於您用來登入管理帳戶之 IAM 主體實體 (使用者、角色或群組) 的許可。關於授與許可部署至組織的 IAM 政策範例,請參閱根據區域和資源類型限制堆疊集操作。
-
委派管理員具有部署至組織中任何帳戶的完整許可。管理帳戶無法限制部署至特定 OU 或 StackSet 操作的委派管理員許可。
-
自動部署設定是在 StackSet 層級套用。您無法特別針對 OU、帳戶或區域來調整自動部署。
-
使用服務受管許可的 StackSets 不支援包含了巨集或轉換的巢狀堆疊或範本。
建立具有服務受管許可的 StackSet (主控台)
建立 StackSet
-
請登入 AWS 管理主控台,開啟位於 https://console.aws.amazon.com/cloudformation
的 CloudFormation 主控台。 -
在畫面頂端的導覽列上,選擇您要從中管理 StackSet 的 AWS 區域。
-
從導覽窗格選擇 StackSets。
-
從 StackSets 頁面上方選擇建立 StackSet。
-
在 Permissions (許可) 下,選擇 Service-managed permissions (服務管理許可)。
注意
如果 AWS Organizations 的信任存取已停用,則會顯示橫幅。需要信任存取,才能建立或更新具有服務受管許可的 StackSet。只有組織管理帳戶中的管理員,才具有 使用 AWS Organizations 啟用 StackSets 的受信任存取 的許可。
-
在準備範本下,請選擇範本已準備就緒。
-
在 Specify template (指定範本) 下,選擇指定堆疊範本所在 S3 儲存貯體的 URL,或上傳堆疊範本檔案。然後選擇下一步。
-
在指定 StackSet 詳細資訊頁面上,提供 StackSet 的名稱、指定任何參數,然後選擇下一步。
-
在 Configure StackSet options (設定 StackSet 選項) 頁面的 Tags (標籤) 下,指定任何標籤以套用至堆疊中的資源。如需 AWS 中如何使用標籤的詳細資訊,請參閱《AWS 帳單與成本管理 使用者指南》中的使用 AWS 成本配置標籤組織及追蹤成本。
-
對於執行組態,選擇作用中,以啟用 CloudFormation 的最佳化操作處理:
-
非衝突操作會同時執行,以便加快部署時間。
-
衝突操作會根據請求的順序,自動排入佇列和處理。
在有執行中或排入佇列的操作時,CloudFormation 會將所有傳入操作排入佇列,即使這些操作沒有衝突也一樣。在此期間,您無法變更執行設定。
-
-
如果範本包含 IAM 資源,在功能中選擇我知道此範本可建立 IAM 資源,以指定您要使用此範本中的 IAM 資源。如需更多詳細資訊,請參閱 認可 CloudFormation 範本中的 IAM 資源。
-
選擇下一步以繼續,並啟用受信任存取 (如果尚未啟用)。
-
在設定部署選項頁面,部署目標下,執行下列其中一項操作:
-
選擇部署至組織,以部署至組織中的所有帳戶。
-
選擇部署至組織單位,以部署至特定 OU 中的所有帳戶。選擇 Add an OU (新增 OU),然後將目標 OU ID 貼到文字方塊中。針對每個新的目標 OU 重複上述步驟。
若您選擇部署到組織單位,對於帳戶篩選類型,您可以選擇下列其中一個選項並提供帳戶號碼,將部署目標設定為特定個別帳戶。
-
無 (預設) – 將堆疊部署到指定 OU 中的所有帳戶。
-
交集 – 將堆疊部署到所選 OU 中的特定個別帳戶。
-
差集 – 將堆疊部署到所選 OU 中的所有帳戶,但特定帳戶除外。
-
聯集 – 將堆疊部署到指定的 OU 和其他個別帳戶。
-
-
在自動部署下,選擇是否自動部署到未來新增至目標組織或 OU 的帳戶。如需更多詳細資訊,請參閱 在 AWS Organizations 中啟用或停用 StackSets 的自動部署。
-
如果您已啟用自動部署,請在 Account removal behavior (帳戶移除行為) 下,選擇在從目標組織或 OU 移除帳戶時,是否保留或刪除堆疊資源。
注意
如果選取保留堆疊,則會從 StackSet 移除堆疊執行個體,但會保留堆疊及其相關資源。資源會保持在當前狀態,但不再是 StackSet 的一部分。
-
在指定區域下,選擇要部署堆疊的區域。
-
對於部署選項,執行下列動作:
-
針對並行帳戶數目上限,指定並行處理的帳戶數量。
-
針對容錯能力,指定每個區域允許的帳戶失敗數目上限。達到此限制後,操作將停止,且不會繼續前往其他區域。
-
對於區域並行,選擇如何處理區域:循序 (一次處理一個區域) 或平行 (同時處理多個區域)。
-
針對並行模式,選擇並行在操作執行期間的行為方式。
-
嚴格容錯能力 – 降低發生故障時的帳戶並行層級,保持在容錯能力 +1 的範圍內。
-
軟性容錯能力 – 無論失敗為何,維持您指定的並行層級 (最大並行帳戶的值)。
-
-
-
選擇 Next (下一步) 繼續。
-
在檢閱頁面上,確認 StackSet 將部署到正確區域中的正確帳戶,然後選擇建立 StackSet。
StackSet details (StackSet 詳細資訊) 頁面隨即開啟。您可以檢視 StackSet 的堆疊建立進度和狀態。
建立具有服務受管許可的 StackSet (AWS CLI)
請依照本節中的步驟,使用 AWS CLI 執行下列操作:
-
建立 StackSet 容器。
-
部署堆疊執行個體。
注意
做為委派管理員時,您必須在命令中包含 --call-as
DELEGATED_ADMIN。