为何我用另一个账户查询存储桶时,在 Amazon Athena 中会遇到 Amazon S3 异常“拒绝访问,状态代码:403”?

上次更新日期:2021 年 7 月 22 日

我在使用 Amazon Athena 查询其他账户中的 Amazon Simple Storage Service (Amazon S3) 存储桶中的对象。存储桶中的一些对象归第三个账户所有。当我运行查询时,遇到 AmazonS3Exception“Access Denied with Status Code: 403”错误。

简短描述

当您尝试查询由其他 AWS 服务(例如 AWS CloudTrail、Amazon CloudFront 和 Amazon Virtual Private Cloud (Amazon VPC))写入的日志时,通常会发生此错误。这些服务会在 Amazon S3 中录入事件。存储桶拥有者对 S3 对象拥有完整访问权限。第二个账户对存储桶或对象没有所有权。正因如此,第二个账户在查询引用这些 S3 对象的 Athena 表时会收到访问被拒错误。

解决方法

转移 Amazon S3 对象的所有权无法实现。请改用以下任一方案: