Ranger之基于标记的服务和策略 (七)

基于标记的服务和策略

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

添加基于标记的服务

如何向Ranger添加基于标记的服务。

关于这个任务
您可以使用Service Manager for Tag-Based Policies创建基于标签的服务,并添加可应用于Hadoop资源的基于标签的访问策略。使用基于标记的策略可以控制跨多个Hadoop组件对资源的访问,而无需在每个组件中创建单独的服务和策略。您还可以使用Ranger TagSync将Ranger标记存储与外部元数据服务(如Apache Atlas)进行同步。

过程

  1. 选择访问管理器基于标签的策略>,然后单击添加图标()
    在“服务管理器”页面的标签框中。
    在这里插入图片描述

  2. 在“创建服务”页面中,输入服务名称和可选描述。该服务默认启用,但您可以通过选择“禁用”来禁用它。要添加服务,单击“添加”。
    在这里插入图片描述
    3.新标签服务将出现在服务管理器页面中
    在这里插入图片描述
    添加基于策略

     基于标记的策略使您能够控制跨多个Hadoop组件对资源的访问,而无需在每个组件中创建单独的服务和策略。您还可以使用Ranger TagSync将Ranger标记存储与外部元数据服务(如Apache Atlas)进行同步。
    

过程

  1. 选择Access Manager>基于标签的策略,然后选择基于标签的服务。
    在这里插入图片描述

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

在这里插入图片描述

3.在“创建策略”页面中输入如下信息:

表一:策略详情

字段 描述
Policy Type 默认为Access。
Policy Name 输入唯一的策略名称。此名称不能在系统中重复。该字段为必填项。
normal/override 允许您指定覆盖策略。选择“覆盖”时,策略中的访问权限将覆盖已有策略中的访问权限。该特性可与“添加有效期”一起使用,创建覆盖现有策略的临时访问策略。
TAG 输入适用的标签名称。
Description (可选)描述当前策略的目的。
Audit Logging 指定是否审计此策略。(取消选择,禁用审计)。
Policy Label 为该策略指定一个标签。您可以根据这些标签搜索报表和筛选策略。
Add Validity Period 指定策略的开始和结束时间。
Policy Conditions (applied at the policy level) 单击+图标添加策略条件。当前“在过期日期后访问?”“(是/否)”是唯一可用的保单条件。在expiry_date之后访问(是/否)?:若要设置此条件,请在文本框中输入yes,然后单击复选标记按钮添加条件。输入布尔表达式:可用于基于标签的策略上的允许或拒绝条件。有关示例和详细信息,请参见“在Ranger基于标记的策略条件中使用标记属性和值”。单击“保存”,保存策略条件。

表二:Allow, Exclude from Allow, Deny, and Exclude from Deny Conditions

标签 描述
Select Group 指定应用此策略的组。要将组指定为所选资源的管理员,请指定管理员权限。(管理员可以根据现有策略创建子策略)。public组包含所有用户,因此为public组设置条件适用于所有用户。
Select User 指定应用此策略的特定用户(在已经指定的组之外)或指定特定用户为此策略的管理员。(管理员可以根据现有策略创建子策略)。
Policy Conditions (applied at the item level) 单击“添加条件”,添加策略条件。当前“在过期日期后访问?”“(是/否)”是唯一可用的保单条件。在expiry_date之后访问(是/否)?:若要设置此条件,请在文本框中输入yes,然后单击复选标记按钮添加条件。输入布尔表达式:可用于基于标签的策略上的允许或拒绝条件。有关示例和详细信息,请参见“在Ranger基于标记的策略条件中使用标记属性和值”。
Component Permissions 单击“添加权限”可添加或编辑组件条件。要添加组件权限,请在文本框中输入组件名称,然后使用复选框指定组件权限。单击check mark按钮将选择的组件条件添加到策略。
  1. 您可以使用加号(+)符号来添加额外的条件。条件按照策略中列出的顺序进行评估。首先应用列表顶部的条件,然后是第二个条件,然后是第三个条件,依次类推。

  2. 单击“添加”,添加新策略

在基于Ranger标记的策略条件中使用标记属性和值

输入布尔表达式允许Ranger在配置基于标记的策略允许或拒绝条件时使用标记属性和值。它允许管理员使用标签属性提供布尔表达式。

在标签服务定义中引入了策略条件:

 "itemId":2,
 "name":"expression",
 "evaluator":
 "org.apache.ranger.plugin.conditionevaluator.RangerScriptConditionEvaluator",
 "evaluatorOptions" : {
    
    "engineName":"JavaScript",
 "ui.isMultiline":"true"},
 "label":"Enter boolean expression",
 "description": "Boolean expression"
 }

以下变量可以在布尔表达式中引用:
•ctx:上下文处理器,包含从请求中访问元数据信息的api。
•tag:当前标签的信息。
•tagAttr:包含所有当前标签属性和相应值的映射。
以下api可以从请求中获得:
getUser():返回一个字符串。
•getUserGroups():返回一组包含组的字符串。
•getClientIPAddress():返回一个包含客户端IP地址的字符串。
•getAction():返回一个包含被请求动作信息的字符串。
两个场景:
•需要根据资源所在机器的IP地址拒绝用户“sam”的策略
访问。
用下面的布尔表达式为用户sam设置拒绝条件:

if ( tagAttr.get('ipAddr').equals(ctx.getClientIPAddress()) ) {
    
    
 ctx.result = true;
 }

拒绝一个特定的用户“bob”从一个组“users”,只有当这个用户正在访问一个特定IP的资源,在Atlas中定义了一个标签属性。使用下面的布尔表达式为组用户设置拒绝条件:

if (tagAttr.get('ipAddr').equals(ctx.getClientIPAddress()) &&
 ctx.getUser().equals("bob")) {
    
    
 ctx.result=true;
 }

在这里插入图片描述
添加基于标记的PII策略

如何添加基于PII标记的策略的示例。在本例中,我们为Atlas中标记为“PII”的对象创建一个基于标记的策略。允许“audit”组的成员访问标记为“PII”的对象。所有其他用户("public"组)都被拒绝访问。

过程

  1. 选择Access Manager >基于标签的策略,然后选择基于标签的服务。

在这里插入图片描述
2. 在“策略列表”页面中,单击“添加新策略”。
在这里插入图片描述
系统显示“创建策略”页面:
在这里插入图片描述
3.在“创建策略”页面中输入如下信息:

表一:策略详细信息

Field 描述
Policy Type 默认为Access。
Policy Name PII。
TAG PII。
Audit Logging YES
Description Restrict access to resources with the PII tag.

表二:允许条件

Field 描述
Select Group 默认为Access。
Select User
Policy Conditions
Component Permissions Hive (选择所有权限)

表三:拒绝条件

Field 描述
Select Group 默认为public。
Select User
Policy Conditions
Component Permissions Hive (选择所有权限)

表四:Exclude from Deny Conditions

Field 描述
Select Group audit
Select User
Policy Conditions
Component Permissions Hive (选择所有权限)

在这里插入图片描述
在本例中,我们使用允许条件授予对“audit”组的访问权,然后使用拒绝条件拒绝对“public”组的访问权。因为“public”组包括所有用户,所以我们使用Exclude from Deny条件来排除“audit”组,实际上恢复了“audit”组原来的允许访问条件。

  1. 单击“添加”,添加新策略

默认过期标签策略

当创建标签服务实例时,会自动创建EXPIRES_ON标签策略。这个默认策略拒绝访问在Atlas标记属性中指定的过期日期之后使用EXPIRES_ON标记的对象。您可以使用以下步骤查看默认的EXPIRES_ON策略。

过程

  1. 选择Access Manager >基于标签的策略,然后选择基于标签的服务。
    在这里插入图片描述
  2. 在策略列表页面上,单击默认EXIRES_ON策略的编辑图标。
    在这里插入图片描述

出现“编辑策略”页面:
在这里插入图片描述

  1. 我们可以看到,默认的EXPIRES_ON策略拒绝所有用户和所有组件在Atlas标记属性中指定的到期日之后的访问。

导入和导出基于标签的策略

您可以在恢复操作期间或将策略从测试集群移动到生产集群时,从Ranger Admin UI(用于集群弹性(备份))导出和导入策略。您可以导入或导出特定的策略子集(比如那些属于特定资源或用户/组的策略),或者通过Ranger Admin UI克隆整个存储库(或多个存储库)。

接口

您可以在“基于标签的策略”页面中导入和导出策略:

在这里插入图片描述
您还可以在“报表”页面导出策略:
在这里插入图片描述
上表 :导出策略选项

服务管理页 报告页
Formats Json JSON&Exce&CSV
Filtering Supported none yes
Specific Service Export yes 通过过滤

过滤
在从Reports页面导出时,您可以在保存文件之前应用过滤器。
导出格式
导出策略的格式包括:
•Excel
•JSON
•CSV

备注:导入策略时不支持CSV格式。
在“服务管理器”界面导出策略时,会自动以JSON格式下载策略。如果希望以Excel或CSV格式导出,请从Reports page下拉菜单中导出策略。

需要用户角色
管理员管理员用户只能导入和导出基于资源和标签的策略。此用户的凭据设置在Ranger Configs > Advanced Ranger -env中标记为admin_username(默认值:admin/admin)的字段中。
“Ranger KMS keyadmin”用户只能导入导出KMS策略。此用户的默认凭据是keyadmin/keyadmin。
限制
要成功导入策略,请使用以下数据库版本:
•MariaDB: 10.1.16 +
•MySQL: 5.6.x +
•甲骨文:11 gr2 +
•PostgreSQL: 8.4 +
MS SQL: 2008 R2+
不支持部分策略导入。

导入基于标签的策略

如何导入基于标签的策略。

过程

  1. 在“基于标签的策略”页面上,单击其中一个导入图标:
    在这里插入图片描述
  2. 选择要导入的文件。

只能导入JSON格式的策略。
在这里插入图片描述
3. (可选)配置导入操作:

a)覆盖策略选项删除目标存储库的所有策略。
b)分区映射—不选择目的时,导入所有服务。选择目的地址时,只导入与该安全区域关联的服务。
c)服务映射将下载的文件存储库,即源存储库映射到目标存储库。您可以使用红色的x符号从导入中删除服务。向下滚动以查看所有的服务映射。
在这里插入图片描述
4. 点击导入。
导入文件后会出现确认消息。

基于导出策略
如何导出所有基于标签的策略。
关于这个任务
只能从“基于标签的策略”页面导出JSON格式的策略。如果您想以Excel或CSV格式导出,请从报表页面下拉菜单中导出策略。

过程
•从访问管理器>标签基于策略页面:
a)点击导出按钮或图标:
在这里插入图片描述
出现“导出策略”页面。
b)删除组件或特定服务,单击“导出”。
在这里插入图片描述
文件下载在你的浏览器作为一个JSON文件。

•从报告页面:
a)过滤组件标记并点击搜索。
b)(可选)在导出文件之前应用过滤器。
c)打开导出下拉菜单:

在这里插入图片描述
d)选择文件格式。
文件在浏览器中下载。

猜你喜欢

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