对 Amazon S3 的访问权限 - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

对 Amazon S3 的访问权限

您可以使用基于身份的策略、存储桶资源策略、访问点策略或上述内容的任意组合授予对 Amazon S3 位置的访问权限。当参与者与 Athena 交互时,其权限会通过 Athena 传递,以确定 Athena 可以访问的内容。这意味着用户必须具有 Amazon S3 存储桶的访问权限,才能使用 Athena 进行查询。

每当您使用 IAM policy 时,请确保遵循 IAM 最佳实践。有关更多信息,请参阅《IAM 用户指南》中的 IAM 安全最佳实践

当您在策略中配置 aws:SourceIp 时,Athena 将使用您指定的 IP 地址访问 Amazon S3 存储桶。您无法根据 aws:SourceVpcaws:SourceVpce 条件键限制或允许对 Amazon S3 资源的访问。

Amazon S3 访问点和访问点别名

如果您在 Amazon S3 存储桶中拥有共享数据集,则维护单个存储桶策略以管理数百个使用案例的访问权限可能会非常困难。

Amazon S3 存储桶访问点有助于解决此问题。一个存储桶可以有多个访问点,每个访问点都有一个策略,能够以不同方式控制对存储桶的访问。

对于您创建的每个访问点,Amazon S3 都会生成一个代表访问点的别名。由于别名采用 Amazon S3 存储桶名称格式,因此您可以在 Athena 中 CREATE TABLE 语句的 LOCATION 子句中使用别名。然后,Athena 对存储桶的访问由别名所代表的访问点策略控制。

有关更多信息,请参阅《Amazon S3 用户指南》中的 Amazon S3 中的表位置使用访问点

使用 CalledVia 下文键

为了增加安全性,您可以使用 aws:CalledVia 全局条件上下文键。aws:CalledVia 键包含链中代表主体发出请求的每个服务的有序列表。通过为 aws:CalledVia 上下文键指定 Athena 服务主体名称 athena.amazonaws.com,您可以将请求限制为仅从 Athena 发出的请求。有关更多信息,请参阅将 Athena 与 CalledVia 上下文键结合使用

其他资源

有关如何授予 Amazon S3 访问权限的详细信息和示例,请参阅以下资源: