Ranger学习(一)

前言

最近开始学习如何使用ranger这个框架,以前只知道ranger是一个大数据集群中关于安全方面的组件。接下来就是通过机翻官网文档与自己的学习使用水几篇文章。

一、在Hadoop中使用Ranger提供授权

Ranger通过用户界面管理访问控制,确保跨Hadoop进行一致的策略管理数据访问组件。安全管理员可以在数据库、表、列和文件上定义安全策略级别,可以管理特定的基于ldap的组或个人用户的权限。基于动态的规则时间或地理位置等条件也可以添加到现有的策略规则中。Ranger 授权模型是可插入,并且可以使用基于服务的定义轻松扩展到任何数据源。一旦用户通过身份验证,就必须确定他们的访问权限。授权定义用户访问的权限资源。例如,允许用户创建策略和查看报告,但不允许编辑用户和 组。您可以使用Ranger设置和管理对Hadoop服务的访问。Ranger可以为特定的Hadoop资源(HDFS、HBase、Hive等)创建服务,并添加访问权限 这些服务的策略。您还可以创建基于标记的服务,并向这些服务添加访问策略。使用基于标记的策略允许您控制跨多个Hadoop组件的资源访问,而无需创建在每个组件中分离服务和策略。您还可以使用Ranger TagSync来同步Ranger标记与外部元数据服务(如Apache Atlas)一起存储。

二、Ranger 政策概述

Ranger有两种类型的策略:基于资源的和基于标签的。

基于资源策略
Ranger可以配置基于资源的服务(HDFS、HBase、Hive等),并为其添加访问策略服务。

基于标签策略
Ranger允许您创建基于标记的服务,并向这些服务添加访问策略。

基于标签策略

Ranger允许您创建基于标记的服务,并向这些服务添加访问策略。

基于标签策略概述

•基于Ranger标签的授权的一个重要特性是资源分类与访问授权的分离。例如,资源(HDFS文件/目录、Hive数据库/表/列等)包含敏感的诸如社会保险号、信用卡号或敏感的医疗保健数据等数据可以用PII/标记PCI/PHI -当资源进入Hadoop生态系统时或者在以后的时间。一旦资源被标记,标签的授权将被自动执行,从而消除了创建或更新策略的需要
的资源。
•使用基于标记的策略还可以让您控制跨多个Hadoop组件对资源的访问不需要在每个组件中创建单独的服务和策略。
标签细节存储在标签存储中。Ranger TagSync可用于将标记存储与外部元数据服务(如Apache Atlas)进行同步。
与资源相关联的标签的详细信息存储在标签存储中。Apache Ranger插件从标记存储中检索标记详细信息,以便在策略评估期间使用。为了在策略评估(为资源寻找标记)期间最小化性能影响,Apache Ranger插件缓存标记并定期轮询标记存储以获取任何更改。当检测到更改时,插件就会更新缓存。此外,这些插件将标记细节存储在本地缓存文件中——就像策略存储在本地缓存文件中一样。在组件重新启动时,如果标签存储不可达,插件将使用本地缓存文件中的标签数据。
Apache Ranger插件从Ranger管理员管理的商店下载标签详细信息。Ranger管理员将标记细节保存在其策略存储中,并为插件提供一个REST接口来下载标记细节。

标签

Ranger标签可以有属性。可以在基于Ranger标记的策略中使用标记属性值来影响授权决策。例如,拒绝在特定日期之后对资源的访问:

  1. 向资源添加EXPIRES_ON标记。
  2. 添加exipry_date标记属性,并将其值设置为到期日期。
  3. 为EXPIRES_ON标记创建一个管理员策略。
  4. 在此策略中添加一个条件,当in expiry_date标记属性指定的日期晚于当前日期时拒绝访问。

注意EXPIRES_ON标记策略是作为标记服务实例中的默认策略创建的。

TagSync

Ranger TagSync用于将标记存储与外部元数据服务(如Apache Atlas)进行同步。TagSync是一个守护进程,类似于Ranger UserSync进程。
Ranger TagSync通过变更通知从Apache Atlas接收标签细节。在向Apache Atlas中的资源添加、更新或删除标记时,Ranger TagSync接收通知并更新标记存储。


三、标签和策略评估

在授权访问请求时,Apache Ranger插件会评估被访问资源的适用Ranger策略。下图显示了策略评估流的详细信息。关于此工作流步骤的更多细节将在后续部分中提供。
在这里插入图片描述
找标签
Apache Ranger支持注册上下文增强器的服务,该服务用于将上下文数据更新到访问请求。
Ranger标记服务是基于标记的策略特性的一部分,它添加了一个名为RangerTagEnricher的上下文增强器。这个上下文丰富器负责为请求的资源寻找标记,并向请求上下文添加标记细节。这个上下文丰富器保持可用标签的缓存;在处理访问请求时,它会找到适用于所请求资源的标记,并将标记添加到请求上下文。上下文丰富器通过定期轮询管理员管理员来更新缓存以了解更改。

评估基于标签的策略

一旦找到请求资源的标记列表,Apache Ranger策略引擎就会评估适用于标记的基于标记的策略。如果针对这些标记之一的策略导致deny,访问将被拒绝。如果没有一个标签被拒绝,并且一个策略允许其中一个标签,那么访问将被允许。如果没有任何标记的结果,或者没有资源标记,策略引擎将评估基于资源的策略,以做出授权决策。

在条件中使用标签

Apache Ranger允许在评估授权策略时使用自定义条件。Apache Ranger策略引擎使各种请求细节(如用户、组、资源和上下文)对条件可用。由增强器添加的请求上下文中的标记可用于条件,并可用于影响授权决策。

标记服务实例中的默认策略EXPIRES_ON标记使用这样的条件来检查请求日期是否晚于标记属性expiry_date中指定的值。除非在Atlas中创建了EXPIRES_ON标记,否则此默认策略不会生效。

四、Apache Ranger访问条件

Apache Ranger访问策略模型主要由两个部分组成:指定策略所应用的资源,如HDFS文件和目录、Hive数据库,表,和列,HBase表,列族,列,等等;以及对特定用户和组的访问条件的规范。

允许拒绝和排除条件
Apache Ranger支持以下访问条件:
•允许
•从允许中排除
•禁止
•排除在拒绝之外

这些访问条件使您能够设置细粒度的访问控制策略。
例如,可以允许“finance”组中的所有用户访问“finance”数据库,但不允许“interns”组中的所有用户访问该数据库。假设“实习生”组的一个成员“scott”需要完成一项需要访“finance”数据库的任务。在这种情况下,您可以添加拒绝条件的排除,允许用户“scott”访“finance”数据库。下图显示了如何在Apache Ranger中设置此策略:
在这里插入图片描述
在这里插入图片描述
为策略启用Deny条件
缺省情况下,策略中的deny条件是关闭的,必须启用才能使用。

  1. 从Ambari>Ranger>配置>高级>自定义Ranger -admin-site,添加ranger.servicedef。enableDenyAndExceptionsInPolicies = true。
  2. 重新启动管理员。

对访问条件的政策评估

Apache Ranger策略按照特定的顺序进行评估,以确保可预测的结果(如果没有允许访问的访问策略,授权请求通常会被拒绝)。下图显示了策略评估工作流程:
在这里插入图片描述

出处
上面的内容都来自cloudera官网~。

猜你喜欢

转载自blog.csdn.net/m0_48187193/article/details/114666163