本节中描述的访问工作流仅在您对已注册到 Lake Formation 的 Amazon S3 位置、数据目录和元数据对象运行 Athena 查询时才适用。有关更多信息,请参阅《AWS Lake Formation 开发人员指南》中的 注册数据湖。除注册数据之外,Lake Formation 管理员还可应用以下 Lake Formation 权限:授予或撤消对数据目录、AWS Glue Data Catalog 或 Amazon S3 中数据位置中元数据的访问权限。有关更多信息,请参阅《AWS Lake Formation 开发人员指南》中的 元数据和数据的安全性和访问控制。
每次 Athena 主体(用户、组或角色)对使用 Lake Formation 注册的数据运行查询时,Lake Formation 都会验证该主体是否对数据库、表和数据来源位置(视具体情况)具有查询所需的适合 Lake Formation 权限。如果委托人具有访问权限,Lake Formation 会将临时凭据发送给 Athena,然后查询运行。
下图展示了凭证发送过程如何在 Athena 中在逐个查询的基础上,对注册到 Lake Formation 的 Amazon S3 位置或数据目录中的表进行假设的 SELECT
查询:

-
委托人在 Athena 中运行
SELECT
查询。 -
Athena 分析查询并检查 Lake Formation 权限,以查看该委托人是否已被授予对该表和表列的访问权限。
-
如果委托人具有访问权限,Athena 将从 Lake Formation 请求凭证。如果委托人没有访问权限,则 Athena 发出拒绝访问错误。
-
Lake Formation 将向 Athena 颁发凭证,以便在从 Amazon S3 或该目录读取数据时使用,同时还将发送允许列的列表。
-
Athena 将使用 Lake Formation 临时凭证从 Amazon S3 或该目录查询数据。在查询完成后,Athena 将丢弃凭证。