使用Apache Ranger提供授权 -- 02

文章目录

  • 基于资源的服务和策略
    • 配置资源的服务
      • 配置一个基于资源的服务:HBase
      • 配置一个基于资源的服务:HDFS
      • 配置一个基于资源的服务:Hive
      • 配置一个基于资源的服务:Kafka
      • 配置一个基于资源的服务:Knox
      • 配置一个基于资源的服务:Solr
      • 配置一个基于资源的服务:Storm
      • 配置一个基于资源的服务:YARN
      • 配置一个基于资源的服务:Atlas
    • 配置资源的策略
      • 配置一个基于资源的策略:HBase
      • 配置一个基于资源的策略:HDFS
      • 配置一个基于资源的策略:Hive
      • 配置一个基于资源的策略:Kafka
      • 配置一个基于资源的策略:Knox
      • 配置一个基于资源的策略:Solr
      • 配置一个基于资源的策略:Storm
      • 配置一个基于资源的策略:YARN
      • 配置一个基于资源的策略:Atlas
      • 基于资源的策略中的通配符和变量
    • 基于资源的导入导出策略
      • 为特定服务导入基于资源的策略
      • 为所有服务导入基于资源的策略
      • 导出特定服务的基于资源的策略
      • 导出所有服务的所有基于资源的策略
    • 在Hive中的行级过滤和列屏蔽
      • Hive行级过滤与Ranger策略
      • Hive动态资源为基础的列屏蔽与Ranger策略
      • Hive动态标签为基础的列屏蔽与Ranger策略

使用Apache Ranger提供授权 – 01

基于资源的服务和策略

配置资源的服务

  • 当您登录到Ranger控制台时,将显示基于资源的策略的服务管理器页面。您也可以通过选择Access Manager > Resource Based Policies来访问这个页面。您可以使用此页面为Hadoop资源(HDFS、HBase、Hive等)创建服务,并向这些资源添加访问策略。
  • 要添加新的基于资源的服务,单击服务管理器页面上的使用框中的add图标。输入所需的配置设置,然后单击Add。
  • 要编辑基于资源的服务,请单击服务右侧的edit图标。编辑服务设置,然后单击Save保存更改。
  • 要删除基于资源的服务,请单击服务右侧的delete图标。删除服务也会删除该服务的所有策略。
    使用Apache Ranger提供授权 -- 02_第1张图片

配置一个基于资源的服务:HBase

  1. 在服务管理器页面上,单击HBase旁边的Add图标,这时将出现创建服务页面。
    使用Apache Ranger提供授权 -- 02_第2张图片
  2. 在创建服务页面上输入以下信息
标签 描述
Service Name* 服务名称,需要在代理配置中指定服务名称(默认服务名称集群名称_组件名称,可以自己随意定义)
Description 提供该服务的描述以供参考
Active Status 可以选择此选项来启用(Enabled)或禁用(Disabled)服务
Select Tag Service 选择基于标记的服务,将该服务及其基于标记的策略应用于HBase
Username* 可用于连接的终端系统用户名(如:hbase)
Password* 输入上面用户名的密码(如:admin)
hadoop.security.authentication* 指定身份验证类型(Simple, Kerberos)
hbase.master.kerberos.principal 1.属性指定Kerberos主体HBase Master(只适用于支持Kerberos的环境)
2.HBase主服务器的Kerberos主体(只有在启用Kerberos身份验证时才需要)
hbase.security.authentication* 设置必须与此属性(Simple, Kerberos)的hbase-site.xml设置匹配
hbase.zookeeper.property.clientPort* 设置必须与此属性的hbase-site.xml设置匹配(默认值为:2181)
hbase.zookeeper.quorum* 设置必须与此属性的hbase-site.xml设置匹配
zookeeper.znode.parent* 设置必须与此属性的hbase-site.xml设置匹配
Common Name for Certificate 指定证书的公共名称,在创建服务页面中,此字段可互换地命名为“Common Name For Certificate和Ranger Plugin SSL CName”
Add New Configurations 指定任何其他新配置
  1. 单击 Test Connection
  2. 单击 Add

配置一个基于资源的服务:HDFS

  1. 在服务管理器页面上,单击HDFS旁边的Add图标,这时将出现创建服务页面。
    使用Apache Ranger提供授权 -- 02_第3张图片
  2. 在创建服务页面中输入以下信息
标签 描述
Service Name* 服务的名称,需要在代理配置中指定服务名称
Description 提供该服务的描述以供参考
Active Status 选择此选项来启用(Enabled)或禁用(Disabled)服务
Select Tag Service 选择基于标记的服务,将该服务及其基于标记的策略应用于HDFS
Username* 可用于连接的终端系统用户名(如:hdfs)
Password* 填写上面用户名的密码(如:admin)
Namenode URL* hdfs://NAMENODE_FQDN:8020,Hadoop HDFS服务的位置,如Hadoop配置文件core-site.xml中所述,或者(如果这是一个HA环境)主NameNode的路径。该字段以前名为fs.defaultFS
Authorization Enabled 授权包括限制对资源的访问。如果启用,用户需要授权凭据
Authentication Type* 使用的授权类型,如hadoop配置文件core-site.xml中所述,指定身份验证类型(Simple, Kerberos)(只有在启用授权时才需要)
hadoop.security.auth_to_local 使用Hadoop将登录凭据映射到用户名;使用hadoop配置文件core-site.xml中记录的值
dfs.datanode.kerberos.principal 与服务所在的datanode相关联的主体,如hadoop配置文件hdfs-site.xml中所述。(只有在启用Kerberos身份验证时才需要)
dfs.namenode.kerberos.principal 与服务所在的NameNode相关联的主体,如hadoop配置文件hdfs-site.xml中所述。(只有在启用Kerberos身份验证时才需要)
dfs.secondary.namenode.kerberos.principal 与服务所在的次要NameNode相关联的主体,如hadoop配置文件hdfs-site.xml中所述。(只有在启用Kerberos身份验证时才需要)
RPC Protection Type 只有授权用户才能查看,使用和贡献数据集;安全SASL连接的保护值列表。价值观:Authentication(认证);Integrity(完整);Privacy(隐私)
Common Name for Certificate 指定证书的公共名称,在创建服务页面中,此字段可互换地命名为“Common Name For Certificate和Ranger Plugin SSL CName”
Add New Configurations 指定任何其他新配置
  1. 单击 Test Connection
  2. 单击 Add

配置一个基于资源的服务:Hive

  1. 在服务管理器页面上,单击Hive旁边的Add图标,这时将出现创建服务页面。
    使用Apache Ranger提供授权 -- 02_第4张图片
  2. 在创建服务页面中输入以下信息
标签 描述
Service Name* 服务的名称,需要在代理配置中指定服务名称
Description 提供该服务的描述以供参考
Active Status 可以选择此选项来启用(Enabled)或禁用(Disabled)服务
Select Tag Service 选择基于标记的服务,将该服务及其基于标记的策略应用于Hive
Username* 指定可用于连接的最终系统用户名(如:hive)
Password* 添加上面用户名的密码(如:admin)
jdbc.driverClassName* 用于Hive连接的驱动程序的完整类名。默认值:org.apache.hive.jdbc.HiveDriver
jdbc.url* jdbc:hive2://HIVE_FQDN:10000
Common Name for Certificate 指定证书的公共名称,在创建服务页面中,此字段可互换地命名为“Common Name For Certificate和Ranger Plugin SSL CName”
Add New Configurations 指定任何其他新配置
  1. 单击 Test Connection
  2. 单击 Add
  • 通常,Ranger Hive服务定义使用HiveServer2 (HS2) JDBC驱动程序来获取用于资源查找和测试连接的Hive数据库/表信息。或者,您可以配置服务定义,使用Hive metastore库直接连接到Hive metastore数据库。当在您的集群上很难设置HiveServer2时,比如在将HDCloud用于AWS时,建议这样做。
  1. 在Ambari>Hive>Configs>Advanced,编辑hive属性
  2. 将以下属性添加到custom ranger-hive-plugin-properties属性中
ranger.service.config.param.enable.hive.metastore.lookup = true
ranger.service.config.param.hive.site.file.path = /etc/hive/conf/hive-site.xml

使用Apache Ranger提供授权 -- 02_第5张图片
3. 保存并重新启动所需的组件
4. 要测试配置是否成功,请创建一个新的Hive服务并指定jdbc.url为“none”,然后运行测试连接
使用Apache Ranger提供授权 -- 02_第6张图片

配置一个基于资源的服务:Kafka

  1. 在服务管理器页面上,单击Kafka旁边的Add图标,这时将出现创建服务页面。
    使用Apache Ranger提供授权 -- 02_第7张图片
  2. 在创建服务页面中输入以下信息
标签 描述
Service Name* 服务的名称,需要在代理配置中指定服务名称
Description 提供该服务的描述以供参考
Active Status 可以选择此选项来启用(Enabled)或禁用(Disabled)服务
Select Tag Service 选择基于标记的服务,将该服务及其基于标记的策略应用于Kafka
Username* 指定可用于连接的最终系统用户名(如:kafka)
Password* 添加上面用户名的密码(如:admin)
Zookeeper Connect String* 默认为localhost:2181(提供zookeeper host:2181的FQDN)
Ranger Plugin SSL CName 提供common.name.for.certificate,该证书在Ranger中注册(在有线加密环境中) ,指定证书的公共名称,在创建服务页面中,此字段可互换地命名为“Common Name For Certificate和Ranger Plugin SSL CName”
Add New Configurations 指定任何其他新配置
  1. 单击 Test Connection
  2. 单击 Add

配置一个基于资源的服务:Knox

  1. 在服务管理器页面上,单击Knox旁边的Add图标,这时将出现创建服务页面。
    使用Apache Ranger提供授权 -- 02_第8张图片
  2. 在创建服务页面中输入以下信息
标签 描述
Service Name* 服务的名称,需要在代理配置中指定服务名称
Description 提供该服务的描述以供参考
Active Status 可以选择此选项来启用(Enabled)或禁用(Disabled)服务
Select Tag Service 选择一个基于标记的服务,将该服务及其基于标记的策略应用到Knox
Username* 指定可用于连接的最终系统用户名(如:admin)
Password* 添加上面用户名的密码(如:admin)
knox.url* Knox的网关URL
Common Name for Certificate 指定证书的公共名称,在创建服务页面中,此字段可互换地命名为“Common Name For Certificate和Ranger Plugin SSL CName”
Add New Configurations 指定任何其他新配置
  1. 单击 Test Connection
  2. 单击 Add

配置一个基于资源的服务:Solr

  1. 在服务管理器页面上,单击Solr旁边的Add图标,这时将出现创建服务页面。
    使用Apache Ranger提供授权 -- 02_第9张图片
  2. 在创建服务页面中输入以下信息
标签 描述
Service Name* 服务的名称,需要在代理配置中指定服务名称
Description 提供该服务的描述以供参考
Active Status 可以选择此选项来启用(Enabled)或禁用(Disabled)服务
Select Tag Service 选择基于标记的服务,将服务及其基于标记的策略应用于Solr
Username* 指定可用于连接的最终系统用户名(如:solr)
Password* 添加上面用户名的密码(如:admin)
Solr URL* 对于HDP搜索的Solr实例:http://solr_host:8983 ;对于Ambari Infra的Solr实例:http://solr_host:8886
Ranger Plugin SSL CName 提供common.name.for.certificate,该证书在Ranger中注册(在有线加密环境中),指定证书的公共名称,在创建服务页面中,此字段可互换地命名为“Common Name For Certificate和Ranger Plugin SSL CName”
Add New Configurations 指定任何其他新配置
  1. 单击 Test Connection
  2. 单击 Add

配置一个基于资源的服务:Storm

  1. 在服务管理器页面上,单击Storm旁边的Add图标,这时将出现创建服务页面。
    使用Apache Ranger提供授权 -- 02_第10张图片
  2. 在创建服务页面中输入以下信息
标签 描述
Service Name* 服务的名称,需要在代理配置中指定服务名称
Description 提供该服务的描述以供参考
Active Status 可以选择此选项来启用(Enabled)或禁用(Disabled)服务
Select Tag Service 选择基于标记的服务,将该服务及其基于标记的策略应用于Storm
Username* 指定可用于连接的最终系统用户名(如:stormtestuser)
Password* 添加上面用户名的密码(如:admin)
Nimbus URL* nimbus格式的主机名http://<ipaddress>:8744,该字段以前名为nimbus.url
Common Name for Certificate 指定证书的公共名称,在创建服务页面中,此字段可互换地命名为“Common Name For Certificate和Ranger Plugin SSL CName”
Add New Configurations 指定任何其他新配置
tag.download.auth.users:storm,storm-hdv4
policy.download.auth.users:storm,storm-hdv4
ambari.service.check.user:storm,storm-hdv4
  1. 单击 Test Connection
  2. 单击 Add

配置一个基于资源的服务:YARN

  1. 在服务管理器页面上,单击YARN旁边的Add图标,这时将出现创建服务页面。
    使用Apache Ranger提供授权 -- 02_第11张图片
  2. 在创建服务页面中输入以下信息
标签 描述
Service Name* 服务的名称,需要在代理配置中指定服务名称
Description 提供该服务的描述以供参考
Active Status 可以选择此选项来启用(Enabled)或禁用(Disabled)服务
Select Tag Service 选择基于标记的服务,将该服务及其基于标记的策略应用于yarn
Username* 指定可用于连接的最终系统用户名(如:yarn)
Password* 添加上面用户名的密码(如:admin)
YARN REST URL* http or https: //RESOURCEMANAGER_FQDN:8088
Authentication Type 使用的授权类型,如hadoop配置文件core-site.xml中所述;Simple或Kerberos。(只有在启用授权时才需要)
Common Name for Certificate 指定证书的公共名称,在创建服务页面中,此字段可互换地命名为“Common Name For Certificate和Ranger Plugin SSL CName”
Add New Configurations 指定任何其他新配置
  1. 单击 Test Connection
  2. 单击 Add

配置一个基于资源的服务:Atlas

  1. 在服务管理器页面上,单击Atlas旁边的Add图标,这时将出现创建服务页面。
    使用Apache Ranger提供授权 -- 02_第12张图片
  2. 在创建服务页面中输入以下信息
标签 描述
Service Name* 服务的名称,需要在代理配置中指定服务名称
Description 提供该服务的描述以供参考
Active Status 可以选择此选项来启用(Enabled)或禁用(Disabled)服务
Select Tag Service 选择基于标记的服务,将服务及其基于标记的策略应用于Atlas
Username* 指定可用于连接的最终系统用户名(如:admin)
Password* 添加上面用户名的密码(如:admin)
atlas.rest.address* Atlas主机和端口:http://atlas_host_FQDN:21000
Common Name for Certificate 指定证书的公共名称,在创建服务页面中,此字段可互换地命名为“Common Name For Certificate和Ranger Plugin SSL CName”
Add New Configurations 指定任何其他新配置
  1. 单击 Test Connection
  2. 单击 Add

配置资源的策略

  • 要查看与服务关联的策略,请单击基于资源的策略服务管理器页面上的服务名称。该服务的策略将与搜索框一起显示在列表中。
  1. 要将基于资源的新策略添加到服务,请单击“Add New Policy”
  2. 要编辑基于资源的策略,请单击该服务条目右侧的edit图标。编辑策略设置,然后单击Save保存更改
  3. 要删除基于资源的策略,请单击该服务条目右侧的delete图标
    使用Apache Ranger提供授权 -- 02_第13张图片

配置一个基于资源的策略:HBase

  1. 在服务管理器页面上,选择HBase下的现有服务。
    使用Apache Ranger提供授权 -- 02_第14张图片
    策略列表页面出现
    使用Apache Ranger提供授权 -- 02_第15张图片
  2. 单击Add New Policy,将出现Create Policy页面
    使用Apache Ranger提供授权 -- 02_第16张图片
  3. 按照以下步骤完成创建策略页面
标签 描述
Policy Name* 输入适当的策略名称。此名称不能在整个系统中重复。这个字段是强制性的
Policy Label 为这个策略指定一个标签。您可以根据这些标签搜索报告和筛选策略
HBase Table* 选择适当的表。可以为特定策略选择多个表。这个字段是强制性的
HBase Column-family* 对于选定的表,选择将适用该策略的列族
HBase Column* 对于选定的表和列族,选择策略将适用于其的列
Description 对策略适当描述
Audit Logging 指定是否审计此策略。(取消选择以禁用审计)
Select Group 指定应用此策略的组。若要将该组指定为所选资源的管理员,请指定管理权限。(管理员可以根据现有策略创建子策略);public组包含所有用户,因此授予对public组的访问权就授予了对所有用户的访问权;从用户组列表中选择一个特定的组并为该组选择权限。选择admin权限将指定该组为所选资源的admin
Select User 指定此策略应用于的特定用户(在已指定的组之外),或将特定用户指定为此策略的管理员。(管理员可以根据现有策略创建子策略);从用户列表中选择一个特定的用户并为该用户选择权限。选择admin权限将指定用户为所选资源的admin
Delegate Admin 当将策略分配给一个用户或一组用户时,这些用户将成为受委托的管理员。被委托的管理员可以更新、删除策略。它还可以基于原始策略(基本策略)创建子策略
Enable/Disable 默认情况下,策略是启用的。您可以禁用策略来限制该策略的用户/组访问
权限 描述
Read 允许用户执行读取操作
Write 允许用户执行写操作
Create 允许用户执行创建操作
Admin 这将为用户提供委托的管理访问
Select/Deselect All 全选/取消全选
  1. 您可以使用加号(+)来添加附加条件。条件按照保单中列出的顺序进行评估。首先应用列表顶部的条件,然后应用第二个条件,然后应用第三个条件,依此类推
  2. 单击 Add

从命令行提供对HBase数据库表的用户访问
HBase提供了从命令行直接管理用户对HBase数据库表的访问的方法。最常用的命令是:

  • GRANT
语法:grant '','','
例如,要创建授予user1对usertable表的读/写权限的策略,命令应该是
grant 'user1','RW','usertable'
授予CREATE和ADMIN权限的语法是相同的

  • REVOKE
语法:revoke '',''
例如,要取消user1对表usertable的读/写访问权限,可以使用以下命令
revoke 'user1','usertable'

注意:与Hive不同,HBase没有针对每个用户特权的特定撤销命令

配置一个基于资源的策略:HDFS

  • 通过配置,Apache Ranger允许检查用户请求的Ranger策略和HDFS权限。当NameNode接收到用户请求时,Ranger插件检查通过Ranger服务管理器设置的策略。如果没有策略,Ranger插件将检查HDFS中设置的权限。
  • 我们建议在Ranger服务管理器中创建权限,并在HDFS级别具有限制性权限。
  1. 在服务管理器页面上,选择HDFS下的现有服务
    使用Apache Ranger提供授权 -- 02_第17张图片
    策略列表页面出现
    使用Apache Ranger提供授权 -- 02_第18张图片
  2. 单击 Add New Policy,将出现Create Policy页面
    使用Apache Ranger提供授权 -- 02_第19张图片
  3. 按照以下步骤完成创建策略页面
标签 描述
Policy Name* 输入适当的策略名称。不能为相同的服务类型(HDFS)复制此名称。这个字段是强制性的
Policy Label 为这个策略指定一个标签。您可以根据这些标签搜索报告和筛选策略
Resource Path* 为策略文件夹/文件定义资源路径。为了避免提供完整路径或为所有子文件夹或文件启用策略,您可以使用通配符(例如/home*)完成此路径,或者指定策略应该是递归的
Description 描述政策的目的
Audit Logging 指定是否审计此策略。(取消选择以禁用审计)
Select Group 指定应用此策略的组。若要将该组指定为所选资源的管理员,请指定管理权限。(管理员可以根据现有策略创建子策略);public组包含所有用户,因此授予对public组的访问权就授予了对所有用户的访问权
Select User 指定此策略应用于的特定用户(在已指定的组之外),或将特定用户指定为此策略的管理员。(管理员可以根据现有策略创建子策略)
Delegate Admin 当策略被分配给一个用户或一组用户时,这些用户将成为委托的管理员。被授权的管理员可以更新、删除策略。它还可以基于原始策略(基本策略)创建子策略
权限 描述
Read 允许用户执行读取操作
Write 允许用户执行写操作
Execute 允许用户执行执行操作
Select/Deselect All 全选/取消全选
  1. 您可以使用加号(+)来添加附加条件。条件按照保单中列出的顺序进行评估。首先应用列表顶部的条件,然后应用第二个条件,然后应用第三个条件,依此类推
  2. 单击 Add

配置一个基于资源的策略:Hive

  1. 在服务管理器页面上,选择Hive下的现有服务
    使用Apache Ranger提供授权 -- 02_第20张图片
    策略列表页面出现
    使用Apache Ranger提供授权 -- 02_第21张图片
  2. 单击 Add New Policy,将出现Create Policy页面
    使用Apache Ranger提供授权 -- 02_第22张图片
  3. 按照以下步骤完成创建策略页面
标签 描述
Policy Name* 输入适当的策略名称。此名称不能在整个系统中重复。这个字段是强制性的。默认情况下启用策略
Policy Label 为这个策略指定一个标签。您可以根据这些标签搜索报告和筛选策略
database* 键入适用的数据库名称。自动完成功能根据输入的文本显示可用的数据库;默认选择Include以允许访问。选择Exclude以拒绝访问
table* 要继续添加基于表的策略,请选中表;键入适用的表名。自动完成功能根据输入的文本显示可用的表;默认选择Include以允许访问。选择Exclude以拒绝访问
udf* 要继续添加基于UDF的策略,请选择UDF;键入适用的UDF名称。自动完成功能根据输入的文本显示可用的表;我们还可以为UDF设置策略。用户定义的函数。输入适当的udf。;默认选择Include以允许访问。选择Exclude以拒绝访问
Hive Column* 键入适用的Hive列名称。自动完成功能根据输入的文本显示可用的列;默认选择Include以允许访问。选择Exclude以拒绝访问;如果在HiveServer2或HiveServer2-LLAP中使用Ranger Hive插件,其中列或描述权限包括全部,则必须为Hive列设置一个参数以按预期显示:在Ambari>Hive中,在ranger-hive-security.xml输入:xasecure.hive.describetable.showcolumns.authorization.option=show-all。未能设置此参数将导致错误消息hiveaccesscontrollexception
URL* 指定云存储路径(例如s3a://dev-admin/demo/campaix .txt),其中需要终端用户权限才能将Hive数据从/写到云存储路径;权限:URL上的读操作允许用户执行HiveServer2操作,该操作使用S3作为Hive表的数据源。URL上的写操作允许用户执行HiveServer2操作,将数据写到指定的S3位置;该特性是一个技术预览:它还没有准备好进行生产部署
url* Hive插入覆盖查询需要一个Ranger URI策略来允许写操作,即使用户拥有通过HDFS策略授予的写权限,未能指定此字段将导致以下错误:Error while compiling statement: FAILED: HiveAccessControlException Permission denied: user [jdoe] does not have [WRITE] privilege on [/tmp/*] (state=42000,code=40000),示例值:/tmp/*
hiveservice* hiveservice仅与Permissions=Service Admin 一起使用。允许在Ranger中拥有服务管理权限的用户运行kill query API: kill query 。支持值:*
global*
Description 对策略适当描述;如果在HiveServer2或HiveServer2-LLAP中使用Ranger Hive插件,其中列或描述权限包括全部,则必须为Hive列设置一个参数以按预期显示:在Ambari>Hive中,在ranger-hive-security.xml输入:xasecure.hive.describetable.showcolumns.authorization.option=show-all。未能设置此参数将导致错误消息hiveaccesscontrollexception
Audit Logging 指定是否审计此策略。(取消选择以禁用审计)
Select Group 指定此策略应用于的组。若要将该组指定为所选资源的管理员,请选中“委托管理”复选框。(管理员可以根据现有策略创建子策略);public组包含所有用户,因此授予对public组的访问权就授予了对所有用户的访问权
Select User 指定此策略应用于的一个或多个用户。若要将该组指定为所选资源的管理员,请选中“委托管理”复选框。(管理员可以根据现有策略创建子策略)
Delegate Admin 当选择委托管理时,管理权限将分配给适用的用户和组。受委托的管理员可以更新和删除策略,还可以基于原始策略创建子策略
include/exclude include标志意味着它将考虑字段中输入的值。默认值设置为include。exclude标志将排除在该特定字段中输入的所有表名或列名
enable/disable 默认情况下,策略是启用的。您可以禁用策略来限制该策略的用户/组访问
权限 描述
select 允许用户执行选择操作
update 允许用户执行更新操作
Create 允许用户执行创建操作
Drop 允许用户执行删除操作
Alter 允许用户执行Alter操作
Index 允许用户执行索引操作
Lock 允许用户对指定的资源执行锁定操作
All 允许用户执行所有操作
Read 允许用户执行可读操作
Write 允许用户执行可写操作
ReplAdmin
Service Admin 服务管理
Temporary UDF Admin 临时UDF管理
Select/Deselect all 全选/取消全选
  1. 您可以使用加号(+)来添加附加条件。条件按照保单中列出的顺序进行评估。首先应用列表顶部的条件,然后应用第二个条件,然后应用第三个条件,依此类推
  2. 单击 Add

从命令行提供对Hive数据库表的用户访问
Hive提供了管理用户直接从命令行访问Hive数据库表的方法。最常用的命令是:

  • GRANT
语法:grant  on table  to user ;
例如,要创建在default-hivesmoke22074表上授予user1 SELECT权限的策略,命令应该是
grant select on table default.hivesmoke22074 to user user1;
授予UPDATE、CREATE、DROP、ALTER、INDEX、LOCK、ALL和ADMIN权限的语法是相同的。

  • REVOKE
语法:revoke  on table 
from user ; 例如,取消user1对表默认值的选择权限。hivesmoke22074,命令将是 revoke select on table default.hivesmoke22074 from user user1; 对于撤销UPDATE、CREATE、DROP、ALTER、INDEX、LOCK、ALL和ADMIN权限,语法是相同的

配置一个基于资源的策略:Kafka

  1. 在服务管理器页面上,选择Kafka下的现有服务
    使用Apache Ranger提供授权 -- 02_第23张图片
    策略列表页面出现
    使用Apache Ranger提供授权 -- 02_第24张图片
  2. 单击 Add New Policy,将出现Create Policy页面
    使用Apache Ranger提供授权 -- 02_第25张图片
  3. 按照以下步骤完成创建策略页面
标签 描述
Policy Name* 输入适当的策略名称。此名称不能在整个系统中重复。这个字段是强制性的
Policy Label 为这个策略指定一个标签。您可以根据这些标签搜索报告和筛选策略
Topic* kafka资源类型。主题是发布消息的类别或提要名称
Transactional id* Kafka资源类型,以持久的方式唯一地标识生产者
Cluster* Kafka资源类型
Delegation Token* Kafka资源类型,用于身份验证
Description 描述政策的目的
Audit Logging 指定是否审计此策略。(取消选择以禁用审计)
Add Validity Period 指定策略的开始和结束时间
Select Group 指定应用此策略的组。若要将该组指定为所选资源的管理员,请指定管理权限。(管理员可以根据现有策略创建子策略);public组包含所有用户,因此授予对public组的访问权就授予了对所有用户的访问权
Select User 指定此策略应用于的特定用户(在已指定的组之外),或将特定用户指定为此策略的管理员。(管理员可以根据现有策略创建子策略)
Policy Conditions (applied at the policy level) 单击+图标,然后指定一个IP地址范围
Delegate Admin 当将策略分配给一个用户或一组用户时,这些用户将成为受委托的管理员。被委托的管理员可以更新、删除策略。它还可以基于原始策略(基本策略)创建子策略
Enable/Disable 默认情况下,策略是启用的。您可以禁用策略来限制该策略的用户/组访问
normal/override 使您能够指定覆盖策略。选择override时,策略中的访问权限将覆盖现有策略中的访问权限。此功能可与“添加有效期”一起使用,以创建覆盖现有策略的临时访问策略
Include/Exclude include标志意味着它将考虑字段中输入的值。默认值设置为include。exclude标志将排除在该特定文件中输入的所有表名或列名
标签 描述
Publish 向kafka主题生成器发布消息的过程
Consume 在流程中只使用主题中分区的子集
Configure 配置kafka代理/集群
Describe 获取主题元数据的权限
Create 允许创建主题
Delete 允许删除主题
Kafka Admin 允许管理kafka
Idempotent Write 允许等幂写权限
Describe Configs 允许描述配置
Alter Configs 允许修改配置
Select/Deselect All 全选/取消全选
  1. 您可以使用加号(+)来添加附加条件。条件按照保单中列出的顺序进行评估。首先应用列表顶部的条件,然后应用第二个条件,然后应用第三个条件,依此类推
  2. 单击 Add

配置一个基于资源的策略:Knox

  1. 在服务管理器页面上,选择Knox下的现有服务
    使用Apache Ranger提供授权 -- 02_第26张图片
    策略列表页面出现
    使用Apache Ranger提供授权 -- 02_第27张图片
  2. 单击 Add New Policy,将出现Create Policy页面
    使用Apache Ranger提供授权 -- 02_第28张图片
  3. 按照以下步骤完成创建策略页面
标签 描述
Policy Name* 输入适当的策略名称。此名称不能在整个系统中重复。这个字段是强制性的
Policy Label 为这个策略指定一个标签。您可以根据这些标签搜索报告和筛选策略
Knox Topology* 输入适当的拓扑名称
Knox Service* 输入适当的服务名称
Description 描述政策的目的
Audit Logging 指定是否审计此策略。(取消选择以禁用审计)
Select Group 指定应用此策略的组。若要将该组指定为所选资源的管理员,请指定管理权限。(管理员可以根据现有策略创建子策略);public组包含所有用户,因此授予对public组的访问权就授予了对所有用户的访问权
Select User 指定此策略应用于的特定用户(在已指定的组之外),或将特定用户指定为此策略的管理员。(管理员可以根据现有策略创建子策略)
Policy Conditions 指定IP地址范围
Permissions 添加或编辑权限: Allow
Delegate Admin 当将策略分配给一个用户或一组用户时,这些用户将成为受委托的管理员。被委托的管理员可以更新、删除策略。它还可以基于原始策略(基本策略)创建子策略
Enable/Disable 默认情况下,策略是启用的。您可以禁用策略来限制该策略的用户/组访问
Include/Exclude include标志意味着它将考虑字段中输入的值。默认值设置为include。exclude标志将排除在该特定文件中输入的所有表名或列名
  • 由于Knox没有提供将特权或角色分配给用户的命令行方法,所以Knox创建策略表单的用户和组权限部分特别重要
  1. 您可以使用加号(+)来添加附加条件。条件按照保单中列出的顺序进行评估。首先应用列表顶部的条件,然后应用第二个条件,然后应用第三个条件,依此类推
  2. 单击 Add

配置一个基于资源的策略:Solr

  1. 在服务管理器页面上,选择Solr下的现有服务
    使用Apache Ranger提供授权 -- 02_第29张图片
    策略列表页面出现
    使用Apache Ranger提供授权 -- 02_第30张图片
  2. 单击 Add New Policy,将出现Create Policy页面
    使用Apache Ranger提供授权 -- 02_第31张图片
  3. 按照以下步骤完成创建策略页面
标签 描述
Policy Name* 输入适当的策略名称。此名称不能在整个系统中重复。这个字段是强制性的
Policy Label 为这个策略指定一个标签。您可以根据这些标签搜索报告和筛选策略
Solr Collection* 对于HDP搜索的Solr实例:http:host_ip:8983/ Solr; 对于Ambari Infra的Solr实例:http:host_ip:8886/ Solr
Description 描述政策的目的
Audit Logging 指定是否审计此策略。(取消选择以禁用审计)
Select Group 指定应用此策略的组。若要将该组指定为所选资源的管理员,请指定管理权限。(管理员可以根据现有策略创建子策略);public组包含所有用户,因此授予对public组的访问权就授予了对所有用户的访问权
Select User 指定此策略应用于的特定用户(在已指定的组之外),或将特定用户指定为此策略的管理员。(管理员可以根据现有策略创建子策略)
Policy Conditions 指定IP地址范围
Delegate Admin 当将策略分配给一个用户或一组用户时,这些用户将成为受委托的管理员。被委托的管理员可以更新、删除策略。它还可以基于原始策略(基本策略)创建子策略
Enable/Disable 默认情况下,策略是启用的。您可以禁用策略来限制该策略的用户/组访问
Include/Exclude include标志意味着它将考虑字段中输入的值。默认值设置为include。exclude标志将排除在该特定文件中输入的所有表名或列名
权限 描述
Query
Update
Others
Solr Admin
Select/Deselect All 全选/取消全选
  1. 您可以使用加号(+)来添加附加条件。条件按照保单中列出的顺序进行评估。首先应用列表顶部的条件,然后应用第二个条件,然后应用第三个条件,依此类推
  2. 单击 Add

配置一个基于资源的策略:Storm

  1. 在服务管理器页面上,选择Storm下的现有服务
    使用Apache Ranger提供授权 -- 02_第32张图片
    策略列表页面出现
    使用Apache Ranger提供授权 -- 02_第33张图片
  2. 单击 Add New Policy,将出现Create Policy页面
    使用Apache Ranger提供授权 -- 02_第34张图片
  3. 按照以下步骤完成创建策略页面
标签 描述
Policy Name* 输入适当的策略名称。此名称不能在整个系统中重复。这个字段是强制性的
Policy Label 为这个策略指定一个标签。您可以根据这些标签搜索报告和筛选策略
Storm Topology* 输入适当的拓扑名称
Description 描述政策的目的
Audit Logging 指定是否审计此策略。(取消选择以禁用审计)
Select Group 指定应用此策略的组。若要将该组指定为所选资源的管理员,请指定管理权限。(管理员可以根据现有策略创建子策略);public组包含所有用户,因此授予对public组的访问权就授予了对所有用户的访问权
Select User 指定此策略应用于的特定用户(在已指定的组之外),或将特定用户指定为此策略的管理员。(管理员可以根据现有策略创建子策略)
Delegate Admin 当将策略分配给一个用户或一组用户时,这些用户将成为受委托的管理员。被委托的管理员可以更新、删除策略。它还可以基于原始策略(基本策略)创建子策略
Enable/Disable 默认情况下,策略是启用的。您可以禁用策略来限制该策略的用户/组访问
Include/Exclude include标志意味着它将考虑字段中输入的值。默认值设置为include。exclude标志将排除在该特定文件中输入的所有表名或列名
  • 由于Storm没有提供给用户分配特权或角色的命令行方法,所以Storm创建策略表单的用户和组权限部分特别重要
权限 描述
Submit Topology 允许用户提交拓扑
File Upload 允许用户上传文件
File Download 允许用户下载文件
Kill Topology 允许用户终止拓扑
Rebalance 允许用户重新平衡拓扑
Activate 允许用户激活拓扑
Deactivate 允许用户停用拓扑
Get Topology Conf 允许用户访问拓扑配置
Get Topology 允许用户访问拓扑
Get User Topology 允许用户访问用户拓扑
Get Topology Info 允许用户访问拓扑信息
Upload New Credential 允许用户上传新的凭证
Select/Deselect All 全选/取消全选
  1. 您可以使用加号(+)来添加附加条件。条件按照保单中列出的顺序进行评估。首先应用列表顶部的条件,然后应用第二个条件,然后应用第三个条件,依此类推
  2. 单击 Add

配置一个基于资源的策略:YARN

  1. 在“服务管理器”页面上,选择Yarn下的现有服务
    使用Apache Ranger提供授权 -- 02_第35张图片
    策略列表页面出现
    使用Apache Ranger提供授权 -- 02_第36张图片
  2. 单击 Add New Policy,将出现Create Policy页面
    使用Apache Ranger提供授权 -- 02_第37张图片
  3. 按照以下步骤完成创建策略页面
标签 描述
Policy Name* 输入适当的策略名称。此名称不能在整个系统中重复。这个字段是强制性的
Policy Label 为这个策略指定一个标签。您可以根据这些标签搜索报告和筛选策略
Queue* yarn调度的基本单位
Description 描述政策的目的
Audit Logging 指定是否审计此策略。(取消选择以禁用审计)
Select Group 指定应用此策略的组。若要将该组指定为所选资源的管理员,请指定管理权限。(管理员可以根据现有策略创建子策略);public组包含所有用户,因此授予对public组的访问权就授予了对所有用户的访问权
Select User 指定此策略应用于的特定用户(在已指定的组之外),或将特定用户指定为此策略的管理员。(管理员可以根据现有策略创建子策略)
Delegate Admin 当将策略分配给一个用户或一组用户时,这些用户将成为受委托的管理员。被委托的管理员可以更新、删除策略。它还可以基于原始策略(基本策略)创建子策略
Enable/Disable 默认情况下,策略是启用的。您可以禁用策略来限制该策略的用户/组访问
Include/Exclude include标志意味着它将考虑字段中输入的值。默认值设置为include。exclude标志将排除在该特定文件中输入的所有表名或列名
权限 描述
submit-app 允许用户提交队列
admin-queue 允许用户管理队列
Select/Deselect All 全选/取消全选
  1. 单击 Add

配置一个基于资源的策略:Atlas

  1. 在服务管理器页面上,在Atlas下选择一个现有服务
    使用Apache Ranger提供授权 -- 02_第38张图片
    策略列表页面出现
    使用Apache Ranger提供授权 -- 02_第39张图片
  2. 单击 Add New Policy,将出现Create Policy页面
    使用Apache Ranger提供授权 -- 02_第40张图片
  3. 按照以下步骤完成创建策略页面
标签 描述
Policy Name* 输入适当的策略名称。此名称不能在整个系统中重复。这个字段是强制性的
Policy Label 为这个策略指定一个标签。您可以根据这些标签搜索报告和筛选策略
type-category/entity-type/atlas-service/relationship-type* 选择实体、类型、操作、分类或术语
Description 描述政策的目的
Audit Logging 指定是否审计此策略。(取消选择以禁用审计)
Select Group 指定应用此策略的组。若要将该组指定为所选资源的管理员,请指定管理权限。(管理员可以根据现有策略创建子策略);public组包含所有用户,因此授予对public组的访问权就授予了对所有用户的访问权
Select User 指定此策略应用于的特定用户(在已指定的组之外),或将特定用户指定为此策略的管理员。(管理员可以根据现有策略创建子策略)
Delegate Admin 当将策略分配给一个用户或一组用户时,这些用户将成为受委托的管理员。被委托的管理员可以更新、删除策略。它还可以基于原始策略(基本策略)创建子策略
Enable/Disable 默认情况下,策略是启用的。您可以禁用策略来限制该策略的用户/组访问
Include/Exclude include标志意味着它将考虑字段中输入的值。默认值设置为include。exclude标志将排除在该特定文件中输入的所有表名或列名
  1. 您可以使用加号(+)来添加附加条件。条件按照保单中列出的顺序进行评估。首先应用列表顶部的条件,然后应用第二个条件,然后应用第三个条件,依此类推
  2. 单击 Add

基于资源的策略中的通配符和变量

在基于资源的策略中引用通配符和变量

  • Ranger授权资源策略通配符,可以在资源路径、数据库名、表名或列名中包含通配符
    * 表示字符的出现次数为零或以上(大于等于0)
    ? 表示单个字符
  • Ranger授权资源策略{USER}变量,变量{USER}可以用来自动填充正在访问的用户,例如:
    在Select User中,选择{User}
    在Resource Path中,输入data_{USER}
  • Ranger授权资源策略{USER}变量推荐的做法和可定制性
    Ranger要求使用字符串“{USER}”来表示访问用户,即Ranger策略中的策略项中的用户。但是,Ranger提供了一种灵活的方法来定制字符串,该字符串被用在策略资源规范中表示访问用户名的简写。默认情况下,Ranger策略及资源规格期望字符“{”和“}”作为字符串“USER”的分隔符,但是,ranger支持自定义方式来指定分隔符字符、转义这些分隔符和字符串“USER”本身,方法是在ranger支持的每个组件的服务定义中,在每个资源级的基础上用另一个用户指定的字符串作为前缀。
    例如,如果对于某个HDFS安装,如果路径名可能包含“{”或“}”作为有效字符,但不包含“%”字符,则可以将HDFS的服务定义指定为:
"resources": [
{
      "itemId": 1,
      "name": "path",
      "type": "path",
      "level": 10,
      "parent": "",
      "mandatory": true,
      "lookupSupported": true,
      "recursiveSupported": true,
      "excludesSupported": false,
      "matcher": "org.apache.ranger.plugin.resourcematcher.RangerPathResourceMatcher",
      "matcherOptions": {"wildcard": true, "ignoreCase": false}, "replaceTokens":true, "tokenDelimiterStart":"%", "tokenDelimiterEnd":"%", "tokenDelimiterPrefix":"rangerToken:"}
      "validationRegEx":"",
      "validationMessage": "",
      "uiHint":"",
      "label": "Resource Path",
      "description": "HDFS file or directory path"
}
]

HDFS用例的相应Ranger策略如下:

resource: path=/home/%rangerToken:USER%
user: {USER}
permissions: all, delegateAdmin=true
  • 以下可定制matcherOptions可用于此功能:
  1. replacetoken: 如果在运行时需要用当前用户的名字替换resource-spec中的用户名缩写,则为true;如果需要按原样解释资源规范,则为false。默认值:真的。
  2. tokenDelimiterStart: 标识资源规范中当前用户的短消息的开始字符。默认值:{。
  3. tokenDelimiterEnd: 标识资源规范中当前用户的短消息的结束字符。默认值:}。
  4. tokenDelimiterEscape: 标识用于在资源规范中转义到kendelimiterstart或tokenDelimiterEnd值的转义字符。默认值:\。
  5. tokenDelimiterPrefix: 标识在资源规范中与字符串“USER”一起构成当前用户名称的特殊前缀。默认值:.

基于资源的导入导出策略

  • 您可以在恢复操作期间,或者在将策略从测试集群转移到生产集群时,从Ranger管理UI导出和导入策略,以实现集群弹性(备份)。您可以导出/导入策略的特定子集(例如与特定资源或用户/组相关的策略子集),或者通过管理员UI克隆整个存储库(或多个存储库)
  • 界面
    您可以从Access Manager页面导入和导出策略
    使用Apache Ranger提供授权 -- 02_第41张图片
    您还可以从Reports页面导出策略
    使用Apache Ranger提供授权 -- 02_第42张图片
Access Manager 页面 Reports 页面
格式 JSON JSON、Excel、CSV
过滤支持 No Yes
特定的服务出口 Yes Via filtering
  • 过滤
    从Reports页面导出时,可以在保存文件之前应用筛选器
  • 输出格式
    您可以以以下格式导出策略:Excel、JSON、CSV
    注意: 导入策略不支持CSV格式
    从Access Manager页面导出策略时,将自动以JSON格式下载这些策略。如果希望以Excel或CSV格式导出,请从Reports页面下拉菜单导出策略。
  • 需要用户角色
    管理员用户只能导入和导出基于资源和标签的策略。此用户的凭据是在admin_username(默认为admin/admin)字段中的Ranger Configs > Advanced ranger-env中设置的。
    Ranger KMS keyadmin用户只能导入和导出KMS策略。这个用户的默认凭证是keyadmin/keyadmin
  • 局限性
    要成功导入策略,请使用以下数据库版本:
  1. MariaDB: 10.1.16+
  2. MySQL: 5.6.x+
  3. Oracle: 11gR2+
  4. PostgreSQL: 8.4+
  5. MS SQL: 2008 R2+

为特定服务导入基于资源的策略

  1. 在Access Manager页面,点击服务旁边的Import图标:
    使用Apache Ranger提供授权 -- 02_第43张图片
    导入策略页面打开
    使用Apache Ranger提供授权 -- 02_第44张图片
  2. 选择要导入的文件,您只能以JSON格式导入策略
  3. (可选)配置导入操作:
    Override Policy(重载策略)选项删除目标存储库的所有策略
    服务映射将下载的文件存储库,即源存储库映射到目标存储库
    使用Apache Ranger提供授权 -- 02_第45张图片
  4. 点击 Import,将出现一条确认消息:“成功:文件导入成功。”

为所有服务导入基于资源的策略

  1. 从Access Manager页面,单击Import按钮
    在这里插入图片描述
    导入策略页面打开
    使用Apache Ranger提供授权 -- 02_第46张图片
  2. 选择要导入的文件。您只能以JSON格式导入策略。
  3. (可选)配置导入操作:
    Service Types 使您能够从导入中删除特定的服务。
    Override Policy 选项删除目标存储库的所有策略。
    Service Mapping 将下载的文件存储库,即源存储库映射到目标存储库。
    使用Apache Ranger提供授权 -- 02_第47张图片
  4. 单击 Import,将出现一条确认消息:“成功:文件导入成功。”

导出特定服务的基于资源的策略

如果希望以Excel或CSV格式导出,请从Reports页面下拉菜单导出策略

  1. 从Access Manager页面,单击服务旁边的Export图标
    使用Apache Ranger提供授权 -- 02_第48张图片
    导出策略页面打开
    使用Apache Ranger提供授权 -- 02_第49张图片
  2. 点击导出按钮,该文件以JSON文件的形式下载到浏览器中。

导出所有服务的所有基于资源的策略

如果希望以Excel或CSV格式导出,请从Reports页面下拉菜单导出策略
从Access Manager页面:

  1. 点击导出按钮
    在这里插入图片描述
    导出策略页面打开
  2. 删除组件或特定服务并单击Export
    使用Apache Ranger提供授权 -- 02_第50张图片
    该文件以JSON文件的形式下载到浏览器中

从报告页:

  1. 在导出文件之前应用过滤器
  2. 打开导出下拉菜单
    使用Apache Ranger提供授权 -- 02_第51张图片
  3. 选择文件格式。文件在浏览器中下载

在Hive中的行级过滤和列屏蔽

  • 可以使用Apache Ranger行级筛选器设置Hive表中的行访问策略。您还可以使用Ranger列屏蔽来设置屏蔽Hive列中的数据的策略,例如仅显示列数据的前四个字符。

Hive行级过滤与Ranger策略

  • 行级过滤有助于简化Hive查询。通过将访问限制逻辑移到Hive层,Hive在每次尝试数据访问时应用访问限制。这有助于简化Hive查询的编写,并提供了无缝的行级分段的幕后执行,而不必将此逻辑添加到查询的谓词。

  • 行级过滤也提高了Hadoop的可靠性健壮性。通过为Hive表提供行级安全性并减少安全表面积,可以根据用户特征(如组成员关系)和发出此请求的运行时上下文将Hive数据访问限制到特定的行。

  • 行级过滤的典型用例包括:

    • 医院可以创建一个安全策略,该策略允许医生只查看自己的患者的数据行,并且允许保险索赔管理员只查看其特定站点的特定行。
    • 银行可以根据员工的业务部门、地区或员工的角色创建一个策略来限制对几行财务数据的访问(例如:只有财务部门的员工才允许查看客户发票、付款和应计数据;只有欧洲的HR员工可以看到欧洲的员工数据)。
    • 多租户应用程序可以创建每个租户数据的逻辑分离,以便每个租户只能看到自己的数据行。
  • 可以使用Apache Ranger行级筛选器设置Hive表中的行访问策略。行级筛选器策略类似于其他Ranger访问策略。您可以为特定的用户、组和条件设置过滤器。

  • 以下条件适用于使用行级过滤器:

    • 筛选器表达式必须是表或视图的有效WHERE子句。
    • 每个表或视图都应该有自己的行级筛选器策略。
    • 数据库或表名不支持通配符匹配。
    • 过滤器按照策略中列出的顺序进行评估。
    • 每次将行级筛选器应用于表或视图时,都会生成一个审计日志项。
  1. 在服务管理器页面上,选择一个现有的Hive服务
    使用Apache Ranger提供授权 -- 02_第52张图片
  2. 选择“行级筛选器”选项卡,然后单击“添加新策略”
    使用Apache Ranger提供授权 -- 02_第53张图片
    使用Apache Ranger提供授权 -- 02_第54张图片
  3. 在Create Policy页面上,为行级过滤器添加以下信息
标签 描述
Policy Name* 输入适当的策略名称。此名称不能在整个系统中重复。默认情况下启用策略
Hive Database* 键入适用的数据库名称。自动完成功能根据输入的文本显示可用的数据库
Hive Table* 键入适用的表名。自动完成功能根据输入的文本显示可用的表
Description 输入策略的可选描述
Audit Logging 审计日志默认设置为Yes。选择No关闭审计日志记录
Select Group 指定此策略应用到的组。public组包含所有用户,因此授予对public组的访问权就授予了对所有用户的访问权
Select User 指定此策略应用于的一个或多个用户
Access Types 当前select是唯一可用的访问类型。这将与行级筛选器字段中指定的WHERE子句一起使用
Row Level Filter 1. 要为指定的用户和组创建行筛选器,请单击“添加行筛选器”,然后在“输入筛选器表达式”框中键入有效的WHERE子句。 2. 若要允许指定用户和组在不受行级限制的情况下进行选择访问,请不要添加行筛选器(将设置保留为“添加行筛选器”)。 3.过滤器按照策略中列出的顺序进行评估。首先应用行筛选条件列表顶部的筛选器,然后应用第二、第三个筛选器,依此类推。

使用Apache Ranger提供授权 -- 02_第55张图片
4. 若要在行筛选条件列表中移动条件(并因此更改对其求值的顺序),请单击条件行左侧的点行图标,然后将条件拖动到列表中的新位置。
使用Apache Ranger提供授权 -- 02_第56张图片
5. 单击Add以添加新的行级筛选器策略。

Hive动态资源为基础的列屏蔽与Ranger策略

  • 您可以使用Apache Ranger动态基于资源的列屏蔽功能来保护Hive中的敏感数据,几乎是实时的。您可以从Hive查询输出动态地设置屏蔽或匿名敏感数据列(如PII、PCI和PHI)的策略。例如,可以在列中屏蔽敏感数据,只显示前4个或后4个字符。

  • 动态列屏蔽策略类似于Hive的其他Ranger访问策略。您可以为特定的用户、组和条件设置过滤器。使用动态列级屏蔽,敏感信息不会离开Hive,并且在使用应用程序或Hive层不需要更改。也不需要产生额外的受保护的重复版本的数据集。

  • 当使用Ranger列屏蔽策略屏蔽Hive查询结果中返回的数据时,应用以下条件:

    • 可以使用多种屏蔽类型,比如show last 4 characters、show first 4 characters、Hash、Nullify和date mask (show only year)。
    • 可以为特定用户、组和条件指定屏蔽类型。
    • 不支持通配符匹配。
    • 每个列都应该有自己的屏蔽策略。
    • 掩码按照策略中列出的顺序进行评估。
    • 每次将屏蔽策略应用于列时都会生成一个审计日志项。
  1. 在服务管理器页面上,选择一个现有的Hive服务
    使用Apache Ranger提供授权 -- 02_第57张图片
  2. 选择选项卡,然后单击Add New Policy
    使用Apache Ranger提供授权 -- 02_第58张图片
  3. 在Create Policy页面上,为列屏蔽过滤器添加以下信息:
标签 描述
Policy Name* 输入适当的策略名称。此名称不能在整个系统中重复。默认情况下启用策略
Hive Database* 键入适用的数据库名称。自动完成功能根据输入的文本显示可用的数据库
Hive Table* 键入适用的表名。自动完成功能根据输入的文本显示可用的表
Hive Column* 键入适用的列名。自动完成功能根据输入的文本显示可用的列
Description 输入策略的可选描述
Audit Logging 审计日志默认设置为Yes。选择No关闭审计日志记录
Select Group 指定此策略应用到的组。public组包含所有用户,因此授予对public组的访问权就授予了对所有用户的访问权
Select User 指定此策略应用于的一个或多个用户
Access Types 当前select是唯一可用的访问类型。这将与行级筛选器字段中指定的WHERE子句一起使用

选择屏蔽选项(Select Masking Option),要为指定的用户和组创建行筛选器,请单击“选择屏蔽选项”,然后选择屏蔽类型:

标签 描述
Redact 掩码所有带“x”的字母字符和所有带“n”的数字字符
Partial mask: show last 4 只显示最后四个字符
Partial massk: show first 4 只显示前四个字符
Hash 用整个单元格值的散列替换所有字符
Nullify 用空值替换所有字符
Unmasked (retain original value) 没有使用遮罩
Date: show only year 只显示日期字符串的年份部分,并将月和日默认为01/01
Custom 指定自定义屏蔽值或表达式。自定义屏蔽可以使用任何有效的Hive UDF (Hive返回的数据类型与被屏蔽列中的数据类型相同)

掩蔽条件按照策略中列出的顺序进行评估。首先应用屏蔽条件列表顶部的条件,然后应用第二个条件,然后应用第三个条件,依此类推。
4. 若要在掩码条件列表中移动条件(并因此更改对其求值的顺序),请单击条件行左侧的点行图标,然后将条件拖动到列表中的新位置。
5. 单击Add以添加新的列屏蔽筛选器策略

Hive动态标签为基础的列屏蔽与Ranger策略

  • 基于Ranger资源的Hive屏蔽策略匿名化来自数据库、表和列标识的Hive列的数据,基于标记的屏蔽策略匿名化基于与Hive列相关的标记和标记属性值的Hive列数据(通常在Atlas中指定为元数据分类)。

  • 当使用Ranger列屏蔽策略屏蔽Hive查询结果中返回的数据时,应用以下条件:

    • 可以使用多种屏蔽类型,比如show last 4 characters、show first 4 characters、Hash、Nullify和date mask (show only year)。
    • 可以为特定用户、组和条件指定屏蔽类型。
    • 不支持通配符匹配。
    • 如果有多个标签屏蔽策略应用于同一个Hive列,则选择具有词法上最小的策略名的屏蔽策略执行,例如,策略“a”在策略“aa”之前执行。
    • 掩码按照策略中列出的顺序进行评估
    • 每次将屏蔽策略应用于列时都会生成一个审计日志项
  1. 选择Access Manager > Tag Based Policies,然后选择基于标记的服务
    使用Apache Ranger提供授权 -- 02_第59张图片
  2. 选择选项卡,然后单击Add New Policy
    使用Apache Ranger提供授权 -- 02_第60张图片
  3. 在Create Policy页面上,为列屏蔽过滤器添加以下信息:
标签 描述
Policy Name* 输入适当的策略名称。此名称不能在整个系统中重复。默认情况下启用策略
TAG* 输入适用的标签名称,例如MASK
Hive Table* 键入适用的表名。自动完成功能根据输入的文本显示可用的表
Description 输入策略的可选描述
Audit Logging 审计日志默认设置为Yes。选择No关闭审计日志记录
Select Group 指定此策略应用到的组。public组包含所有用户,因此授予对public组的访问权就授予了对所有用户的访问权
Select User 指定此策略应用于的一个或多个用户
Policy Conditions 单击“添加条件”以添加或编辑策略条件。当前“在到期日期后访问?”(是/否)是唯一可用的政策条件。要设置此条件,请在文本框中键入yes,然后选择绿色复选标记按钮以添加该条件
Access Types 当前hive和select是唯一可用的访问类型

选择屏蔽选项(Select Masking Option),要为指定的用户和组创建行筛选器,请单击“选择屏蔽选项”,然后选择屏蔽类型:

标签 描述
Redact 掩码所有带“x”的字母字符和所有带“n”的数字字符
Partial mask: show last 4 只显示最后四个字符
Partial massk: show first 4 只显示前四个字符
Hash 用整个单元格值的散列替换所有字符
Nullify 用空值替换所有字符
Unmasked (retain original value) 没有使用遮罩
Date: show only year 只显示日期字符串的年份部分,并将月和日默认为01/01
Custom 指定自定义屏蔽值或表达式。自定义屏蔽可以使用任何有效的Hive UDF (Hive返回的数据类型与被屏蔽列中的数据类型相同)

掩蔽条件按照策略中列出的顺序进行评估。首先应用屏蔽条件列表顶部的条件,然后应用第二个条件,然后应用第三个条件,依此类推。

  1. 您可以使用加号(+)来添加附加条件。条件按照保单中列出的顺序进行评估。首先应用列表顶部的条件,然后应用第二个条件,然后应用第三个条件,依此类推。
  2. 单击Add添加新策略

你可能感兴趣的:(Ranger)