本文共 2097 字,大约阅读时间需要 6 分钟。
前言
最近开始学习如何使用Ranger框架,之前对其了解不多,只知道它是Hadoop生态系统中一个安全组件。通过阅读官网文档和一些学习文章,我希望能够逐步掌握Ranger的使用方法,并分享自己的学习成果。
一、在Hadoop中使用Ranger提供授权
Ranger通过用户友好的界面管理访问控制,确保Hadoop生态系统中数据访问策略的一致性。安全管理员可以在数据库、表、列以及文件等资源级别定义详细的安全策略,并管理特定的基于LDAP的组或者个人用户的权限。此外,还可以为策略添加动态条件,如时间限制或地理位置限制。Ranger的授权模型是可插入的,支持基于服务的定义,从而方便地扩展到任何数据源。 一旦用户通过身份验证,他们的访问权限将根据预先定义的策略进行评估。例如,可以允许用户创建策略并查看报告,但禁止编辑用户和组的信息。Ranger不仅支持为特定的Hadoop资源(如HDFS、HBase、Hive等)创建服务和访问策略,还支持基于标记的服务。这种方式可以无需在每个Hadoop组件中单独创建服务和策略,就能控制多个组件上的资源访问。通过Ranger TagSync功能,可将标记存储与外部元数据服务(如Apache Atlas)同步,确保标记信息的一致性和准确性。
二、Ranger 授权模型概述
Ranger 提供两种类型的策略:基于资源的策略和基于标签的策略。
基于资源策略
Ranger可以配置基于资源的服务(如HDFS、HBase、Hive等),并为服务添加访问策略。这种策略适合需要对特定资源进行细粒度控制的场景。
基于标签策略
Ranger允许创建基于标记的服务,并为服务添加访问策略。基于标签的策略的核心优势在于资源分类与访问授权的分离。例如,敏感数据(如PII、PCI、PHI等)可以在进入Hadoop生态系统时或之后被标记为特定类别。一旦资源被标记,标签授权将自动执行,无需手动更新策略。
基于标签策略的另一个优势是可以控制多个Hadoop组件上的资源访问,而无需在每个组件中单独创建服务和策略。标签的细节存储在标签存储中,Ranger TagSync作为一个守护进程负责将标签与外部元数据服务(如Apache Atlas)同步。为了保证标签评估的性能,Ranger插件会缓存标签信息,并定期从标签存储中获取更新。
标签本身也可以具有属性,例如设置到期日期。管理员可以为特定标签创建策略,并在策略中添加条件(如检查请求日期是否晚于标签属性指定的到期日期)来影响授权决策。
三、标签和策略评估
在处理访问请求时,Apache Ranger插件会评估相关资源的Ranger策略。策略评估流程包括以下步骤: 1. **查找标签**:通过注册的上下文增强器服务,将资源的标签信息添加到请求上下文中。Ranger TagEnricher上下文增强器负责缓存和更新可用的标签信息。 2. **评估基于标签的策略**:根据请求上下文中的标签信息,评估对应的基于标签的策略。如果某个标签的策略导致拒绝访问,则访问将被直接阻止。 3. **评估基于资源的策略**:如果没有标签策略阻止访问,Ranger策略引擎会继续评估基于资源的策略。
标签策略的条件评估可以利用请求的详细信息(如用户、组、资源等),并结合标签属性来决定最终的授权结果。例如,基于EXPIRES_ON标签的策略可以检查请求日期是否晚于标签属性指定的到期日期。如果没有对应的策略启用,标签策略将不会生效。
四、Apache Ranger访问条件
Apache Ranger的访问策略模型主要包含两个部分:指定策略应用的资源(如HDFS文件和目录、Hive数据库、表和列、HBase表、列族和列等)以及对特定用户和组的访问条件规范。
Ranger支持以下类型的访问条件:
允许访问。 从允许中排除。 禁止访问。 排除在拒绝之外。 这些条件使管理员能够建立细粒度的访问控制策略。例如,可以允许“finance”组的所有用户访问“finance”数据库,但禁止“interns”组的任何用户访问该数据库。如果某个用户(如“scott”)需要访问“finance”数据库,可以为该用户添加排除条件,允许其完成特定任务。
要启用策略中的Deny条件,需要在Ambari界面中进行配置:
navigating to Ranger → Configuration → Advanced → custom_ranger-admin-site,添加配置项ranger.servicedef.enableDenyAndExceptionsInPolicies = true。 重新启动Ranger管理员。 策略评估顺序
Ranger策略的评估顺序是确定的,以确保结果的可预测性。默认情况下,如果没有允许访问的策略,访问请求将被拒绝。以下是策略评估的具体流程: 1. 优先评估基于标签的策略。 2. 如果标签策略未阻止访问,则评估基于资源的策略。 3. 如果所有策略均未阻止,访问将被允许。
出处
以上内容均参考自Cloudera官网。
转载地址:http://ppqdz.baihongyu.com/