更新时间:2025-07-17 GMT+08:00
分享

配置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个。

前提条件

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

操作视频

本视频以在LakeFormation管理控制台创建元数据并为其授权为例进行说明。

因不同版本操作界面可能存在差异,相关视频供参考,具体以实际环境为准。

统一添加授权策略

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

    表3 元数据权限授权

    参数

    参数说明

    主体类型

    待授权的主体类型。取值范围:

    • 用户组
    • 角色
    • IAM用户
    • 委托用户

    选择用户组/选择角色/选择IAM用户/选择委托用户

    选择待授权的主体名称。名称中不能包含中划线(-),否则可能造成操作失败。

    • 选择用户组:选择待授权的用户组,例如IAM用户组,可提前到IAM服务管理控制台创建。
    • 选择角色:选择待授权的角色。可提前参考创建角色并授权章节创建角色。
    • 选择IAM用户:选择待授权的IAM用户。
    • 选择委托用户:选择待授权的委托用户。

    授权类型

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

    资源类型

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

    并需要根据实际需求选择待授权的“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. 如果需要修改列脱敏配置,单击“操作”列中的“更多”按钮,单击“编辑列脱敏参数”。仅配置了列脱敏时支持操作。

为指定资源添加授权

用户可基于数据湖资源视角,为指定的某个资源(数据库、表等)添加授权。

  1. 登录LakeFormation管理控制台
  2. 在左侧下拉框中选择待操作的LakeFormation实例。
  3. 进入指定资源的授权界面。

    • Catalog:在左侧导航栏选择“元数据 > Catalog”,选择待授权Catalog“操作”列的“更多 > 授权”。
    • 数据库:在左侧导航栏选择“元数据 > 数据库”,在右上角“Catalog”后的下拉框中选择待授权数据库所属的Catalog名称,选择待授权数据库“操作”列的“更多 > 授权”。
    • 数据表:在左侧导航栏选择“元数据 > 表”,在右上角“Catalog”和“数据库”后的下拉框中分别选择待授权数据表所属的Catalog、数据库的名称,单击待授权数据表“操作”列的“授权”。
    • 函数:在左侧导航栏选择“元数据 > 函数”,在右上角“Catalog”和“数据库”后的下拉框中分别选择待授权函数所属的Catalog、数据库的名称,单击待操作函数“操作”列的“授权”。

  4. 参考表3配置相关信息后,单击“确定”。
  5. 在“数据权限 > 数据授权”界面即可查看已授权的相关信息。

    授权完成后,所选用户组中的用户、或拥有所选角色的用户或者用户组即可对当前资源进行相关操作。

相关文档

相关文档