管理 Lake Formation 和 Athena 用户权限 - Amazon Athena
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

管理 Lake Formation 和 Athena 用户权限

Lake Formation 发送凭证以查询向 Lake Formation 注册的 Amazon S3 数据存储。如果您以前使用过 IAM 策略来允许或拒绝读取 Amazon S3 中的数据位置的权限,则可以改用 Lake Formation 权限。但是,其他 IAM 权限仍然是必需的。

以下各节总结了使用 Athena 查询在 Lake Formation 中注册的数据所需的权限。有关更多信息,请参阅 AWS Lake Formation Developer Guide 中的 AWS Lake Formation 中的安全性

面向 Lake Formation 和 Athena 的基于身份的权限

使用 Athena 查询向 Lake Formation 注册的数据的任何人都必须有一个 IAM 权限策略,此权限允许执行 lakeformation:GetDataAccess 操作。AmazonAthenaFullAccess 托管策略 允许此操作。如果您使用内联策略,请务必更新权限策略以允许此操作。

在 Lake Formation 中,数据湖管理员有权创建元数据对象(如数据库和表),向其他用户授予 Lake Formation 权限以及注册新的 Amazon S3 位置。要注册新位置,需要具有 Lake Formation 的服务相关角色的权限。有关更多信息,请参阅 AWS Lake Formation 开发人员指南 中的创建数据湖管理员Lake Formation 的服务相关角色权限

Lake Formation 用户可以使用 Athena,通过数据湖管理员授予他们的 Lake Formation 权限,查询数据库、表、表列和基础 Amazon S3 数据存储。用户不能创建数据库或表,也不能向 Lake Formation 注册新的 Amazon S3 位置。有关更多信息,请参阅 AWS Lake Formation 开发人员指南中的创建数据湖用户

在 Athena 中,基于身份的权限策略(包括 Athena 工作组的权限策略)仍然控制对 AWS 帐户用户的 Athena 操作的访问。此外,可以通过 Athena 驱动程序提供的基于 SAML 的身份验证来提供联合访问。有关更多信息,请参阅使用工作组控制查询访问和成本 用于访问工作组的 IAM 策略启用对 Athena API 的联合身份访问

有关更多信息,请参阅 AWS Lake Formation Developer Guide 中的授予 Lake Formation 权限

针对 Athena 查询结果位置的 Amazon S3 权限

The query results locations in Amazon S3 for Athena cannot be registered with Lake Formation. Lake Formation permissions do not limit access to these locations. Unless you limit access, Athena users can access query result files and metadata when they do not have Lake Formation permissions for the data. To avoid this, we recommend that you use workgroups to specify the location for query results and align workgroup membership with Lake Formation permissions. You can then use IAM permissions policies to limit access to query results locations. For more information about query results, see 使用查询结果、输出文件和查询历史记录.

针对查询历史记录的 Athena 工作组成员身份

Athena query history exposes a list of saved queries and complete query strings. Unless you use workgroups to separate access to query histories, Athena users who are not authorized to query data in Lake Formation are able to view query strings run on that data, including column names, selection criteria, and so on. We recommend that you use workgroups to separate query histories, and align Athena workgroup membership with Lake Formation permissions to limit access. For more information, see 使用工作组控制查询访问和成本.

针对数据的 Lake Formation 权限

除了使用 Lake Formation 的基准权限之外,Athena 用户还必须具有访问他们查询的资源的 Lake Formation 权限。这些权限由 Lake Formation 管理员授予和管理。有关更多信息,请参阅 AWS Lake Formation 开发人员指南中的对元数据和数据的安全性和访问控制

写入 Amazon S3 位置的 IAM 权限

针对 Amazon S3 的 Lake Formation 权限不包括写入 Amazon S3 的权限。Create Table As Statements (CTAS) require write access to the Amazon S3 location of tables. To run CTAS queries on data registered with Lake Formation, Athena users must have IAM permissions to write to the table Amazon S3 locations in addition to the appropriate Lake Formation permissions to read the data locations. For more information, see 从查询结果创建表 (CTAS).

针对加密数据、元数据和 Athena 查询结果的权限

可以对向 Lake Formation 注册的 Amazon S3 中的基础源数据和 Data Catalog 中的元数据进行加密。在使用 Athena 查询向 Lake Formation 注册的数据时,Athena 处理查询结果加密的方式没有变化。有关更多信息,请参阅对 Amazon S3 中存储的查询结果进行加密

  • 加密源数据 – 支持对 Amazon S3 数据位置源数据进行 SSE-S3 和 CSE-KMS 加密。不支持 SSE-KMS 加密。查询已向 Lake Formation 注册的加密 Amazon S3 位置的 Athena 用户需要加密和解密数据的权限。有关要求的更多信息,请参阅针对 Amazon S3 中的加密数据的权限

  • 加密元数据 – 支持对 Data Catalog 中的元数据进行加密。对于使用 Athena 的委托人,基于身份的策略必须允许对用于加密元数据的密钥执行 "kms:GenerateDataKey""kms:Decrypt""kms:Encrypt" 操作。有关更多信息,请参阅 AWS Glue 开发人员指南 中的加密您的 Data Catalog针对 AWS Glue 数据目录中加密元数据的访问权限

外部账户中针对 Amazon S3 存储桶的基于资源的权限(可选)

An Athena user from one account can not query databases and tables in the Data Catalog of a different account, even when Lake Formation is used. To query an Amazon S3 data location in a different account, a resource-based IAM policy (bucket policy) must allow access to the location. For more information, see 跨账户访问. You can use Lake Formation to register an accessible bucket location in an external account with the Data Catalog in the local account.