将 LF 标签分配给数据目录资源 - Amazon Lake Formation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

将 LF 标签分配给数据目录资源

您可以将 LF 标签分配给数据目录资源(数据库、表和列)以控制对这些资源的访问。只有被授予匹配 LF 标签的主体(以及使用命名资源方法被授予访问权限的主体)才能访问这些资源。

如果表继承了数据库中的 LF 标签,或者某列继承了表中的 LF 标签,则可以通过向 LF 标签键分配新值来覆盖继承的值。

您可以分配给资源的 LF 标签的最大数量为 50。

管理分配给资源的标签的要求

要将 LF 标签分配给数据目录资源,您必须:

  • 具有对 LF 标签的 Lake Formation ASSOCIATE 权限。

  • 具有 IAM lakeformation:AddLFTagsToResource 权限。

  • 具有对 Glue 数据库的 glue:GetDatabase 权限。

  • 是资源拥有者(创建者),通过 GRANT 选项具有对资源的 Super Lake Formation 权限,或通过 GRANT 选项具有以下权限:

    • 对于同一 Amazon 账户中的数据库:DESCRIBECREATE_TABLEALTERDROP 权限

    • 对于外部账户中的数据库:DESCRIBECREATE_TABLEALTER 权限

    • 对于表(和列):DESCRIBEALTERDROPINSERTSELECTDELETE 权限

此外,LF 标签和要分配给它的资源必须位于同一个 Amazon 账户中。

要从数据目录资源中删除 LF 标签,您必须满足这些要求并具有 lakeformation:RemoveLFTagsFromResource IAM 权限。

将 LF 标签分配给表列

将 LF 标签分配给表列(控制台)
  1. 通过 https://console.aws.amazon.com/lakeformation/ 打开 Lake Formation 控制台。

    以满足上述要求的用户身份登录。

  2. 在导航窗格中,选择

  3. 选择表名称(而不是表名称旁边的选项按钮)。

  4. 在表详细信息页面的架构部分,选择编辑架构

  5. 编辑架构页面上,选择一列或多列,然后选择编辑标签

    注意

    如果要添加或删除列并保存新版本,请先执行此操作。然后编辑 LF 标签。

    此时将出现编辑 LF 标签对话框,并显示从该表继承的所有 LF 标签。

    
              该图是“编辑 LF 标签”对话框窗口的屏幕截图。窗口的顶部显示两个继承的键。第一个继承的键具有键“level”和值“director (inherited)”。第一个继承的键具有键“module”和值“Orders (inherited)”。这些字段下方是“分配新的 LF 标签”按钮。下方右侧是“取消”和“保存”按钮。
  6. (可选)在继承的键字段旁边的列表中,选择一个值来覆盖继承的值。

  7. (可选)选择分配新的 LF 标签。然后,在分配的键中,选择一个键,然后对于,为该键选择一个值。

    
              该图是“编辑 LF 标签”对话框窗口的屏幕截图。窗口的顶部显示两个继承的键。第一个继承的键具有键“level”和值“director (inherited)”。第一个继承的键具有键“module”和值“Orders (inherited)”。在此部分下方,水平对齐的是以下字段和控件:“分配的键”字段、“值”字段和“移除”按钮。“分配的键”字段包含文本“environment”。“值”字段是一个下拉列表,其中包含值“Production”(突出显示)和“Customers”。“分配新的 LF 标签”按钮显示在“分配的键”字段下方。窗口右下角是“取消”和“保存”按钮。
  8. (可选)再次选择分配新的 LF 标签以添加其他 LF 标签。

  9. 选择 Save(保存)。

将 LF 标签分配给数据目录资源

Console
将 LF 标签分配给数据目录数据库或表
  1. 通过 https://console.aws.amazon.com/lakeformation/ 打开 Lake Formation 控制台。

    以满足前面列出的要求的用户身份登录。

  2. 在导航窗格的数据目录下,执行下列操作之一:

    • 要将 LF 标签分配给数据库,请选择数据库

    • 要将 LF 标签分配给表,请选择

  3. 选择数据库或表,然后在操作菜单上,选择编辑标签

    此时将显示编辑 LF 标签:resource-name 对话框。

    如果表从其包含的数据库继承 LF 标签,则窗口将显示继承的 LF 标签。否则,窗口将显示文本“没有与该资源关联的继承的 LF 标签”。

    
                    该图是“编辑 LF 标签:inventory”对话框窗口的屏幕截图。顶部是“继承的键”(灰显)和“值”字段。“继承的键”字段具有值“level”,“值”字段具有值“director (inherited)”。在此部分下方,水平对齐的是以下字段和控件:“分配的键”字段、“值”字段和“移除”按钮。“分配的键”字段包含文本“module”。“值”字段是一个下拉列表,其中包含值“Orders”、“Sales”和“Customers”(突出显示)。“分配新的 LF 标签”按钮位于“分配的键”字段下方。窗口右下角是“取消”和“保存”按钮。
  4. (可选)如果表继承了 LF 标签,则对于继承的键字段旁边的列表,您可以选择一个值来覆盖继承的值。

  5. 要分配新的 LF 标签,请执行以下步骤:

    1. 选择分配新的 LF 标签

    2. 分配的键字段中,选择一个 LF 标签键,然后在字段中选择一个值。

    3. (可选)再次选择分配新的 LF 标签以分配额外的 LF 标签。

  6. 选择 Save(保存)。

Amazon CLI
将 LF 标签分配给数据目录资源
  • 运行 add-lf-tags-to-resource命令。

    以下示例将 LF 标签 module=orders 分配给数据库 erp 中的表 orders。它使用 --lf-tags 参数的快捷语法。--lf-tagsCatalogID 属性是可选的。如果未提供该属性,则假定为资源(在本例中为表)的目录 ID。

    aws lakeformation add-lf-tags-to-resource --resource '{ "Table": {"DatabaseName":"erp", "Name":"orders"}}' --lf-tags CatalogId=111122223333,TagKey=module,TagValues=orders

    以下是命令成功时的输出。

    {
        "Failures": []
    }
    

    下一个示例将 LF 标签分配给 sales 表,并对 --lf-tags 参数使用 JSON 语法。

    aws lakeformation add-lf-tags-to-resource --resource '{ "Table": {"DatabaseName":"erp", "Name":"sales"}}' --lf-tags '[{"TagKey": "module","TagValues": ["sales"]},{"TagKey": "environment","TagValues": ["development"]}]'

    下一个示例将 LF 标签 level=director 分配给表 salestotal 列。

    aws lakeformation add-lf-tags-to-resource --resource '{ "TableWithColumns": {"DatabaseName":"erp", "Name":"sales", "ColumnNames":["total"]}}' --lf-tags TagKey=level,TagValues=director

更新资源的 LF 标签

更新数据目录资源的 LF 标签 (Amazon CLI)
  • 如前面的步骤所述,使用 add-lf-tags-to-resource 命令。

    添加与现有 LF 标签具有相同键但具有不同值的 LF 标签会更新现有值。

从资源中删除 LF 标签

删除数据目录资源的 LF 标签 (Amazon CLI)
  • 运行 remove-lf-tags-from-resource命令。

    如果表的 LF 标签值覆盖了从父数据库继承的值,则从表中删除该 LF 标签将还原继承的值。此行为也适用于覆盖从表中继承的键值的列。

    以下示例从 sales 表的 total 列中删除 LF 标签 level=director--lf-tagsCatalogID 属性是可选的。如果未提供该属性,则假定为资源(在本例中为表)的目录 ID。

    aws lakeformation remove-lf-tags-from-resource --resource ' { "TableWithColumns": { "DatabaseName": "erp", "Name": "sales", "ColumnNames":[ "total"]}}' --lf-tags CatalogId=111122223333,TagKey=level,TagValues=director