我正在尝试将账户 A 存储桶中的 S3 数据加载到账户 B 中的 RDS 实例中。我无法使用资源策略。只需使用 IAM 角色即可完成此操作。
我在账户 A 中创建了一个角色,该角色有权访问 S3 存储桶。 我在账户 B 中创建了一个角色,它允许从账户 A 代入角色。
如何使用它们将数据从账户 A 加载到账户 B?
您需要编写一个自定义加载程序,因为您需要同时承担 2 个角色。
一种方法是创建 2 个通过管道传输数据的程序。
$ read_bucket | write_rds
read_bucket脚本将代入账户 A 角色并从存储桶中读取内容。 然后,它会将数据打印到 stdout。
write_rds脚本将承担账户 B 角色,从 stdin 读取内容,然后写入 RDS。
您可以在程序内部完成所有操作,因为当您担任角色时,您会返回一组临时凭证,这些凭证包含在每个 API 请求中。 这是另一个专门针对临时凭证的答案。