配置LakeFormation元数据权限
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。
约束与限制
- 主体类型(用户组、角色、IAM用户、委托用户)名称中不能包含中划线(-),否则可能造成操作失败。
- 对单表授权权限策略数量不超过256个。
前提条件
在进行授权前,需确认待授权主体已存在,例如IAM用户组已提前创建。
操作视频
本视频以在LakeFormation管理控制台创建元数据并为其授权为例进行说明。
因不同版本操作界面可能存在差异,相关视频供参考,具体以实际环境为准。
统一添加授权策略
- 登录LakeFormation管理控制台。
- 在左侧下拉框中选择待操作的LakeFormation实例,选择“数据权限 > 数据授权”。
- 单击“授权”,在弹出的窗口中参考下表配置参数后,单击“确定”。
表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
自定义
用户自定义脱敏规则。
- 如果需要取消授权,单击“操作”列中的“取消授权”,单击“确认”。
取消授权后则无法恢复,请谨慎操作。
- 如果需要修改行过滤条件,单击“操作”列中的“更多”按钮,单击“编辑行过滤条件”。仅配置了行过滤条件时支持操作。
- 如果需要修改列脱敏配置,单击“操作”列中的“更多”按钮,单击“编辑列脱敏参数”。仅配置了列脱敏时支持操作。
为指定资源添加授权
用户可基于数据湖资源视角,为指定的某个资源(数据库、表等)添加授权。
- 登录LakeFormation管理控制台。
- 在左侧下拉框中选择待操作的LakeFormation实例。
- 进入指定资源的授权界面。
- Catalog:在左侧导航栏选择“元数据 > Catalog”,选择待授权Catalog“操作”列的“更多 > 授权”。
- 数据库:在左侧导航栏选择“元数据 > 数据库”,在右上角“Catalog”后的下拉框中选择待授权数据库所属的Catalog名称,选择待授权数据库“操作”列的“更多 > 授权”。
- 数据表:在左侧导航栏选择“元数据 > 表”,在右上角“Catalog”和“数据库”后的下拉框中分别选择待授权数据表所属的Catalog、数据库的名称,单击待授权数据表“操作”列的“授权”。
- 函数:在左侧导航栏选择“元数据 > 函数”,在右上角“Catalog”和“数据库”后的下拉框中分别选择待授权函数所属的Catalog、数据库的名称,单击待操作函数“操作”列的“授权”。
- 参考表3配置相关信息后,单击“确定”。
- 在“数据权限 > 数据授权”界面即可查看已授权的相关信息。
授权完成后,所选用户组中的用户、或拥有所选角色的用户或者用户组即可对当前资源进行相关操作。
相关文档
- 如果需要创建LakeFormation角色,请参考创建LakeFormation角色并授权。
- 如果需要为IAM用户绑定某角色,请参考绑定LakeFormation角色至用户。