Ranger部署


一、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

官網

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM