一、Apache Ranger是什么?
Apache Ranger是一個框架,Hadoop上對於保護數據數據安全性的安全框架。用於在整個Hadoop平台上啟用,監視和管理全面的數據安全性。
二、特性
Apache Ranger具有以下特性:
- 集中式安全管理,可在中央UI或使用REST API管理所有與安全相關的任務。
- 使用Hadoop組件/工具執行特定操作和/或操作的精細授權,並通過中央管理工具進行管理
- 跨所有Hadoop組件標准化授權方法。
- 增強了對不同授權方法的支持-基於角色的訪問控制,基於屬性的訪問控制等。
- 在Hadoop的所有組件中集中審核用戶訪問和管理操作(與安全性相關)。
三、ranger內部結構
1、包含的組件如下:
- Ranger Admin 用戶管理策略,提供WebUI和RestFul接口
- Ranger UserSync 用於將Unix系統或LDAP用戶/組同步到RangerAdmin
- Ranger TagSync 同步Atlas中的Tag信息
- Ranger KMS
2、依賴的組件如下:
- JDK 運行RangerAdmin RangerKMS
- RDBMS 1.存儲授權策略 2.存儲Ranger 用戶/組 3.存儲審核日志
- Solr(可選) 存儲審核日志
- HDFS(可選) 存儲審核日志
- Kerberos(可選) 確保所有請求都被認證
3、當前2.1.0支持的組件如下:
- YARN
- HDFS
- SOLR
- KYLIN
- ATLAS
- OZONE
- HBASE
- KNOX
- KAFKA
- NIFI-REGISTRY
- ELASTICSEARCH
- HIVE
- STORM
- NIFI
- SQOOP
- PRESTO
4、處理流程如下:
四、安裝
Ranger當前在GitHub中最新版本是2.1.0,從官網下載的源碼包最新版本是2.0.0。安裝ranger需要源碼安裝,官方沒有提供編譯好的二進制包,同時,對於要使用ranger部署的Hadoop組件,需要考慮到版本之間的兼容性。如下是我在做測試的時候,所使用的版本。
ranger版本 | 2.1.0 |
hadoop版本 | 2.9.2 |
hbase版本 | 2.0.2 |
hive版本 | 3.1.2 |
注:在測試的時候我使用hive2.x、hbase1.3和1.4都不能正常的使用,報錯信息看后面ranger hive與ranger hbase相關的錯誤信息。
1、官網下載源碼包
下載方式1:從GitHub下載,下載方式如下:
# git clone https://github.com/apache/ranger.git #默認下載最新版本,下載位置隨意,例如: /data1/hadoop/ranger/
或者
# git clone https://github.com/apache/incubator-ranger.git
注:下載需要使用到git命令,請自行安裝。
如果是centos,可以使用 # yum install git -y 如果是ubuntu # apt-get update #apt-get install git -y 如果是內網機器,可以使用yum代理或者下載rpm包(centos)、dep包(Ubuntu)
下載方式2:從官網下載源碼tar包
# wget http://mirrors.tuna.tsinghua.edu.cn/apache/ranger/2.0.0/apache-ranger-2.0.0.tar.gz
2、下載maven
編譯安裝需要使用到maven,下載如下:
# wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz 解壓 做軟連接 #ln -s apache-maven-3.6.2-bin maven 添加環境變量 # vim ~/.bashrc export MAVEN_HOME=/data1/hadoop/maven export PATH=${MAVEN_HOME}/bin:$PATH
3、編譯安裝
# cd ranger # mvn clean compile package assembly:assembly install -DskipTests -Drat.skip=true (安裝過程漫長,需要等待!!!),注意:源碼安裝需要JDK環境 我這里使用的是從GitHub下載的源代碼進行編譯安裝的,其他方式都一樣的操作。
編譯過程看網絡,看機器,時間不定,基本來說需要20分鍾以上,我第一次編譯花了兩個多小時。機器不咋地,使用的kvm虛擬機。
編譯完成如下:
如果出現綠色的BUILD SUCCESS說明編譯成功。
編譯完成以后,在當前目錄下的target目錄下會生成相應的tar包文件,如下:
接下來就可以使用這些編譯完成二進制tar文件。
如果在編譯安裝的時候,需要對Hadoop、hbase、hive等相應的版本有要求,那么可以在下載的源代碼目錄下有一個pom.xml文件,這里面修改對於Hadoop組件的版本,我當初就是沒有修改,導致后面在使用的時候,出現很多版本兼容性問題。
列如:我的安裝目錄
/data1/hadoop/ranger/ranger 第一個ranger是我自己創建的,第二個ranger是GitHub下載的時候自動生成的。
五、安裝ranger-admin
安裝ranger-admin的機器可以不在Hadoop集群內部,可以是隨便一台。這里我就安裝在當前機器上。
1、解壓admin軟件包
# tar zxvf ranger-2.1.0-SNAPSHOT-admin.tar.gz -C /data/ranger
2、修改install.properties文件
注:ranger-admin依賴數據庫,需要存儲信息。安裝數據庫操作請自行百度。
# cd /data/ranger/ranger-2.1.0-SNAPSHOT-admin 修改install.properties文件,需要修改的信息如下:
(1)數據庫配置:
- SQL_CONNECTOR_JAR=/usr/share/java/mysql-connector-java.jar #sql連接器,需要從官網下載,然后修改成該名字,當然也可以自己定義
- db_root_user=root #數據庫用戶名
-
db_host=localhost #數據庫主機,如果不在一台機器,請修改
- db_root_password=***** #數據庫密碼
以下三個屬性是用於設置ranger數據庫的
db_name=ranger #數據庫名字
db_user=root #管理數據庫的用戶
db_password=**** #密碼
(2)、審計日志
如果沒有安裝solr,這里可以全部注釋
audit_store=solr
audit_solr_urls=http://localhost:6083/solr/ranger_audits
audit_solr_user=solr
(3)、策略管理配置
policymgr_external_url=http://localhost:6080 #配置用戶名和端口,如果不想使用默認值,可以修改。
這里需要注意:ranger在連接數據庫的時候,對於密碼強度要求很高,當然,這也是由於數據庫的密碼策略導致的,如果設置的密碼不符合數據庫的密碼策略,那么ranger連接數據庫會失敗,同時,還需要在數據庫里面賦予相應的權限。如下:
Mysql5.7數據庫密碼策略:大小寫+數字+特殊字符+密碼長度>8
create database ranger #創建數據庫
grant all on *.* to ‘root’@’%’ identified by ‘your password’;
Flush privileges;
3、安裝solr
solr用於存儲審計信息,solr可以單獨安裝,可以安裝單節點,也可以部署為集群,這里使用ranger自帶的方式安裝。
(1) 修改配置
在當前目錄下的contrib/solr_for_audit_setup目錄下,修改install.properties文件
完整目錄如下:
[hduser@yjt solr_for_audit_setup]$ pwd
/data/ranger/ranger-2.1.0-SNAPSHOT-admin/contrib/solr_for_audit_setup
修改如下配置文件:
SOLR_INSTALL=true
JAVA_HOME=/data/jdk
SOLR_DOWNLOAD_URL=http://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/8.3.0/solr-8.3.0.tgz #solr下載地址
SOLR_INSTALL_FOLDER=/data/solr #安裝目錄,這個隨意
SOLR_RANGER_HOME=/data/solr/ranger_audit_server
SOLR_RANGER_PORT=6083 #默認端口
SOLR_DEPLOYMENT=standalone #部署模式(單節點部署),還有solrcloud(集群)模式
SOLR_RANGER_DATA_FOLDER=/data/solr/ranger_audit_server/data #數據存放目錄
官方文檔在配置的時候是配置的/data1/hadoop/ranger/ranger/security-admin/contrib/solr_for_audit_setup這個目錄下的install.properties文件,也就是在源碼的配置文件中修改。
(2) 初始化solr
在當前目錄下執行setup.sh進行初始
#./setup.sh
4、初始化ranger-admin
# cd /data/ranger/ranger-2.1.0-SNAPSHOT-admin
#./setup.sh
如果初始化ok,啟動admin
如果執行的過程中報:
SQLException : SQL state: 42000 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user 'root'@'%' to database 'ranger' ErrorCode: 1044
連接數據庫,執行:
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
5、啟動ranger-admin
#ranger-admin start 或者 #./ews/ranger-admin-services.sh start 啟動服務
Ranger的默認端口是6080,如果需要修改,請修改install.properties配置文件。
查看當前的端口信息:
瀏覽器連接測試:http://192.168.4.50:6080
登錄界面用戶名和密碼為: admin/admin
登錄進去以后界面如下:
接下來,配置其他的比如策略等等就在這里面配置就可以了。
當然需要同步用戶的話,還需要配置userSync或者ldap等等組件
借鑒:
https://www.jianshu.com/p/d9941b8687b7