作者:Eric Lin (林晨辉), Cloudera高级售后技术支持工程师。毕业于Monash大学计算机科学, Sir John Monash的奖学金获得者。曾就业于数据收集公司如Hitwise(现为Experian的子公司)和Effective Measure,担任高级工程师,负责设计,开发和管理用于采集, 处理和报告网络数据的平台(基于PHP,Java和CDH)。现任职Cloudera, 担任高级售后技术支持工程师,主要擅长解决在CDH生态系统中出现的各种疑难杂症。
在上一篇文章中,我快速介绍了Ranger提供的主要功能,Ranger和Sentry的主要区别,以及Cloudera在新产品CDP中选择Ranger而不是Sentry的主要原因。具体可以参考上一篇文章《0741-什么是Apache Ranger - 1》。
在这第二篇文章中,我会介绍Ranger的一些基础架构,组成整个Ranger产品的其它部件。
首先我们看一下Ranger内部的所有部件:
Ranger Admin Server/Portal Ranger Policy Server Ranger Plugins Ranger User/Group Sync Ranger Tag Sync Ranger Audit Server 下面这张架构图展示了每个部件之间的关系:
以下我们看看每个部件的更多细节。
Ranger Admin Server/Portal
安全管理的集中接口 管理员可以定义repositories 创建和更新策略 管理Ranger用户/组 定义审计策略 查看审计事件 运行在Tomcat服务中 提供Ranger API Ranger Policy Server
允许管理员定义/更新策略细节 允许管理员指定哪些用户是代理管理员,谁可以访问修改策略 策略可以分为不同的安全区域一种资源只能分配给一个安全区域 如果资源匹配,则仅检查已定义区域中的策略 如果没有资源匹配,则将使用默认区域(无名称)下的策略 同时支持allow和deny策略 策略适用于用户或组 Ranger User/Group Sync
同步程序会拉取用户和用户组,它支持从以下源同步用户/组: 用户/组信息存储在Ranger管理策略数据库中,并用于策略定义 Ranger Plugins
安装在Hadoop组件中的轻量级的Java组件,比如安装到HDFS或Hive中。 定期从Admin Server提取策略并本地缓存 充当授权模块并根据安全策略评估用户请求如果未找到策略,则回退使用HDFS ACLs,同时拒绝所有其他组件的访问 触发审计数据存储请求(同时发送到HDFS和Solr) Ranger Audit Server
通过策略配置审计(用户指定是否需要启用审计,如果适用此策略) 默认情况下,审计数据存储在HDFS和Solr中Solr中的数据将用于在Ranger admin UI中显示审计数据 HDFS中的数据作为备份,不会被使用(就我目前的了解) 从0.5开始不再支持审计数据存储在DB中 支持审计日志摘要(Audit Log Summarisation)从Apache Ranger0.5开始 在定义的期间内,只有时间戳不同的相似日志将汇总到单个审计条目中,以避免大量审计日志 默认为5秒 Ranger Tag Sync
从Apache Ranger 0.6开始 它将资源分类与访问授权分开 只要资源附加了相同的标签,就可以将一个标签策略应用于多个组件 需要Apache Atlas来管理元数据(Hive数据库/表,HDFS路径,Kafka Topic和标签/分类等) 基于事件Hive等中的任何更改都会将事件发送到Kafka topic(ATLAS_HOOK),然后Atlas将获取更改 Atlas中的任何更改都会将事件发送到Kafka topic(ATLAS_ENTITIES),然后Ranger Tag Sync将获取更改 标签策略将在基于资源的策略之前进行评估
如你所见,Ranger内部还包括很多其它部件,根据本文的描述应该能让你对Ranger的整体功能有一个清晰的了解。
原文参考:
https://www.ericlin.me/2020/01/introduction-to-apache-ranger-part-ii/