创建时间限制策略
管理员策略有效期配置策略在指定时间段内生效。您可以为基于资源和基于标签的策略添加有效期。
关于这个任务
时限策略用例示例:
•在收益发布日期之前,限制对敏感财务信息的访问。
•在一段特定的时间内阻止某个用户(例如,一个被调查的用户帐户需要被“搁置”,无法访问Hadoop服务中的资源)。
•在特定的时间内阻止特定的群体(例如,在假期期间不允许临时员工写资源)。
注意:下面的过程展示了如何创建一个有时间限制的基于资源的策略。对于基于标记的资源策略,这个过程本质上是相同的。
过程
- 在管理员服务管理器页面,选择一个服务,然后单击“添加新策略”。
- 完成“创建策略”页面上的字段。
- 单击“添加有效期”。
- 在弹出的“策略有效期”窗口中设置开始时间、结束时间和时区。要添加额外的有效期,请单击+符号。单击“保存”,保存设置的有效期信息。
- 如果您希望该策略在有效期内覆盖所有其他策略,请选择“覆盖”。
6. 点击添加。
管理员的安全区域
Ranger安全区域允许您将服务资源组织到多个安全区域中。
概述
Ranger安全区域概述。
什么是安全区域?
允许您将资源和基于标记的服务和策略组织到单独的安全区域中。您可以为每个安全区域分配一个或多个管理员。然后,安全区域管理员可以为其安全区域创建和更新策略。
例如,让我们考虑两个安全区域:“金融”和“销售”:
•安全区域“金融”包括“金融”Hive数据库中的所有内容。
•安全区域“sales”包括“sales”Hive数据库中的所有内容。
•在每个安全区域中,一组用户和组被指定为管理员。
•用户只能在管理员所在的安全区域内创建策略。
•安全区域中定义的策略只适用于该区域的资源。
•一个zone可以扩展到包含多个服务的资源,如HDFS, Hive, HBase, Kafka等,允许一个zone的管理员跨多个服务为他们的组织所拥有的资源建立策略。
Zone: finance
service: prod_hdfs; path=/finance/*, /taxes/*
service: prod_hive; database=finance
service: prod_kafka; topic=FIN_*
service: test_hadoop; path=/finance/*, /taxes/*
Zone: sales
service: prod_hdfs; path=/sales/*
service: prod_hive; database=sales
service: prod_kafka; topic=SALES_*
•如上所示,资源可以使用通配符(FIN_, SALES_)指定。
•一个资源不能映射到多个安全区域。Ranger不允许创建安全区域来指定与其他区域资源匹配的资源。例如,不允许用HDFS路径/sales/finance/*更新上面的“finance”区域,因为这与“sales”区域指定的HDFS路径/sales/*相冲突。
•可以指定一组用户和组作为安全区域的管理员。管理员可以为安全区域内的资源创建、更新和删除安全策略。
•可以授权一组用户和组查看访问安全区域资源的审计日志。其他用户不允许查看该安全区域资源的访问审计日志。
安全区域管理
•安全区域只能由“Ranger”中“ROLE_SYS_ADMIN”角色的用户创建、更新或删除。
•用户只能在其拥有管理员权限的安全区域内查看、检索和更新策略。
安全区域在授权过程中是如何使用的?
当管理员授权插件为资源访问请求授权时,它首先确定被访问资源所在的分区。如果资源匹配了某个安全区域,则只使用该安全区域的策略对访问进行授权。如果“资源”没有匹配到任何安全区域,则使用缺省(未命名)安全区域的策略对访问进行授权。
安全区域中的基于标签的策略
在给定的服务中,每个安全区域都可以配置为使用标签服务中特定安全区域的基于标签的策略。这样就可以根据资源所在的安全区域使用基于标签的授权策略。
审计日志
管理员产生的审计日志包括访问资源所在安全区域的名称。只有指定为该安全区域的管理员或审计员的用户才能查看审计日志。
增加一个Ranger安全区
如何添加一个新的Ranger安全区。
过程
-
单击顶部菜单中的“安全区域”。
系统显示“安全区域”界面。 -
在“安全区域”界面中,单击“+”图标。
进入“创建Zone”页面。
3.按照如下步骤完成“创建Zone”页面:
表一:zone detail
字段 | 描述 |
---|---|
Zone Name | 安全区域名称。 |
Zone Description | 一个可选的描述。 |
表二:Zone Administration
字段 | 描述 |
---|---|
Admin Users | 安全区域的Admin用户 |
Admin Usergroups | 安全区域的Admin用户组。 |
Auditor Users | 审计员使用安全区域的用户。 |
Auditor Usergroups | 安全区域的Auditor用户组。 |
表三:service
字段 | 描述 |
---|---|
Select Tag Services | 为安全区域选择基于标签的服务。 |
Select Resource Services | 为安全区域选择基于资源的服务。 |
-
选中的服务在Services表中列出。要为每个选择的服务添加资源,请单击资源列中的适用服务。
-
使用Add/Edit Resources弹出窗口为服务指定资源,然后单击Save。
资源列在“服务”表的“资源”列中。 -
单击“创建安全区域”界面下方的“保存”,保存新创建的安全区域。
-
新建的安全区域将显示在“安全区域”界面中。
-
单击“安全区域”列表中的安全区域名称,单击“编辑”,可以编辑安全区域。
-
安全区域创建完成后,可以在“服务管理器”界面的“安全区域”选择框中显示已分配给该安全区域的服务。Zone Name列出现在Audit >访问页面的表中,也出现在访问管理器> Reports表中。
管理管理员用户、组和权限
要查看可以访问管理员门户或其服务的用户和组列表,请在顶部菜单中选择Settings > users / groups。
用户/组页面列表:
•可以登录Ranger portal的内部用户;由Ranger控制台服务经理创建。
•可以访问Ranger门户控制的服务的外部用户;在其他系统(如Active Directory、LDAP或UNIX)上创建,并与这些系统同步。
•Admin用户:只有Admin用户才有权限创建用户和服务、运行报表和执行其他管理任务。管理员用户还可以基于原始策略(基本策略)创建子策略。
•在群组页面,单击Users列中的people图标,可以查看群组的成员
添加一个用户
如何将新用户添加到Ranger中的用户列表。
过程
- 选择“设置>用户/组”。
出现“用户/组”页面。
2. 点击添加新用户
用户详情页面呈现如下。
3. 添加所需的用户详细信息,然后单击Save。
用户立即被添加到列表中
编辑一个用户
如何在Ranger中编辑用户。
过程
- 选择“设置>用户/组”。
用户/组页面打开到Users选项卡。
2. 选择要编辑的用户概要文件。要编辑您自己的配置文件,请选择您的用户
名称,然后单击Profile。
用户详情页面呈现。
注意:
您只能完全编辑内部用户。对于外部用户,只能编辑用户角色。
- 编辑用户详细信息,然后单击Save。
删除一个用户
如何删除Ranger中的用户。
在你开始之前
只有admin角色的用户才能删除用户。
过程
- 选择“设置>用户/组”。
出现“用户/组”页面。
- 选中需要删除的用户前的复选框,单击用户列表菜单栏右侧的删除图标。
3.在确认弹出窗口中单击OK。
添加一个组
如何在Ranger中添加群组。
过程
- 选择设置>用户/组,然后单击组页签。
出现“组”页面。
- 单击“添加新组”。
出现“组创建”页面。
3.输入组的唯一名称和可选描述,然后单击Save。
编辑一组
如何在Ranger中编辑群组。
过程
- 选择设置>用户/组,然后单击组页签
用户组页面呈现如下
- 选择要编辑的组名。
3.出现群组编辑页面。
- 编辑组详细信息,然后单击Save。
删除一组
如何删除Ranger中的组。
在你开始之前
只有具有“admin”角色的用户才能删除组。
过程
- 选择设置>用户/组,然后单击组页签。
出现“组”页面。
- 选择要删除的组的复选框,然后单击删除图标
在群组列表菜单栏的右侧。
3.在确认弹出窗口中单击OK。
添加/编辑权限
如何在Ranger中添加或编辑用户或组。
过程
- 选择Settings >权限。
出现权限页面。
- 点击编辑图标
获取您想要编辑的权限。
出现“编辑权限”页面。
3. 编辑权限设置,然后单击Save。
您可以使用+图标选择多个用户和组。
管理Ranger报告
随着策略数量的增加,可以使用Reports页面帮助更有效地管理策略。本页列出了所有基于资源和基于标签的策略。
查看管理员报告
如何查看管理员策略的报告。
要查看一个或多个策略的报表,请选择“访问管理器>报表”。•单击“允许条件”列中的图标,可以查看每个策略的允许条件详情。您可以使用同样的方法查看其他策略条件(允许排除、拒绝条件等)的详细信息。
•要在报表页面编辑策略,单击策略ID。
搜索管理员报告
搜索一个或多个策略的Ranger报告的参考信息。
您可以搜索基于:
•策略名称—策略名称。
•策略类型-策略类型(访问,屏蔽,或行级别过滤器)。
•Policy Label—策略标签。
•组件—策略资源或标签组件。
•Resource—创建策略时使用的资源路径。
•安全区域名称—安全区域的名称。
•组,用户名—分配给策略的组或用户名。
导出报告
导出一个或多个策略的管理员报告的参考信息。
您可以导出三种文件格式的报告列表:
•CSV文件
•Excel文件
•JSON
向Apache Ranger添加新组件
如何向Apache Ranger添加新组件。
Apache Ranger有三个主要组件:
•管理工具——提供web界面和REST API来管理安全策略。
•组件自定义授权模块——在(Hadoop)组件中提供自定义授权,以执行管理工具中定义的策略。
•UserGroup synchronizer——允许Apache Ranger中的用户/组信息与存储在LDAP或Active Directory中的企业用户/组信息同步。
为了支持使用Apache Ranger的新组件授权,需要将组件详细信息添加到Apache Ranger中,如下所示:
•添加组件详细信息到管理工具。
•为新组件开发自定义授权模块。
向管理工具添加组件详细信息
Apache Ranger管理工具通过web界面(UI)和支持(公共)REST API支持策略管理。为了在UI和服务器中支持新组件,必须修改管理工具。
支持新组件所需的UI更改:
-
在Service Manager页面(控制台主页)中添加一个新的组件模板:
在服务管理器页面(即首页[#!/policymanager])上显示新组件。Apache Ranger需要将table template添加到Service Manager页面,并在相应的JS文件中进行修改。Ranger还需要创建一个新的服务类型enum,以区分创建/更新服务/策略的组件
例如:向PolicyManagerLayout_tmpl.html文件中添加一个表模板,以便在Access Manager页面上查看新组件
js文件中与新组件相关的更改,例如将knox服务收集数据传递给PolicyManagerLayout_tmpl模板。还要在XAEnums.js文件中创建一个新的服务类型enum(例如,ASSET_KNOX)。 -
向服务表单添加新的配置信息:向服务表单[AssetForm. properties]添加新的配置字段。
根据新的组件配置信息。这将导致在相应的服务创建/更新页面中显示新的配置字段。请注意,AssetForm.js是每个组件创建/更新服务的公共文件。
例如:在AssetForm.js和AssetForm_tmpl.js中添加新的字段(配置)信息。 -
添加一个新的策略列表页面:在视图策略列表中为新组件添加一个新的策略列表页面。
例如:创建一个新的KnoxTableLayout.js文件,并根据旧组件[HiveTableLayout. js]添加与js相关的更改。到视图策略列表。还要创建一个模板页面,KnoxTableLayout_tmpl.html。 -
添加一个新的策略创建/更新页面:为新组件添加一个策略创建/更新页面。
还要添加一个策略表单JS文件及其模板,以处理新组件的所有与策略表单相关的操作。例如:为创建/更新Knox策略创建一个新的KnoxPolicyCreate.js文件。创建一个KnoxPolicyForm.js文件来添加knox策略字段信息。还要创建一个相应的KnoxPolicyForm_tmpl.html模板。 -
其他文件更改(如需要):根据我们的新组件(如Router)更改现有的Router.js, Controller.js, XAUtils.js,FormInputList.js, UserPermissionList.js, XAEnums.js, etc.等.
新组件所需的服务器更改:
让我们假设Apache Ranger在其门户中支持三个组件,我们想引入一个新组件Knox:
-
创建新的服务类型
如果Apache Ranger正在引入新的组件,即Knox,那么他们将为Knox添加一种新的服务类型。即serviceType = " Knox "。在创建/更新服务/策略时,Apache Ranger将根据服务类型区分该服务/策略是为哪个组件创建/更新的。 -
在现有的对象中添加新的必需的参数,并填充任何组件(如HDFS, Hive, Hbase)的策略创建/更新对象,Apache Ranger只使用一个通用的对象:’ VXPolicy。Apache Ranger使用的任何组件的服务创建/更新都是一样的
只有一个公共对象:VXService。由于Apache Ranger有三个组件,它将在‘VXPolicy/VXService’中拥有这三个组件的所有必需参数。但是对于Knox来说,Apache Ranger需要一些不同的参数,这在以前的组件中是没有的。因此,它只将必需的参数添加到’ VXPolicy/VXService '对象中。当用户向Knox创建/更新策略发送请求时,他们只会
发送Knox创建/更新VXPolicy对象所需的参数。
在向VXPolixy/VXService中添加新参数后,Apache Ranger将新添加的参数填充到相应的服务中,以便将这些对象映射为实体对象。 -
当Apache Ranger使用JPA-EclipseLink将数据库映射到java时,有必要更新实体对象。
例如,对于Knox policy, Apache Ranger添加了两个新字段(’ topology ‘和’ service ‘)到db表’ x_resource ‘中,它还必须更新表的实体对象(即’ XXResource '),因为它正在改变表的结构。
在更新实体对象之后,Apache Ranger将在相应的服务(即XResourceService)中填充新添加的参数,以便它可以使用更新的实体对象与客户机通信。 -
更改中间件代码业务逻辑
在为新组件添加和填充新需要的参数之后,Apache Ranger将不得不将业务逻辑写入文件“AssetMgr”,它可能还需要在这里做一些微小的更改。例如,如果它希望在创建服务时创建一个默认策略,那么Apache Ranger将根据serviceType为给定的服务创建一个默认策略。其他的一切都可以正常工作,因为它对所有组件都是通用的。
新组件所需的数据库更改:
对于服务和策略管理,Apache Ranger包括以下表:
•x_asset(用于服务)
•x_resource(用于服务)
如上所述,如果Apache Ranger引入了新组件,那么就不需要在数据库中为每个组件创建单独的表。Apache Ranger为所有组件提供通用的表。
如果Apache Ranger有三个组件,并且希望引入第四个组件,那么它将在这两个表中添加必需的字段,并相应地与java对象进行映射。例如,对于Knox, Apache Ranger将把两个字段(’ topology ', ’ service ‘)添加到’ x_resource '中。在此之后,它将能够为我们的新组件以及以前的组件执行策略和服务的CRUD操作。