Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 LF-TBAC 方法授予数据湖权限
您可以向主体授予对 LF 标签的 DESCRIBE
和 ASSOCIATE
Lake Formation 权限,以便他们可以查看 LF 标签并将其分配给数据目录资源(数据库、表、视图和列)。将 LF 标签分配给数据目录资源时,您可以使用 Lake Formation 基于标签的访问控制 (LF-TBAC) 方法来保护这些资源。有关更多信息,请参阅 Lake Formation 基于标签的访问控制。
首先,只有数据湖管理员才能授予这些权限。如果数据湖管理员通过授予选项授予这些权限,则其他主体可以授予这些权限。Lake Formation 基于标签的访问控制最佳实践和注意事项中介绍了 DESCRIBE
和 ASSOCIATE
权限。
您可以向外部 Amazon 账户授予 LF-Tag 的DESCRIBE
和ASSOCIATE
权限。然后,该账户中的数据湖管理员可以将这些权限授予给该账户中的其他主体。接着,外部账户中的数据湖管理员向其授予 ASSOCIATE
权限的主体可以将 LF 标签分配给您与其账户共享的数据目录资源。
向外部账户授予权限时,您必须包括授予选项。
您可以使用 Amazon Lake Formation 控制台、API 或 Amazon Command Line Interface ()Amazon CLI授予对 LF 标签的权限。
授予数据目录权限
使用 Lake Formation 控制台或 Amazon CLI 使用基于 Lake Formation 标签的访问控制 (LF-TBAC) 方法授予 Lake Formation 对数据目录数据库、表、视图和列的权限。
- Console
-
以下步骤说明如何使用 Lake Formation 基于标签的访问控制(LF-TBAC)方法和 Lake Formation 控制台上的授予数据湖权限页面来授予权限。该页面分为以下几个部分:
-
委托人-用户、角色和 Amazon Web Services 账户 向其授予权限。
-
LF 标签或目录资源 – 要对其授予权限的数据库、表或资源链接。
-
权限 – 要授予的 Lake Formation 权限。
-
打开“授予数据湖权限”页面。
在打开 Amazon Lake Formation 控制台 https://console.aws.amazon.com/lakeformation/,然后以数据湖管理员或通过 LF-TBAC 获得数据目录资源的 Lake Formation 权限的用户身份登录,并使用授权选项。
在导航窗格的权限下,选择数据湖权限。然后选择授予。
-
指定主体。
在主体部分中,选择主体类型,然后指定要向其授予权限的主体。
- IAM 用户和角色
-
从 IAM 用户和角色列表中选择一个或多个用户或角色。
- IAM Identity Center
-
从用户和组列表中选择一个或多个用户或组。
- SAML 用户和组
-
对于 SAML 和 Amazon QuickSight 用户和群组,请为通过 SAML 联合的用户或群组,或者为亚马逊用户或群组输入一个或多个 ARNs 亚马逊 QuickSight 资源名称 (ARNs)。在每个 ARN 后按 Enter。
有关如何构造的信息 ARNs,请参见Lake Formation 授予和撤销命令 Amazon CLI。
仅亚马逊 QuickSight 企业版支持 Lake Format QuickSight ion 与亚马逊的集成。
- 外部账户
-
对于Amazon Web Services 账户、 Amazon 组织或 IAM 委托人 Amazon Web Services 账户 IDs,请为 IAM 用户或角色输入一个或多个有效的组织 IDs IDs、组织单位或 ARN。在每个 ID 后按 Enter。
组织 ID 由“o-”后跟 10 到 32 个小写字母或数字组成。
单位 ID 以“ou-”开头,后跟 4 到 32 个小写字母或数字(包含 OU 的根的 ID)。该字符串后跟第二个“-”短横线和 8 到 32 个额外的小写字母或数字。
-
指定 LF 标签。
确保选择与 LF 标签匹配的资源选项。选择 LF-Tag 键值对或已保存的 LF- Tag 表达式。
-
如果选择 LF-Tag 键值对选项,请选择键和值。
如果选择多个值,则将使用 OR
运算符创建 LF 标签表达式。这意味着,如果任何 LF 标签值与分配给数据目录资源的 LF 标签相匹配,则将授予您对该资源的权限。
-
(可选)再次选择 “添加 LF-Tag 键值对” 以指定另一个 LF- Tag。
如果指定多个值,则将使用 AND
运算符创建 LF 标签表达式。仅在为 LF 标签表达式中的每个 LF 标签分配了匹配的 LF 标签时,才会向主体授予对数据目录资源的权限。
-
选择 “另存为新表达式” 选项可重复使用该表达式。
您需要Create LF-Tag expression
保存表达式。
有关 LF-Tag 表达式的更多信息,请参阅。管理 LF-Tag 表达式以实现元数据访问控制
-
指定权限。
指定向主体授予的对匹配数据目录资源的权限。匹配的资源是指那些分配了 LF 标签的资源,这些标签与向主体授予的其中一个 LF 标签表达式相匹配。
您可以指定要授予的对匹配数据库、匹配表和匹配视图的权限。
在数据库权限下,选择要向主体授予的对匹配数据库的数据库权限。
在表权限下,选择要向主体授予的对匹配表和匹配视图的表或视图权限。
您也可以从表权限中选择要对视图应用的 Select
、Describe
和 Drop
权限。
-
选择授权。
- Amazon CLI
-
您可以使用 Amazon Command Line Interface (Amazon CLI) 和基于 Lake Formation 标签的访问控制 (LF-TBAC) 方法授予 Lake Formation 对数据目录数据库、表和列的权限。
使用 Amazon CLI 和 LF-TBAC 方法授予数据湖权限
-
使用 grant-permissions
命令。
以下示例向用户 datalake_user1
授予 LF 标签表达式“module=*
”(LF 标签键 module
的所有值)。该用户将具有对所有匹配数据库(即分配了带有键 module
及任何值的 LF 标签的数据库)的 CREATE_TABLE
权限。
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "CREATE_TABLE" --resource '{ "LFTagPolicy": {"CatalogId":"111122223333","ResourceType":"DATABASE","Expression":[{"TagKey":"module","TagValues":["*"]}]}}'
下一个示例向用户 datalake_user1
授予 LF 标签表达式“(level=director)
AND (region=west OR region=south)
”。该用户将通过授予选项具有对匹配表(即分配了 level=director
和 region=west
或region=south
的表)的 SELECT
、ALTER
和 DROP
权限。
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" "ALTER" "DROP" --permissions-with-grant-option "SELECT" "ALTER" "DROP" --resource '{ "LFTagPolicy": {"CatalogId":"111122223333","ResourceType":"TABLE","Expression": [{"TagKey": "level","TagValues": ["director"]},{"TagKey": "region","TagValues": ["west", "south"]}]}}'
下一个示例将 LF-Tag 表达式 “module=orders
” 授予 Amazon 账户 1234-5678-9012。然后,该账户中的数据湖管理员可以向其账户中的主体授予“module=orders
”表达式。接着,这些主体将具有对匹配数据库的 CREATE_TABLE
权限,这些数据库由账户 1111-2222-3333 拥有并通过使用命名资源方法或 LF-TBAC 方法与账户 1234-5678-9012 共享。
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=123456789012 --permissions "CREATE_TABLE" --permissions-with-grant-option "CREATE_TABLE" --resource '{ "LFTagPolicy": {"CatalogId":"111122223333","ResourceType":"DATABASE","Expression":[{"TagKey":"module","TagValues":["orders"]}]}}'