我需要在属于第三方的一系列AWS账户的S3存储桶中获取一些CSV数据文件;其他帐户的所有者在每个帐户中创建了一个角色,授予我访问这些文件的权限;我可以使用AWS Web控制台(登录到我自己的帐户)切换到每个角色并获取文件 . 我一次一个,切换到每个帐户的角色,然后获取该帐户的文件,然后转到下一个帐户并获取这些文件,依此类推 .
我想自动化这个过程 .
看起来AWS Glue可以做到这一点,但我遇到了权限问题 .
我需要做的是创建权限,以便AWS Glue抓取工具可以切换到正确的角色(属于其他每个AWS账户),并从这些账户的S3存储桶中获取数据文件 .
这是可能的,如果可以,我该如何设置它? (例如,需要哪些IAM角色/权限?)如果可能,我宁愿将更改限制在我自己的帐户中,而不是要求其他帐户所有者自行更改 .
如果使用Glue不可能,还有其他一些简单的方法可以使用不同的AWS服务吗?
谢谢!
(我已经进行了一系列的尝试,但我一直都弄错了 - 我的尝试远远不对,我在这里发布细节没有意义) .
3 回答
使用AWS CLI,您可以为要切换到的每个角色创建命名配置文件,然后从CLI中引用它们 . 然后,您可以链接这些调用,引用每个角色的命名配置文件,并将它们包含在脚本中以自动执行该过程 .
从Switching to an IAM Role (AWS Command Line Interface)
您可以使用AWS lambda和Cloudwatch Rules实现此目的 .
您可以创建一个附加了角色的lambda函数,让我们调用此角色 - Role A ,具体取决于您可以为每个帐户创建1个函数的帐户数量,并在cloudwatch中创建一个规则来触发所有功能,或者您可以创建1所有帐户的功能(谨慎对待AWS Lambda的limitations) .
正在创建 Role A
此外,您还需要确保 Role A 的信任关系政策文档中存在与所有帐户的信任关系 .
将 Role A 附加到将要运行的lambda函数 . 您可以使用serverless进行开发 . 现在你的lambda函数附加了 Role A ,并且 Role A 对其他帐户中创建的角色具有
sts:AssumeRole
权限 .假设您已在lambda代码中为1个帐户创建了1个函数,则必须先使用STS切换到其他帐户的角色并获取临时凭据,然后在获取所需数据之前将这些凭据传递给S3选项 .
如果您为所有帐户创建了1个函数,则可以在数组中使用角色ARN并对其进行迭代,再次执行此操作时请注意AWS lambda的限制 .
是的,您可以通过以下步骤使用Glue自动化您的方案: