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,然后查询运行。
下图阐明了上述流程。
下图显示凭证发送过程如何在 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 将丢弃凭证。