Amazon web services 如何以编程方式在AWS组织成员帐户中创建角色

Amazon web services 如何以编程方式在AWS组织成员帐户中创建角色,amazon-web-services,amazon-iam,aws-organizations,Amazon Web Services,Amazon Iam,Aws Organizations,我想将多租户SaaS的AWS资源分离到AWS组织下的单独帐户中 我有多个OU,按功能划分,例如日志、审计、计算。我将有与每个OU关联的SCP 每个租户在每个OU下都有一个帐户,这意味着当我添加新租户时,每个帐户将继承该OU的相应SCP 为了使开发人员能够构建平台并能够调试正在运行的系统,我想使用一种中心辐射式方法来使用联邦IdP进行访问控制,类似于这里描述的方法: 具体来说,我将拥有一个绑定到Okta的身份帐户。用户将通过此帐户的身份验证,然后使用sts:aspect-role升级到其他帐户

我想将多租户SaaS的AWS资源分离到AWS组织下的单独帐户中

  • 我有多个OU,按功能划分,例如日志、审计、计算。我将有与每个OU关联的SCP
  • 每个租户在每个OU下都有一个帐户,这意味着当我添加新租户时,每个帐户将继承该OU的相应SCP
为了使开发人员能够构建平台并能够调试正在运行的系统,我想使用一种中心辐射式方法来使用联邦IdP进行访问控制,类似于这里描述的方法:

具体来说,我将拥有一个绑定到Okta的
身份
帐户。用户将通过此帐户的身份验证,然后使用
sts:aspect-role
升级到其他帐户中的角色。请注意,我需要一个单独的
identity
帐户,而不是让用户通过组织中
master
帐户的身份验证(因此,在组织中,我们有
master
identity
帐户,以及每个帐户的OU)

为了以编程方式创建新租户,我需要创建租户的帐户并将其放入正确的OU中,因此这需要在
主帐户中完成。我可以在
master
帐户中创建一个角色,并让开发人员从
identity
帐户中承担该角色

如何在新帐户中创建角色,开发人员可以从
identity
帐户中承担这些角色?成员帐户有一个自动创建的名为
OrganizationAccountAccessRole
的角色(请参见),但该角色被设置为只能从主帐户访问,并允许访问该帐户中的所有内容。如何使
identity
帐户中的开发人员能够以编程方式创建新帐户及其角色,而无需授予此类全能权限(他们执行此任务的权限不应超过必要的权限)。我不认为我可以从
身份
帐户中担任
帐户的角色,然后再担任第三个帐户的角色

编辑:我真正感兴趣的是解决实现我描述的解决方案所需的步骤/配置的答案。

Cloudformation解决了这个问题

基本上,这些步骤是:

  • 有权部署与父帐户(您从中部署)角色具有信任关系的资源的

  • 在父帐户中创建堆栈集,并将Cloudformation模板部署到选定帐户或组织单位(OU)或整个组织中


  • StackSets支持AWS组织,因此您可以选择OU,而不是选择单个帐户。

    我想提出一个优雅的解决方案是使用该产品,它允许您创建和管理已批准在AWS环境中使用的服务目录。事实上,可以自定义中描述的设置以实现所需。它提供了一个创建Account Builder产品的示例,该产品在由最终用户启动时使用AWS Lambda脚本来:

  • 提供AWS会员帐户
  • 承担客户的组织角色
  • 使用CloudFormation模板自定义帐户(在您的情况下,创建其他IAM角色)
  • 您可以进一步对其进行自定义,甚至在完成时删除组织角色帐户

    提供了Lambda函数的源代码以及CloudFormation模板,您可以对其进行调整,以生成所需的确切行为

    希望这有帮助