Ranger Hive-HDFS ACL同步

发布日期:2021-01-05 11:17
p80938
Ranger Hive-HDFS ACL同步概述
Ranger资源映射服务器(Resource Mapping Server:RMS)可以将访问策略从Hive自动转换为HDFS。

关于Hive-HDFS ACL同步
旧版CDH用户使用Apache Sentry中的Hive策略,该策略自动将Hive权限与HDFS ACL链接在一起。这对于Spark或Hive使用的外部表数据特别方便。
以前,Ranger仅支持分别管理Hive策略和HDFS策略。现在使用Ranger RMS,您可以使用为Hive表定义的策略来授权对HDFS目录和文件的访问。RMS是启用Hive-HDFS ACL同步的服务。
RMS会定期连接到Hive Metastore,并将Hive元数据(数据库名称、表名)提取到HDFS的文件名映射。Ranger HDFS插件(在NameNode中运行)已通过附加的HivePolicyEnforcer模块进行了扩展。HDFS插件从Ranger Admin下载Hive策略,并从Ranger RMS下载映射。HDFS访问由HDFS策略和Hive策略共同决定。



Ranger RMS的假设和限制
  • 假定表的所有分区都在为表指定的位置下。因此,表的权限将不会授权访问将数据存储在表指定位置之外的分区。例如,如果一个表位于HDFS目录/warehouse/foo中,则该表的所有分区必须具有该/warehouse/foo目录下的位置 。
  • 部署CDP私有云基础版群集时,不会自动设置Ranger RMS服务。您必须分别安装和配置Ranger RMS。
  • 在启动RMS并从Hive Metastore(HMS)运行第一次同步之前,应该先配置Ranger策略(具有rangerrms 用户访问权限)。
  • Ranger RMS ACL同步功能支持单个逻辑HMS,以评估通过Hive权限访问HDFS。这与CDH中的Sentry实现逻辑保持一致。
  • 视图(传统视图和物化视图)上授予的权限不会扩展到HDFS访问。这与CDH中的Sentry实现保持一致。
  • 如果私有云基础版部署通过单个Ranger支持多个逻辑HMS,则Ranger ACL同步仅适用于其中一个逻辑HMS。在其他逻辑HMS实例中对数据库/表授予的权限将不被视为授权HDFS访问。
与Sentry HDFS ACL同步的比较
RMS ACL同步功能类似于Sentry HDFS ACL同步功能,它下载并跟踪Hive表到HDFS位置映射的方式。

它与Sentry的不同之处在于,它完全透明地支持Ranger策略代表的所有功能。因此,此实现包括对基于标记的策略、安全区域、掩码和行过滤以及审核日志记录的支持。
此外,通过在HDFS端进行简单配置即可启用或禁用此功能,从而使每个安装都可以选择打开或关闭此功能。
原文链接:https://docs.cloudera.com/cdp-private-cloud-base/7.1.5/security-ranger-rms-configuring-and-using/topics/security-ranger-rms-overview.html

配置Hive-HDFS ACL同步的高可用性
使用以下步骤为Ranger资源映射服务器(RMS)和Hive-HDFS ACL Sync配置高可用性。
1.在Cloudera Manager中,选择“ Ranger RMS”,然后选择“操作”>“添加角色实例”



2.在“添加角色实例”页面上,单击“选择主机”



3.在“所选主机”页面上,选择备份Ranger RMS主机。所选主机的“添加的角色”列中将显示“ Ranger RM(RR)”图标。单击确定继续。


4.新的备份主机将重新显示“添加角色实例”页面。点击 继续。


5.在“查看更改”页面上查看设置,然后单击“继续”。


6.新角色实例将显示在“ Ranger RMS”页面上。

7.Cloudera Manager中,选择Ranger RMS,然后单击Configuration
选择“ Ranger RMS服务器高可用性”复选框。在“ Ranger RMS服务器ID”框中,为每个RMS服务器添加以逗号分隔的ID列表。
使用Ranger-rms-conf / ranger-rms-site.xml属性的Ranger RMS服务器高级配置代码片段(安全阀)的添加(+)图标可为每个RMS主机及其相应的服务器ID添加条目。
  • ranger-rms.server.address.id1 = <用于ID1的RMS服务器的主机名>:8383
  • ranger-rms.server.address.id2 = <用于ID2的RMS服务器的主机名>:8383
注意
如果启用了SSL,请使用端口8484。

  1. 点击保存更改,然后点击重新启动图标。
  2. 在Stale Configurations页面上,单击Restart Stale Services
  3. 在“重新启动旧服务”页面上,选中“重新部署客户端配置”复选框,然后单击“立即重新启动”
  4. 重新启动服务时,将显示进度指示器页面。服务重新启动后,单击完成
配置Hive-HDFS ACL同步
安装后应完全配置Ranger资源映射服务器(RMS)。本主题提供有关RMS配置设置和工作流的更多信息。
重要配置信息
  • Ranger RMS通过Ranger Hive策略启用HDFS访问。必须使用HDFS的名称和Hive服务(AKA Repos)来配置Ranger RMS。在您的安装中,可能为HDFS和Hive创建了多个Ranger服务。这些可以从Ranger Admin Web UI中看到。RMS ACL同步旨在用于特定的一对HDFS和Hive Ranger服务。因此,在安装Ranger RMS之前识别这些服务名称很重要。这些名称应在Ranger RMS的安装过程中进行配置。Ranger HDFS服务名称的默认值为cm_hdfs,而Ranger Hive服务的默认名称为cm_hive。
  • 在开始Ranger RMS安装之前,请确保上面安装中标识的Hive服务允许rangerrms用户 select默认访问所有数据库以及Hive服务的所有安全区域中的所有表。
  • 默认情况下,Ranger RMS仅跟踪Hive中的外部表。要将Ranger RMS配置为也跟踪托管的Hive表,请将以下配置设置添加到Ranger RMS。
ranger-rms.HMS.map.managed.tables=true
  • 在Cloudera Manager中,为ranger-hdfs-security.xml选择HDFS>配置> HDFS服务高级配置代码段(安全阀),然后确认以下设置:
ranger.plugin.hdfs.chained.services = cm_hive
ranger.plugin.hdfs.chained.services.cm_hive.impl = org.apache.ranger.chainedplugin.hdfs.hive.RangerHdfsHiveChainedPlugin
注意
如果启动Ranger RMS并与Hive Metastore同步后更改了这些配置中的任何一个,则让Ranger RMS使用新配置的唯一方法是执行以下步骤:
  1. 停止Ranger RMS。
  2. 登录到Ranger RMS数据库,然后运行delete from x_rms_mapping_provider;以从该表中删除唯一的行。
  3. 启动Ranger RMS。
重新启动后,Ranger RMS将重新同步Hive Metastore中的所有数据。这可能会花费大量时间,具体取决于Hive Metastore中Hive表的数量。

了解Ranger的RMS策略
在较高级别上,Ranger RMS工作流程如下:
  • 将评估HDFS服务的Ranger策略。如果任何策略明确拒绝访问,则拒绝访问。
  • Ranger检查以查看所访问的位置是否映射到Hive表。
  • 如果是,则会为映射的Hive表评估Hive策略。如果存在允许访问的HDFS策略,则允许访问。否则,默认的HDFS ACL确定访问。
  • 请求的HDFS权限映射到Hive权限,如下所示:
HDFS ‘read’ ==> Hive ‘select’
HDFS ‘write’ ==> Hive ‘update’ or ‘alter’
HDFS ‘execute’ ==> 任何Hive权限

  • 如果没有明确允许访问映射表的Hive策略,则拒绝访问,否则允许访问。
在HDFS访问评估期间以及在Hive访问评估阶段(如果需要)都考虑了适当的标记策略。同样,将生成一个或多个日志记录,以指示由哪个策略(如果有)做出访问决定。
以下方案说明了如何确定访问权限。所有方案都假定Ranger HDFS策略未明确拒绝访问HDFS位置。
  • 位置与Hive表不对应。
在这种情况下,仅当Ranger HDFS策略允许访问或HDFS 原生ACL允许访问时,才授予访问权限。审核日志将显示哪个策略(或Hadoop-acl)做出了决定。
  • 位置对应于一个Hive表。
对于从原始HDFS请求派生的任何访问,Ranger Hive策略均明确拒绝访问映射表。Hive政策将拒绝访问。
    • 没有匹配的Ranger Hive策略。
    • 访问将被拒绝。审核日志将不指定策略。
    • 游标策略会屏蔽映射表中的某些列。
    • 访问将被拒绝。审核日志将显示Hive屏蔽策略。
    • 映射的Hive表具有行过滤器策略
    • 访问将被拒绝。审核日志将显示Hive行过滤器策略。
    • Ranger Hive策略允许访问映射表,以进行从原始HDFS访问请求派生的访问。
    • 访问将被授予。如果访问最初是由HDFS策略授予的,则审核日志将显示HDFS策略。
分享到:
推荐精彩博文