用例是:
用户希望使用我的服务在其AWS账户中创建Dynamo DB表。这是可选的,取决于用户,我们还必须在我们的AWS账户中创建dynamo db表。
现在,用户将使用我的服务将数据和所有操作放入他/她的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] 删除。
我来说两句