给子账号配置开发环境基本使用权限
场景描述
本文介绍开发环境场景下子账号所需的基本使用权限,您可参考权限清单新增对应业务场景的权限。示例场景为授权子账号使用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服务的并行文件系统下,调试完成过后可保存镜像。
- 使用主用户账号登录管理控制台,单击右上角用户名,在下拉框中选择“统一身份认证”,进入统一身份认证(IAM)服务。
- 添加开发环境使用权限和依赖服务SWR权限。在统一身份认证服务页面的左侧导航选择“创建自定义策略”,设置策略。
,单击右上角的
- 添加开发环境使用权限。
- “策略名称”:设置自定义策略名称,例如: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" ] } ] }
- 添加开发环境使用权限。
- 添加依赖服务OBS权限。
在统一身份认证服务页面的左侧导航选择“创建自定义策略”,设置策略。
,单击右上角的- “策略名称”:设置自定义策略名称,例如:notebook-obs。
- “策略配置方式”:JSON视图。
- “策略内容”:填入如下内容。
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "obs:bucket:ListAllMyBuckets", "obs:bucket:ListBucket" ] } ] }
创建自定义策略时,建议将项目级云服务和全局级云服务拆分为两条策略,便于授权时设置最小授权范围。此处的“trainJob”为项目级云服务、“trainJobobs”为全局级云服务。了解更多
- 创建用户组并加入用户,步骤请参考Step1 创建用户组并加入用户。
- 给用户组授权策略。
在IAM服务的用户组列表页面,单击“授权”,进入到授权页面,为子账号配置权限。勾选“notebook”、“notebook-obs”、“SWR Admin”策略。单击“下一步”和“确定”。图1 给用户组授权策略
- 添加ModelArts委托授权。
- 新建委托授权策略。
在统一身份认证服务页面的左侧导航选择 ,单击右上角的“创建自定义策略”,设置策略。
- “策略名称”:设置自定义策略名称,例如: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" ] } ] }
- 创建委托。
在统一身份认证服务页面的左侧导航选择 ,单击右上角的“创建委托”,设置策略。填写委托信息并单击“下一步”。
- 委托名称:可自定义委托名称,例如:ma_agency_notebook。
- 委托类型:选择“云服务”。
- 云服务:选择“ModelArts”。
- 持续时间:选择“永久”。
勾选新建的委托策略,然后单击“下一步”。设置最小授权范围选择“所有资源”,然后单击“确定”。
- 为子账号配置ModelArts委托权限。
在ModelArts服务页面的左侧导航选择 ,单击“添加授权”。授权对象选择子账号,在已有委托中选择新建的委托,然后单击“创建”。
- 新建委托授权策略。
- 验证权限是否配置成功。
登录子账号,如果用户能在控制台上成功创建Notebook实例、挂载OBS文件系统(OBS桶需由管理员创建)、保存镜像,则表示权限配置成功。