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

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

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

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

下图阐明了上述流程。

Lake Formation 用户访问工作流。

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

用于 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 将丢弃凭证。