本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
基于Lake Formation 标签的访问控制权限模型
要有效使用基于 Lake Formation 标签的访问控制 (LF-TBAC) 方法来保护数据湖,您必须了解以下规则和权限。
-
必须先预定义所有 LF 标签,然后才能将其分配给数据目录资源或授予委托人。
数据工程师和分析师决定 LF-tag 的特征和关系。然后,数据湖管理员在 Lake Formation 中创建并维护 LF 标签。只有数据Lake 管理员可以对 LFED 标签执行创建、更新和删除操作。
-
您可以为数据目录资源分配多个 LF 标签。只能为特定资源分配一个特定密钥的值。
例如,您可以分配
module=Orders、region=West、division=Consumer,依此类推到数据库、表或列。无法分配module=Orders,Customers. -
在创建资源时,您不能将LFormation 分配给资源。您只能向现有资源添加 LF-tag。
-
您可以向委托人授予 LF-tag 表达式,而不仅仅是单个 LF-tag。
LFeg 表达式将类似于下文(在伪代码中)。
module=sales AND division=(consumer OR commercial)被授予此 LF-tag 表达式的委托人只能访问分配的数据目录资源(数据库、表和列)
module=sales和或者division=consumer要么division=commercial. 如果你希望委托人能够访问具有以下资源的资源module=sales要么division=commercial,不要将两者都包括在同一个补助金中。发放两笔补助金,一笔用于module=sales还有一个用于division=commercial.最简单的 LF-tag 表达式仅由一个 LF-tag 组成,例如
module=sales. -
被授予具有多个值的 LF-tag 权限的委托人可以使用其中任何一个值访问数据目录资源。例如,如果向用户授予了带有 key= 的 LF-tag
module和有效值orders,customers,则用户有权访问分配给以下任一条件的资源module=orders要么module=customers. -
起初,只有数据湖管理员可以为数据目录资源分配 LF 标签。数据湖管理员可以授予
DESCRIBE和ASSOCIATE向委托人授予 LF-Tags 的权限,以便这些委托人可以查看和分配 LF-Tags。下表介绍这些权限。权限 描述 DESCRIBE对 LF-tag 拥有此权限的委托人可以在为资源分配 LF-tag 或授予 LF-Tag 权限时查看 LF-tag 及其值。你可以授予 DESCRIBE在所有键值或特定值上。ASSOCIATE在 LFG 上拥有此权限的委托人可以将 LFG 分配给数据目录资源。授权 ASSOCIATE隐含地授予DESCRIBE.这些权限是可授权。通过授予选项被授予这些权限的委托人可以将这些权限授予其他委托人。
-
首先,数据湖管理员是唯一可以使用 LF-TBAC 方法授予数据目录资源权限(数据权限)的委托人。如果数据湖管理员使用授予选项通过 LF-TBAC 向其账户中的委托人授予数据权限,则授权接受者可以通过以下两种方式之一授予资源的数据权限:
-
使用命名的资源方法。
-
使用 LF-TBAC 方法,但仅使用相同的 LF-tag 表达式。
例如,假设数据湖管理员发放了以下授权(使用伪代码)。
GRANT (SELECT ON TABLES) ON TAGS module=customers, region=west,south TO user1 WITH GRANT OPTION在本例中为
user1可以授予SELECT使用 LF-TBAC 方法在表上传给其他主体,但只能使用完整的 LF-tag 表达式module=customers, region=west,south.
-
-
尽管数据湖管理员拥有创建、更新和删除 LF-Tags、为资源分配 LF-Tags 以及向负责人授予 LF-Tag 的隐含权限,但数据湖管理员还需要以下与 LF-TBAC 相关的权限Amazon Identity and Access Management(IAM) 权限。
"lakeformation:AddLFTagsToResource", "lakeformation:RemoveLFTagsFromResource", "lakeformation:GetResourceLFTags", "lakeformation:ListLFTags", "lakeformation:CreateLFTag", "lakeformation:GetLFTag", "lakeformation:UpdateLFTag", "lakeformation:DeleteLFTag", "lakeformation:SearchTablesByLFTags", "lakeformation:SearchDatabasesByLFTags"为资源分配 LF-Tags 以及向委托人授予 LF-Tags 的委托人必须具有相同的权限,除了
CreateLFTag、UpdateLFTag, 和DeleteLFTag权限。有关更多信息,请参阅 Lake Formation 角色和 IAM 权限参考。
-
如果委托人同时使用 LF-TBAC 方法和命名资源方法被授予对资源的权限,则委托人对该资源的权限是两种方法授予的权限的组合。
-
Lake Formation
DESCRIBE和ASSOCIATE在跨账户的 LF-Tags 上,使用 LF-TBAC 方法跨账户授予对数据目录资源的权限。在两种情况下,委托人都是Amazon账户 ID。注意 目前,不支持向组织和组织单位提供 LF-TBAC 跨账户补助。
有关更多信息,请参阅 Lake Formation 中的跨账户访问。
例 — LFormation 标签的生命周期
-
数据湖管理员 Michael 创建了一个 LF-tag
module=Customers. -
迈克尔·Gran
ASSOCIATE在数据工程师爱德华多的 LF-tag 上。授权ASSOCIATE隐含地授予DESCRIBE. -
迈克尔·Gran
Super在桌子上Custs使用授予选项给爱德华多,这样爱德华多就可以为表格分配 LF-tags。有关更多信息,请参阅 为数据目录资源分配 LF 标签。 -
爱德华多分配 LF-tag
module=customers到桌子上Custs. -
迈克尔向数据工程师桑德拉(使用伪代码)提供以下补助。
GRANT (SELECT, INSERT ON TABLES) ON TAGS module=customers TO Sandra WITH GRANT OPTION -
桑德拉向数据分析师玛丽亚提供以下资助。
GRANT (SELECT ON TABLES) ON TAGS module=customers TO MariaMaria 现在可以运行查询
Custs桌子。