本文介绍如何将Presto集成到Ranger,以及如何配置权限。
前提条件
Presto集成Ranger
- Ranger启用Presto。
- Ranger UI添加Presto Service。
- 重启Presto Master。
权限配置示例
Ranger Presto权限控制与Ranger Hive和Ranger Hbase等权限控制不同,Ranger Presto采用的是权限分层次控制的策略。
注意
- 配置的权限应该与所属的层次保持一致。如果配置的权限与所属的层次不相符,则该权限配置将不起作用。
- Presto会对用户进行两次权限检查,首先检查该用户是否有访问Catalog的权限,其次检查本次访问所涉及到的权限。
示例一:给用户liu授予访问hive表testdb.test的a列的Select权限。
- 进入Ranger UI页面,详情请参见概述。
- 在Ranger UI页面,单击配置好的emr-presto。
- 单击右上角的Add New Policy。
添加Policy对catalog的访问权限进行控制。因为该权限为catalog层次,所以只需要配置到catalog层次即可。授权用户liu访问catalog的Use权限。
- 单击Add。
- 单击右上角的Add New Policy。
配置liu用户对表testdb.test的a列的Select权限。由于表的Select权限属于column层次,因此需要单击
图标,依次添加schema、table和column层次的内容。
参数 说明 Policy Name 策略名称,可自定义。例如testdb。 catalog 添加catalog的名称,可自定义。例如hive。 schema 添加schema的名称,例如testdb。星号(*)表示所有schema。 table 添加table的名称,例如test。星号(*)表示所有table。 column 添加column的名称,例如a。星号(*)表示所有column。 Select User 指定添加此策略的用户,例如liu。 Permissions 选择授予的权限,例如Select。 - 单击Add。
添加Policy后,实现对liu用户的授权。liu用户即可以对testdb.test表的a列进行访问。说明 添加、删除或修改Policy后,需要等待约一分钟至授权生效。
示例二:给用户chen添加创建hive表testdb.test的Create权限。
- 进入Ranger UI页面,详情请参见概述。
- 给用户chen添加Catalog访问权限(此例中Catalog=hive)。
- 如果已经添加了Catalog层次的Policy,则直接编辑该Policy,在Select User中增加用户chen。
- 单击配置好的emr-presto。
- 单击catalog_hive所在行的
图标。
- 授权用户chen访问catalog的Use权限。
- 单击Add。
- 如果还未添加Catalog层次的Policy,则按照示例一中的方法,授权用户chen访问catalog的Use权限。
- 如果已经添加了Catalog层次的Policy,则直接编辑该Policy,在Select User中增加用户chen。
- 单击右上角的Add New Policy。
由于表的Create权限属于schema层次,因此您需要配置权限到schema层次。单击
按钮,添加schema层次的内容。
示例三:在Ranger UI页面,配置
show schemas
和show tables
权限。
- EMR-3.28.1之前版本
您需要配置
schema=information_schema,table=schemate,column=*
的Select来获取show schemas
执行的结果,配置schema=information_schema,table=tables,column=*
的Select来获取show tables
执行的结果,两者可以配置在一个Policy当中,示例如下。 - EMR-3.28.1及后续版本和EMR-4.4.1版本
如果您需要执行
show schemas
命令,则需要配置对Catalog的Show权限。同理,如果您需要执行show tables
命令,则需要配置对Schema的Show权限。因为Presto在鉴权完成后,还会对获取到的Schema和Table的列表进行一次筛选,只筛选出具有Select权限的Schema和Table进行显示,所以您还需要配置Schema和Table的Select权限。当您在执行Show命令时,只会显示出具有Select权限的Schema和Table。
Ranger Presto与Ranger Hive共享权限配置
在部分场景下,Presto和Hive中配置的权限是一致的。由于EMR的Ranger提供了可以让Ranger Presto和Ranger Hive共享权限的方案,因此只需要在Ranger的Hive
service中配置相关权限,Ranger Presto即可直接使用该权限配置用于检查用户权限。
说明 Ranger Presto与Ranger Hive共享权限配置,仅适用于Catalog为hive时的场景。
配置前需要关注以下事项:
- 已正确配置Ranger Hive,详情请参见Hive配置。
- 已在Ranger UI中添加Ranger Presto service。
- 与Ranger Presto一样,如果需要使用
show schemas
或show tables
命令,则在Ranger Hive service中配置用户对database=information_schema,table=*,column=*
的Select权限。
使用及配置方法如下:
在文档使用中是否遇到以下问题
更多建议
匿名提交