更新时间:2024-09-23 GMT+08:00
分享

配置Guardian服务对接OBS

操作场景

该章节指导用户开启Guardian组件存算分离操作。开启后Guardian可以在存算分离场景下为HDFS、Hive、Spark、Loader、HetuEngine等服务提供访问OBS的临时认证凭据。

配置Guardian服务对接OBS主要操作如下:

  1. 创建OBS并行文件系统
  2. 创建普通账号委托
  3. 创建云服务委托并绑定集群
  4. 为Guardian组件配置访问OBS权限
  5. 开启Hive表的级联授权功能
  6. 配置回收站清理策略

前提条件

  • 集群已安装Guardian、Ranger、Hadoop等组件。
  • 如果安装Hadoop、HetuEngine、Hive、Spark等组件后,再安装Guardian,则需要重新下载客户端,并对管理面作业提交的默认客户端进行刷新。
  • 如果当前集群未启用Kerberos认证,访问OBS的用户,需要属于supergroup组。可登录FusionInsight Manager界面,选择“系统 > 权限 > 用户”,在用户列表中单击用户所在行的“修改”,在“用户组”中为该用户绑定“supergroup”组即可。
  • 需排查OBS是否开启AccessLabel功能,若未开启,需手动开启,详细操作请联系OBS运维人员。

对系统的影响

  • 配置完该章节操作后,原始的客户端需要重新刷新配置,或重新安装客户端。
  • 如果需要在管理控制台执行作业提交操作,需要使用omm用户登录主OMS节点并执行sh /opt/executor/bin/refresh-client-config.sh命令刷新集群内置客户端。

创建OBS并行文件系统

  1. 登录OBS控制台。
  2. 选择“并行文件系统 > 创建并行文件系统”。
  3. 填写文件系统名称,例如“guardian-obs”。

    企业项目需要与MRS集群保持一致,其他参数请根据需要填写。

  4. 单击“立即创建”。

创建普通账号委托

  1. 登录华为云管理控制台。
  2. 在服务列表中选择“管理与监管 > 统一身份认证服务 IAM”。
  3. 选择“委托 > 创建委托”。
  4. 在创建委托页面配置以下参数,并单击“完成”:
    • 委托名称:设置委托名称,例如:agency-MRS-to-OBS。
    • 委托类型:选择“普通账号”。
    • 委托的账号:填写本用户的云账号,即使用手机号开通的账号,不能是联邦用户或者IAM用户。
    • 持续时间:选择“永久”。
  5. 在授权的确认弹窗中,单击“立即授权”,在弹出的授权页面,单击“新建策略”。
    在新建策略界面配置以下参数并单击“下一步”:
    • 策略名称:自定义策略名称,例如“guardian-policy”。
    • 策略配置方式:选择“JSON视图”。
    • 策略内容配置如下:
      {
          "Version": "1.1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
      			"obs:bucket:GetBucketLocation",
      			"obs:bucket:ListBucketMultipartUploads",
      			"obs:object:GetObject",
      			"obs:object:ModifyObjectMetaData",
      			"obs:object:DeleteObject",
      			"obs:object:ListMultipartUploadParts",
      			"obs:bucket:HeadBucket",
      			"obs:object:AbortMultipartUpload",
      			"obs:bucket:ListBucket",
      			"obs:object:PutObject",
      			"obs:object:GetAccessLabel",
      			"obs:object:DeleteAccessLabel",
      			"obs:object:PutAccessLabel",
      		        "obs:bucket:ListAllMyBuckets"
                  ],
                  "Resource": [
                      "OBS:*:*:bucket:guardian-obs",
                      "OBS:*:*:object:*"
                  ]
              }
          ]
      }

      上述的“Resource”配置表示可访问配置的并行文件系统系统的所有资源,guardian-obs创建OBS并行文件系统创建的OBS并行文件系统名称。

  6. 单击“下一步”,在“选择策略”页面勾选5创建的策略名称。
  7. 单击“下一步”,在“选择授权范围”中勾选“全局服务资源”,单击“确定”。
  8. 创建完成后,将鼠标放在新建的委托上,记录下委托ID,如下图所示。
    图1 查看委托ID

创建云服务委托并绑定集群

  1. 登录华为云管理控制台。
  2. 在服务列表中选择“管理与监管 > 统一身份认证服务 IAM”。
  3. 选择“委托 > 创建委托”。
  4. 设置“委托名称”。例如:mrs_ecs_obs。
  5. “委托类型”选择“云服务”,在“云服务”中选择“弹性云服务器ECS 裸金属服务器 BMS”,授权ECS或BMS调用OBS服务。
    图2 创建委托
  6. “持续时间”选择“永久”并单击“完成”。
  7. 在授权的确认弹窗中,单击“立即授权”,在弹出的授权页面,单击“新建策略”。
    在新建策略界面配置以下参数并单击“下一步”:
    • 策略名称:自定义策略名称,例如“guardian-assume-policy”。
    • 策略配置方式:选择“JSON视图”。
    • 策略内容配置如下(其中“{委托id}”为8记录的ID):
      {
          "Version": "1.1",
          "Statement": [
              {
                  "Action": [
                      "iam:agencies:assume"
                  ],
                  "Resource": {
                      "uri": [
                          "/iam/agencies/{委托id}"
                      ]
                  },
                  "Effect": "Allow"
              }
          ]
      }
  8. 单击“下一步”,在“选择策略”页面勾选7创建的策略名称。
  9. 单击“下一步”,在“选择权限范围方案”中选择“全局服务资源”,单击“确定”。
  10. 在弹出的提示框中单击“知道了”,开始授权。界面提示“授权成功。”,单击“完成”,委托成功创建。
  11. 登录MRS控制台,在导航栏选择“现有集群”。
  12. 单击集群名称,进入集群详情页面。
  13. 在集群详情页的“概览”页签,单击“IAM用户同步”右侧的“同步”进行IAM用户同步。
  14. 在集群详情页的“概览”页签,单击委托右侧的“管理委托”选择创建的委托名称,例如“mrs_ecs_obs”,单击“确定”进行绑定。
    图3 绑定委托

为Guardian组件配置访问OBS权限

  1. 登录FusionInsight Manager,选择“集群 > 服务 > Guardian > 配置 > 全部配置”搜索并修改以下参数。

    参数

    含义

    取值

    fs.obs.guardian.accesslabel.enabled

    是否开启使用Guardian对接OBS的access label。

    true

    fs.obs.guardian.enabled

    是否开启使用Guardian。

    true

    fs.obs.delegation.token.providers

    delegation token生成器,当fs.obs.guardian.enabled=true时,需要同时配置com.huawei.mrs.dt.MRSDelegationTokenProvider和com.huawei.mrs.dt.GuardianDTProvider。

    com.huawei.mrs.dt.MRSDelegationTokenProvider和com.huawei.mrs.dt.GuardianDTProvider

    token.server.access.label.agency.name

    指定IAM委托的名字,即创建普通账号委托创建的IAM委托名称。

    agency-MRS-to-OBS

  2. 保存服务配置,然后在FusionInsight Manager主页中选择“更多 > 重启配置过期的实例”,根据界面提示重启所有配置过期的服务实例。
  3. 如果需要通过MRS管理控制台提交作业,使用omm用户登录主OMS节点,执行以下命令刷新内置客户端配置:

    sh /opt/executor/bin/refresh-client-config.sh

开启Hive表的级联授权功能

  1. 在FusionInsight Manager界面,选择“集群 > 服务 > Ranger > 配置”。
  2. 在搜索框中搜索参数“ranger.ext.authorization.cascade.enable”,修改该参数值为“true”。
  3. 单击“保存”,保存配置。
  4. 配置保存成功后,单击“实例”,勾选所有RangerAdmin实例,选择“更多 > 重启实例”,在弹出对话框输入密码,单击“确定”,重启所有RangerAdmin实例。

仅开启Kerberos认证的集群支持OBS级联授权。

配置回收站清理策略

  1. 登录OBS控制台。
  2. 选择“并行文件系统”,单击创建OBS并行文件系统的文件系统名称。
  3. 选择“基础配置 > 生命周期规则”,单击“创建”,创建“/user/.Trash”目录的生命周期规则。

    配置集群使用存算分离方案后,必须参考本章节内容配置相关目录的生命周期策略,否则会有存储空间被占满以及增加存储资源费用的风险,关于OBS更多计费说明请参考OBS计费概述

    表1 生命周期规则创建参数

    参数名称

    描述

    示例

    状态

    是否启用本条生命周期规则。

    启用

    规则名称

    规则名称,可自定义,用于识别不同的生命周期配置。

    rule-test

    前缀

    生命周期规则适用的对象前缀,MRS集群组件数据回收站目录为“/user/.Trash”。

    user/.Trash

    转换为低频访问存储天数

    指定在对象最后一次更新后多少天,受规则影响的对象将转换为低频访问存储。至少设置为30天。

    30天

    转换为归档存储天数

    指定在对象最后一次更新后多少天,受规则影响的对象将转换为归档存储。若同时设置转换为低频访问存储和转换为归档存储,则转换为归档存储的时间要比转换为低频访问存储的时间至少长30天。若单独设置转换为归档存储,则没有时间限制。

    31天

    文件过期删除天数

    指定在对象最后一次更新后多少天,受规则影响的对象将过期并自动被OBS删除。过期时间必须大于前两个转换时间的最大值。

    32天

    碎片过期删除天数

    受规则影响的碎片将过期并自动被OBS删除。

    30天

  4. 单击“确定”,完成生命周期规则配置。

    若您需修改生命周期的内容,请单击该生命周期规则所在行右侧的“编辑”进行编辑;单击“禁用”,可以禁用该生命周期规则。单击“启用”,可启用该生命周期规则。

相关文档