当您业务有不同角色分工时,可以参考下面内容为不同角色使用的账号授予合适的权限,保障权限层面安全合理。
创建子账号并授权操作可参考文档。
当子用户作为资源管理员,需要运维机器学习平台(veMLP)上的资源时,需要的权限主要涉及:
因此在 veMLP 上的资源管理员子用户,为了使用的连续性建议,授予以下权限:
{ "Statement": [ { "Action": [ "tos:HeadBucket", "tos:PutObject", "tos:GetObject", "tos:ListBucketMultipartUploads", "tos:ListMultipartUploadParts", "tos:ListBucket", "tos:ListBuckets", "tos:CreateBucket", "cfs:DescribeSfcsCachePolicies", "vepfs:List*", "vepfs:Describe*", "vepfs:Get*", "vpc:Describe*", "FileNAS:Get*", "FileNAS:List*", "ml_platform:*", "ml_maas:GetMaasRuntimeConfig" ], "Effect": "Allow", "Resource": [ "*" ] } ] }
当子用户只需要在机器学习平台(veMLP)上开发、训练和推理模型时,可以只需要完成开发人员的权限。以下权限主要涉及:
因此在 veMLP 上的资源管理员子用户,为了使用的连续性建议授予以下权限:
veMLP 的开发人员预设策略,授予该策略的子用户将拥有开发机、自定义任务、推理服务和部署的读写权限(仅限自己创建的);也将授予镜像、实验管理等模块的 Get、List 等接口权限。
{ "Statement": [ { "Effect": "Allow", "Action": [ "ml_platform:SignJwtToken", "ml_platform:JoinResourceQueue", "ml_platform:Get*", "ml_platform:List*", "ml_platform:Check*", "ml_platform:Describe*", "ml_platform:*Pipeline*", "ml_platform:*Asset*", "ml_platform:*Dataset*", "ml_platform:*Model*", "ml_platform:*AutoScaler*", "ml_platform:*Annotation*", "ml_platform:*TensorBoard*", "ml_platform:*Profile*", "ml_platform:*Tracking*", "ml_platform:*Image*", "ml_platform:*Rule*", "ml_platform:*Suspected*", "ml_platform:*Idle*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "ml_platform:*DevInstance*", "ml_platform:*Job*", "ml_platform:*Customtask*", "ml_platform:*Service*", "ml_platform:*Deployment*", "ml_platform:*ResourceQueue*", "ml_platform:*ResourceGroup*" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "volc:PrincipalTrn": "${volc:ResourceTag/sys:ml_platform:createdby}" } } }, { "Effect": "Allow", "Action": [ "FileNAS:Get*", "FileNAS:List*", "FileNAS:Describe*", "cfs:DescribeSfcsCachePolicies", "vpc:Describe*", "vepfs:List*", "vepfs:Describe*", "vepfs:Get*", "cr:List*", "cr:Get*", "apig:Get*", "apig:List*", "quota:Get*", "vmp:List*", "vmp:Get*", "tos:GetObject", "tos:HeadBucket", "tos:AbortMultipartUpload", "tos:PutObject", "tos:ListBucketMultipartUploads", "tos:PutBucketCORS", "tos:ListMultipartUploadParts", "tos:ListBuckets", "tos:CreateBucket" ], "Resource": [ "*" ] } ] }
队列是机器学习平台资源配额管理的模块,若子用户需要使用资源来创建各种负载时,需要先加入队列中(管理员或成员皆可)。下边解释一下队列的角色定义:
步骤 | 操作介绍 |
---|---|
Step1 | 完成队列的基础信息
|
Step2 | 分配队列权限
|
Step3 | 管理用户用量上限
|
说明
请注意,资源管理员需主动为队列管理员的成员添加 IAM 相关策略,否则队列管理员将无法正常编辑队列内成员。
在队列创建后,若需要管理队列内管理员和成员的列表,可以通过编辑【管理用户】实现。
说明
目前暂不支持直接在访问控制中添加用户或策略。若有队列成员维护需求,请继续在 veMLP 控制台上进行操作。
IAMFullAccess
权限(若该权限范围较广,可配置自定义策略,具体可参考 MLP 的权限管理)步骤 | 操作介绍 |
---|---|
Step1 |
|
权限说明:
{ "Statement": [ { "Effect": "Allow", "Action": [ "ml_platform:*DevInstance*", "ml_platform:*Job*", "ml_platform:*Service*", "ml_platform:*Deployment*", "ml_platform:*CustomTask*" ], "Resource": [ "trn:ml_platform:cn-beijing:2100xxx:devinstance/*", "trn:ml_platform:cn-beijing:2100xxx:job/*", "trn:ml_platform:cn-beijing:2100xxx:service/*", "trn:ml_platform:cn-beijing:2100xxx:deployment/*" ], "Condition": { "StringEquals": { "volc:ResourceTag/sys:ml_platform:resource_queue_id": "q-202504xxx7-txxxx" } } }, { "Effect": "Allow", "Action": [ "ml_platform:*DevInstance*", "ml_platform:*Job*", "ml_platform:*Service*", "ml_platform:*Deployment*", "ml_platform:*CustomTask*", "ml_platform:*ResourceQueue*" ], "Resource": [ "trn:ml_platform:cn-beijing:2100xxx:resourcequeue/q-202504xxx7-txxxx" ] }, { "Effect": "Allow", "Action": [ "iam:AddUserToGroup", "iam:RemoveUserFromGroup", "iam:ListUsersForGroup", "iam:ListGroups", "iam:ListUsers", "iam:GetGroup", "iam:GetPolicy", "iam:AttachUserGroupPolicy", "iam:DetachUserGroupPolicy", "iam:ListEntitiesForPolicy" ], "Resource": [ "*" ] } ] }
队列成员,可以使用该队列创建任意负载(队列需要支持该负载选项),并有对应负载创建者的读写权限。
{ "Statement": [ { "Effect": "Allow", "Action": [ "ml_platform:*DevInstance*", "ml_platform:*Job*", "ml_platform:*Service*", "ml_platform:*Deployment*", "ml_platform:*CustomTask*" ], "Resource": [ "trn:ml_platform:cn-beijing:2100xxx:resourcequeue/q-202504xxx7-txxxx" ] } ] }
若 IAMFullAccess
权限过大,可考虑创建新的自定义策略并完成授权。
{ "Statement": [ { "Effect": "Allow", "Action": [ "iam:GetGroup", "iam:AddUserToGroup", "iam:CreateGroup", "iam:AttachUserGroupPolicy", "iam:CreatePolicy", "iam:DetachUserGroupPolicy", "iam:GetPolicy", "iam:RemoveUserFromGroup", "iam:GetUser", "iam:ListUsers", "iam:ListGroups", "iam:ListUsersForGroup", "iam:ListGroupsForUser", "iam:ListAttachedUserGroupPolicies", "iam:ListAttachedUserPolicies" ], "Resource": [ "*" ] } ] }
若在资源创建后,只想授予某个用户特定资源的权限时,可以通过自定义策略实现。(也可以选择将目标用户设置为队列管理员,有队列内所有负载的读写权限。)
资源名称 | 动作 |
---|---|
resourcegroup | ResourceGroup |
service | Service |
deployment | Deployment |
devinstance | DevInstance |
job | v2: Job |
resourcequeue | ResourceQueue |
{ "Effect": "Allow", "Action": [ "ml_platform:*DevInstance*" // 动作 ], "Resource": [ // 标黄部分 {region}:{accountId}:{资源名称}:{资源id} "trn:ml_platform:cn-beijing:2100xxx:devinstance/di-202503xxxx2-gtxxxj" ] }