配置MRS多用户访问OBS细粒度权限 在开启OBS权限控制功能时各组件访问OBS的说明 以root用户登录集群任意一个节点,密码为用户创建集群时设置的root密码。 1. 配置环境变量(MRS 3.x及之后版本客户端默认安装路径为“/opt/Bigdata/client”,MRS 3.x之前版本为“/opt/client”。具体以实际为准。)。 source /opt/Bigdata/client/bigdataenv 2. 如果当前集群已启用Kerberos认证,执行以下命令认证当前用户。如果当前集群未启用Kerberos认证,则无需执行此命令。 kinit MRS集群用户 例如, kinit admin 3. 如果当前集群未启用Kerberos认证,执行如下命令登录执行操作的用户,该用户需要属于supergroup组,创建用户可参考创建用户,将XXXX替换成用户名。 mkdir/home/XXXX chownXXXX /home/XXXX su XXXX 4. 访问OBS。无需再配置AK、SK和endpoint。OBS路径格式:obs://buckname/XXX。 例如:hadoop fs ls"obs://obsexample/job/hadoopmapreduceexamples3.1.2.jar" 说明 如需使用hadoop fs删除OBS上文件,请使用hadoop fs rm skipTrash来删除文件。 sparksql、sparkbeeline在创建表时,若不涉及数据导入,则不会访问OBS。即若在一个无权限的OBS目录下创建表,CREATE TABLE仍会成功,但插入数据会报403 AccessDeniedException。 在IAM服务创建策略及委托 在IAM服务创建策略及委托 1. 登录IAM服务控制台。 2. 单击“权限 > 创建自定义策略”。 3. 参考下表填写参数。 策略参数 参数 说明 策略名称 只能包含如下字符:大小写字母、中文、数字、空格和特殊字符(.,)。 作用范围 选择全局级服务,OBS为全局服务。 配置策略方式 选择可视化视图。 策略内容 1. “允许”选择“允许”。 2. “云服务”选择“对象存储服务(OBS)”。 3. “操作”勾选所有“写”、“列表”和“只读”权限。 4. “特定资源”选择: a. “object”选择“通过资源路径指定”,并单击“添加资源路径”分别输入路径obsbucketname /tmp/和 obsbucketname /tmp/ 。此处以 /tmp目录为例,如需其他目录权限请参考该步骤添加对应目录及该目录下所有对象的资源路径。 b. “bucket”选择“通过资源路径指定”,并单击“添加资源路径”输入路径 obsbucketname。 5. (可选)请求条件,暂不添加。 策略描述 可选,对策略的描述。 各个组件的写数据操作若通过rename的方式实现时,写数据时要配置删除对象的权限。 4. 单击“确定”保存策略。 5. 在IAM服务创建委托。 6. 登录IAM服务控制台。 7. 单击“委托 > 创建委托”。 8. 参考下表填写参数。 委托参数 参数 说明 委托名称 只能包含如下字符:大小写字母、中文、数字、空格和特殊字符(.,)。 委托类型 选择普通帐号。 委托的帐号 填写本用户的云帐号,即使用手机号开通的帐号,不能是联邦用户或者IAM用户。 持续时间 请根据需要选择。 描述 可选,对委托的描述。 权限选择 1. 在“项目”列对应的“对象存储服务”行,单击“操作”列的“修改”。 2. 勾选步骤1中创建的策略,使之出现在“已选择策略中”。 3. 单击“确定”。 4. 单击“确定”保存委托。 说明 当使用该委托访问过OBS后,再修改该委托及其绑定的策略时,最长需要等待15分钟,修改的内容才能生效。