Lake Formation 基于标签的访问控制最佳实践和注意事项 - Amazon Lake Formation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Lake Formation 基于标签的访问控制最佳实践和注意事项

您可以创建、维护和分配 LF 标签以控制对数据目录数据库、表和列的访问。

使用 Lake Formation 基于标签的访问控制时,请考虑以下最佳实践:

  • 必须先预定义所有 LF 标签,然后才能将其分配给数据目录资源 或授予给主体。

    数据湖管理员可以通过创建具有所需 IAM 权限的 LF 标签创建者来委派标签管理任务。数据工程师和分析师决定 LF 标签的特征和关系。然后,LF 标签创建者在 Lake Formation 中创建和维护 LF 标签。

  • 您可以将多个 LF 标签分配给数据目录资源。只能将特定键的一个值分配给特定资源。

    例如,您可以将 module=Ordersregion=Westdivision=Consumer 等分配给数据库、表或列。您无法分配 module=Orders,Customers

  • 创建资源时,您无法将 LF 标签分配给资源。您只能将 LF 标签添加到现有资源。

  • 您可以向主体授予 LF 标签表达式,而不仅仅是单个 LF 标签。

    LF 标签表达式如下所示(使用伪代码)。

    module=sales AND division=(consumer OR commercial)

    被授予此 LF 标签表达式的主体只能访问分配了 module=salesdivision=consumerdivision=commercial 的数据目录资源(数据库、表和列)。如果您希望主体能够访问具有 module=salesdivision=commercial 的资源,请不要将两者都包含在同一个授予中。进行两次授予,一次用于 module=sales,一次用于 division=commercial

    最简单的 LF 标签表达式仅包含一个 LF 标签,例如 module=sales

  • 被授予对具有多个值的 LF 标签的权限的主体可以使用其中任一值访问数据目录资源。例如,如果用户被授予 key=module 和 values=orders,customers 的 LF 标签,则该用户有权访问分配了 module=ordersmodule=customers 的资源。

  • 您需要具有 Grant with LF-Tag expressions 权限,才能使用 LF-TBAC 方法授予对数据目录资源的数据权限。数据湖管理员和 LF 标签创建者会隐式接收此权限。具有 Grant with LFTag expressions 权限的主体可以使用以下方式授予对资源的数据权限

    • 命名资源方法

    • LF-TBAC 方法,但只能使用相同的 LF 标签表达式

      例如,假设数据湖管理员进行以下授予(使用伪代码)。

      GRANT (SELECT ON TABLES) ON TAGS module=customers, region=west,south TO user1 WITH GRANT OPTION

      在这种情况下,user1 可以使用 LF-TBAC 方法向其他主体授予对表的 SELECT 权限,但只能使用完整的 LF 标签表达式 module=customers, region=west,south

  • 如果同时使用 LF-TBAC 方法和命名资源方法向主体授予对资源的权限,则主体对资源具有的权限是这两种方法授予的权限的联合。

  • Lake Formation 支持跨账户授予对 LF 标签的 DESCRIBEASSOCIATE 权限,以及支持使用 LF-TBAC 方法跨账户授予对数据目录资源的权限。在这两种情况下,本金都是 Amazon 账户 ID。

    注意

    Lake Formation 支持使用 LF-TBAC 方法向组织和组织单位进行跨账户授予。要使用此功能,您需要将跨账户版本设置更新为版本 3

    有关更多信息,请参阅Lake Formation 中的跨账户数据共享

  • 在一个账户中创建的数据目录资源只能使用在同一账户中创建的 LF 标签进行标记。在一个账户中创建的 LF 标签不能与另一个账户中的共享资源关联。

  • 使用基于 Lake Formation 标签的访问控制 (LF-TBAC) 授予跨账户访问数据目录资源的权限,需要为您的账户添加数据目录资源策略。 Amazon 有关更多信息,请参阅先决条件

  • LF 标签键和 LF 标签值的长度不能超过 50 个字符。

  • 可以分配给数据目录资源的 LF 标签的最大数量为 50。

  • 以下限制是软限制:

    • 可以创建的 LF 标签的最大数量为 1000。

    • 可以为 LF 标签定义的值的最大数量为 1000。

  • 标签、键和值在存储时将全部转换为小写。

  • 只能将 LF 标签的一个值分配给特定资源。

  • 如果通过一次授予向主体授予多个 LF 标签,则该主体只能访问具有所有 LF 标签的数据目录资源。

  • Amazon Glue ETL 作业需要完整表访问权限。如果 Amazon Glue ETL 角色无法访问表中的所有列,则作业将失败。可以在列级别应用 LF-Tag,但这可能会导致 Amazon Glue ETL 角色失去对表的访问权限并使作业失败。使用数据筛选条件进行列和/或行筛选不受此限制的影响。

  • 如果 LF 标签表达式计算仅导致访问表列的子集,但在匹配时授予的 Lake Formation 权限是需要完整列访问权限的权限之一,即 AlterDropInsertDelete,则不会授予这些权限。相反,仅会授予 Describe 权限。如果授予的权限为 All (Super),则仅会授予 SelectDescribe 权限。

  • 通配符不与 LF 标签一起使用。要将 LF 标签分配给某个表的所有列,请将 LF 标签分配给该表,并且表中的所有列都将继承该 LF 标签。要将 LF 标签分配给某个数据库中的所有表,请将 LF 标签分配给该数据库,并且数据库中的所有表都将继承该 LF 标签。