给子账号配置训练作业基本使用权限
场景描述
本文介绍训练作业场景下子账号所需的基本使用权限,您可参考权限清单新增对应业务场景的权限。示例场景为授权子账号使用自定义镜像训练,数据和代码存放在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服务的并行文件系统下,创建自定义镜像训练作业。
- 使用主用户账号登录管理控制台,单击右上角用户名,在下拉框中选择“统一身份认证”,进入统一身份认证(IAM)服务。
- 添加训练作业使用权限。在统一身份认证服务页面的左侧导航选择“创建自定义策略”,设置策略。
,单击右上角的
- “策略名称”:设置自定义策略名称,例如: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" ] } ] }
- 添加依赖服务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”为全局级云服务。了解更多
- 创建用户组并加入用户,步骤请参考Step1 创建用户组并加入用户。
- 给用户组授权策略。
在IAM服务的用户组列表页面,单击“授权”,进入到授权页面,为子账号配置权限。勾选“trainJob”和“trainJob-obs”策略。单击“下一步”和“确定”。
- 为子账号添加镜像组织管理授权。
登录容器镜像服务控制台。在左侧菜单栏选择“组织管理”,单击组织名称。在“用户”页签下单击“添加授权”,在弹出的窗口中为子账号添加“编辑”权限,然后单击“确定”。
- 添加ModelArts委托授权。
- 新建委托授权策略。
在统一身份认证服务页面的左侧导航选择 ,单击右上角的“创建自定义策略”,设置策略。
- “策略名称”:设置自定义策略名称,例如:ma_agency_obs。
- “策略配置方式”:选择可视化视图或者JSON视图均可。
- “策略内容”:填入如下内容。
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "obs:object:GetObject", "obs:object:PutObject", "obs:bucket:ListBucket" ] } ] }
- 创建委托。
在统一身份认证服务页面的左侧导航选择 ,单击右上角的“创建委托”,设置策略。填写委托信息并单击“下一步”。
- 委托名称:可自定义委托名称,例如:ma_agency_trainJob。
- 委托类型:选择“云服务”。
- 云服务:选择“ModelArts”。
- 持续时间:选择“永久”。
勾选新建的委托策略,然后单击“下一步”。设置最小授权范围选择“所有资源”,然后单击“确定”。
- 为子账号配置ModelArts委托权限。
在ModelArts服务页面的左侧导航选择 ,单击“添加授权”。授权对象选择子账号,在已有委托中选择新建的委托,然后单击“创建”。
- 新建委托授权策略。
- 验证权限是否配置成功。
登录子用户账号,如果用户能在控制台上成功创建使用自定义镜像创建训练作业(如单机单卡场景下创建训练作业),则表示权限配置成功。