amazon-web-services - 通过角色连接到 2 个不同 AWS 账户的资源
问题描述
考虑 2 个 AWS 账户 A(其他团队)和 B(我的)对于我的用例,我必须轮询 A 的 AWS 账户中的队列以获取有效负载并在 B 中执行数据库操作。为此,我在 B 中创建了一个角色访问我的数据库 + A 的帐户 ID 作为信任关系。同样,A 创建了一个角色,用于授予对 A + 添加 B 中的队列的访问权限作为信任关系。
执行所有轮询 + 数据库操作的代码将驻留在我的帐户 (B) 中的 EC2 上。现在,我如何使用有效负载并从角色的角度执行操作。我的理解正确吗?
- 担任角色 A
- 轮询配置队列,从 SQS 获取 JSON 负载
- 担任角色 B
- 在 Oracle RDS 中执行数据库操作
- 担任角色 A
- 将响应返回到响应 SQS
- 在配置队列 SQS 上再次开始轮询
仅供参考:我正在使用 Python + Boto3 执行上述操作
解决方案
假装一切都发生在您自己的帐户(帐户-B)中。
您将为您的代码提供一组凭证(一个 IAM 用户,或者,如果代码在 Amazon EC2 实例上运行,您将向该实例分配一个 IAM 角色),它可以用来访问账户 B 中的必要资源. 所以,那里没有问题。
唯一的附加要求是您希望在账户 A 中访问 Amazon SQS。碰巧您可以直接向授予跨账户访问权限的 Amazon SQS 队列添加权限。
请参阅:Amazon SQS 的 IAM 策略的基本示例 - Amazon Simple Queue Service
因此,您实际上不需要承担任何角色。只需使用分配给您的代码的普通凭证,并向 SQS 队列添加权限以允许该特定 IAM 用户或 IAM 角色使用该队列。
推荐阅读
- python - 如何在csv的单元格中列出列表中的每个项目?
- java - 从 jni 从 java 枚举中检索值
- c++ - 现代 c++ 中数组的正确容器是什么
- r - 在 ireports (RMarkdown) 模板中对齐整个文档
- c# - 将 ITestOutputHelper 与 Selenium、xUnit 和 C# 一起使用
- java - 除非创建对象,否则不能在同一目录中使用 java 文件
- azure - 通过 API 在 Azure ADB2C 上检索扩展属性
- elixir - PhpStorm:无法自动完成以在 .eex 文件中工作
- ios - AppClip AppStore 审核被拒 - Spinner 无限旋转
- web-crawler - Puppeteer Crawler 大型爬行