使用 Docker 快速部署 Apache Ranger 服务。
概述
Apache Ranger 是 Hadoop 生态中的安全与权限管理框架,它为 HDFS、Hive、HBase、Kafka、YARN 等多种组件提供集中化、可审计、可扩展的访问控制。
Ranger 的权限机制由管理端和组件端插件两个核心部分构成:
权限校验流程:
- 用户向 Hadoop/Hive/HBase 等发起访问;
- 该组件的 Ranger 插件强制拦截请求;
- 插件从本地缓存中查找是否有允许或拒绝的策略,根据策略决定是否允许访问;
- 将操作记录写入审计。
总的来说,Apache Ranger 通过集中管理 + 本地拦截插件实现大数据组件的统一权限控制——管理端负责配置策略,组件端插件在实际读写时执行策略,从而实现安全、可审计、可扩展的权限体系。
Docker安装Ranger
使用 Docker 安装 Apache Ranger:
$ export RANGER_VERSION=2.4.1
$ docker pull apache/ranger-zk:${RANGER_VERSION} $ docker pull apache/ranger-solr:${RANGER_VERSION} $ docker pull apache/ranger-db:${RANGER_VERSION} $ docker pull apache/ranger:${RANGER_VERSION}
$ docker network create rangernw
$ docker run -d --name ranger-zk --hostname ranger-zk.example.com --network rangernw -p 2181:2181 apache/ranger-zk:${RANGER_VERSION}
$ docker run -d --name ranger-solr --hostname ranger-solr.example.com --network rangernw -p 8983:8983 apache/ranger-solr:${RANGER_VERSION} solr-precreate ranger_audits /opt/solr/server/solr/configsets/ranger_audits/
$ docker run -d --name ranger-db --hostname ranger-db.example.com --network rangernw --health-cmd='su -c "pg_isready -q" postgres' --health-interval=10s --health-timeout=2s --health-retries=30 apache/ranger-db:${RANGER_VERSION}
$ docker run -d --name ranger --hostname ranger.example.com --network rangernw -e RANGER_VERSION=${RANGER_VERSION} -e RANGER_DB_TYPE=postgres -p 6080:6080 apache/ranger:${RANGER_VERSION} /home/ranger/scripts/ranger.sh
|
所有容器启动完成后,便可以通过 http://localhost:6080/login.jsp 访问 Apache Ranger,默认用户为 admin,密码为 rangerR0cks!。
参考资料
Apache Ranger - DockerHub
Apache Ranger - GitHub