华为云AI开发平台ModelArts委托和依赖_云淘科技
功能依赖
功能依赖策略项
您在使用ModelArts服务中开发算法、管理训练作业过程中,需要和其它云服务交互,比如需要在提交训练作业时选择指定数据集OBS路径和日志存储OBS路径。因此管理员在为用户配置细粒度授权策略时,需要同时配置依赖的权限项,用户才能使用完整的功能。
如果您使用根用户(与账户同名的缺省子用户)使用ModelArts,根用户默认拥有所有权限,不再需要单独授权。
请用户确保当前用户具备委托授权中包含的依赖策略项权限。例如,用户给ModelArts的委托需要授权SWR Admin权限,需要保证用户本身具备SWR Admin权限。
业务场景 |
依赖的服务 |
依赖策略项 |
支持的功能 |
---|---|---|---|
全局配置 |
IAM |
iam:users:listUsers |
查询用户列表(仅管理员需要) |
基本功能 |
IAM |
iam:tokens:assume |
使用委托获取用户临时认证凭据(必需) |
基本功能 |
BSS |
bss:balance:view |
在ModelArts控制台创建资源后,页面展示帐号当前余额 |
业务场景 |
依赖的服务 |
依赖策略项 |
支持的功能 |
---|---|---|---|
工作空间 |
IAM |
iam:users:listUsers |
按用户进行工作空间授权 |
ModelArts |
modelarts:*:*delete* |
删除工作空间时,同时清理空间内的资源 |
业务场景 |
依赖的服务 |
依赖策略项 |
支持的功能 |
---|---|---|---|
开发环境实例生命周期管理 |
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最大权限,用于: 开发环境运行的实例,保存成镜像。 |
使用SSH功能 |
ECS |
ecs:serverKeypairs:list ecs:serverKeypairs:get ecs:serverKeypairs:delete ecs:serverKeypairs:create |
为开发环境Notebook实例配置登录密钥。 |
挂载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项目列表,完成连接配置。 |
业务场景 |
依赖的服务 |
依赖策略项 |
支持的功能 |
---|---|---|---|
训练管理 |
ModelArts |
modelarts:trainJob:* modelarts:trainJobLog:* modelarts:aiAlgorithm:* modelarts:image:list |
创建训练作业和查看训练日志。 |
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 |
使用自定义镜像运行训练作业。 |
|
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桶中的数据集运行训练作业。 |
业务场景 |
依赖的服务 |
依赖策略项 |
支持的功能 |
---|---|---|---|
使用数据集 |
ModelArts |
modelarts:dataset:getDataset modelarts:dataset:createDataset modelarts:dataset:createDatasetVersion modelarts:dataset:createImportTask modelarts:dataset:updateDataset modelarts:processTask:createProcessTask modelarts:processTask:getProcessTask modelarts:dataset:listDatasets |
在工作流中使用ModelArts数据集 |
管理AI应用 |
ModelArts |
modelarts:model:list modelarts:model:get modelarts:model:create modelarts:model:delete modelarts:model:update |
在工作流中管理ModelArts AI应用 |
部署上线 |
ModelArts |
modelarts:service:get modelarts:service:create modelarts:service:update modelarts:service:delete modelarts:service:getLogs |
在工作流中管理ModelArts在线服务 |
训练作业 |
ModelArts |
modelarts:trainJob:get modelarts:trainJob:create modelarts:trainJob:list modelarts:trainJobVersion:list modelarts:trainJobVersion:create modelarts:trainJob:delete modelarts:trainJobVersion:delete modelarts:trainJobVersion:stop |
在工作流中管理ModelArts训练作业 |
工作空间 |
ModelArts |
modelarts:workspace:get modelarts:workspace:getQuotas |
在工作流中使用ModelArts工作空间 |
管理数据 |
OBS |
obs:bucket:ListAllMybuckets(获取桶列表) obs:bucket:HeadBucket(获取桶元数据) obs:bucket:ListBucket(列举桶内对象) obs:bucket:GetBucketLocation(获取桶区域位置) obs:object:GetObject(获取对象内容、获取对象元数据) obs:object:GetObjectVersion(获取对象内容、获取对象元数据) obs:object:PutObject(PUT上传、POST上传、复制对象、追加写对象、初始化上传段任务、上传段、合并段) obs:object:DeleteObject(删除对象、批量删除对象) obs:object:DeleteObjectVersion(删除对象、批量删除对象) obs:object:ListMultipartUploadParts(列举已上传的段) obs:object:AbortMultipartUpload(取消多段上传任务) obs:object:GetObjectAcl(获取对象ACL) obs:object:GetObjectVersionAcl(获取对象ACL) obs:bucket:PutBucketAcl(设置桶ACL) obs:object:PutObjectAcl(设置对象ACL) |
在工作流中使用OBS数据 |
工作流运行 |
IAM |
iam:users:listUsers(查询用户列表) iam:agencies:getAgency(查询指定委托详情) iam:tokens:assume(获取委托Token) |
在工作流运行时,调用Modelarts其它服务 |
集成DLI |
DLI |
dli:jobs:get(查询作业详情) dli:jobs:list_all(查询作业列表) dli:jobs:create(创建新作业) |
在工作流中集成DLI |
集成MRS |
MRS |
mrs:job:get(查询作业详情) mrs:job:submit(创建并执行作业) mrs:job:list(查询作业列表) mrs:job:stop(停止作业) mrs:job:batchDelete(批量删除作业) mrs:file:list(查询文件列表) |
在工作流中集成MRS |
业务场景 |
依赖的服务 |
依赖策略项 |
支持的功能 |
---|---|---|---|
管理AI应用 |
SWR |
swr:repository:deleteRepository swr:repository:deleteTag swr:repository:getRepository swr:repository:listTags |
从自定义镜像导入 从OBS导入时使用自定义引擎 |
OBS |
obs:bucket:ListAllMybuckets(获取桶列表) obs:bucket:HeadBucket(获取桶元数据) obs:bucket:ListBucket(列举桶内对象) obs:bucket:GetBucketLocation(获取桶区域位置) obs:object:GetObject(获取对象内容、获取对象元数据) obs:object:GetObjectVersion(获取对象内容、获取对象元数据) obs:object:PutObject(PUT上传、POST上传、复制对象、追加写对象、初始化上传段任务、上传段、合并段) obs:object:DeleteObject(删除对象、批量删除对象) obs:object:DeleteObjectVersion(删除对象、批量删除对象) obs:object:ListMultipartUploadParts(列举已上传的段) obs:object:AbortMultipartUpload(取消多段上传任务) obs:object:GetObjectAcl(获取对象ACL) obs:object:GetObjectVersionAcl(获取对象ACL) obs:bucket:PutBucketAcl(设置桶ACL) obs:object:PutObjectAcl(设置对象ACL) |
从OBS导入模型 模型转换指定OBS路径 |
业务场景 |
依赖的服务 |
依赖策略项 |
支持的功能 |
---|---|---|---|
在线服务 |
LTS |
lts:logs:list(查询日志列表) |
查询和展示LTS日志 |
OBS |
obs:bucket:GetBucketPolicy (获取桶策略) obs:bucket:HeadBucket (获取桶元数据) obs:bucket:ListAllMyBuckets (获取桶列表) obs:bucket:PutBucketPolicy (设置桶策略) obs:bucket:DeleteBucketPolicy (删除桶策略) |
服务运行时容器挂载外部存储卷 |
|
批量服务 |
OBS |
obs:object:GetObject(获取对象内容、获取对象元数据) obs:object:PutObject(PUT上传、POST上传、复制对象、追加写对象、初始化上传段任务、上传段、合并段) obs:bucket:CreateBucket(创建桶) obs:bucket:ListBucket(列举桶内对象) obs:bucket:ListAllMyBuckets(获取桶列表) |
创建批量服务,批量推理。 |
边缘服务 |
CES |
ces:metricData:list(查询指标数据) |
查看服务的监控指标 |
IEF |
ief:deployment:delete(删除应用部署) |
管理边缘服务 |
业务场景 |
依赖的服务 |
依赖策略项 |
支持的功能 |
---|---|---|---|
管理数据集和标注 |
OBS |
obs:bucket:ListBucket(列举桶内对象) obs:object:GetObject(获取对象内容、获取对象元数据) obs:object:PutObject(PUT上传、POST上传、复制对象、追加写对象、初始化上传段任务、上传段、合并段) obs:object:DeleteObject(删除对象、批量删除对象) obs:bucket:HeadBucket(获取桶元数据) obs:bucket:GetBucketAcl(获取桶ACL) obs:bucket:PutBucketAcl(设置桶ACL) obs:bucket:GetBucketPolicy(获取桶策略) obs:bucket:PutBucketPolicy(设置桶策略) obs:bucket:DeleteBucketPolicy(删除桶策略) obs:bucket:PutBucketCORS(设置桶的CORS配置、删除桶的CORS配置) obs:bucket:GetBucketCORS(获取桶的CORS配置) obs:object:PutObjectAcl(设置对象ACL) |
管理OBS中的数据集 标注OBS数据 创建数据管理作业 |
管理表格数据集 |
DLI |
dli:database:displayAllDatabases dli:database:displayAllTables dli:table:describe_table |
在数据集中管理DLI数据 |
管理表格数据集 |
DWS |
dws:openAPICluster:list dws:openAPICluster:getDetail |
在数据集中管理DWS数据 |
管理表格数据集 |
MRS |
mrs:job:submit mrs:job:list mrs:cluster:list mrs:cluster:get |
在数据集中管理MRS数据 |
智能标注 |
ModelArts |
modelarts:service:list modelarts:model:list modelarts:model:get modelarts:model:create modelarts:trainJobInnerModel:list modelarts:workspace:get modelarts:workspace:list |
使用智能标注 |
团队标注 |
IAM |
iam:projects:listProjects(查询租户项目) iam:users:listUsers(查询用户列表) iam:agencies:createAgency(创建委托) iam:quotas:listQuotasForProject(查询指定项目的配额) |
管理标注团队 |
业务场景 |
依赖的服务 |
依赖策略项 |
支持的功能 |
---|---|---|---|
资源池管理 |
BSS |
bss:coupon:view bss:order:view bss:balance:view bss:discount:view bss:renewal:view bss:bill:view bss:contract:update bss:order:pay bss:unsubscribe:update bss:renewal:update bss:order:update |
资源池的创建、续费、退订等与计费相关的功能。依赖权限需要配置在IAM项目视图中。 |
ECS |
ecs:availabilityZones:list |
查询可用区列表。依赖权限需要配置在IAM项目视图中。 |
|
网络管理 |
VPC |
vpc:routes:create vpc:routes:list vpc:routes:get vpc:routes:delete vpc:peerings:create vpc:peerings:accept vpc:peerings:get vpc:peerings:delete vpc:routeTables:update vpc:routeTables:get vpc:routeTables:list vpc:vpcs:create vpc:vpcs:list vpc:vpcs:get vpc:vpcs:delete vpc:subnets:create vpc:subnets:get vpc:subnets:delete vpcep:endpoints:list vpcep:endpoints:create vpcep:endpoints:delete vpcep:endpoints:get vpc:ports:create vpc:ports:get vpc:ports:update vpc:ports:delete vpc:networks:create vpc:networks:get vpc:networks:update vpc:networks:delete |
ModelArts网络资源创建和删除、VPC网络打通。依赖权限需要配置在IAM项目视图中。 |
SFS Turbo |
sfsturbo:shares:addShareNic sfsturbo:shares:deleteShareNic sfsturbo:shares:showShareNic sfsturbo:shares:listShareNics |
用户的网络和SFS Turbo资源打通。依赖权限需要配置在IAM项目视图中。 |
|
边缘资源池 |
IEF |
ief:node:list ief:group:get ief:application:list ief:application:get ief:node:listNodeCert ief:node:get ief:IEFInstance:get ief:deployment:list ief:group:listGroupInstanceState ief:IEFInstance:list ief:deployment:get ief:group:list |
边缘池增删改查管理 |
委托授权
用户在使用ModelArts服务运行作业过程中,为了简化用户的操作,ModelArts后台可以代替用户完成一些工作,如训练作业启动前自动下载用户OBS桶中的数据集到作业空间、自动转储训练作业日志到用户OBS桶中。
ModelArts服务不会保存用户的Token认证凭据,在后台异步作业中操作用户的资源(如OBS桶)前,需要用户通过IAM委托向ModelArts显式授权,ModelArts在需要时使用用户的委托获取临时认证凭据用于操作用户资源,见“添加授权”。
图1 委托授权
如图1所示,用户向ModelArts授权后,ModelArts使用委托授权的临时凭证访问和操作用户资源,协助用户自动化一些繁琐和耗时的操作。同时,委托凭证会同步到用户的作业中(Notebook实例和训练作业),客户在作业中可以使用委托凭证自行访问自己的资源。
在ModelArts服务中委托授权有两种方式:
1、一键式委托授权
ModelArts提供了一键式自动授权功能,用户可以在ModelArts的全局配置功能中,快速完成委托授权,由ModelArts为用户自动创建委托并配置到ModelArts服务中。
这种方式为保证使用业务过程中有足够的权限,基于依赖服务的预置系统策略指定授权范围,创建的委托的权限比较大,基本覆盖了依赖服务的全部权限。如果您需要对委托授权的权限范围进行精确控制,请使用第二种方式。
2、定制化委托授权
管理员在IAM中为不同用户创建不同的委托授权策略,再到ModelArts中为用户配置已创建好的委托。管理员在IAM中为用户创建委托时,根据用户的实际权限范围为委托指定最小权限范围,控制用户在使用ModelArts过程中可访问的资源内容。具体参考配置ModelArts基本使用权限。
委托授权的越权风险
可以看到用户的委托授权是独立的,理论上用户的委托授权范围是可以超出用户自身用户组的授权策略的授权范围,如果配置不当就会出现用户越权的问题。
为了控制委托授权的越权风险,ModelArts服务的全局配置功能要求只有租户管理员才能为用户配置委托,由管理员保证委托授权的安全性。
委托授权的最小化
管理员在配置委托授权时,应严格控制授权的范围。
ModelArts为用户异步自动化完成作业的准备、清理等操作,所需的委托授权内容是基础授权范围。如果用户只使用ModelArts的部分功能,管理员可以依据委托授权表格的说明屏蔽不使用的基础权限项。相反地,如果用户需要在作业中使用基础授权范围外的资源权限,管理员也可以为用户在委托授权中增加新的权限项。总之,委托授权的范围应该基于实际业务场景所需权限范围来进行定制,保持委托授权范围的最小化。
委托基础授权范围
当您需要定制委托授权的权限列表时,请参考下面表格,根据实际业务选择授权项。
业务场景 |
依赖的服务 |
委托授权项 |
说明 |
配置建议 |
---|---|---|---|---|
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中。 |
建议配置。 |
业务场景 |
依赖的服务 |
委托授权项 |
说明 |
---|---|---|---|
训练作业 |
OBS |
obs:bucket:ListBucket obs:object:GetObject obs:object:PutObject |
训练作业启动前下载数据、模型、代码。 训练作业运行中上传日志、模型。 |
业务场景 |
依赖的服务 |
委托授权项 |
说明 |
---|---|---|---|
在线服务 |
LTS |
lts:groups:create lts:groups:list lts:topics:create lts:topics:delete lts:topics:list |
在线服务配置LTS日志上报 |
批量服务 |
OBS |
obs:bucket:ListBucket obs:object:GetObject obs:object:PutObject |
运行批量服务 |
边缘服务 |
IEF |
ief:deployment:list ief:deployment:create ief:deployment:update ief:deployment:delete ief:node:createNodeCert ief:iefInstance:list ief:node:list |
通过IEF部署边缘服务 |
业务场景 |
依赖的服务 |
委托授权项 |
说明 |
---|---|---|---|
数据集和数据标注 |
OBS |
obs:object:GetObject obs:object:PutObject obs:object:DeleteObject obs:object:PutObjectAcl obs:bucket:ListBucket obs:bucket:HeadBucket obs:bucket:GetBucketAcl obs:bucket:PutBucketAcl obs:bucket:GetBucketPolicy obs:bucket:PutBucketPolicy obs:bucket:DeleteBucketPolicy obs:bucket:PutBucketCORS obs:bucket:GetBucketCORS |
管理OBS桶中的数据集 |
数据标注 |
ModelArts 推理 |
modelarts:service:get modelarts:service:create modelarts:service:update |
基于ModelArts推理进行智能数据标注 |
业务场景 |
依赖的服务 |
委托授权项 |
说明 |
---|---|---|---|
资源池网络管理(新版本) |
VPC |
vpc:routes:create vpc:routes:list vpc:routes:get vpc:routes:delete vpc:peerings:create vpc:peerings:accept vpc:peerings:get vpc:peerings:delete vpc:routeTables:update vpc:routeTables:get vpc:routeTables:list vpc:vpcs:create vpc:vpcs:list vpc:vpcs:get vpc:vpcs:delete vpc:subnets:create vpc:subnets:get vpc:subnets:delete vpcep:endpoints:list vpcep:endpoints:create vpcep:endpoints:delete vpcep:endpoints:get vpc:ports:create vpc:ports:get vpc:ports:update vpc:ports:delete vpc:networks:create vpc:networks:get vpc:networks:update vpc:networks:delete |
ModelArts网络资源创建和删除、VPC网络打通。此处依赖权限需要配置在IAM项目视图中。 |
SFS Turbo |
sfsturbo:shares:addShareNic sfsturbo:shares:deleteShareNic sfsturbo:shares:showShareNic sfsturbo:shares:listShareNics |
用户的网络和SFS Turbo资源打通。依赖权限需要配置在IAM项目视图中。 |
|
资源池管理 |
BSS |
bss:coupon:view bss:order:view bss:balance:view bss:discount:view bss:renewal:view bss:bill:view bss:contract:update bss:order:pay bss:unsubscribe:update bss:renewal:update bss:order:update |
资源池的创建、续费、退订等与计费相关的功能。依赖权限需要配置在IAM项目视图中。 |
资源池管理 |
ECS |
ecs:availabilityZones:list |
查询可用区列表。依赖权限需要配置在IAM项目视图中。 |
业务场景 |
依赖的服务 |
委托授权项 |
说明 |
---|---|---|---|
使用数据集 |
ModelArts |
modelarts:dataset:getDataset modelarts:dataset:createDataset modelarts:dataset:createDatasetVersion modelarts:dataset:createImportTask modelarts:dataset:updateDataset modelarts:processTask:createProcessTask modelarts:processTask:getProcessTask modelarts:dataset:listDatasets |
在工作流中使用ModelArts数据集 |
管理AI应用 |
ModelArts |
modelarts:model:list modelarts:model:get modelarts:model:create modelarts:model:delete modelarts:model:update |
在工作流中管理ModelArts AI应用 |
部署上线 |
ModelArts |
modelarts:service:get modelarts:service:create modelarts:service:update modelarts:service:delete modelarts:service:getLogs |
在工作流中管理ModelArts在线服务 |
训练作业 |
ModelArts |
modelarts:trainJob:get modelarts:trainJob:create modelarts:trainJob:list modelarts:trainJobVersion:list modelarts:trainJobVersion:create modelarts:trainJob:delete modelarts:trainJobVersion:delete modelarts:trainJobVersion:stop |
在工作流中管理ModelArts训练作业 |
工作空间 |
ModelArts |
modelarts:workspace:get modelarts:workspace:getQuotas |
在工作流中使用ModelArts工作空间 |
管理数据 |
OBS |
obs:bucket:GetBucketPolicyobs:bucket:PutBucketPolicy obs:bucket:GetBucketAcl obs:bucket:PutBucketAcl obs:object:GetObject obs:object:PutObject obs:bucket:ListBucket obs:object:PutObjectAcl obs:object:DeleteObject |
在工作流中使用OBS数据 |
工作流运行 |
IAM |
iam:users:listUsers(查询用户列表) iam:agencies:getAgency(查询指定委托详情) iam:tokens:assume(获取委托Token) |
在工作流运行时,调用Modelarts其它服务 |
集成DLI |
DLI |
dli:jobs:get dli:jobs:listAll dli:jobs:create dli:jobs:stop |
在工作流中集成DLI |
集成MRS |
MRS |
mrs:job:get mrs:job:submit mrs:job:list mrs:job:stop mrs:job:batchDelete mrs:file:list |
在工作流中集成MRS |
父主题: 权限控制方式
同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家