Apache Ranger安裝配置以及和LDAP集成

導語

Ranger是Hadoop平臺的集中式安全管理框架,能夠為hadoop平臺組件提供細粒度的訪問控制。通過Ranger, Hadoop管理員能夠輕松地管理各種安全策略,包括:訪問文件/文件夾,數據庫,Hive表,列, Hbase, YARN等。此外,Ranger還能進行審計管理,以及策略分析,從而為Hadoop環境的深層次分析提供支持。
目前,Ranger支持對以下的Hadoop組件:HDFS, HBase, Hive, Yarn, Knox, Storm, Solr, Kafka。
本文主要介紹如何在Ambari環境下安裝Ranger,如何配置Ranger使之與LDAP集成,如何通過配置Ranger策略完成訪問控制。

1. Ranger介紹

Apache Ranger目前是Apache下的頂級項目,目的是通過制定策略(policies)實現對Hadoop組件的集中式安全管理。用戶可以通過Ranager實現對集群中數據的安全訪問。
Ranger由三個模塊組成:

  • Ranger portal: 提供給用戶進行安全管理的界面

  • Ranger plugin: 嵌入在需要安全控制的組件進程中,提供兩種功能:從Ranger server中把用戶配置的安全策略拉取到本地,當用戶訪問請求到來時,根據安全策略判斷該用戶是否有權限訪問;從本地將用戶訪問的紀錄返回給Ranger服務進行審計。

  • User group sync: 提供從OS, LDAP, Active Directory拉取用戶和用戶組的功能。同步到的用戶和用戶組能夠展示在Ranger portal中

2. HDP2.4 Ambari環境下安裝Ranger

安裝前置條件

  • 必須已經使用Ambari部署Hadoop集群
    使用Ambari安裝Ranger只能在安裝Hadoop之后使用add service的方式將Ranger安裝在集群中。因為在使用Ambari部署Hadoop集群時,在service列表中沒有Ranger。

  • 集群中已經安裝了數據庫
    目前Ranger支持mysql, oracle, postgres, mssql, sqlanywhere等。建議在Ambari環境下使用Ambari server 安裝的postgres數據庫。

  • 在Ambari server上執行
    ambari-server setup --jdbc-db={database-type} --jdbc-driver={/jdbc/driver/path}
    其中database-type為所用的數據庫類型,/jdbc/driver/path為jdbc driver路徑。
    步驟為:

    • 檢查/usr/share/java目錄下是否有postgres jdbc driver文件 /usr/share/java/postgresql-jdbc.jar。如果沒有,從postgres安裝目錄下拷貝至此目錄。

    • 執行
      ambari-server setup --jdbc-db=postgres --jdbc-driver=/usr/share/java/postgresql-jdbc.jar

安裝Ranger

  • 打開Ambari,在Actions下點擊Add Service,在打開的服務列表里,勾選Ranger,點擊next

  • 在安裝配置頁面,Ranger Admin下,

    • DB FLAVOR 選擇POSTGRES
    • Ranger DB host 選擇Postgres安裝的主機名
    • Ranger DB password 輸入Postgres DB的密碼
    • DBA username改為postgres, DBA password輸入密碼
    • JDBC connect string 例如: jdbc:postgresql://ochadoop06.novalocal:5432/postgres

    配置完成后,點擊Test Connection。如果返回沒有權限,一般是因為在postgres的配置里面沒有把該機器的訪問權限配置。
    需要在安裝postgres的機器上配置/var/lib/pgsql/data/pg_hba.conf,增加需要訪問的機器權限,例如:host all postgres 192.168.1.11/24 ident
    然后重啟postgres.

  • 在Ranger User Info配置下,主要是配置是否從LDAP讀取用戶組,此項配置可以在安裝完成后再進行配置。

  • 在Ranger Audit配置下,主要對Ranger audit log的存放位置進行配置。

    • 如果集群中已經安裝了Solr,可以打開Solr選項,ranger.audit.solr.urls為solr core的地址,例如:http://ochadoop06.novalocal:8983/solr/ranger_audits
      ranger.audit.solr.username 使用默認,ranger.audit.solr.password輸入創建密碼。

    • 打開HDFS配置,Ranger audit log可以自動保存在HDFS中以便長期保存。Destination HDFS Directory為HDFS保存的地址,例如:hdfs://ochadoop06.novalocal:8020/ranger/audit

    • 打開DB配置,把audit log保存在DB中.

3. Ranger配置

Ranger配置LDAP

Ranger用來獲取用戶和組的模塊叫做User group sync,可以配置獲取Unix,LDAP或者AD的用戶和組。

  • Ranger User Info配置

    打開Ambari Ranger配置頁面里的Ranger User Info選項。

    • Enable User Sync 置為 Yes
    • Sync Source 選擇 LDAP/AD

    打開Cmmon Configs

    • LDAP/AD URL,輸入LDAP URL。例如:ldap://192.168.1.15:389
    • Bind Anonymous 置為 No
    • Bind User,輸入LDAP的管理員用戶。例如:cn=root,dc=asiainfo,dc=com
    • Bind User Password,輸入上面LDAP的管理員密碼。

    打開User Configs

    • Username Attribute,輸入cn
    • User Object Class,這個根據LDAP配置決定,一般可以配為person,user,或者posixAccount。
    • User Search Base,輸入ou=People,dc=asiainfo,dc=com
    • User Search Filter,輸入cn=*
    • User Search Scope,輸入sub
    • User Group Name Attribute,輸入memberof。這個根據LDAP配置決定,一般需要LDAP支持memberof屬性。
    • Group User Map Sync,置為Yes。

    打開Group Configs

    • Enable Group Sync,置為Yes。
    • Group Member Attribute,輸入 memberUid。
    • Group Name Attribute,輸入 cn。
    • Group Object Class,輸入posixGroup。這個根據LDAP配置決定,需要查看LDAP的group object class。一般為group或者posixGroup。
    • Group Search Base,輸入ou=Group,dc=asiainfo,dc=com
    • Group Search Filter,輸入cn=*
  • Advanced配置

    Ranger Settings

    • Authentication method,選擇LDAP

    LDAP Settings

    • ranger.ldap.base.dn,設為LDAP的dn,例如:dc=asiainfo,dc=com
    • ranger.ldap.group.roleattribute,設為cn
    • ranger.ldap.user.dnpattern,設為uid={0},ou=People,dc=asiainfo,dc=com,其中ou=People,dc=asiainfo,dc=com為LDAP 的用戶類別。
  • 根據上述配置好后,使用Ambari重啟Ranger,打開Ranger界面。在Settings下的的Users/Groups可以查看到已經同步到的LDAP用戶和用戶組。如果用戶和用戶組沒有同步到,應該是配置的有問題,可以通過Ranger提供的LDAP檢查工具進行檢查。

    • 進入工具目錄,/usr/hdp/current/ranger-usersync/ldaptool
    • 配置conf/input.properties,其中的參數根據Ambari上配置的Ranger LDAP配置。
    • 執行./run.sh -r groups -i conf/input.properties 獲取用戶組信息,-r users返回用戶信息,-r all 返回用戶和用戶組信息。返回的結果在output/ ldapConfigCheck.log中。

Ranger配置Audit log

  • Ranger Audit配置
    打開Ambari Ranger Configs下的Ranger Audit,

    • Audit to DB,置為Yes。設置Data base 密碼。這樣的目的是使Ranger將log存放在DB中。
  • ranger.audit.source.type

    打開Advanced下的Advanced ranger-admin-site,將ranger.audit.source.type設為db。這樣的目的是Ranger Admin從DB讀取audit log。

Enable Ranger Plug-in

進入Ranger Plugin配置頁面,打開需要使用Ranger進行安全控制的組件。例如hdfs,yarn,hive。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容