amazon-web-services - 如何确保 Athena 生成具有 bucket-owner-full-control 的 S3 对象
问题描述
我们(帐户 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 的功能。但是,两种解决方法是可能的
不要让账户 A 在账户 B 中担任角色,而是让账户 B 授予账户 A 的账户根/角色以访问账户 B 的 Athena。那么Account A就可以使用自己的角色/账户查询Account B中的数据了,Account A仍然可以访问到结果,因为Account A是object owner。
让 S3 流式 lambda 监听输出 S3 存储桶。对象进入后,使用SetObjectACL授予对对象的 bucket-owner-full-control。
推荐阅读
- c++ - 如何在 std::transform 的向量中使用其他值?
- sql - DynamoDB ItemCount 替代品
- facebook - 如何在连接到代理时阻止 Watson Assistant 回复客户
- c# - 将 ASP.NET Core 3.1 身份与本地 AD(不是 Azure)集成
- node.js - X-Content-Type-Options 在 Heroku 上使用 Node 阻止 CSS
- google-chrome-extension - chrome.runtime.onMessage 侦听器在单个 sendMessage 调用上多次触发
- matlab - 如何定义跨 3 个维度的功率谱?
- python - 无法更改字典元素
- c# - 用于获取远程文件大小的 Httpclient MethodNotAllowed 405
- web-component - 模板配置在 dist 中生成的文件不能独立工作