java - 使用假设角色同时访问属于不同帐户的两个 dynamodb 表不起作用
问题描述
我有一个在 ECS 中运行的 java 应用程序,我想从帐户 1(source_table)中的表中读取数据并将其写入帐户 2(destination_table)中的表。我创建了两个具有不同凭据提供程序的 dynamodb 客户端 - 对于 source_table 客户端,我使用的STSAssumeRoleSessionCredentialsProvider
是帐户 1 中角色的 arn;对于我正在使用的目标客户端DefaultAWSCredentialsProviderChain
。
假设角色位有效,我可以使用源客户端进行读取,但使用目标客户端不起作用 - 在尝试写入 destination_table 时它仍然尝试使用假设的角色凭据,并且失败并出现未经授权的错误(假设角色是无权执行放置项目)。
我尝试EC2ContainerCredentialsProviderWrapper
在目标客户端上使用,但同样的错误。
这应该工作吗?还是在后台共享凭据,这使得两个不同AWSCredentialProvider
的 s 不可能像这样同时运行?
我注意到这个答案使用静态凭据并且显然有效,所以我不知道为什么这不起作用。
解决方案
我在 AWS 支持的帮助下想通了。这是我对账户 2 中角色的 IAM 配置的问题。我被错误消息误导了,上面写着“假定角色无权执行放置项目”,而实际上我的原始账户 2 角色本身无法这样做.
推荐阅读
- javascript - 在 Ubuntu 中从 Javascript 传递 Jar 参数
- scala - 如何在 Spark SQL 中合并两行?
- sql - 如何在 oracle apex 中验证两个选择列表
- python - 我是python编程的初学者。我不断收到 typeError: object() 没有参数,我不知道如何解决它。我应该怎么办?
- flutter - 如何在 Flutter 的 AlertDialog 上设置背景图像?
- java - 使用 OpenCSV 库会引发运行时异常 ListValuedMap 'Class not found'
- python - 如何使用 python 将终端输出打印到网格中的 tkinter 帧?
- ios - 如何根据设备屏幕调整 UICollectionViewCell 的大小
- java - 浮动变量 beign 更改而没有明确地归属
- c++ - C++ Karatsuba 长整数算法错误