我们(账户 A)希望以编程方式在不同的 aws 账户(账户 B)中触发 athena 查询(startQueryExecution),我们使用假定的角色来实现它。 athena 查询完成后,我们期望结果应写入我们的 aws 账户 s3 存储桶(账户 A)。我们通过设置双方 IAM 策略以允许 B 写入 A 的 S3 存储桶来设法做到这一点。
但是,帐户 A 中的 S3 对象似乎仍然由帐户 B 拥有,帐户 A 中的用户/角色无法访问这些对象。
我正在考虑解决这个问题的任何方法,但我找不到任何如何执行此操作的示例
以某种方式确保 athena 使用 acl=bucket-owner-full-control 写入 s3
创建对象后,以某种方式将 s3 对象 acl 更改为 Bucket-owner-full-control
任何想法?
@user273098 很好奇你是如何找到答案的
Athena 目前不提供指定 ACL 的功能。但是,有两种解决方法是可能的
让账户 B 授予账户 A 的账户根/角色访问账户 B 的 Athena 的权限,而不是让账户 A 承担账户 B 中的角色。然后账户A可以使用自己的角色/账户来查询账户B中的数据,并且结果仍然可以被账户A访问,因为账户A是对象所有者。
让 S3 流式 lambda 监听输出 S3 存储桶。一旦对象进来,使用设置对象ACL授予存储桶所有者对该对象的完全控制权。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)