
# 添加OBS文件的Ranger访问权限策略
#### 操作场景
在MRS存算分离架构中，OBS（对象存储服务）作为数据湖存储组件，承载着HDFS、Hive等多个组件的数据。默认情况下，OBS通过IAM策略进行粗粒度的权限控制，无法满足不同用户对同一OBS目录的差异化访问需求------例如需要限制特定用户只能读取某些OBS目录、禁止写入敏感数据目录等。
Ranger管理员可以通过Ranger为OBS用户配置OBS目录或文件的读、写权限，实现OBS数据资源的细粒度权限管控。本文适用于Ranger管理员和需要配置OBS数据访问权限的运维人员。
本文包含以下内容：
- **配置OBS文件访问权限策略**：控制用户对OBS目录或文件的读写权限。
- **配置OBS资源访问标签数量**：调整Ranger访问OBS资源的标签数量上限。
 
在MRS集群中，Ranger通过Guardian服务实现对OBS访问的权限管控。Guardian作为OBS的认证代理和鉴权网关，当集群组件（如HDFS、Hive、Spark等）访问OBS数据时，Guardian Plugin会拦截访问请求并向RangerAdmin发起鉴权，RangerAdmin根据已配置的OBS权限策略判断是否允许访问。
#### 约束与限制
- 本章节仅适用于MRS 3.3.0-LTS及之后版本。
- OBS权限策略仅支持用户组授权，配置"Select Role"和"Select User"将不会生效，请选择用户组。
- 配置的OBS路径文件夹必须是已存在的，否则会授权失败。
- OBS默认开启权限的递归（且不支持修改），无任何权限的子目录会默认继承父目录所有的权限。
- Resource Path不支持使用通配符"\*"。
 
#### 前提条件
- 集群中已安装Ranger服务且服务运行正常。
- 集群中已创建需要配置权限的用户、用户组或Role，如果是新创建的用户，需等待用户自动同步至Ranger后才可以配置相关权限策略。

- 集群中已安装Guardian服务且服务运行正常。
 
#### 配置OBS文件访问权限策略
1. 使用Ranger管理员用户登录Ranger WebUI页面，具体操作可参考[登录Ranger WebUI界面](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1850.html)。
2. 在首页中单击"EXTERNAL AUTHORIZATION"区域的组件插件名称"OBS"。
3. 单击"Add New Policy"，添加OBS权限控制策略。
4. 根据业务需求配置相关参数。 
   表1OBS权限参数 
   | 参数名称             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   |:---|:---|
   | Policy Name      | 策略名称，可自定义，不能与本服务内其他策略名称重复。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | Policy Label     | 为当前策略指定一个标签，可以根据这些标签搜索报告和筛选策略。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | Resource Path    | 资源路径，配置当前策略适用的OBS路径文件夹，可填写多个值，不支持使用通配符"\*"。 **配置的OBS路径文件夹必须是已存在的，否则会授权失败。** OBS默认开启权限的递归（且不支持修改），无任何权限的子目录会默认继承父目录所有的权限。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | Description      | 策略描述信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | Audit Logging    | 该策略命中时是否生成审计日志。 - Yes：当用户触发该策略的权限校验时，无论校验结果是允许（Allow）还是拒绝（Deny），会生成一条审计日志。  - No：当用户触发该策略的权限校验时，不会生成任何审计日志。                                                                                                                                                                                                                                                                                                                                                                          |
   | Allow Conditions | 策略允许条件，配置本策略内允许的权限。 "Select Group"列选择已创建好的需要授予权限的用户组（配置"Select Role"和"Select User"将不会生效）。 单击"Add Permissions"，添加对应权限。 - Read：读权限  - Write：写权限  - Select/Deselect All：全选/取消全选   如需添加多条权限控制规则，可单击![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001726983893.png)按钮添加。如需删除权限控制规则，可单击![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001679144538.png)按钮删除。 |
      
   例如，为用户组"hs_group1"（该用户组仅由数字0\~9、字母a\~Z、下划线或#组成，且最大长度为52个字符，否则将导致策略添加失败）添加"obs://hs-test/user/hive/warehouse/o4"表的读写权限，配置如下：
   图1OBS目录权限配置示例   
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001678984786.png "点击放大")
   
   
5. 单击"Add"，在策略列表可查看策略的基本信息。等待策略生效后，验证相关权限是否正常。 
   如果不再使用策略，可单击![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001727143793.png)按钮删除策略。
   **验证方法：**
   以被授权用户组中的用户登录客户端，执行以下命令验证OBS路径的读写权限是否生效：
   1. 执行以下命令验证读权限，能正常列出目录内容说明读权限已生效。
      ```
      hdfs dfs -ls obs://OBS路径/
      ```
      
   
   2. 执行以下命令验证写权限，能成功创建文件说明写权限已生效。
      ```
      hdfs dfs -touchz obs://OBS路径/testfile
      ```
      
   
   
   
   
 
#### 配置Ranger访问OBS资源的标签数量
安装MRS 3.3.0-LTS.1.2补丁后，可以通过配置Ranger的参数"obs.max.access.label"设置访问OBS资源的标签数量。
当用户的并发OBS访问请求较多（如同时执行多个Spark作业读取OBS数据），默认的512个标签可能不足，导致访问请求被阻塞。此时需要调大标签数量上限。
1. 登录FusionInsight Manager系统。 
   详细操作请参考[访问集群Manager](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2124.html)。
   
   
2. 选择"集群 \> 服务 \> Ranger \> 配置 \> 全部配置 \> RangerAdmin（角色） \> 自定义"。
3. 在参数"ranger.admin.config.expandor"中添加如下自定义配置"obs.max.access.label"值为"1024"。 
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   配置"obs.max.access.label"值默认为"512"，用户可以根据实际业务需求配置。标签数量设置过大会增加RangerAdmin的内存消耗，建议根据实际并发量合理设置，不宜过大。
   
   
4. 单击"保存"，保存配置。
5. 在Ranger服务概览页面，选择"更多 \> 重启服务/滚动重启服务"，验证管理员密码后，等待服务重启成功。 
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/warning_3.0-zh-cn.png)
   组件重启期间将无法对外提供服务，可能会影响集群的上层业务正常运行，请在业务空闲期或确认操作无影响后再执行本操作。
   
   
 
#### 相关文档
- 配置Ranger策略时，不同条件的优先级可参考[Ranger权限策略条件判断优先级](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1851.html#mrs_01_1851__section2381255446)。
- 如需查看Ranger中的相关权限设置对象信息，例如用户、用户组、Role，可参考[查看Ranger用户权限同步信息](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1854.html)。
- MRS集群中新用户可在Manager中进行创建，可参考[创建MRS集群用户](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0345.html)。
 
#### 常见问题
**Q：OBS权限策略配置后多久生效？**
A：Ranger策略修改后，Guardian Plugin默认每30秒自动拉取一次最新策略，因此策略配置后大约30秒内生效，无需重启服务。如需立即生效，可重启Guardian服务。
**Q：配置OBS权限策略后用户仍无法访问OBS路径怎么办？**
A：请按以下步骤排查：
1. 确认配置的Resource Path对应的OBS目录已存在；
2. 确认用户所在的用户组已在"Select Group"中正确选择；
3. 确认用户组名称符合命名规则；
4. 确认Guardian服务运行正常；
5. 查看RangerAdmin审计日志确认鉴权结果。
**Q：OBS权限策略中Resource Path能否使用通配符？**
A：不支持。Resource Path必须填写具体的OBS目录路径，不能使用「\*」通配符。如需对多个目录授权，可在Resource Path中填写多个值，或通过子目录继承父目录权限的方式实现批量授权。
**Q：默认标签数量512不够用，设置多大合适？**
A：标签数量应根据集群并发OBS访问量设置。一般建议按照「集群最大并发作业数 × 每个作业平均访问的OBS路径数」估算，并预留20%余量。
例如50个并发作业每个访问10个OBS路径，则建议设置为600（50×10×1.2）。设置过大会增加RangerAdmin内存消耗，建议逐步调整并观察内存使用情况。
