View a markdown version of this page

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

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

分配 LF-Tags 给数据目录资源

您可以 LF-Tags 为数据目录资源(数据库、表和列)分配以控制对这些资源的访问权限。只有被授予匹配权限的委托人 LF-Tags (以及被授予使用指定资源方法访问权限的委托人)才能访问资源。

如果表 LF-Tag 从数据库继承或列继承表中的,则可以通过为键分配新值来覆盖继承的 LF-Tag值。 LF-Tag

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

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

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

  • 获得 Lake Form ASSOCIATE ation 的许可 LF-Tag。

  • 具有 IAM lakeformation:AddLFTagsToResource 权限。

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

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

    • 对于同一个 Amazon 账户中的数据库:DESCRIBECREATE_TABLEALTER、和 DROP

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

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

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

要 LF-Tag 从数据目录资源中移除,您必须满足这些要求并拥有 lakeformation:RemoveLFTagsFromResource IAM 权限。

分配 LF-Tags 给表列

分配 LF-Tags 给表列(控制台)
  1. 打开 Lake Formation 控制台,网址为https://console.aws.amazon.com/lakeformation/

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

  2. 在导航窗格中,选择

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

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

  5. “编辑架构” 页上,选择一列或多列,然后选择 “编辑” LF-Tags

    注意

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

    将出现 LF-Tags “编辑” 对话框,并显示从表格中继承的所有 LF-Tags 内容。

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

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

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

  9. 选择保存

分配 LF-Tags 给数据目录资源

Console
分配 LF-Tags 给数据目录数据库或表
  1. 打开 Lake Formation 控制台,网址为https://console.aws.amazon.com/lakeformation/

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

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

    • 要分配 LF-Tags 给数据库,请选择数据库

    • 要分配 LF-Tags 给表,请选择

  3. 选择数据库或表,然后在 “操作” 菜单上选择 “编辑” LF-Tags

    出现 “编辑 LF-Tags:resource-name” 对话框。

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

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

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

    1. 选择 “分配新的” LF-Tag。

    2. 在 “分配的密钥” 字段中,选择一个 LF-Tag 密钥,然后在 “” 字段中选择一个值。

    3. (可选) LF-Tag再次选择 “分配新的” 以分配额外 LF-Tag的。

  6. 选择保存

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

    以下示例将分配 LF-Tag module=orders给数据库orderserp中的表。它使用 --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-Tags 将两个赋值给sales表,并使用 JSON 语法--lf-tags作为参数。

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

    下一个示例为表 LF-Tag level=directorsalestotal列赋值。

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

更新 LF-Tags 资源

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

    添加 LF-Tag 与现有键相同 LF-Tag但值不同的键会更新现有值。

LF-Tag 从资源中删除

LF-Tag 为数据目录资源移除 (Amazon CLI)
  • 运行 remove-lf-tags-from-resource 命令。

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

    以下示例将 LF-Tag level=directorsales表的total列中删除。--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