79.Sentry实现Hive/Impala数据脱敏

79.1 演示环境介绍

  • CM和CDH版本:5.13.1
  • 已启用Kerberos
  • 已启用Sentry

79.2 操作演示

测试数据

[root@ip-186-31-16-68 datamasking]# vim employees.csv
1,John Smith,123-55-4567,25000.0
2,Jim Bloggs,999-88-7777,35000.0
3,Jane Doe,808-88-0880,45000.0

创建Hive外部表

CREATE EXTERNAL TABLE employees
(key INT, fullname STRING, ssn STRING, salary FLOAT)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LOCATION '/extwarehouse/data/employees/';

用beeline连接HiveServer2

[root@ip-186-31-16-68 datamasking]# beeline 
beeline> !connect jdbc:hive2://ip-186-31-24-169.ap-southeast-1.compute.internal:10099/;principal=hive/[email protected]

将数据加载到外部表employees的HDFS目录

[root@ip-186-31-16-68 ~]# cd datamasking/
[root@ip-186-31-16-68 datamasking]# ll
total 8
-rw-r--r-- 1 root root  97 Mar 15 23:12 employees.csv
-rw-r--r-- 1 root root 173 Mar 15 23:22 employees.sql
[root@ip-186-31-16-68 datamasking]# hadoop fs -put employees.csv /extwarehouse/data/employees/
[root@ip-186-31-16-68 datamasking]# hadoop fs -ls /extwarehouse/data/employees/
Found 1 items
-rwxrwx--x+  3 hive hive         97 2018-03-15 23:28 /extwarehouse/data/employees/employees.csv
[root@ip-186-31-16-68 datamasking]# 

通过视图的方式将employees表中的ssn数据进行脱敏处理,SQL如下:

CREATE VIEW employees_masked AS
SELECT key,
       fullname,
       CONCAT('***-**-', SUBSTR(ssn, 8, 4)) AS ssn,
       "PRIVATE" AS salary
FROM employees;
  • 在命令行通过Beeline使用Hive管理员用户登录HiveServer2,进行创建视图操作
    • 执行SQL查看视图数据
  • 创建脱敏视图
    • 查看未脱敏视图数据
CREATE VIEW employees_unmasked AS
       SELECT key, fullname, ssn, salary
FROM employees;
  • 权限分配及测试
    • 创建faysona和faysonb用户对应上图的Group A和Group B
    • Hue管理员账号登录创建faysona和faysonb用户
    • 在命令行使用faysona用户访问employees表的数据文件
    • hive用户登录Hue给faysona和faysonb用户分别授权
    • faysona用户登录Hue查看employees_unmasked和employees_masked视图数据
    • fHive引擎查询employees_masked脱敏视图数据
    • Hive引擎查询employees_unmasked未脱敏视图
    • Impala引擎查询employees_masked脱敏视图数据
    • Impala引擎查询employees_unmasked未脱敏视图数据
    • 在命令行使用faysona用户访问employees表的数据文件
[root@ip-186-31-16-68 ~]# kinit faysona
[root@ip-186-31-16-68 ~]# hadoop fs -cat /extwarehouse/data/employees/employees.csv
  • 总结
    • 为Hive数据进行脱敏处理可以使用regexp_replace()函数通过正则表达式的方式敏感数据屏蔽,也可以通过自定义的UDF函数来等方式来实现敏感数据脱敏
    • 通过脱敏SQL创建视图,使用Sentry权限控制将脱敏数据的视图提供给不同的用户访问
    • 授权访问视图(即使授权ALL)的用户也无权限访问相应表的底层数据文件

大数据视频推荐:
腾讯课堂
CSDN
大数据语音推荐:
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通

你可能感兴趣的:(79.Sentry实现Hive/Impala数据脱敏)