企业级大数据安全架构(六)
本节详细介绍企业级大数据架构中的第六部分,数据授权和审计管理
1.Ranger简介
Apache Ranger是一款被设计成全面掌管Hadoop生态系统的数据安全管理框架,为Hadoop生态系统众多组件提供一个统一的数据授权和管理界面,
管理员只需要对接一个Ranger管理系统,就可以对整个Hadoop生态系统进行数据管理,数据授权和审计。
2.安装Ranger和Ranger KMS
需要先创建ranger库
CREATE DATABASE ranger DEFAULT CHARACTER SET utf8;
CREATE USER 'ranger'@'localhost' IDENTIFIED BY 'hdp123456';
GRANT ALL PRIVILEGES ON *.* TO 'ranger'@'localhost';
CREATE USER 'ranger'@'%' IDENTIFIED BY 'hdp123456';
GRANT ALL PRIVILEGES ON *.* TO 'ranger'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'ranger'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'ranger'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
需要先创建rangerkms库
CREATE DATABASE rangerkms DEFAULT CHARACTER SET utf8;
CREATE USER 'rangerkms'@'localhost' IDENTIFIED BY 'hdp123456';
GRANT ALL PRIVILEGES ON *.* TO 'rangerkms'@'localhost';
CREATE USER 'rangerkms'@'%' IDENTIFIED BY 'hdp123456';
GRANT ALL PRIVILEGES ON *.* TO 'rangerkms'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'rangerkms'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'rangerkms'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
下面以Ambari安装组件为例:
3.FAQ
(1)测试联通性时报Access denied for user
Root用户没有权限导致的
给root用户添加权限后测试通过
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'hdp123456'
(2)Access denied for user 'root'@'%' to database 'rangerkms' ErrorCode: 1044
登录mysql查看权限
mysql> SELECT host,user,authentication_string,Grant_priv,Super_priv FROM mysql.user;
可以看到授权的权限没有打开,修复下
打开权限
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
4.Ranger配置
4.1 HDFS配置
4.1.1在ranger中选择开启要开ranger相对于的组件
4.1.2选择对应组件添加相关配置
4.1.3参数配置
4.1.4测试联通性之后保存
参数说明
参数 | 说明 |
Service Name | 自定义 |
Username | 自定义 |
Password | 自定义。 |
Namenode URL | o 非高可用集群:hdfs://emr-header-1:9000。 o 高可用集群:hdfs://emr-header-1:8020。 |
Authorization Enabled | 标准集群选择No;高安全集群选择Yes。 |
Authentication Type | o Simple:表示标准集群。 o Kerberos:表示高安全集群。 |
dfs.datanode.kerberos.principal | 标准集群时不填写;高安全集群时填写hdfs/_HOST@EMR.${id}.com。
|
dfs.namenode.kerberos.principal | |
dfs.secondary.namenode.kerberos.principal | |
Add New Configurations |
说明 您可以登录服务器执行hostname命令,hostname中的数字即为${id}。
Namenode URL参数查看
4.1.5权限配置示例
例如,授予test用户/user/foo路径的Write和Execute权限。
a.进入Ranger UI页面
b.在Ranger UI页面,单击配置好的hdp-hadoop。
c.单击右上角的Add New Policy。
d.配置相关参数。
e.单击Add。
e.单击Add。
参数 | 说明 |
Policy Name | 策略名称,可以自定义。 |
Resoure Path | 资源路径。 |
recursive | 子目录或文件是否集成权限。 |
Select Group | 指定添加此策略的用户组。 |
Select User | 指定添加此策略的用户。 |
Permissions | 选择授予的权限。 |
添加Policy后,实现了对test用户的授权。test用户即可访问/user/foo的HDFS路径。
说明 添加、删除或修改Policy后,需要等待约一分钟至授权生效。