更新时间:2024-08-26 GMT+08:00

数据权限概述

数据湖权限支持配置数据库、数据表、函数等维度的权限。

云服务管理员可针对不同的管理对象配置不同用户组的权限,统一对数据湖资源进行管理。

用户可通过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。