如何从EC2服务在不同的AWS账户中创建/访问多个Dynamo DB表?

莫希特·穆萨迪(Mohit musaddi)

用例是:

  1. 用户希望使用我的服务在其AWS账户中创建Dynamo DB表。这是可选的,取决于用户,我们还必须在我们的AWS账户中创建dynamo db表。

  2. 现在,用户将使用我的服务将数据和所有操作放入他/她的AWS账户中创建的Dynamo DB表中。

我试过的

用户可以创建IAM角色,然后我们可以切换角色,然后访问dynamo DB服务并执行所有操作,但是在EC2中进行操作时,我们可以一次承担多个角色吗?将会有多个用户。这对多个用户可行吗?

在这种情况下,用户需要扮演一个角色,然后我们需要承担一个角色,为了减少用户,是否有可能在我们的AWS账户中创建了IAM用户,然后“用户”只需要将我们的IAM用户列入白名单,那就好了,也许我们可以为此使用访问密钥和秘密密钥。

实现我们的目标是否可行,可能的解决方案是什么?

贾莫德

每个用户应在其AWS账户中创建一个跨账户IAM角色,该角色可以由您账户中的IAM角色承担。您需要与每个用户共享详细信息,以便他们可以正确设置此IAM角色,并且他们需要与您共享IAM角色的ARN。您可以通过预先创建具有正确权限的示例IAM策略并向他们记录该策略来为他们提供帮助,以便他们可以将其复制/粘贴到其帐户中的新策略中。您还需要同意共享的DynamoDB表名称(最好在每个帐户中都使用相同的名称)。

使用IAM角色启动EC2实例(该角色允许访问主DynamoDB表,并有权在用户帐户中担任角色)。根据需要,您的应用程序可以承担用户帐户中的相关角色,并使用第二组(STS)凭据,使用您选择的AWS开发工具包创建一个新的服务对象。因此,现在您有了1 + N个服务对象:1个用于主帐户,N个用于您要使用的N个用户帐户。

您正在使用Node.js,在其中构建DynamoDB服务对象的方式如下:

const options = { region: abc, credentials: xyz };    
const dynamodb = new AWS.DynamoDB(options);

请勿为此使用IAM用户-而是使用角色。不要编写带有凭据的配置文件-将实例配置文件用于EC2实例,并使用假定的跨帐户IAM角色访问用户表。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章