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

给子账号配置训练作业基本使用权限

场景描述

本文介绍训练作业场景下子账号所需的基本使用权限,您可参考权限清单新增对应业务场景的权限。示例场景为授权子账号使用自定义镜像训练,数据和代码存放在OBS桶中。以下内容需使用管理账号进行配置。

权限清单

  • 权限
    表1 训练作业所需权限

    业务场景

    依赖的服务

    依赖策略项

    支持的功能

    配置建议

    训练管理

    ModelArts

    modelarts:trainJob:*

    modelarts:trainJobLog:*

    modelarts:aiAlgorithm:*

    modelarts:image:list

    modelarts:network:get

    modelarts:workspace:get

    创建训练作业和查看训练日志。

    建议配置。

    仅在严格授权模式开启后,需要显式配置左侧权限。

    modelarts:workspace:getQuotas

    查询工作空间配额。如果开通了工作空间功能,则需要配置此权限。

    按需配置。

    modelarts:tag:list

    在训练作业中使用标签管理服务TMS。

    按需配置。

    IAM

    iam:credentials:listCredentials

    iam:agencies:listAgencies

    使用配置的委托授权项。

    按需配置。

    SFS Turbo

    sfsturbo:shares:getShare

    sfsturbo:shares:getAllShares

    在训练作业中使用SFS Turbo。

    按需配置。

    SWR

    swr:repository:listTags

    swr:repository:getRepository

    swr:repository:listRepositories

    若为企业SWR用户,还需要增加以下权限:

    swr:repository:getTag

    swr:instance:createTempCredential

    swr:repository:listTags

    swr:repository:getRepository

    swr:repository:listRepositories

    使用自定义镜像运行训练作业。

    按需配置。

    SMN

    smn:topic:publish

    smn:topic:list

    通过SMN通知训练作业状态变化事件。

    按需配置。

    OBS

    obs:bucket:ListAllMybuckets

    obs:bucket:HeadBucket

    obs:bucket:ListBucket

    obs:bucket:GetBucketLocation

    obs:object:GetObject

    obs:object:GetObjectVersion

    obs:object:PutObject

    obs:object:DeleteObject

    obs:object:DeleteObjectVersion

    obs:object:ListMultipartUploadParts

    obs:object:AbortMultipartUpload

    obs:object:GetObjectAcl

    obs:object:GetObjectVersionAcl

    obs:bucket:PutBucketAcl

    obs:object:PutObjectAcl

    obs:object:ModifyObjectMetaData

    使用OBS桶中的数据集运行训练作业。

    按需配置。

  • 委托
    表2 训练作业所需委托

    业务场景

    依赖的服务

    委托授权项

    说明

    配置建议

    训练作业

    OBS

    obs:bucket:ListBucket

    obs:object:GetObject

    obs:object:PutObject

    训练作业启动前下载数据、模型、代码。

    训练作业运行中上传日志、模型。

    建议配置。

操作步骤

本案例场景为单机单卡场景下创建训练作业,数据和代码存储在OBS服务的并行文件系统下,创建自定义镜像训练作业。

  1. 使用主用户账号登录管理控制台,单击右上角用户名,在下拉框中选择“统一身份认证”,进入统一身份认证(IAM)服务。
  2. 添加训练作业使用权限。在统一身份认证服务页面的左侧导航选择权限管理 > 权限,单击右上角的“创建自定义策略”,设置策略。

    • “策略名称”:设置自定义策略名称,例如:trainJob。
    • “策略配置方式”:选择JSON视图。
    • “策略内容”:填入如下内容。
      {
          "Version": "1.1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "modelarts:trainJob:*",
                      "modelarts:trainJobLog:*",
                      "modelarts:aiAlgorithm:*",
                      "modelarts:image:list",
                      "modelarts:pool:list",
                      "swr:repository:listTags",
                      "swr:repository:getRepository",
                      "swr:repository:listRepositories"
                  ]
              }
          ]
      }

  3. 添加依赖服务OBS权限。

    在统一身份认证服务页面的左侧导航选择权限管理 > 权限,单击右上角的“创建自定义策略”,设置策略。

    • “策略名称”:设置自定义策略名称,例如:trainJob-obs。
    • “策略配置方式”:JSON视图。
    • “策略内容”:填入如下内容。
      {
          "Version": "1.1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "obs:object:GetObject",
                      "obs:object:DeleteObjectVersion",
                      "obs:bucket:GetBucketLocation",
                      "obs:object:AbortMultipartUpload",
                      "obs:object:PutObjectAcl",
                      "obs:object:DeleteObject",
                      "obs:bucket:HeadBucket",
                      "obs:bucket:PutBucketAcl",
                      "obs:object:PutObject",
                      "obs:object:GetObjectVersionAcl",
                      "obs:bucket:ListAllMyBuckets",
                      "obs:object:ListMultipartUploadParts",
                      "obs:object:ModifyObjectMetaData",
                      "obs:bucket:ListBucket",
                      "obs:object:GetObjectVersion",
                      "obs:object:GetObjectAcl"
                  ]
              }
          ]
      }

      创建自定义策略时,建议将项目级云服务和全局级云服务拆分为两条策略,便于授权时设置最小授权范围。此处的“trainJob”为项目级云服务、“trainJobobs”为全局级云服务。了解更多

  4. 创建用户组并加入用户,步骤请参考Step1 创建用户组并加入用户
  5. 给用户组授权策略。

    在IAM服务的用户组列表页面,单击“授权”,进入到授权页面,为子账号配置权限。勾选“trainJob”和“trainJob-obs”策略。单击“下一步”和“确定”。

  6. 为子账号添加镜像组织管理授权。

    登录容器镜像服务控制台。在左侧菜单栏选择“组织管理”,单击组织名称。在“用户”页签下单击“添加授权”,在弹出的窗口中为子账号添加“编辑”权限,然后单击“确定”。

  7. 添加ModelArts委托授权。

    1. 新建委托授权策略。

      在统一身份认证服务页面的左侧导航选择权限管理 > 权限,单击右上角的“创建自定义策略”,设置策略。

      • “策略名称”:设置自定义策略名称,例如:ma_agency_obs。
      • “策略配置方式”:选择可视化视图或者JSON视图均可。
      • “策略内容”:填入如下内容。
        {
            "Version": "1.1",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Action": [
                        "obs:object:GetObject",
                        "obs:object:PutObject",
                        "obs:bucket:ListBucket"
                    ]
                }
            ]
        }
    2. 创建委托。

      在统一身份认证服务页面的左侧导航选择权限管理 > 委托,单击右上角的“创建委托”,设置策略。填写委托信息并单击“下一步”

      • 委托名称:可自定义委托名称,例如:ma_agency_trainJob。
      • 委托类型:选择“云服务”
      • 云服务:选择“ModelArts”
      • 持续时间:选择“永久”

      勾选新建的委托策略,然后单击“下一步”。设置最小授权范围选择“所有资源”,然后单击“确定”。

    3. 为子账号配置ModelArts委托权限。

      在ModelArts服务页面的左侧导航选择权限管理 ,单击“添加授权”。授权对象选择子账号,在已有委托中选择新建的委托,然后单击“创建”。

  8. 验证权限是否配置成功。

    登录子用户账号,如果用户能在控制台上成功创建使用自定义镜像创建训练作业(如单机单卡场景下创建训练作业),则表示权限配置成功。

相关文档