创建具有服务托管权限的 AWS CloudFormation StackSet
使用服务托管权限时,您可以将堆栈部署到特定区域中由 AWS Organizations 托管的账户。使用此模型,您无需创建必要的 IAM 角色;CloudFormation 会代表您创建 IAM 角色。有关更多信息,请参阅激活可信访问权限。
注意事项
在创建具有服务托管权限的 StackSet 之前,请考虑以下事项:
-
具有服务托管权限的堆栈集是在管理账户中创建的,包括由委派管理员创建的堆栈集。
-
StackSet 可以整个组织(包括所有账户)或特定组织单元(OU)为目标。如果 StackSet 的目标是父 OU,那么它同时以所有子 OU 为目标。如果您的 StackSet 以特定 OU 为目标,默认情况下会包括这些 OU 中的所有账户。但是,您可以使用账户筛选条件,来仅以特定账户为目标。
-
多个堆栈集可以将同一组织或 OU 作为目标。
-
StackSet 不能以组织外的账户为目标。
-
您的 StackSet 无法部署嵌套堆栈。
-
CloudFormation 不会将堆栈部署到组织的管理账户,即使管理账户位于组织中或组织内的 OU 中也是如此。
-
自动部署在 StackSet 级别设置。您无法为 OU、账户或区域选择性地调整自动部署。
-
用于登录管理账户的 IAM 委托人实体(用户、角色或组)的权限决定了您是否有权使用 StackSet 进行部署。有关授予向组织进行部署的权限的示例 IAM policy,请参阅 根据区域和资源类型限制堆栈集操作。
-
委派管理员具有部署到组织中的账户的完全权限。管理账户不能限制委派管理员部署到特定 OU 或执行特定 StackSet 操作的权限。
创建具有服务管理权限的 StackSet(控制台)
创建 StackSet
-
登录到 AWS Management Console 并打开 AWS CloudFormation 控制台 https://console.aws.amazon.com/cloudformation
。 -
在屏幕顶部的导航栏中,选择要从中管理 StackSet 的 AWS 区域。
-
从导航窗格中,选择 StackSets。
-
从 StackSets 页面顶部,选择创建 StackSet。
-
在权限下方,选择服务托管权限。
注意
如果为可信访问禁用 AWS Organizations,则会显示横幅。创建或更新具有服务托管权限的 StackSet 需要可信访问。只有组织管理账户中的管理员具有对 使用 AWS Organizations 为 StackSet 激活可信访问权限 的权限。
-
在先决条件 - 准备模板下,选择模板已就绪。
-
在 Specify template (指定模板) 下,选择指定包含堆栈模板的 S3 存储桶的 URL,或者上传堆栈模板文件。然后选择下一步。
-
在指定 StackSet 详细信息页面上,提供 StackSet 名称,指定所有参数,然后选择下一步。
-
在 Configure StackSet options (配置堆栈集选项) 页面上,在 Tags (标签) 下指定要应用于堆栈中资源的所有标签。有关如何在 AWS 中使用标签的更多信息,请参阅《AWS 账单与成本管理 User Guide》中的 Organizing and tracking costs using AWS cost allocation tags。
-
在执行配置中,请选择活动,启用 CloudFormation 的优化操作处理:
-
为了缩短部署时间,无冲突的操作会同时运行。
-
存在冲突的操作会自动排入队列,按照请求的顺序进行处理。
如果有操作正在运行或排队,CloudFormation 会将所有传入操作排入队列,即使这些操作没有冲突。在此期间,您不能更改执行设置。
-
-
如果模板包含 IAM 资源,则对于功能,请选择我确认该模板可能会创建 IAM 资源以指定您要在模板中使用 IAM 资源。有关更多信息,请参阅确认 CloudFormation 模板中的 IAM 资源。
-
选择下一步以继续,并激活可信访问权限(如果尚未激活)。
-
在设置部署选项页面的部署目标下,执行以下操作之一:
-
要部署到您组织中的所有账户,请选择部署到组织。
-
要部署到特定 OU 中的所有账户,请选择部署到组织单位(OU)。选择 Add an OU (添加 OU),然后将目标 OU ID 粘贴到文本框中。对每个新目标 OU 重复执行此操作。
如果您选择部署到组织单元(OU),则对于账户筛选条件类型,可以通过选择以下选项之一并提供账号将部署目标设置为特定的个人账户。
-
无(默认):将堆栈部署到指定 OU 中的所有账户。
-
交集:将堆栈部署到选定 OU 中特定的单独账户。
-
差集:除特定账户外,将堆栈部署到选定 OU 中的所有账户。
-
并集:将堆栈部署到指定 OU 以及额外单独账户。
-
-
在自动部署下,选择是否自动部署到将来添加到目标组织或 OU 的账户。有关更多信息,请参阅为 AWS Organizations 中的堆栈集启用或禁用自动部署。
-
如果启用自动部署,请在 Account removal behavior (账户删除行为) 下,选择从目标组织或 OU 中删除账户时是保留还是删除堆栈资源。
注意
选择保留堆栈后,堆栈将从 StackSet 中移除,但堆栈及其相关资源将会保留。资源会保持当前状态,但不再是 StackSet 的一部分。
-
对于指定区域,选择要在其中部署堆栈的区域。
-
对于部署选项,请执行以下操作:
-
对于最大并发账户数,请指定并发处理的账户数量。
-
在容错中,请指定每个区域允许的账户失败次数上限。达到此次数限制后,该操作将停止,不会继续到其他区域。
-
对于区域并发,请选择处理区域的方式:顺序(一次处理一个区域)或并行(并发处理多个区域)。
-
对于并发模式,请选择在操作执行期间的并发行为方式。
-
严格容错:操作失败时降低账户并发级别,保持在容错 +1 范围内。
-
软容错 – 即使失败,仍保持您指定的并发级别(最大并发账户数的值)。
-
-
-
选择下一步以继续。
-
在审核页面上,验证 StackSet 将部署到正确区域中的正确账户,然后选择创建 StackSet。
将打开 StackSet details (堆栈集详细信息) 页面。您可以在 StackSet 中查看堆栈创建的进度和状态。
创建具有服务管理权限的 StackSet(AWS CLI)
请按照本部分中的步骤,使用 AWS CLI 来执行以下操作:
-
创建 StackSet 容器。
-
部署堆栈实例。
注意
担任委派管理员时,您必须在命令中包含 --call-as
DELEGATED_ADMIN
。