本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
基于标签的 Lake Formation
以下是您必须了解的规则和权限,才能有效使用基于 Lake Formation 标签的访问控制 (LF-TBAC) 方法来保护数据湖的安全。
-
所有 LF 标签必须先预定义,然后才能将其分配给数据目录资源或授予委托人。
数据工程师和分析师决定 LF-Tags 的特征和关系。然后,数据湖管理员在 Lake Formation 中创建和维护 Lf-Tags。只有数据湖管理员可以对 LF-Tags 执行创建、更新和删除操作。
-
您可以为数据目录资源分配多个 LF 标签。只能将特定键的一个值分配给特定资源。
例如,您可以分配
module=Orders
、region=West
、division=Consumer
,以此类推到数据库、表或列中。无法分配module=Orders,Customers
. -
在创建资源时,您不能将 LF-Tags 分配给资源。你只能向现有资源添加 LF-Tags。
-
您可以将 LF-tag 表达式授予委托人,而不仅仅是单个 LF 标签。
LF-tag 表达式如下所示(在伪代码中)。
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-Tags 分配给数据目录资源。数据湖管理员可以授予
DESCRIBE
和ASSOCIATE
向委托人授予 LF-Tags 的权限,以便这些委托人可以查看和分配 LF-Tags。下表描述了这些权限。权限 描述 DESCRIBE
对 LF-tag 具有此权限的委托人可以在向资源分配 LF-Tag 或授予 LF-Tags 权限时查看 LF-tag 及其值。你可以授予 DESCRIBE
在所有关键值或特定值上。ASSOCIATE
对 LF-tag 具有此权限的委托人可以将 LF-tag 分配给数据目录资源。授权 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
.
-
-
尽管数据湖管理员拥有隐式的 Lake Formation 权限来创建、更新和删除 LF-Tags、向资源分配 Lf-Tags 以及向委托人授予 Lf-Tags,但是数据湖管理员还需要以下与 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 中的跨账户访问。
例 — LF-tag 的生命周期
-
数据湖管理员迈克尔创建了一个 LF-Tag
module=Customers
. -
迈克尔授权
ASSOCIATE
在数据工程师爱德华多的 LF-tag 上。授权ASSOCIATE
隐含地授予DESCRIBE
. -
迈克尔授权
Super
在桌子上Custs
用赠款选项转给爱德华多,以便爱德华多可以为表分配 LF-tag。有关更多信息,请参阅 将 LF-tag 分配给数据目录资源。 -
爱德华多分配 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 Maria
现在,Maria 可以在
Custs
表。