管理 LF 标签以实现元数据访问控制 - Amazon Lake Formation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

管理 LF 标签以实现元数据访问控制

要使用 Lake Formation 基于标签的访问控制 (LF-TBAC) 方法来保护数据目录资源(数据库、表和列),您可以创建 LF 标签,将其分配给资源,并向主体授予 LF 标签权限。

在将 LF 标签分配给数据目录资源或向主体授予权限之前,需要先定义 LF 标签。只有数据湖管理员或具有 LF 标签创建者权限的主体才能创建 LF 标签。

LF 标签创建者

LF 标签创建者是有权创建和管理 LF 标签的非管理员主体。数据湖管理员可以使用 Lake Formation 控制台或 CLI 添加 LF 标签创建者。LF 标签创建者具有隐式 Lake Formation 权限,可以更新和删除 LF 标签、将 LF 标签分配给资源,以及向其他主体授予 LF 标签权限和 LF 标签值权限。

通过 LF 标签创建者角色,数据湖管理员可以将标签管理任务(例如创建和更新标签键和值)委派给非管理员主体。数据湖管理员还可以向 LF 标签创建者授予可授予的 Create LF-Tag 权限。然后,LF 标签创建者可以向其他主体授予创建 LF 标签的权限。

您可以授予对 LF 标签的两种权限:

  • LF 标签权限 - Create LF-TagAlterDrop。创建、更新和删除 LF 标签需要这些权限。

    数据湖管理员和 LF 标签创建者隐式具有对其创建的 LF 标签的这些权限,并且可以向主体显式授予这些权限,以管理数据湖中的标签。

  • LF 标签键值对权限 - AssignDescribeGrant with LF-Tag expressions。需要这些权限才能将 LF 标签分配给数据目录数据库、表和列,以及使用 Lake Formation 基于标签的访问控制向主体授予对资源的权限。LF 标签创建者在创建 LF 标签时会隐式获得这些权限。

在获得 Create LF-Tag 权限并成功创建 LF 标签后,LF 标签创建者可以将 LF 标签分配给资源,并向其他非管理员主体授予 LF 标签权限(Create LF-TagAlterDrop),以管理数据湖中的标签。您可以使用 Lake Formation 控制台、API 或 Amazon Command Line Interface (Amazon CLI) 来管理 LF 标签。

注意

数据湖管理员具有隐式 Lake Formation 权限,可以创建、更新和删除 LF 标签、将 LF 标签分配给资源,以及向其他主体授予 LF 标签权限。

有关最佳实践和注意事项,请参阅 Lake Formation 基于标签的访问控制最佳实践和注意事项

LF 标签的生命周期

  1. LF 标签创建者 Michael 创建了一个 LF 标签 module=Customers

  2. Michael 向数据工程师 Eduardo 授予了对 LF 标签的 Associate 权限。授予 Associate 会隐式授予 Describe 权限。

  3. Michael 使用授予选项向 Eduardo 授予了对表 CustsSuper 权限,因此 Eduardo 可以将 LF 标签分配给该表。有关更多信息,请参阅将 LF 标签分配给数据目录资源

  4. Eduardo 将 LF 标签 module=customers 分配给表 Custs

  5. Michael 向数据工程师 Sandra 进行了以下授予(使用伪代码)。

    GRANT (SELECT, INSERT ON TABLES) ON TAGS module=customers TO Sandra WITH GRANT OPTION
  6. Sandra 向数据分析师 Maria 进行了以下授予。

    GRANT (SELECT ON TABLES) ON TAGS module=customers TO Maria

    Maria 现在可以对 Custs 表运行查询。

另请参阅

比较 Lake Formation 基于标签的访问控制与 IAM 基于属性的访问控制

基于属性的访问控制 (ABAC) 是一种基于属性定义权限的授权策略。在 Amazon 中,这些属性被称为“标签”。您可以将标签附加到 IAM 资源(包括 IAM 实体(用户和角色))以及 Amazon 资源。您可以为 IAM 委托人创建单个 ABAC 策略或者一小组策略。这些 ABAC 策略可设计为在主体的标签与资源标签匹配时允许操作。ABAC 在快速增长的环境中非常有用,并在策略管理变得繁琐的情况下可以提供帮助。

云安全和治理团队使用 IAM 为所有资源定义访问策略和安全权限,包括 Amazon S3 存储桶、Amazon EC2 实例以及您可以使用 ARN 引用的任何资源。IAM 策略定义了对数据湖资源的广泛(粗粒度)权限,例如,允许或拒绝 Amazon S3 存储桶或前缀级别或数据库级别的访问。有关 IAM ABAC 的更多信息,请参阅《IAM 用户指南》中的什么是适用于 Amazon 的 ABAC?

例如,您可以创建具有 project-access 标签键的三个角色。将第一个角色的标签值设置为 Dev,第二个为 Marketing,第三个为 Support。向资源分配具有适当值的标签。然后,您可以使用单个策略,在角色和资源标记了 project-access 的相同值时允许访问。

数据治理团队使用 Lake Formation 来定义对特定数据湖资源的精细权限。LF 标签分配给数据目录资源(数据库、表和列)并授予给主体。具有与资源的 LF 标签匹配的 LF 标签的主体可以访问该资源。Lake Formation 权限次要于 IAM 权限。例如,如果 IAM 权限不允许用户访问数据湖,则 Lake Formation 不会向该用户授予对该数据湖中任何资源的访问权限,即使主体和资源具有匹配的 LF 标签也是如此。

Lake Formation 基于标签的访问控制 (LF-TBAC) 与 IAM ABAC 结合使用,为您的 Lake Formation 数据和资源提供更多级别的权限。

  • Lake Formation TBAC 权限随着创新而扩展。它不再需要管理员更新现有策略以允许对新资源的访问。例如,假设您使用带有 project-access 标签的 IAM ABAC 策略来提供对 Lake Formation 中特定数据库的访问权限。使用 LF-TBAC,将 LF 标签 Project=SuperApp 分配给特定的表或列,并向该项目的开发人员授予相同的 LF 标签。通过 IAM,开发人员可以访问数据库,而 LF-TBAC 权限授予开发人员对特定表或表中列的进一步访问权限。如果将新表添加到项目中,则 Lake Formation 管理员只需将标签分配给新表,开发人员即可获得对该表的访问权限。

  • Lake Formation TBAC 需要较少的 IAM 策略。由于您使用 IAM 策略来授予对 Lake Formation 资源的高级访问权限,并使用 Lake Formation TBAC 来管理更精确的数据访问,因此您创建的 IAM 策略更少。

  • 使用 Lake Formation TBAC,团队可以快速变化和成长。这是因为新资源的权限根据属性自动授予。例如,如果新开发人员加入项目,则通过将 IAM 角色与用户关联,然后将所需的 LF 标签分配给用户,即可轻松授予该开发人员访问权限。您无需更改 IAM 策略即可支持新项目或创建新的 LF 标签。

  • 使用 Lake Formation TBAC 可以获得更精细的权限。IAM 策略授予对顶级资源(例如数据目录数据库或表)的访问权限。使用 Lake Formation TBAC,您可以授予对包含特定数据值的特定表或列的访问权限。

注意

IAM 标签与 LF 标签不同。这些标签不可互换。LF 标签用于授予 Lake Formation 权限,而 IAM 标签用于定义 IAM 策略。