Athena 如何访问向 Lake Formation 注册的数据 - Amazon Athena
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Athena 如何访问向 Lake Formation 注册的数据

本节中描述的访问工作流仅当对已向 Lake Formation 注册的 Amazon S3 位置和元数据对象运行 Athena 查询时才适用。有关更多信息,请参阅 AWS Lake Formation Developer Guide 中的注册数据湖。除了注册数据之外,Lake Formation 管理员还应用以下 Lake Formation 权限:这些权限授予或撤消对 Data Catalog 中的元数据和 Amazon S3 中的数据位置的访问权限。有关更多信息,请参阅 AWS Lake Formation Developer Guide 中的对元数据和数据的安全性和访问控制

当 Athena 委托人(用户、组或角色)每次对使用 Lake Formation 注册的数据运行查询时,Lake Formation 都会验证委托人是否对数据库、表和 Amazon S3 位置具有适合的 Lake Formation 权限来进行相应的查询。如果委托人具有访问权限,Lake Formation 会将临时凭据发送给 Athena,然后查询运行。

下图阐明了上述流程。

下图显示凭证发送过程如何在 Athena 中在逐个查询的基础上,对具有在 Lake Formation 中注册的 Amazon S3 位置的表进行假设的 SELECT 查询:

  1. 委托人在 Athena 中运行 SELECT 查询 。

  2. Athena 分析查询并检查 Lake Formation 权限,以查看该委托人是否已被授予对该表、表分区(如果适用)和表列的访问权限。

  3. 如果委托人具有访问权限,Athena 从 Lake Formation 请求凭证。如果委托人没有访问权限,则 Athena 发出拒绝访问错误。

  4. Lake Formation 向 Athena 发布从 Amazon S3 中读取数据和从 Data Catalog 中访问元数据时要使用的凭据。

  5. Lake Formation 将查询结果返回给 Athena。在查询完成后,Athena 将丢弃凭证。