Apache Ranger 是一個用在 Hadoop 平臺上並提供操作、監控、管理綜合數據安全的框架。Ranger 的願景是在 Apache Hadoop 生態系統中提供全面的安全性。 目前,Apache Ranger 支持以下 Apache 項目的細粒度授權和審計:
Apache Hadoop
Apache Hive
Apache HBase
Apache Storm
Apache Knox
Apache Solr
Apache Kafka
YARN
對於上面那些受支持的 Hadoop 組件,Ranger 通過訪問控制策略提供了一種標準的授權方法。作爲標準,Ranger提供了一種集中式的組件,用於審計用戶的訪問行爲和管理組件間的安全交互行爲。
Ranger 使用了一種基於屬性的方法定義和強制實施安全策略。當與 Apache Hadoop 的數據治理解決方案和元數據倉儲組件Apache Atlas一起使用時,它可以定義一種基於標籤的安全服務,通過使用標籤對文件和數據資產進行分類,並控制用戶和用戶組對一系列標籤的訪問。
Ranger 的總體架構如下圖所示,主要由以下三個組件構成:
AdminServer: 以RESTFUL形式提供策略的增刪改查接口,同時內置一個Web管理頁面。
AgentPlugin: 嵌入到各系統執行流程中,定期從AdminServer拉取策略,根據策略執行訪問決策樹,並且定期記錄訪問審計。插件的實現原理將在後文詳細介紹。
UserSync: 定期從LDAP/File中加載用戶,上報給AdminServer。
整個過程如下: