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

给子账号配置开发环境基本使用权限

场景描述

本文介绍开发环境场景下子账号所需的基本使用权限,您可参考权限清单新增对应业务场景的权限。示例场景为授权子账号使用Notebook进行调试,数据和代码存放在并行文件系统。以下内容需使用管理账号进行配置。

权限清单

  • 权限
    表1 开发环境所需权限

    业务场景

    依赖的服务

    依赖策略项

    支持的功能

    配置建议

    开发环境实例生命周期管理

    ModelArts

    modelarts:notebook:create

    modelarts:notebook:list

    modelarts:notebook:get

    modelarts:notebook:update

    modelarts:notebook:delete

    modelarts:notebook:start

    modelarts:notebook:stop

    modelarts:notebook:updateStopPolicy

    modelarts:image:delete

    modelarts:image:list

    modelarts:image:create

    modelarts:image:get

    modelarts:pool:list

    modelarts:tag:list

    modelarts:network:get

    aom:metric:get

    aom:metric:list

    aom:alarm:list

    实例的启动、停止、创建、删除、更新等依赖的权限。

    建议配置。

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

    动态挂载存储配置

    ModelArts

    modelarts:notebook:listMountedStorages

    modelarts:notebook:mountStorage

    modelarts:notebook:getMountedStorage

    modelarts:notebook:umountStorage

    动态挂载存储配置。

    按需配置。

    OBS

    obs:bucket:ListAllMyBuckets

    obs:bucket:ListBucket

    镜像管理

    ModelArts

    modelarts:image:register

    modelarts:image:listGroup

    在镜像管理中注册和查看镜像。

    按需配置。

    保存镜像

    SWR

    SWR Admin

    SWR Admin为SWR最大权限,用于:

    • 开发环境运行的实例,保存成镜像。
    • 使用自定义镜像创建开发环境Notebook实例。

    按需配置。

    使用SSH功能

    ECS

    ecs:serverKeypairs:list

    ecs:serverKeypairs:get

    ecs:serverKeypairs:delete

    ecs:serverKeypairs:create

    为开发环境Notebook实例配置登录密钥。

    按需配置。

    DEW

    kps:domainKeypairs:get

    kps:domainKeypairs:list

    挂载SFS Turbo盘

    SFS Turbo

    SFS Turbo FullAccess

    子账号对SFS目录的读写操作权限。专属池Notebook实例挂载SFS(公共池不支持),且挂载的SFS不是当前子账号创建的。

    按需配置。

    查看所有实例

    ModelArts

    modelarts:notebook:listAllNotebooks

    ModelArts开发环境界面上,查询所有用户的实例列表,适用于给开发环境的实例管理员配置该权限。

    按需配置。

    IAM

    iam:users:listUsers

    VSCode插件(本地)/ PyCharm Toolkit(本地)

    ModelArts

    modelarts:notebook:listAllNotebooks

    modelarts:trainJob:create

    modelarts:trainJob:list

    modelarts:trainJob:update

    modelarts:trainJobVersion:delete

    modelarts:trainJob:get

    modelarts:trainJob:logExport

    modelarts:workspace:getQuotas(如果开通了工作空间功能,则需要配置此权限。)

    从本地VSCode连接云上的Notebook实例、提交训练作业等。

    按需配置。

    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

    IAM

    iam:projects:listProjects

    从本地PyCharm查询IAM项目列表,完成连接配置。

    VPC接入

    VPC

    VPC ReadOnlyAccess

    实例能够挂载在用户的VPC下,实现多网络平面接入。

    按需配置。

    创建自定义策略时,建议将项目级云服务和全局级云服务拆分为两条策略,便于授权时设置最小授权范围。

  • 委托
    表2 开发环境所需委托

    业务场景

    依赖的服务

    委托授权项

    说明

    配置建议

    JupyterLab

    OBS

    obs:object:DeleteObject

    obs:object:GetObject

    obs:object:GetObjectVersion

    obs:bucket:CreateBucket

    obs:bucket:ListBucket

    obs:bucket:ListAllMyBuckets

    obs:object:PutObject

    obs:bucket:GetBucketAcl

    obs:bucket:PutBucketAcl

    obs:bucket:PutBucketCORS

    通过ModelArts的Notebook,在JupyterLab中使用OBS上传下载数据。

    建议配置。

    开发环境监控功能

    AOM

    aom:alarm:put

    调用AOM的接口,获取Notebook相关的监控数据和事件,展示在ModelArts的Notebook中。

    建议配置。

    VPC接入

    VPC

    vpc:ports:create

    vpc:ports:get

    vpc:ports:delete

    vpc:subnet:get

    实例能够挂载在用户的VPC下,实现多网络平面接入。

    按需配置。

操作步骤

本案例场景为单机单卡场景下使用Notebook进行代码调试,数据和代码存储在OBS服务的并行文件系统下,调试完成过后可保存镜像。

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

    1. 添加开发环境使用权限。
      • “策略名称”:设置自定义策略名称,例如:notebook。
      • “策略配置方式”:选择JSON视图。
      • “策略内容”:填入如下内容。
        {
            "Version": "1.1",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Action": [
                        "modelarts:notebook:create",
                        "modelarts:notebook:list",
                        "modelarts:notebook:get",
                        "modelarts:notebook:update",
                        "modelarts:notebook:delete",
                        "modelarts:notebook:start",
                        "modelarts:notebook:stop",
                        "modelarts:notebook:updateStopPolicy",
                        "modelarts:notebook:listMountedStorages",
                        "modelarts:notebook:mountStorage",
                        "modelarts:notebook:getMountedStorage",
                        "modelarts:notebook:umountStorage",
                        "modelarts:image:delete",
                        "modelarts:image:list",
                        "modelarts:image:create",
                        "modelarts:image:get",
                        "modelarts:pool:list",
                        "modelarts:tag:list",
                        "modelarts:network:get",
                        "aom:metric:get",
                        "aom:metric:list",
                        "aom:alarm:list"
                    ]
                }
            ]
        }

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

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

    • “策略名称”:设置自定义策略名称,例如:notebook-obs。
    • “策略配置方式”:JSON视图。
    • “策略内容”:填入如下内容。
      {
          "Version": "1.1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "obs:bucket:ListAllMyBuckets",
                      "obs:bucket:ListBucket"
                  ]
              }
          ]
      }

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

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

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

  6. 添加ModelArts委托授权。

    1. 新建委托授权策略。

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

      • “策略名称”:设置自定义策略名称,例如:ma_agency_obs。
      • “策略配置方式”:JSON视图。
      • “策略内容”:填入如下内容。
        {
            "Version": "1.1",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Action": [
                        "obs:object:GetObject",
                        "obs:object:DeleteObject",
                        "obs:bucket:PutBucketAcl",
                        "obs:object:PutObject",
                        "obs:bucket:CreateBucket",
                        "obs:bucket:GetBucketAcl",
                        "obs:bucket:PutBucketCORS",
                        "obs:bucket:ListAllMyBuckets",
                        "obs:bucket:ListBucket",
                        "obs:object:GetObjectVersion"
                    ]
                }
            ]
        }
    2. 创建委托。

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

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

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

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

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

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

    登录子账号,如果用户能在控制台上成功创建Notebook实例挂载OBS文件系统(OBS桶需由管理员创建)、保存镜像,则表示权限配置成功。

相关文档