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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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

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

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

下图阐明了上述流程。


                Lake Formation 用户访问工作流。

下图根据在 Lake Formation 中注册了 Amazon S3 位置的表格上的 query-by-querySELECT假设查询,显示了凭证自动售卖在 Athena 中的工作原理:


                用于 Athena 表上查询的凭证售卖工作流。
  1. 委托人在 Athena 中运行 SELECT 查询。

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

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

  4. Lake Formation 将向 Athena 颁发凭据,以便在从 Amazon S3 读取数据时使用,同时还将发送允许的列列表。

  5. Athena 将使用 Lake Formation 临时凭证从 Amazon S3 查询数据。在查询完成后,Athena 将丢弃凭证。