数据权限概述
数据湖权限支持配置数据库、数据表、函数等维度的权限。
云服务管理员可针对不同的管理对象配置不同用户组的权限,统一对数据湖资源进行管理。
用户可通过LakeFormation管理控制台对数据湖内的资源进行统一权限管理,对于IAM用户/用户组,也可以通过关联LakeFormation服务的细粒度权限策略进行特性权限场景的授权,参见创建LakeFormation自定义IAM策略。当湖内数据资源较多时,建议通过LakeFormation管理控制台对数据湖内的资源进行统一权限管理。
LakeFormation配置权限时需要包含如下要素:
权限要素 |
描述 |
---|---|
授权主体 |
被授予权限的对象,使其具备针对某数据资源的指定访问权限的用户组、角色、IAM用户、委托用户等身份,如某一用户组、某一角色等。 授权主体(用户组、角色、IAM用户、委托用户)名称中不能包含中划线(-),否则可能造成操作失败。 |
授权类型 |
|
操作类型 |
主体对授权类型的访问权限,不同授权类型支持的操作类型各不相同,可参见表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。