更新时间:2026-09-18 GMT+08:00
分享

配置LakeFormation元数据权限

LakeFormation元数据权限概述

LakeFormation支持配置数据库、数据表、函数等维度的权限,云服务管理员可针对不同的管理对象配置不同的权限,统一对数据湖资源进行管理。

对于IAM用户/用户组,也可以通过关联LakeFormation服务的细粒度权限策略进行特性权限场景的授权,详细请参见创建LakeFormation自定义IAM策略。当湖内数据资源较多时,建议通过LakeFormation管理控制台对数据湖内的资源进行统一权限管理。

LakeFormation配置权限时需要包含如下要素:

表1 LakeFormation权限要素

权限要素

描述

授权主体

被授予权限的对象,使其具备针对某数据资源的指定访问权限的用户组、角色、IAM用户、委托用户等身份,如某一用户组、某一角色等。

授权主体(用户组、角色、IAM用户、委托用户)名称中不能包含中划线(-),否则可能造成操作失败。

授权类型

  • 数据湖中管理的资源:
    • 数据目录(Catalog)
    • 数据库(Database)
    • 数据表(Table)
    • 数据列(Column)
    • 函数(Function)
  • OBS路径。

权限

主体对授权类型的访问权限,不同授权类型支持的操作类型各不相同,可参见表2。

赋予授权权限

是否赋予授权权限,赋予授权权限后,授权主体便可以将权限授权给其他授权主体。

表2 不同授权类型的操作权限

授权类型

操作类型

权限说明

Catalog

ALL

Catalog的所有操作权限。

ALTER

修改Catalog。

CREATE_DATABASE

创建数据库。

DROP

删除Catalog。

DESCRIBE

查看Catalog的元数据信息或切换Catalog。

LIST_DATABASE

查看Catalog下资源列表。

数据库

ALL

数据库的所有操作权限。

ALTER

修改数据库。

DROP

删除数据库。

DESCRIBE

查看数据库的元数据信息或切换数据库。

LIST_TABLE

查看数据库下资源列表。

LIST_FUNC

查看某一数据库下的函数。

CREATE_TABLE

在数据库中创建表。

CREATE_FUNC

在数据库中创建函数。

表

ALL

表的所有操作权限。

ALTER

修改表。

DROP

删除表。

DESCRIBE

查看表的元数据信息。

UPDATE

更新表数据。

INSERT

插入表数据。

SELECT

查询表内数据。

DELETE

删除表的数据。

列

SELECT

查询表内的列数据。

函数

ALL

函数的所有操作权限。

ALTER

修改函数。

DROP

删除函数。

DESCRIBE

查看函数的元数据信息。

EXEC

执行函数。

路径

READ

路径下文件的读权限。

WRITE

路径下文件的写权限。

系统权限管理员与业务权限管理员介绍:

权限管理员通常分为系统权限管理员与业务权限管理员,需要具备的IAM权限与权限管理范围不同。

  • 系统权限管理员
    • 需要拥有以下IAM操作权限:lakeformation:policy:describe、lakeformation:policy:create、lakeformation:policy:drop。
    • 权限管理范围:可将任意元数据权限授予给其他授权主体,可撤销任意元数据权限。
  • 业务权限管理员
    • 需要拥有以下IAM操作权限: lakeformation:policy:describe、lakeformation:policy:delegate。
    • 权限管理范围:需要被业务管理员赋予授权权限,才能将元数据权限授予其他授权主体,或撤销元数据权限。

例如:系统中存在系统权限管理员User A、业务权限管理员User B、普通用户User C。User A将Catalog1的ALL权限授予User B并同时赋予授权权限后,User B可将Catalog1的DESC等权限授予User C。但User B无法将其他Catalog的权限授予User C。

约束与限制

  • 主体类型(用户组、角色、IAM用户、委托用户)名称中不能包含中划线(-),否则可能造成操作失败。
  • 对单表授权权限策略数量不超过256个。
  • 当对数据库授权时,如果数据库路径不在所在的Catalog路径下,则待授权的数据库请选择具体的数据库名称,请勿选择 “*”,否则只有在所在Catalog路径下的数据库才有对应的权限。

前提条件

在进行授权前,需确认待授权主体已存在,例如IAM用户组已提前创建。

统一添加授权策略

  1. 登录LakeFormation管理控制台。
  2. 在左侧下拉框中选择待操作的LakeFormation实例,选择“数据权限 > 数据授权”。
  3. 单击“授权”,在弹出的窗口中参考下表配置参数后,单击“确定”。

    表3 元数据权限授权

    参数

    参数说明

    主体类型

    待授权的主体类型。

    支持选择:用户组、角色、IAM用户、委托用户。

    选择用户组

    选择待授权的用户组,例如IAM用户组,可提前到IAM服务管理控制台创建。

    • 仅“主体类型”选择“用户组”时支持配置该参数。
    • 名称中不能包含中划线(-),否则可能造成操作失败。

    选择角色

    选择待授权的角色。可提前参考创建角色并授权章节创建角色。

    • 仅“主体类型”选择“角色”时支持配置该参数。
    • 名称中不能包含中划线(-),否则可能造成操作失败。

    选择IAM用户

    选择待授权的IAM用户。

    • 仅“主体类型”选择“IAM用户”时支持配置该参数。
    • 名称中不能包含中划线(-),否则可能造成操作失败。

    选择委托用户

    选择待授权的委托用户。

    • 仅“主体类型”选择“委托用户”时支持配置该参数。
    • 名称中不能包含中划线(-),否则可能造成操作失败。

    授权类型

    • 资源:表示对LakeFormation实例中的资源进行授权。
    • 路径:表示对OBS路径进行授权。该授权类型用于给外表或函数授权。

    Catalog

    选择待授权的Catalog名称。

    仅“授权类型”选择“资源”时配置该参数。

    数据库

    选择待授权的数据库名称。

    • 仅“授权类型”选择“资源”时配置该参数。
    • 如果仅对Catalog进行授权,则无需配置该参数。
    • 当对数据库授权时,如果数据库路径不在所在的Catalog路径下,则待授权的数据库请选择具体的数据库名称,请勿选择 “*”,否则只有在所在Catalog路径下的数据库才有对应的权限。

    资源类型

    选择数据库下待授权资源类型。仅“授权类型”选择“资源”时配置该参数。

    支持选择:

    • 表:根据需要选择待授权的“表”、“列”名称。
    • 函数:根据需要选择待授权的“函数”名称。

    行过滤条件

    为权限策略设置行过滤条件。资源类型为“表”、“列”时显示该参数。设置该参数后,不支持设置“列脱敏类型”、“列脱敏参数”。

    • 设置格式为:列名 操作符 列值

      支持使用=、<=、<、>、>=、like等格式。

      例如行过滤条件设置为:department = "financial",表示选择表中“department”列中值为“financial”的行内容。

    • 设置行过滤条件后,操作类型仅可以选择“SELECT”。

    列脱敏类型

    选择列脱敏类型,对列数据进行脱敏处理。资源类型为“列”时支持配置该参数。设置该参数后,不支持设置“行过滤条件”。

    • PARTIAL_MASK:遮掩部分数据。
    • REDACT:修订原有列的数据。
    • HASH:使用哈希算法加密。
    • NULLIFY:用NULL值替换原值。
    • UNMASKED:原样显示。
    • DATA_ONLY_SHOW_YEAR:仅显示日期字符串的年份部分。
    • CUSTOM:用户自定义脱敏规则。
    说明:

    LakeFormation仅提供动态脱敏策略管理与获取功能。LakeFormation不处理动态脱敏策略冲突。

    列脱敏参数

    列脱敏类型对应的选项。可以参考表4进行配置。资源类型为“列”时支持配置该参数。设置该参数后,不支持设置“行过滤条件”。

    路径

    “授权类型”选择“路径”时配置该参数。

    单击选择授权的OBS路径。可以选择多个路径,但不能超过10个。

    不能选择已被其他LakeFormation实例授权的路径,以免造成权限冲突。

    权限

    选择授权的操作类型。不同的授权类型对应的操作类型不同,详见表2。

    • 为表授予“SELECT”权限时,需要同时选择列,例如设置“列”为“*”。
    • 设置列脱敏规则后,操作类型仅可以选择“SELECT”。

    赋予授权权限

    是否授予授权权限。

    赋予授权权限后,授权主体便拥有将对象授权给其他授权主体的权限。

    表4 列脱敏参数说明

    列脱敏类型

    列脱敏参数(示例)

    脱敏描述

    PARTIAL_MASK

    show last 4

    只显示最后四个字符数据,例如“*******1234”。

    show first 4

    只显示最前四个字符数据,例如“1234*******”。

    REDACT

    #

    用#修订原来列的数据,例如“###########”。

    *

    用*修订原来列的数据,例如“***********”。

    HASH

    hash256

    使用hash256算法加密列中的数据。

    NULLIFY

    无

    用NULL值替换原值。

    UNMASKED

    无

    原样显示。

    DATA_ONLY_SHOW_YEAR

    无

    仅显示日期字符串的年份部分。

    CUSTOM

    自定义

    用户自定义脱敏规则。

  4. 如果需要取消授权,单击“操作”列中的“取消授权”,单击“确认”。

    取消授权后则无法恢复,请谨慎操作。

  5. 如果需要修改行过滤条件,单击“操作”列中的“更多”按钮,单击“编辑行过滤条件”。仅配置了行过滤条件时支持操作。
  6. 如果需要修改列脱敏配置,单击“操作”列中的“更多”按钮,单击“编辑列脱敏参数”。仅配置了列脱敏时支持操作。

相关文档

相关文档