配置Hive对接LakeFormation授权管理
LakeFormation数据湖权限支持配置数据库、数据表、函数等维度的权限。云服务管理员可针对不同的管理对象配置不同IAM用户组的权限,统一对数据湖资源进行管理。
MRS集群对接LakeFormation后,LakeFormation服务中的相关数据湖权限策略及角色信息会自动同步至MRS Ranger,对于MRS集群内的用户, 可通过关联至对应Ranger角色后获取对应资源的访问权限。
本示例描述了在LakeFormation数据湖中新创建了数据表后,如何为Hive组件配置资源授权、OBS路径授权的相关访问权限。
- 用户可通过LakeFormation管理控制台对数据湖内的资源进行统一权限管理,对于IAM用户/用户组,也可以通过关联LakeFormation服务的细粒度权限策略进行特性权限场景的授权。当湖内数据资源较多时,建议通过LakeFormation管理控制台对数据湖内的资源进行统一权限管理。
- 关于LakeFormation服务详细的权限配置说明及授权的权限类型,可参考配置LakeFormation元数据权限章节。
- 对接LakeFormation后,对OBS路径的授权仅支持在LakeFormation上进行操作。
前提条件
- 本章节内容仅适用于MRS 3.6.0及之后版本。
- LakeFormation实例运行正常,数据库、数据表、数据权限等页面加载正常。
- 集群已关闭Kerberos认证(普通模式),且运行正常,包含Guardian、Ranger、Hive等服务。
- MRS已与LakeFormation实例对接成功,并重新下载安装了集群客户端,例如安装目录为“/opt/client”。
- 已登录MRS集群的FusionInsight Manager界面添加人机用户“testuser”,加入hadoop、hive用户组,用户创建成功后初始化密码。
Hive对接LakeFormation后授权操作样例
- 关闭Kerberos认证的集群(普通模式)默认关闭Ranger鉴权,需要参考以下步骤开启Hive的Ranger鉴权。
登录MRS集群Manager,选择“集群 > 服务 > Hive”,在右上角选择“更多 > 启用Ranger鉴权”根据界面提示进行启用。
- 登录LakeFormation管理控制台。
- 选择LakeFormation实例后进入数据表页面,“数据库”选择“default”,然后单击“创建表”,编辑相关内容后单击“提交”。
- 登录MRS集群客户端所在节点,然后登录Hive Beeline命令行。
cd /opt/client
source bigdata_env
beeline
- 执行如下SQL,读写LakeFormation上已存在的数据表。
select * from default.lf_orctb1;
insert into lf_orctb1 values (1,1,1);
SQL执行失败,有Error提示用户缺少权限。
- 在LakeFormation管理控制台,选择“数据权限 > 角色”页面,单击“创建角色”,“角色名称”填写“testrole”,单击“确定”。
- 对角色进行授权/取消授权,支持在LakeFormation页面授权。
进入“数据授权”页面,单击“授权”,编辑如下,将访问表所需的权限赋予“testrole”,单击“确定”。
- 主体类型:选择“角色”。
- 选择角色:下拉框选择刚创建的角色“testrole”。
- 授权类型:选择“资源”。
- Catalog:选择“hive”。
- 数据库:下拉框选择“default”,选中后再选择表。
- 表:下拉框选择“lf_orctb1”。
- 操作类型:勾选“SELECT”、“UPDATE”。
MRS对接LakeFormation仅支持role授权,对user/group授权将默认转为对同名role的权限操作,role需要提前在LakeFormation页面创建;
- 如果创建的表为外表,类型为“EXTERNAL_TABLE”,需要执行该操作。否则请跳过该步骤。
进入“数据授权”页面,单击“授权”,编辑如下,将外表的OBS路径的读写权限赋予“testrole”,单击“确定”。
- 主体类型:选择“角色”。
- 选择角色:下拉框选择刚创建的角色“testrole”。
- 授权类型:选择“路径”。
- 路径:选择为外表的存储路径。
- 操作类型:勾选“READ”、“WRITE”。
- 检查MRS RangerAdmin上已同步角色和策略,并在对应Ranger角色上添加用户。
- 使用admin用户登录MRS集群的FusionInsight Manager页面,选择“集群 > 服务 > Ranger”。
- 在Ranger服务概览,单击“RangerAdmin”进入Ranger Web UI界面。
- 进入Ranger Web UI后单击右上角用户名后继续单击“Log Out”,然后再通过rangeradmin用户重新登录Ranger Web UI。如果为初次登录,需修改初始密码。
初始密码可参考MRS集群用户账号一览表或联系集群管理员获取。
- 单击“Hive”进入Hive权限插件,查看添加的策略是否已同步至Ranger。
- 进入“Settings”页面,单击“Roles”,查看添加的角色是否已同步。
- 为用户绑定角色,支持Ranger页面绑定。
单击“testrole”,在“Users”下“Select User”输入框中填入“testuser”,单击“Add Users”,然后单击“Save”保存退出。
- 回到Hive客户端上,再次执行读写数据表的SQL,成功读取表内容并插入数据。
beeline
select * from default.lf_orctb1;
insert into lf_orctb1 values (1,1,1);
如果MRS RangerAdmin存在已添加的Role,LakeFormation支持添加同名角色并将权限策略同步至RangerAdmin上并绑定该Role。
Hive权限与LakeFormation权限对应关系
Hive权限与LakeFormation权限对应关系请参见表1。
|
Hive权限 |
LakeFormation权限 |
权限说明 |
|---|---|---|
|
ALL |
ALL |
|
|
ALTER |
ALTER |
|
|
UPDATE |
UPDATE |
|
|
CREATE |
CREATE_TABLE |
|
|
DROP |
DROP |
|
|
SELECT |
|
|
|
INSERT |
INSERT |
|