本文共 5194 字,大约阅读时间需要 17 分钟。
Ranger允许您创建基于标记的服务,并向这些服务添加访问策略。
添加基于标记的服务
如何向Ranger添加基于标记的服务。
关于这个任务
您可以使用Service Manager for Tag-Based Policies创建基于标签的服务,并添加可应用于Hadoop资源的基于标签的访问策略。使用基于标记的策略可以控制跨多个Hadoop组件对资源的访问,而无需在每个组件中创建单独的服务和策略。您还可以使用Ranger TagSync将Ranger标记存储与外部元数据服务(如Apache Atlas)进行同步。过程
选择访问管理器基于标签的策略>,然后单击添加图标()
在“服务管理器”页面的标签框中。在“创建服务”页面中,输入服务名称和可选描述。该服务默认启用,但您可以通过选择“禁用”来禁用它。要添加服务,单击“添加”。
基于标记的策略使您能够控制跨多个Hadoop组件对资源的访问,而无需在每个组件中创建单独的服务和策略。您还可以使用Ranger TagSync将Ranger标记存储与外部元数据服务(如Apache Atlas)进行同步。
过程
选择Access Manager>基于标签的策略,然后选择基于标签的服务。
在“策略列表”页面中,单击“添加新策略”。
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按钮将选择的组件条件添加到策略。 |
您可以使用加号(+)符号来添加额外的条件。条件按照策略中列出的顺序进行评估。首先应用列表顶部的条件,然后是第二个条件,然后是第三个条件,依次类推。
单击“添加”,添加新策略
在基于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标记的策略的示例。在本例中,我们为Atlas中标记为“PII”的对象创建一个基于标记的策略。允许“audit”组的成员访问标记为“PII”的对象。所有其他用户("public"组)都被拒绝访问。
过程
表一:策略详细信息
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 (选择所有权限) |
当创建标签服务实例时,会自动创建EXPIRES_ON标签策略。这个默认策略拒绝访问在Atlas标记属性中指定的过期日期之后使用EXPIRES_ON标记的对象。您可以使用以下步骤查看默认的EXPIRES_ON策略。
过程
出现“编辑策略”页面:
导入和导出基于标签的策略
您可以在恢复操作期间或将策略从测试集群移动到生产集群时,从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+ 不支持部分策略导入。导入基于标签的策略
如何导入基于标签的策略。
过程
只能导入JSON格式的策略。
a)覆盖策略选项删除目标存储库的所有策略。
b)分区映射—不选择目的时,导入所有服务。选择目的地址时,只导入与该安全区域关联的服务。 c)服务映射将下载的文件存储库,即源存储库映射到目标存储库。您可以使用红色的x符号从导入中删除服务。向下滚动以查看所有的服务映射。基于导出策略
如何导出所有基于标签的策略。 关于这个任务 只能从“基于标签的策略”页面导出JSON格式的策略。如果您想以Excel或CSV格式导出,请从报表页面下拉菜单中导出策略。过程
•从访问管理器>标签基于策略页面: a)点击导出按钮或图标:•从报告页面:
a)过滤组件标记并点击搜索。 b)(可选)在导出文件之前应用过滤器。 c)打开导出下拉菜单:转载地址:http://mpqdz.baihongyu.com/