· 普通用户在新建角色时,需要走流程审批,待审批人审批通过后才能触发新建角色的操作。系统超级管理员或安全管理员新建角色时,无需审批,会直接触发新建角色的操作。 · 在同一个集群中,角色名称具有唯一性,在同一集群中创建多个角色时名称不能重复。 · 仅开启“安全管理/权限管理”且运行正常的集群可执行新建角色的操作。 · 仅开启“Kerberos认证”与“权限管理”的集群可以配置Kafka或Solr组件的权限(集群中已安装Kafka或Solr组件)。 · 为集群新建角色时,选择组件栏只显示当前版本中支持权限控制的组件,且不同组件控制的资源不同,支持的权限控制粒度也不同,详情请以实际页面为准。 · 在新建角色添加组件资源时,不检验资源格式的合法性。 · 新建Redis权限的角色时,Redis权限不支持与其他组件的权限同时配置在一个角色中,且一个角色中仅支持创建一条Redis权限。 · 新建拥有Hive权限的角色时,若要使用数据脱敏和行级过滤则必须首先配置数据库表的select权限。 |
集群在使用过程中,根据实际需要,可为某集群执行新建角色的操作,且可为其分配对应的组件权限。
在集群权限的左侧导航树中选择[角色管理],进入角色管理页面。
在角色管理页面,单击<新建角色>按钮,进入新建角色页面。
根据提示配置对应参数项的值,如下:
角色名:自定义输入符合命名规则的角色名。
描述:自定义添加角色的描述信息,以便于快速了解角色功能。
选择组件:为角色配置组件权限,关于各组件权限类型对应的常用组件操作详情请参见表-1。已选择组件标记为蓝色,未选择组件为灰色。
Elasticsearch:支持对索引配置权限(支持使用通配符*模糊适配),权限包括:read、index、create、delete、create_index、delete_index、view_index_metadata、monitor、manage、all。注意:Elasticsearch开启权限管理与Kerberos认证后操作命令的使用会发生变化,具体内容参见Elasticsearch开启权限管理与Kerberos认证后操作命令的使用变更。
HDFS:支持对HDFS存储路径配置权限(支持使用通配符*模糊适配),权限包括:read、write和execute。开启权限管理后,除了用户角色配置的权限外,HDFS组件默认对一些路径提供了读写操作权限,建议用户不要对这些路径及其子目录进行修改和操作,HDFS提供默认权限的路径可参见HDFS默认拥有读写权限的路径。
YARN:支持对队列配置权限(支持使用通配符*模糊适配),权限包括:submit-app、admin-queue。
Hive:支持对数据库表和数据库UDF配置权限(支持使用通配符*模糊适配),并且提供数据脱敏和行级过滤功能。(1)数据库表可对数据库、数据表、列配置权限,权限包括:select、update、create、drop、alter、index、use,其中all表示配置所有权限。注意:Hive的数据库表权限同样也适用于Impala(Impala只支持查询操作的列权限)、Spark组件,即Impala、Spark SQL也支持对库表的访问权限控制。(2)数据库UDF可对数据库、UDF配置权限,权限包括create、drop。(3)数据脱敏是指按照某种规则对指定列的数据进行脱敏,保证数据安全性,数据脱敏策略详情请参见表-2。(4)行级过滤是指对表配置行级过滤策略,仅展示满足过滤策略的数据(若过滤策略配置为空则不过滤)。行级过滤类似where子句,示例:配置策略id>1时,查询表时会自动获取id大于1的数据。
DLH:支持对数据库表和数据库UDF配置权限(支持使用通配符*模糊适配)。数据库表可对数据库、数据表、列配置权限,权限包括:select、update、create、drop、alter、index、use,其中all表示配置所有权限。数据库UDF可对数据库、UDF配置权限,权限包括create、drop。
HBase:支持对表、列族和列配置权限(支持使用通配符*模糊适配),权限包括:read、write、create、admin。注意:表的格式为<namespace>:<table>,如果namespace不填写则默认为default,创建namespace时需要admin权限。
Kafka:支持对主题配置权限(支持使用通配符*模糊适配),权限包括:publish、consume。注意:仅开启“Kerberos认证”与“权限管理”的集群可以配置Kafka组件的权限。
Solr:支持对索引配置权限(支持使用通配符*模糊适配),权限包括:query、update、solr_admin、others。注意:仅开启“Kerberos认证”与“权限管理”的集群可以配置Solr组件的权限。
Redis:支持对键(key)配置权限(支持使用通配符*模糊适配),权限包括:all、read、write、admin、string、list、hash、set、sortedset,其中all表示配置所有权限。注意:若角色同时拥有多个Redis权限类型时,权限范围取并集。
配置完成后,单击<确定>按钮即可完成新建角色。
组件 |
权限类型 |
对应的组件常用操作 |
Elasticsearch |
read |
查询索引中数据 |
index |
在索引中插入数据 |
|
create |
在索引中插入数据,等同于index权限 |
|
delete |
删除索引中数据 |
|
creat_index |
创建索引 【说明】创建Elasticsearch索引的用户不具有索引的所有权限,操作对应索引时也需要被授予相应的权限 |
|
delete_index |
删除索引 |
|
view_index_metadata |
查看索引元数据,当index为“*”时生效 |
|
monitor |
监控索引信息,如(_stats、_segments等) 【说明】manage权限包含monitor权限的命令,即拥有manage权限的时候monitor权限也会同时生效 |
|
manage |
管理索引信息,(如_refresh、_cache/clear等) |
|
all |
all权限默认包含其它所有权限,当index为“*”时,默认拥有集群所有权限 |
|
HDFS |
read |
文件(夹)的访问等相关操作,如:hdfs dfs -cat 操作 |
write |
数据写入等相关操作,如:hdfs dfs -touch 操作 |
|
execute |
文件(夹)执行等相关操作,可以和read或write权限结合使用。如:hdfs dfs -ls操作需要read和execute权限 |
|
YARN |
submit-app |
提交任务到队列,yarn application可查看该用户的所有任务 |
admin-queue |
包含submit-app权限,同时yarn application可查看该用户的所有任务和该队列上的所有任务 |
|
Hive (Hive的数据库表权限同样也适用于Impala、Spark组件,即Impala、Spark SQL也支持对库表的访问权限控制) |
select |
库表查询等相关操作,如:select、export、show、describe 【说明】对于Impala组件,不支持export语法 |
update |
插入或更新库表等相关操作,如:insert、insert overwrite、delete、update、load 【说明】对于Impala、Spark组件,不支持update、delete语法 |
|
create |
创建库表等相关操作,如:create table、create database 【说明】库表的创建者默认不拥有库表的使用权限,但是通过权限管理功能可授予其使用权限 |
|
drop |
删除库表等相关操作,如:drop table |
|
alter |
修改库表等相关操作,如:alter table 【说明】对于Impala组件,当修改表名称(alter table)时,需要拥有all权限 |
|
index |
索引等相关操作,如:create index 【说明】使用Impala、Spark SQL操作数据库时,不支持索引,无需赋予index权限 |
|
use |
执行show database、use database等操作 【说明】使用Impala、Spark SQL操作数据库时,无需赋予use权限 |
|
all |
支持以上所有操作 |
|
DLH |
select |
库表查询等相关操作,如:select、export、show、describe |
update |
插入或更新库表等相关操作,如:insert、insert overwrite、delete、update、load |
|
create |
创建库表等相关操作,如:create table、create database 【说明】库表的创建者默认不拥有库表的使用权限,但是通过权限管理功能可授予其使用权限 |
|
drop |
删除库表等相关操作,如:drop table |
|
alter |
修改库表等相关操作,如:alter table |
|
index |
索引等相关操作,如:create index |
|
use |
执行show database、use database等操作 |
|
all |
支持以上所有操作 |
|
HBase (说明:所有用户默认可执行exists、split操作) |
read |
数据读取等相关操作,如:get、scan |
write |
数据写入等相关操作,如:put、delete |
|
create |
表创建、删除等操作,如:create、disable、enable、drop、compact、major_compact、alter 【说明】库表的创建者默认不拥有库表的使用权限,但是通过权限管理功能可授予其使用权限 |
|
admin |
拥有read、write及create权限,并且可执行命名空间等相关操作,如:create_namespace、drop_namespace、snapshot、clone_snapshot、restore_snapshot、truncate |
|
Kafka |
publish |
执行publish操作 |
consume |
执行consume操作 |
|
Solr |
query |
查询索引中的数据,如/select |
update |
更新索引中的数据,如/update |
|
solr_admin |
默认包含其他所有权限 |
|
others |
包含/query,/admin/file,/admin/mbeans等 |
|
Redis |
read |
查询键等相关操作,如:get、hget、lrange、exists |
write |
新增或删除键等相关操作,如:set、mset、rpush、xadd、del、hdel |
|
admin |
实例的相关管理操作,如:acl、save、config、shutdown |
|
string |
键的值为字符串对象时,对应的读写相关操作,如:get、set、decr、getset、append |
|
list |
键的值为列表对象时,对应的读写相关操作,如:rpush、llen、sort、lrem |
|
hash |
键的值为哈希对象时,对应的读写相关操作,如:hget、hset、hdel、hsetnx |
|
set |
键的值为集合对象时,对应的读写相关操作,如:sscan、sadd、smove、sdiff |
|
sortedset |
键的值为有序集合对象时,对应的读写相关操作,如:zadd、zrange、zcard、zunion、zscore |
|
all |
支持以上所有操作 |
【说明】表-1中的各组件权限对应的组件操作仅列举了常用操作,各组件的其他操作对应的权限类型请以实际为准。
下面以HDFS操作对应的权限进行简单示例:
touch命令,要求拥有目录的写权限
举例:hdfs dfs -touch /test3/dir/file2,要求拥有/test3/dir目录的写权限
cat命令,要求拥有文件的读权限
举例:hdfs dfs -cat /test3/dir/file,要求拥有/test3/dir/file文件的读权限
put命令,要求拥有目录的写权限
举例:hdfs dfs -put /tmp/data /test3/dir/data,要求拥有/test3/dir目录的写权限
ls命令,要求拥有目录的读、执行权限。对目录有访问权限控制,且子目录可继承父目录的相关权限
举例:hdfs dfs -ls /test3/dir,要求拥有/test3/dir目录的读、执行权限
find命令,要求拥有目录的读、执行权限。对目录有访问权限控制,且子目录可继承父目录的相关权限
举例:hdfs dfs -find /test3/dir/ -name file,要求拥有/test3/dir目录的读、执行权限
du命令(展示目录包含的文件的大小),要求拥有目录的读、执行权限。对目录有访问权限控制,且子目录可继承父目录的相关权限
举例:hdfs dfs -du -s -h /test3/dir,要求拥有/test3/dir目录的读、执行权限
df命令(展示空间使用情况),则不需要拥有权限操作
举例:hdfs dfs -df -h /test3/dir/,不需要拥有/test3/dir目录的相关权限
表-2 Hive数据脱敏策略
数据脱敏策略 |
策略规则 |
详细说明 |
MASK |
对字母和数字脱敏 |
|
MASK_SHOW_LAST_4 |
后四位不脱敏 |
|
MASK_SHOW_FIRST_4 |
前四位不脱敏 |
|
MASK_HASH |
显示HASH值 |
|
MASK_NULL |
显示NULL值 |
NULL值替代原值 |
MASK_NONE |
显示原值 |
显示原值 |
MASK_DATE_SHOW_YEAR |
脱敏时间信息 |
|