我想将多租户SaaS的AWS资源分离到AWS组织下的单独账户中。
为了使开发人员能够构建平台并能够调试正在运行的系统,我想使用中心辐射型方法使用联合IdP进行访问控制,类似于此处所述:{{ 3}}。
具体地说,我将有一个绑定到Okta的identity
帐户。用户将对此帐户进行身份验证,然后使用sts:assume-role
升级为其他帐户中的角色。请注意,我需要一个单独的identity
帐户,并且没有用户对组织中的master
帐户进行身份验证(因此,在组织中,我们拥有master
和identity
帐户,以及每个OU都有各自的帐户。
为了以编程方式创建新的承租人,我需要创建承租人的帐户并将其放置在正确的OU中,因此需要在master
帐户中完成。为此,我可以在master
帐户中创建一个角色,然后让开发人员从identity
帐户中扮演该角色。
如何在开发人员可以从identity
帐户承担的新帐户中创建角色?成员帐户具有自动创建的名为OrganizationAccountAccessRole
的角色(请参见https://segment.com/blog/secure-access-to-100-aws-accounts/),但是该角色被设置为只能从主帐户访问,并且可以访问该帐户中的一切 。如何在identity
帐户中使开发人员能够以编程方式创建新帐户及其中的角色,而无需授予这种无所不能的权限(他们应该没有更多的权限来执行此任务)。我认为我不能在master
帐户的identity
帐户中扮演角色,然后再在第三个帐户中扮演角色?
编辑:我真的只对解决实现我描述的解决方案所需的步骤/配置的答案感兴趣。
答案 0 :(得分:0)
Cloudformation StackSets解决了这个问题。
基本上,这些步骤是:
Set up roles in the child accounts有权部署与父帐户(您要从其部署)的信任关系的资源
在父帐户中创建StackSet并将Cloudformation模板部署到其中,以将其存储到选定的帐户或组织单位(OU)或整个组织
StackSets支持AWS Organizations,因此您可以选择OU而不是选择单个帐户。
答案 1 :(得分:0)
我会提出一个优雅的解决方案是使用AWS Service Catalog产品,该产品允许您创建和管理已批准在AWS环境中使用的服务目录。实际上,this AWS blog post中描述的设置可以自定义以实现所需的设置。它提供了一个创建Account Builder产品的示例,该产品在最终用户启动时使用AWS Lambda脚本执行以下操作:
您可以进一步对其进行自定义,甚至在完成后删除“组织角色”帐户。
提供了Lambda函数的源代码以及CloudFormation模板,您可以对其进行调整以产生所需的确切行为。
希望这会有所帮助。