Ranger之配置策略 (四)(2)

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

如何向已有的Hive服务添加新策略。

过程

  1. .在“服务管理器”界面,选择已存在的Hive服务。
    出现“策略列表”页面。
  2. 单击“添加新策略”。
    系统显示“创建策略”页面。
    在这里插入图片描述
  3. 按照如下步骤完成“创建策略”页面:

表一 策略细节

字段 描述
Policy Name 输入适当的策略名称。此名称不能在系统中重复。该字段为必填项。缺省情况下,该策略已启用。
normal/override 允许您指定覆盖策略。选择“覆盖”时,策略中的访问权限将覆盖已有策略中的访问权限。该特性可与“添加有效期”一起使用,创建覆盖现有策略的临时访问策略。
Database 键入适用的数据库名称。auto complete特性根据输入的文本显示可用的数据库。默认情况下,包含被选中以允许访问。选择Exclude以拒绝访问。
table/udf 指定基于表或基于udf的策略。选择table或udf,然后键入适用的表或udf名称。autocomplete特性根据输入的文本显示可用的表。默认情况下,包含被选中以允许访问。选择Exclude以拒绝访问。
Hive Column 输入适用的Hive列名。autocomplete特性根据输入的文本显示可用的列。默认情况下,包含被选中以允许访问。选择Exclude以拒绝访问。如果使用Ranger Hive plugin与HiveServer2或HiveServer2llap一起使用,其中的列或描述权限包括all,则必须为Hive列设置一个参数,使其按预期显示:在Ambari>Hive中,在Ranger - Hive -security下。然后输入:xasecure.hive.describetable.showcolumns.authorization.option=showall。如果设置失败,将提示HiveAccessControlException错
URL 指定云存储路径(例如s3a://devadmin/demo/campaign .txt),该路径需要终端用户对/上的Hive数据进行读写权限。权限:对URL的读操作允许用户对Hive表进行以S3为数据源的HiveServer2操作。对URL的写操作允许用户执行HiveServer2操作,将数据写入S3指定位置。该特性是一个技术预览:它还不能用于生产部署。
URI Hive INSERT OVERWRITE查询需要一个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/
Description (可选)描述本政策的目的。如果使用Ranger Hive plugin与HiveServer2或HiveServer2- llap一起使用,其中的列或描述权限包括all,则必须为Hive列设置一个参数,使其按预期显示:在Ambari>Hive中,在Ranger - Hive -security下。xml中,输入:xasecure.hive.describetable.showcolumns.authorization.option =show all。如果设置失败,将提示HiveAccessControlException错误。
Hive Service Name hiveservice只能与Permissions=Service Admin一起使用。允许在Ranger中拥有服务管理权限的用户运行kill query API: kill query 。支持value:*。(必需)
Audit Logging 指定是否审计此策略。(取消选择,禁用审计)。
Policy Label 为该策略指定一个标签。您可以根据这些标签搜索报表和筛选策略。
Add Validity Period 指定策略的开始和结束时间。

表二 允许条件

标签 描述
Select Group 指定应用此策略的组。要将一个组指定为管理员,请选中“委派管理员”复选框。管理员可以编辑或删除策略,也可以在原始策略的基础上创建子策略。public组包含所有用户,因此授予对public组的访问权限将授予所有用户的访问权限。
Select User 指定应用此策略的用户。若要将用户指定为管理员,请选中“委派管理员”复选框。管理员可以编辑或删除策略,也可以在原始策略的基础上创建子策略。
Permissions 添加或编辑权限:选择,更新,创建,删除,修改,索引,锁定,所有,ReplAdmin,服务管理员,选择/取消选择所有。如果使用Ranger Hive plugin与HiveServer2或HiveServer2- llap一起使用,其中的列或描述权限包括all,则必须为Hive列设置一个参数,使其按预期显示:在Ambari>Hive中,在Ranger - Hive -security下。然后 输入:xasecure.hive.describetable.showcolumns.authorization.option=show all。设置该参数失败将导致错误消息HiveAccessControlException。在执行repl dump、repl load和repl status命令时,必须设置一个参数:在Ambari>Hive中,在Hive -site. sh目录下。xml输入:hive.distcp.privileged.doAs =hive。Service Admin与Hive Service Name和kill query API一起使用:kill query
Delegate Admin 您可以使用Delegate Admin为策略中指定的用户或组分配管理员权限。管理员可以编辑或删除策略,也可以在原始策略的基础上创建子策略。
  1. 您可以使用加号(+)来添加额外的条件。条件按照策略中列出的顺序进行评估。首先应用列表顶部的条件,然后是第二个条件,然后是第三个条件,依次类推。
  2. 单击Add。

What to do next

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

• 授予
语法

grant <permissions> on table <table> to user <user or group>;

例如,要创建一个对default-hivesmoke22074表授予user1 SELECT权限的策略,命令应该是:

grant select on table default.hivesmoke22074 to user user1;

授予UPDATE、CREATE、DROP、ALTER、INDEX、LOCK、ALL和ADMIN权限的语法是相同的。

• 撤消
语法

revoke <permissions> on table <table> from user <user or group>;

例如,撤销user1对表default的选择权限。hivesmoke22074,命令如下:

revoke select on table default.hivesmoke22074 from user user1;

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

如何添加一个新的策略到现有的Kafka服务。

过程

  1. 在“服务管理器”页面中,选择已存在的Kafka服务。
    出现“策略列表”页面。

  2. 单击“添加新策略”。
    系统显示“创建策略”页面。
    在这里插入图片描述

  3. 按照如下步骤完成“创建策略”页面:

表一:策略细节

字段 描述
Policy Name 输入适当的策略名称。此名称不能在系统中重复。该字段为必填项。
normal/override 允许您指定覆盖策略。选择“覆盖”时,策略中的访问权限将覆盖已有策略中的访问权限。该特性可与“添加有效期”一起使用,创建覆盖现有策略的临时访问策略。
Solr Collection 对于HDP搜索的Solr实例:http:host_ip:8983/ Solr ;对于Ambari Infra的Solr实例:http:host_ip:8886/ Solr
Description (可选)描述本政策的目的。
Audit Logging 指定是否审计此策略。(取消选择,禁用审计)。
Policy Label 为该策略指定一个标签。您可以根据这些标签搜索报表和筛选策略。
Add Validity Period 指定策略的开始和结束时间。
Policy Conditions (applied at the policy level) 单击+图标,然后指定一个IP地址范围。

表二:允许条件

标签 描述
Select Group 指定应用此策略的组。要将一个组指定为管理员,请选中“委派管理员”复选框。管理员可以编辑或删除策略,也可以在原始策略的基础上创建子策略。public组包含所有用户,因此授予对public组的访问权限将授予所有用户的访问权限。
Select User 指定应用此策略的用户。若要将用户指定为管理员,请选中“委派管理员”复选框。管理员可以编辑或删除策略,也可以在原始策略的基础上创建子策略。
Policy Conditions (applied at the item level) 请指定IP地址范围。
Permissions 添加或编辑权限:查询、更新、其他、Solr Admin、选择/取消选择所有。
Delegate Admin 您可以使用Delegate Admin为策略中指定的用户或组分配管理员权限。管理员可以编辑或删除策略,也可以在原始策略的基础上创建子策略。
  1. 您可以使用加号(+)来添加额外的条件。条件按照策略中列出的顺序进行评估。首先应用列表顶部的条件,然后是第二个条件,然后是第三个条件,依次类推。
  2. 单击Add。

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

如何向现有YARN服务添加新策略。

过程

  1. 在“服务管理器”界面中,选择已存在的YARN服务。
    出现“策略列表”页面。

  2. 单击“添加新策略”。
    系统显示“创建策略”页面。

在这里插入图片描述
3.按照如下步骤完成“创建策略”页面:

表1:策略详细信息

字段 描述
Policy Name 输入适当的策略名称。此名称不能在系统中重复。该字段为必填项。
normal/override 允许您指定覆盖策略。选择“覆盖”时,策略中的访问权限将覆盖已有策略中的访问权限。该特性可与“添加有效期”一起使用,创建覆盖现有策略的临时访问策略。
Queue 策略应用到的YARN队列。
Recursive 默认递归设置指定该策略也将应用于所有子队列;还可以指定非递归路径。
Description (可选)描述本政策的目的。
Audit Logging 指定是否审计此策略。(取消勾选“禁用审计”)。
Policy Label 为该策略指定一个标签。您可以根据这些标签搜索报表和筛选策略。
Add Validity Period 指定策略的开始和结束时间。

表二:允许条件

标签 属性
Select Group 指定应用此策略的组。要将一个组指定为管理员,请选中“委派管理员”复选框。管理员可以编辑或删除策略,也可以在原始策略的基础上创建子策略。public组包含所有用户,因此授予对public组的访问权限将授予所有用户的访问权限。
Select User 指定应用此策略的用户。若要将用户指定为管理员,请选中“委派管理员”复选框。管理员可以编辑或删除策略,也可以在原始策略的基础上创建子策略。
Permissions 添加或编辑权限:提交-应用程序,管理-队列,选择/取消选择所有。
Delegate Admin 您可以使用Delegate Admin为策略中指定的用户或组分配管理员权限。管理员可以编辑或删除策略,也可以在原始策略的基础上创建子策略。
  1. 点击添加

基于资源的策略中的通配符和变量*(imp)

基于资源策略中的通配符和变量引用基于资源策略中的通配符和变量。管理员授权资源策略通配符通配符可以包含在资源路径、数据库名、表名或列名中:
•*表示零次或多次出现字符
•?表示单个字符
管理员授权资源策略{USER}变量,变量{USER}可用于自动填充正在访问的用户,例如:
在“选择用户”中选择“{User}”。
在“资源路径”中输入data_{USER}。
管理员授权资源策略{USER}变量,推荐的实践和可定制性管理员要求使用字符串’{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可用于此功能:
•replaceTokens:如果resource-spec中的user的简写需要在运行时用当前用户的名字替换,则为true;如果需要原样解释资源规范,则为false。默认值:真的。
•tokenDelimiterStart:标识当前用户在资源规范中的开始字符。默认值:{。
•tokenDelimiterEnd:标识当前用户在资源规范中的简写结束字符。默认的
价值:}。
•tokenelimiterescape:用于转义tokenelimiterstart或tokenelimiterend值的转义字符
在资源规范。默认值:\。
•tokenDelimiterPrefix:标识特殊的前缀,它与字符串“USER”一起构成了资源规范中当前用户名的简写。默认值:。

猜你喜欢

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