元数据权限 - Amazon Lake Formation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

元数据权限

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

默认设置-IAMAllowedPrincipal 群组权限

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

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

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

授予权限

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

数据库和表级权限

当您在 Lake Formation 中授予权限时,授予者必须指定要向其授予权限的委托人、要授予权限的资源以及被授权者应有权执行的操作。对于 Lake Formation 中的大多数资源,主体列表和要授予权限的资源类似,但是被授权者可以执行的操作因资源类型而异。例如,表SELECT具有读取表的SELECT权限,但不允许对数据库具有权限。该CREATE_TABLE权限对数据库是允许的,但不允许在表上使用。

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

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

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

    注意

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

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

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

当您向委托人授予权限时,Lake Formation 会将权限评估为该用户的所有策略的组合。例如,如果一个委托人的表上有两个策略,其中一个策略通过命名的资源方法向 col1、col2 和 col3 列授予权限,另一个策略向 col5 授予对同一个表的权限,并通过 LF-Tags 向 col6 授予权限,则有效权限将是权限的并集,即 col1、col2、col3、col5 和 col6。这还包括数据筛选器和行。

数据位置权限

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

创建表和数据库权限

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

隐式和显式权限

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

可授予的权限

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