使用 LF-TBAC 方法授予数据湖权限 - Amazon Lake Formation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 LF-TBAC 方法授予数据湖权限

您可以向主体授予对 LF 标签的 DESCRIBEASSOCIATE Lake Formation 权限,以便他们可以查看 LF 标签并将其分配给数据目录资源(数据库、表、视图和列)。将 LF 标签分配给数据目录资源时,您可以使用 Lake Formation 基于标签的访问控制 (LF-TBAC) 方法来保护这些资源。有关更多信息,请参阅 Lake Formation 基于标签的访问控制

首先,只有数据湖管理员才能授予这些权限。如果数据湖管理员通过授予选项授予这些权限,则其他主体可以授予这些权限。Lake Formation 基于标签的访问控制最佳实践和注意事项中介绍了 DESCRIBEASSOCIATE 权限。

您可以向外部 Amazon 账户授予 LF-Tag 的DESCRIBEASSOCIATE权限。然后,该账户中的数据湖管理员可以将这些权限授予给该账户中的其他主体。接着,外部账户中的数据湖管理员向其授予 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 权限。

  1. 打开“授予数据湖权限”页面。

    通过 https://console.aws.amazon.com/lakeformation/ 打开 Amazon Lake Formation 控制台,然后以数据湖管理员或通过 LF-TBAC 获得数据目录资源的 Lake Formation 权限的用户身份登录,并使用授权选项。

    在导航窗格的权限下,选择数据湖权限。然后选择授予

  2. 指定主体。

    主体部分中,选择主体类型,然后指定要向其授予权限的主体。

    “主体”部分包含以下文本中命名的四个磁贴。每个磁贴包含一个选项按钮和文本。IAM Identity Center 磁贴处于选中状态,“用户和组”下拉列表位于磁贴下方。
    IAM 用户和角色

    IAM 用户和角色列表中选择一个或多个用户或角色。

    IAM Identity Center

    用户和组列表中选择一个或多个用户或组。

    SAML 用户和组

    对于 SAML 和 Amazon QuickSight 用户和群组,请为通过 SAML 联合的用户或群组输入一个或多个亚马逊资源名称 (ARN),为亚马逊用户或群组输入一个或多个 QuickSight 亚马逊资源名称 (ARN)。在每个 ARN 后按 Enter。

    有关如何构建 ARN 的信息,请参阅 Lake Formation 授予和撤销命令 Amazon CLI

    注意

    仅亚马逊 QuickSight 企业版支持 Lake Format QuickSight ion 与亚马逊的集成。

    外部账户

    对于Amazon Web Services 账户 Amazon 组织IAM 委托人,请为 IAM 用户或角色输入一个或多个有效 Amazon Web Services 账户 ID、组织 ID、组织单位 ID 或 ARN。在每个 ID 后按 Enter

    组织 ID 由“o-”后跟 10 到 32 个小写字母或数字组成。

    单位 ID 以“ou-”开头,后跟 4 到 32 个小写字母或数字(包含 OU 的根的 ID)。该字符串后跟第二个“-”短横线和 8 到 32 个额外的小写字母或数字。

  3. 指定 LF 标签。

    确保选择与 LF 标签匹配的资源选项。选择添加 LF 标签

    1. 选择 LF 标签键和值。

      如果选择多个值,则将使用 OR 运算符创建 LF 标签表达式。这意味着,如果任何 LF 标签值与分配给数据目录资源的 LF 标签相匹配,则将授予您对该资源的权限。

      “LF 标签或目录资源”部分包含两个水平排列的磁贴,其中每个磁贴包含一个选项按钮和描述性文本。选项包括“通过 LF 标签匹配的资源(推荐)”和“命名数据目录资源”。“通过 LF 标签匹配的资源”处于选中状态。磁贴下方是水平排列的“键”字段和“值”字段。“键”字段包含“module”,“值”字段是一个下拉列表,其中包含三个条目:“Orders”、“Sales”和“Customers”。每个条目都有一个关联的复选框。“Customers”对应的复选框处于选中状态。这两个字段的右侧是“移除”按钮。底部是“添加 LF 标签”按钮,表示您可以再添加一行,其中包含“键”和“值”字段以及“移除”按钮。
    2. (可选)再次选择添加 LF 标签以指定其他 LF 标签。

      如果指定多个值,则将使用 AND 运算符创建 LF 标签表达式。仅在为 LF 标签表达式中的每个 LF 标签分配了匹配的 LF 标签时,才会向主体授予对数据目录资源的权限。

  4. 指定权限。

    指定向主体授予的对匹配数据目录资源的权限。匹配的资源是指那些分配了 LF 标签的资源,这些标签与向主体授予的其中一个 LF 标签表达式相匹配。

    您可以指定要授予的对匹配数据库、匹配表和匹配视图的权限。

    显示了页面的两个部分。“数据库权限”部分包含“数据库权限”和“可授予的权限”对应的复选框。在“数据库”部分下方,“表权限”部分显示“表权限”和“可授予的权限”对应的复选框。

    数据库权限下,选择要向主体授予的对匹配数据库的数据库权限。

    表权限下,选择要向主体授予的对匹配表和匹配视图的表或视图权限。

    您也可以从表权限中选择要对视图应用的 SelectDescribeDrop 权限。

  5. 选择授权

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=directorregion=westregion=south 的表)的 SELECTALTERDROP 权限。

    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"]}]}}'