通过使用 AWS Lake Formation,您可以在使用 Athena 查询来读取存储在 Amazon S3 中的数据或通过联合数据来源访问的数据时定义和实施数据库、表和列级访问策略。Lake Formation 为存储在 Amazon S3 或联合数据目录中的数据提供授权和治理层。您可以使用 Lake Formation 中的权限层次结构来授予或撤消读取数据目录对象(如数据库、表和列)的权限。Lake Formation 简化了权限管理,并允许您为数据实现精细的访问控制 (FGAC)。
您可以使用 Athena 同时查询向 Lake Formation 注册的数据和未向 Lake Formation 注册的数据。
使用 Athena 从注册到 Lake Formation 的 Amazon S3 位置或数据目录查询源数据时,将适用 Lake Formation 权限。当您创建指向已注册的 Amazon S3 数据位置或数据目录的数据库和表时,也将适用 Lake Formation 权限。
写入对象时不适用 Lake Formation 权限,查询未注册到 Lake Formation 的数据或元数据时也不适用 Lake Formation 权限。对于未注册到 Lake Formation 的源数据和元数据,访问权限由 IAM 权限策略和 AWS Glue 操作决定。Amazon S3 中的 Athena 查询结果位置无法向 Lake Formation 注册,而 Amazon S3 的 IAM 权限策略将控制访问权限。此外,Lake Formation 权限不适用于 Athena 查询历史记录。您可以使用 Athena 工作组来控制对查询历史记录的访问。
有关 Lake Formation 的更多信息,请参阅 Lake Formation 常见问题
将 Lake Formation 权限应用于现有数据库和表
如果您是首次使用 Athena 并且使用 Lake Formation 配置查询数据的访问权限,则无需配置 IAM 策略来确保用户可以读取数据和创建元数据。您可以使用 Lake Formation 管理权限。
不需要向 Lake Formation 注册数据和更新 IAM 权限策略。如果数据未注册到 Lake Formation,则具有相应权限的 Athena 用户可以继续查询未注册到 Lake Formation 的数据。
如果现有的 Athena 用户需要查询未注册到 Lake Formation 的 Amazon S3 数据,则可以更新 Amazon S3 以及 AWS Glue Data Catalog(如果适用)的 IAM 权限,以便您可以使用 Lake Formation 权限来集中管理用户访问权限。要获得读取 Amazon S3 数据位置的权限,您可以更新基于资源和基于身份的策略以修改 Amazon S3 权限。要访问元数据,如果您使用 AWS Glue 配置了用于精细访问控制的资源级策略,则可以改用 Lake Formation 权限来管理访问。
有关更多信息,请参阅《AWS Lake Formation 开发人员指南》中的 在 AWS Glue Data Catalog 中配置对数据库和表的访问 和 升级 AWS Lake Formation 模型的 AWS Glue 数据权限。