Amazon CloudFormation StackSets 和 Amazon Organizations - Amazon Organizations
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon CloudFormation StackSets 和 Amazon Organizations

利用 Amazon CloudFormation StackSets,您可通过一个操作跨多个Amazon Web Services 账户和Amazon Web Services 区域创建、更新或删除堆栈。StackSets 与 Amazon Organizations 集成可让您使用每个成员账户中具有相关权限的服务相关角色创建具有服务托管权限的堆栈套。这可将堆栈实例部署到组织中的成员账户。您无需创建必要的 Amazon Identity and Access Management 角色;StackSets 代表您在每个成员账户中创建 IAM 角色。

您还可以选择为将来添加到组织的账户启用自动部署。启用自动部署后,关联堆栈集实例的角色和部署将自动添加到将来添加到该 OU 的所有账户中。

启用 StackSets 和 Organizations 之间的信任访问权限后,管理账户有权为您的组织创建和管理堆栈套。管理账户最多可以将五个成员账户注册为委托管理员。启用信任访问权限后,委托管理员还有权为您的组织创建和管理堆栈套。具有服务托管权限的堆栈集是在管理账户中创建的,包括由委托管理员创建的堆栈集。

重要

委托管理员具有部署到组织中的账户的完全权限。管理账户不能限制委托管理员部署到特定 OU 或执行特定堆栈集操作的权限。

有关将 StackSets 与 Organizations 集成的更多信息,请参阅《Amazon CloudFormation 用户指南》中的使用 Amazon CloudFormation StackSets

以下信息可帮助您将 Amazon CloudFormation StackSets 与 Amazon Organizations 集成。

启用集成时,创建了一个服务相关角色

以下服务相关角色会在您启用信任访问权限时自动在组织的管理账户中创建。此角色允许 Amazon CloudFormation Stacksets 在您组织中的组织账户内执行支持的操作。

只有在禁用 Amazon CloudFormation Stacksets 和 Organizations 之间的信任访问权限,或者从组织中删除成员账户,您才能删除或修改此角色。

  • 管理账户:AWSServiceRoleForCloudFormationStackSetsOrgAdmin

要为组织中的成员账户创建服务相关角色 AWSServiceRoleForCloudFormationStackSetsOrgMember,您需要先在管理账户中创建一个堆栈集。这将会创建一个堆栈集实例,然后该实例会在成员账户中创建相应的角色。

  • 成员账户:AWSServiceRoleForCloudFormationStackSetsOrgMember

有关创建堆栈集的更多详细信息,请参阅 Amazon CloudFormation 用户指南中的使用 Amazon CloudFormation StackSets

服务相关角色使用的服务委托人

上一部分中的服务相关角色只能由为角色定义的信任关系授权的服务委托人担任。Amazon CloudFormation Stacksets 使用的服务相关角色为以下服务委托人授予访问权限:

  • 管理账户:stacksets.cloudformation.amazonaws.com

    只有在禁用 Stacksets 和 Organizations 之间的信任访问权限时,您才能修改或删除此角色。

  • 成员账户:member.org.stacksets.cloudformation.amazonaws.com

    只有在先禁用 Stacksets 和 Organizations 之间的信任访问权限,或者先从目标组织或组织部门(OU)中删除成员账户,您才能删除或修改此角色。

使用 Amazon CloudFormation Stacksets 启用信任访问权限

有关启用信任访问权限所需权限的信息,请参阅允许可信访问所需的权限

只有 Organizations 管理账户的管理员有权启用对其他Amazon服务的可信访问权限。您可以使用 Amazon CloudFormation 控制台或 Organizations 控制台启用信任访问权限。

您只能使用 Amazon CloudFormation StackSets 启用信任访问权限。

要使用 Amazon CloudFormation Stacksets 启用信任访问权限,请参阅 Amazon CloudFormation 用户指南中的使用 Amazon Organizations 启用信任访问权限

使用 Amazon CloudFormation Stacksets 禁用信任访问权限

有关禁用信任访问所需权限的信息,请参阅禁止可信访问所需的权限

只有 Organizations 管理账户的管理员有权禁用对其他Amazon服务的可信访问权限。您只能使用 Organizations 控制台禁用信任访问权限。如果您在使用 StackSets 时,通过 Organizations 禁用了信任访问权限,则所有之前创建的堆栈实例都将保留。但是,使用服务相关角色的权限部署的堆栈套无法再对 Organizations 管理的账户执行部署。

您可以使用 Amazon CloudFormation 控制台或 Organizations 控制台禁用信任访问权限。

重要

如果您以编程方式禁用信任访问权限(例如使用 Amazon CLI 或 API),请注意,这将删除权限。最好使用 Amazon CloudFormation 控制台启用信任访问权限。

您可以使用Amazon Organizations控制台,通过运行 Organizations Amazon CLI 命令,或者通过调用某个 Amazon SDK 中的 Organizations API 操作来禁用信任访问权限。

Amazon Web Services Management Console
使用 Organizations 控制台禁用信任服务访问权限
  1. 登录到 Amazon Organizations 控制台。您必须以 IAM 用户的身份登录,担任 IAM 角色;或在组织的管理账户中以根用户的身份登录(不推荐)。

  2. Services(服务)页面上,找到 Amazon CloudFormation StackSets 行,然后选择该服务的名称。

  3. 选择 Disable trusted access (禁用信任访问权限)

  4. 在确认对话框中输入 disable,然后选择 Disable trusted access (禁用信任访问权限)

  5. 如果您只是 Amazon Organizations 的管理员,请告诉 Amazon CloudFormation StackSets 的管理员,他们现在可以使用其控制台或工具禁用该服务,使其无法处理 Amazon Organizations。

Amazon CLI, Amazon API
使用 Organizations CLI/SDK 禁用信任服务访问权限

您可以使用以下 Amazon CLI 命令或 API 操作禁用信任服务访问:

  • Amazon CLI:disable-aws-service-access

    您可以运行以下命令以禁用 Amazon CloudFormation StackSets 作为 Organizations 的信任服务。

    $ aws organizations disable-aws-service-access \ --service-principal stacksets.cloudformation.amazonaws.com

    如果成功,此命令不会产生任何输出。

  • Amazon API:DisableAWSServiceAccess

为 Amazon CloudFormation 启用委托管理员账户

将成员账户指定为组织的委托管理员时,该账户中的用户和角色可以对 Amazon CloudFormation Stacksets 执行管理操作,否则只能由组织管理账户中的用户或角色执行操作。这可以帮助您将组织的管理与 Amazon CloudFormation Stacksets 的管理分开。

有关如何将成员账户指定为组织中的 Amazon CloudFormation Stacksets,请参阅《Amazon CloudFormation 用户指南》中的注册委托管理员