添加HetuEngine的Ranger访问权限策略
操作场景
Ranger管理员可通过Ranger为HetuEngine用户配置操作数据源的数据库、表、列的管理权限。
前提条件
- 已安装Ranger服务且服务运行正常。
- 已创建用户需要配置权限的用户、用户组或角色。
- 用户已加入hetuuser组。
- 在使用HetuEngine前,请确保客户端操作用户/连接数据源的配置文件中的用户是具备预期的操作权限,如果没有请参考对应的数据源权限配置。
操作步骤
- 使用Ranger管理员用户rangeradmin登录Ranger管理页面,具体操作可参考登录Ranger WebUI界面。
- 在首页中单击“PRESTO”区域的“HetuEngine”。
- 在“Access”页签单击“Add New Policy”,添加HetuEngine权限控制策略。
- 根据业务需求配置相关参数。
“授予访问表所在的Catalog策略”为基础策略,配置其他策略前必须先确保配置了此策略,可参考表2进行配置。
表1 HetuEngine权限参数 参数名称
描述
Policy Name
策略名称,可自定义,不能与本服务内其他策略名称重复。
- Enabled:启用当前策略。
- Disabled:不启用当前策略。
Policy Conditions
IP过滤策略,可自定义,配置当前策略适用的主机节点IP,可填写一个或多个IP或IP段,并且IP填写仅支持“*”通配符,例如:192.168.1.10,192.168.1.20或者192.168.1.*。
Policy Label
为当前策略指定一个标签,您可以根据这些标签搜索报告和筛选策略。
Presto Catalog
适用该策略的数据源Catalog名称,填写*时表示所有Catalog。
- Include:策略适用于当前输入的对象。
- Exclude:策略适用于除去当前输入内容之外的其他对象。
Schema
适用该策略的schema名称,填写*时表示所有schema。
- Include:策略适用于当前输入的对象。
- Exclude:策略适用于除去当前输入内容之外的其他对象。
table
适用该策略的table/view名称,填写*时表示所有table。
- Include:策略适用于当前输入的对象。
- Exclude:策略适用于除去当前输入内容之外的其他对象。
Column
适用该策略的列名,填写*时表示所有列。
Description
策略描述信息。
Audit Logging
是否审计此策略。
Allow Conditions
策略允许条件,配置本策略内允许的权限及例外。
在“Select Role”、“Select Group”、“Select User”列选择已创建好的需要授予权限的Role、用户组或用户。单击“Add Conditions”,添加策略适用的IP地址范围,单击“Add Permissions”,添加对应权限。
- Select:查询权限
- Insert:插入权限
- Create:创建权限
- Drop:drop权限
- Delete:删除权限
- Use:use权限
- Alter:alter权限
- Update: update权限
- Admin:admin权限
- All:所有执行权限(涵盖Admin权限)
- Select/Deselect All:全选/取消全选
如需添加多条权限控制规则,可单击
按钮添加。如需当前条件中的用户或用户组管理本条策略,可勾选“Delegate Admin”,这些用户将成为受委托的管理员。被委托的管理员可以更新、删除本策略,它还可以基于原始策略创建子策略。
Deny Conditions
策略拒绝条件,配置本策略内拒绝的权限及例外,配置方法与“Allow Conditions”相同。
表2 设置权限 任务场景
角色授权操作
授予访问表所在的Catalog策略
- 在“Policy Name”填写策略名称。
- 在“Presto Catalog”填写要授权的资源所在的catalog,如“hive”。
- 在“Select User”中填授权的Hetu用户。
- 在“Permissions”中勾选“Select”。
说明:此策略为基础策略,在配置其他策略前必须先确保配置了此策略。
授予访问远端HetuEngine表的权限
- 在“Policy Name”填写策略名称。
- 在“Presto Catalog”填写要授权的表所在的catalog,“systemremote”和“svc”。
- 在“Presto Catalog”下方的下拉框中选中“schema”,同时在其对应的输入框中输入“*”。
- 在“schema”下方的下拉框中选中“table”,同时在其对应的输入框中输入“*”。
- 在“table”下方的下拉框中选中“column”,同时在其对应的输入框中输入“*”。
- 在“Select User”中填授权的远端HetuEngine用户。
- 在“Permissions”中勾选“Create、Drop、Select、Insert”。
说明:此策略为远端HetuEngine表的基础策略,在配置其他策略前必须先确保配置了此策略。
Create schema
- 在“Policy Name”填写策略名称。
- 在“Presto Catalog”填写要授权的table所在的catalog,如“hive”。
- 在“Presto Catalog”下方的下拉框中选中“schema”,同时在其对应的输入框中输入要授权的schema名称。如果填“*”,表示对所有当前catalog下的所有schema进行授权。
- 在“Select User”中填授权的Hetu用户。
- 在“Permissions”中勾选“Create”。
Drop schema
- 在“Policy Name”填写策略名称。
- 在“Presto Catalog”填写要授权的table所在的catalog,如“hive”。
- 在“Presto Catalog”下方的下拉框中选中“schema”,同时在其对应的输入框中输入要授权的schema名称。如使用“*”,表示对所有当前catalog下的所有schema进行授权。
- 在“Select User”中填授权的Hetu用户。
- 在“Permissions”中勾选“Drop”。
Create table
- 在“Policy Name”填写策略名称。
- 在“Presto Catalog”填写要授权的table所在的catalog,如“hive”。
- 在“Presto Catalog”下方的下拉框中选中“schema”,同时在其对应的输入框中输入要授权table所在的schema,如“default”。
- 在“schema”下方的下拉框中选中“table”,同时在其对应的输入框中输入要授权的目标table。如使用“*”,表示对所有当前schema下的所有table进行授权。
- 在“Select User”中填授权的Hetu用户。
- 在“Permissions”中勾选“Create”。
Drop table
- 在“Policy Name”填写策略名称。
- 在“Presto Catalog”填写要授权的table所在的catalog,如“hive”。
- 在“Presto Catalog”下方的下拉框中选中“schema”,同时在其对应的输入框中输入要授权table所在的schema,如“default”。
- 在“schema”下方的下拉框中选中“table”,同时在其对应的输入框中输入要授权的目标table。如使用“*”,表示对所有当前schema下的所有table进行授权。
- 在“Select User”中填授权的Hetu用户。
- 在“Permissions”中勾选“Drop”。
Alter table
- 在“Policy Name”填写策略名称。
- 在“Presto Catalog”填写要授权的table所在的catalog,如“hive”。
- 在“Presto Catalog”下方的下拉框中选中“schema”,同时在其对应的输入框中输入要授权table所在的schema,如“default”。
- 在“schema”下方的下拉框中选中“table”,同时在其对应的输入框中输入要授权的目标table。如使用“*”,表示对所有当前schema下的所有table进行授权。
- 在“Select User”中填授权的Hetu用户。
- 在“Permissions”中勾选“Alter”。
说明:ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec[, PARTITION partition_spec, ...]; 的操作需要额外授予Table级别的“delete”和Column级别的“select”权限。
Show tables
- 在“Policy Name”填写策略名称。
- 在“Presto Catalog”填写要授权的表所在的catalog,如“hive”。
- 在“Presto Catalog”下方的下拉框中选中“schema”,同时在其对应的输入框中输入允许show table的目标schema,如“default”。
- 在“Select User”中填授权的Hetu用户。
- 在“Permissions”中勾选“Select”。
Insert表
- 在“Policy Name”填写策略名称。
- 在“Presto Catalog”填写要授权的table所在的catalog,如“hive”。
- 在“Presto Catalog”下方的下拉框中选中“schema”,同时在其对应的输入框中输入要授权table所在的schema,如“default”。
- 在“schema”下方的下拉框中选中“table”,同时在其对应的输入框中输入要授权的目标table。如使用“*”,表示对所有当前schema下的所有table进行授权。
- 在“Select User”中填授权的Hetu用户。
- 在“Permissions”中勾选“Insert”。
Delete
- 在“Policy Name”填写策略名称。
- 在“Presto Catalog”填写要授权的table所在的catalog,如“hive”。
- 在“Presto Catalog”下方的下拉框中选中“schema”,同时在其对应的输入框中输入要授权table所在的schema,如“default”。
- 在“schema”下方的下拉框中选中“table”,同时在其对应的输入框中输入要授权的目标table。如使用“*”,表示对所有当前schema下的所有table进行授权。
- 在“Select User”中填授权的Hetu用户。
- 在“Permissions”中勾选“Delete”。
Select
- 在“Policy Name”填写策略名称。
- 在“Presto Catalog”填写要授权的table所在的catalog,如“hive”。
- 在“Presto Catalog”下方的下拉框中选中“schema”,同时在其对应的输入框中输入要授权table所在的schema,如“default”。
- 在“schema”下方的下拉框中选中“table”,同时在其对应的输入框中输入要授权的目标table。如使用“*”,表示对所有当前schema下的所有table进行授权。
- 在“table”下方的下拉框中选中“column”,同时在其对应的输入框中输入要授权的目标column。如使用“*”,表示对所有当前table下的所有column进行授权
- 在“Select User”中填授权的Hetu用户。
- 在“Permissions”中勾选“Select”。
show columns
- 在“Policy Name”填写策略名称。
- 在“Presto Catalog”填写要授权的table所在的catalog,如“hive”。
- 在“Presto Catalog”下方的下拉框中选中“schema”,同时在其对应的输入框中输入要授权table所在的schema,如“default”。
- 在“schema”下方的下拉框中选中“table”,同时在其对应的输入框中输入要授权的目标table。如使用“*”,表示对所有当前schema下的所有table进行授权。
- 在“table”下方的下拉框中选中“column”,同时在其对应的输入框中输入要授权的目标column。如使用“*”,表示对所有当前table下的所有column进行授权。
- 在“Select User”中填授权的Hetu用户。
- 在“Permissions”中勾选“Select”。
set session
- 在“Policy Name”填写策略名称。
- 在“Presto Catalog”填写“*”。
- 在“Select User”中填授权的Hetu用户。
- 在“Delegate Admin”中进行勾选。
- 配置权限后预计30秒左右生效。
- 目前的权限管控可以到达列的级别。
- (可选)添加策略有效期。在页面右上角单击“Add Validity period”,设置“Start Time”和“End Time”,选择“Time Zone”。单击“Save”保存。如需添加多条策略有效期,可单击
按钮添加。如需删除策略有效期,可单击
按钮删除。 - 单击“Add”,在策略列表可查看策略的基本信息。等待策略生效后,验证相关权限是否正常。
如需禁用某条策略,可单击
按钮编辑策略,设置策略开关为“Disabled”。如果不再使用策略,可单击
按钮删除策略。
HetuEngine数据脱敏
Ranger支持对HetuEngine数据进行脱敏处理(Data Masking),可对用户执行的select操作的返回结果进行处理,以屏蔽敏感信息。
- 登录Ranger WebUI界面,在首页中单击“PRESTO”区域的“HetuEngine”。
- 在“Masking”页签单击“Add New Policy”,添加HetuEngine数据脱敏策略。
- 根据业务需求配置相关参数。
表3 HetuEngine数据脱敏参数 参数名称
描述
Policy Name
策略名称,可自定义,不能与本服务内其他策略名称重复。
Policy Conditions
IP过滤策略,可自定义,配置当前策略适用的主机节点,可填写一个或多个IP或IP段,并且IP填写支持“*”通配符,例如:192.168.1.10,192.168.1.20或者192.168.1.*。
Policy Label
为当前策略指定一个标签,您可以根据这些标签搜索报告和筛选策略。
Presto Catalog
配置当前策略使用的Catalog名称。
Presto Schema
配置当前策略使用的数据库名称。
Presto Table
配置当前策略使用的表名称。
Presto Column
配置当前策略使用的列名称。
Description
策略描述信息。
Audit Logging
是否审计此策略。
Transfer Mask
开启动态脱敏时该策略是否自动传递。配置HetuEngine动态脱敏请参考使用HetuEngine动态脱敏功能
Mask Conditions
在“Select Role”、“Select Group”、“Select User”列选择已创建好的需要授予权限的对象,单击“Add Conditions”,添加策略适用的IP地址范围,然后再单击“Add Permissions”,勾选“Select”权限。
单击“Select Masking Option”,选择数据脱敏时的处理策略:
- Redact:用x屏蔽所有字母字符,用0屏蔽所有数字字符。
- Partial mask: show last 4:只显示最后的4个字符,其他用x代替,不支持中文字符脱敏。
- Partial mask: show first 4:只显示开始的4个字符,其他用x代替,不支持中文字符脱敏。
- Hash:用值的哈希值替换原值。
- Nullify:用NULL值替换原值。
- Unmasked(retain original value):原样显示。
- Custom:可使用任何有效返回与被屏蔽的列中的数据类型相同的数据类型来自定义策略。
如需添加多列的脱敏策略,可单击
按钮添加。 - 单击“Add”,在策略列表可查看策略的基本信息。
- 用户通过HetuEngine客户端对配置了数据脱敏策略的表执行select操作,系统将对数据进行处理后进行展示。
HetuEngine行级别数据过滤
Ranger支持用户对HetuEngine数据表执行select操作时进行行级别的数据过滤。
- 登录Ranger WebUI界面,在首页中单击“PRESTO”区域的“HetuEngine”。
- 在“Row Level Filter”页签单击“Add New Policy”,添加行数据过滤策略。
- 根据业务需求配置相关参数。
表4 HetuEngine行数据过滤参数 参数名称
描述
Policy Name
策略名称,可自定义,不能与本服务内其他策略名称重复。
Policy Conditions
IP过滤策略,可自定义,配置当前策略适用的主机节点,可填写一个或多个IP或IP段,并且IP填写支持“*”通配符,例如:192.168.1.10,192.168.1.20或者192.168.1.*。
Policy Label
为当前策略指定一个标签,您可以根据这些标签搜索报告和筛选策略。
Presto Catalog
配置当前策略使用的Catalog名称。
Presto Schema
配置当前策略使用的数据库名称。
Presto Table
配置当前策略使用的表名称。
Description
策略描述信息。
Audit Logging
是否审计此策略。
Row Filter Conditions
在“Select Role”、“Select Group”、“Select User”列选择已创建好的需要授予权限的对象,单击“Add Conditions”,添加策略适用的IP地址范围,然后再单击“Add Permissions”,勾选“Select”权限。
单击“Row Level Filter”,填写数据过滤规则。
例如过滤表A中“name”列“zhangsan”行的数据,过滤规则为:name <> 'zhangsan'。更多信息可参考Ranger官方文档。
如需添加更多规则,可单击
按钮添加。 - 单击“Add”,在策略列表可查看策略的基本信息。
- 用户通过HetuEngine客户端对配置了数据脱敏策略的表执行select操作,系统将对数据进行处理后进行展示。