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