元数据权限 - AWS Lake Formation

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

元数据权限

Lake Formation 提供对数据目录的授权和访问控制。当IAM角色从任何系统API调用数据目录时,数据目录会验证用户的数据权限,并且仅返回用户有权访问的元数据。例如,如果一个IAM角色只能访问数据库中的一个表,而担任该角色的服务或用户执行该GetTables操作,则无论数据库中有多少个表,响应都将只包含一个表。

默认设置 - IAMAllowedPrincipal 组权限

默认情况下, AWS Lake Formation将对所有数据库和表的权限设置为一个名为 IAMAllowedPrincipal 的虚拟组。该组独一无二,只显示在 Lake Formation 中。该IAMAllowedPrincipal组包括通过IAM委托人策略和 AWS Glue 资源策略有权访问数据目录资源的所有IAM委托人。如果针对数据库或表存在此权限,则将授予所有主体访问该数据库或表的权限。

如果您想提供对数据库或表的更精细的权限,请删除 IAMAllowedPrincipal 权限,之后 Lake Formation 会强制实施与该数据库或表关联的所有其他策略。例如,如果存在允许用户 A 使用 DESCRIBE 权限访问数据库 A 的策略,并且 IAMAllowedPrincipal 中含有所有权限,则用户 A 将继续执行所有其他操作,直到 IAMAllowedPrincipal 权限被撤销。

此外,默认情况下,在创建所有新数据库和表时,IAMAllowedPrincipal 组便拥有对这些数据库和表的权限。有两种配置可以控制这种行为。第一种是可为新创建的数据库启用此功能的账户和区域级别配置,第二种是数据库级别配置。要修改默认设置,请参阅更改默认权限模式或使用混合访问模式

授予权限

数据湖管理员可以向主体授予数据目录权限,以便主体可以创建和管理数据库和表,并且可以访问基础数据。

数据库和表级别权限

在 Lake Formation 中授予权限时,授予者必须指定要将权限授予的主体、要针对其授予权限的资源以及被授权者应有权执行的操作。对于 Lake Formation 中的大多数资源,主体列表和要针对其授予权限的资源都相似,但被授权者可以执行的操作因资源类型而异。例如,使用 SELECT 权限可以读取表,但对于数据库,则无法实施 SELECT 权限。CREATE_TABLE 权限可针对数据库实施,但不能针对表实施。

您可以使用两种方法授予 AWS Lake Formation 权限:

  • 命名资源方法 – 允许您在向用户授予权限时选择数据库和表名。

  • 基于 LF 标签的访问控制 (LF-TBAC) — 用户创建 LF 标签,将其与数据目录资源关联,授予对 LF 标签的Describe权限,将权限关联到单个用户,以及使用 LF 标签为不同的用户编写 LF 权限策略。此类基于 LF 标签的策略应用于所有与这些 LF 标签值关联的数据目录资源。

    注意

    LF 标签是 Lake Formation 所独有的。它们仅在 Lake Formation 中可见,不应与 AWS 资源标签混淆。

    LF-TBAC 是一项功能,允许用户将资源分组为用户定义的LF-Tags类别,并对这些资源组应用权限。因此,这是跨大量数据目录资源扩展权限的最佳方式。

    有关更多信息,请参阅 Lake Formation 基于标签的访问控制

当您向主体授予权限时,Lake Formation 会将权限作为该用户的所有策略的并集进行评估。例如,如果针对某主体有两项表策略,其中一项策略通过命名资源方法授予对列 col1、col2 和 col3 的权限,另一项策略通过 LF 标签向同一主体授予对同一表中 col5 和 col6 的权限,则有效权限将是对 col1、col2、col3、col5 和 col6 的权限的并集。这还包括数据筛选条件和行。

数据位置权限

数据位置权限使非管理用户能够在特定的 Amazon S3 位置创建数据库和表。如果用户尝试在他们无权创建数据库或表的位置创建数据库或表,则创建任务将失败。这是为了防止用户在数据湖中的任意位置创建表,并控制这些用户可以在何处读取和写入数据。在用于创建数据库的 Amazon S3 位置创建表时,存在隐式权限。有关更多信息,请参阅 授予数据位置权限

创建表和数据库权限

默认情况下,非管理用户无权创建数据库,也无权在数据库中创建表。对于数据库的创建,是使用 Lake Formation 设置在账户级别控制的,因此只有获得授权的主体才能创建数据库。有关更多信息,请参阅 创建数据库。要创建表,主体需要对创建该表所在的数据库拥有 CREATE_TABLE 权限。有关更多信息,请参阅 创建表

隐式和显式权限

Lake Formation 根据角色和角色执行的操作提供隐式权限。例如,数据湖管理员可自动获得对数据目录中所有资源的 DESCRIBE 权限、对所有位置的数据位置权限、在所有位置创建数据库和表的权限以及对任何资源的 GrantRevoke 权限。数据库创建者自动获得对他们创建的数据库的所有数据库权限,而表创建者则获得对他们创建的表的所有权限。有关更多信息,请参阅 隐式 Lake Formation 权限

可授予的权限

数据湖管理员能够通过提供可授予的权限将权限管理任务委派给非管理用户。当主体获得对资源的可授予权限和一组权限时,该主体能够向其他主体授予对该资源的权限。