amazon-web-services - 如何确保 Athena 结果 S3 对象具有bucket-owner-full-control

标签 amazon-web-services amazon-s3 permissions amazon-athena

我们(账户 A)想使用编程方式在不同的 aws 账户(账户 B)中触发雅典娜查询(startQueryExecution),我们使用代入角色来实现它。 athena 查询完成后,我们期望结果应该写入我们的 aws 帐户 s3 存储桶(帐户 A)。我们设法通过设置双方 IAM 策略来允许 B 写入 A 的 S3 存储桶。

但是,帐户 A 中的 S3 对象似乎仍归帐户 B 所有,帐户 A 中的用户/角色无权访问这些对象。

我在想任何一种方法来解决这个问题,但我找不到任何如何做的例子

以某种方式确保 athena 使用 acl = bucket-owner-full-control 写入 s3
创建对象后,以某种方式将 s3 对象 acl 更改为存储桶所有者完全控制

任何的想法?

最佳答案

@user273098 很想知道你是如何找到答案的

Athena 当前不提供指定 ACL 的功能。但是,有两种解决方法是可能的

  • 不是让账户 A 承担账户 B 中的角色,而是让账户 B 授予账户 A 的账户根/角色对账户 B 的 Athena 的访问权限。那么账户A就可以使用自己的角色/账户在账户B中查询数据,结果仍然可以被账户A访问,因为账户A是对象所有者。
  • 让 S3 流式 lambda 监听输出 S3 存储桶。一旦对象进来,使用 SetObjectACL授予存储桶所有者对对象的完全控制权。
  • 关于amazon-web-services - 如何确保 Athena 结果 S3 对象具有bucket-owner-full-control,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56572459/

    相关文章:

    amazon-web-services - 从 Elastic Beanstalk 导出所有环境属性

    ruby-on-rails - 如何使用 CloudFront、Rails、Jammit 让 CDN 为暂存和生产环境工作

    php - 使用 shell_exec 发送电子邮件失败

    linux - Linux 的 Perl 脚本中的权限错误

    azure - Azure 文件的权限

    javascript - 需要使用 Node.js 在 AWS 上实现 5000 个并发 api 点击

    amazon-web-services - 如何使用cloudformation模板为不同的elasticbeanstalk应用程序环境使用相同的应用程序负载均衡器?

    amazon-web-services - 我可以使用 terraform 更新现有的 ec2 实例吗

    javascript - 我想将 s3 对象的字符串发送到客户端

    amazon-s3 - 在 Amazon S3 中实现重复数据删除文件存储的方法?