依赖和委托
委托授权
在使用AI科学计算服务的过程中,为了简化用户的操作,AI科学计算后台可以代替用户完成一些工作,如自动转储作业日志到用户OBS桶中、定时更新用户投递作业的运行状态等。
AI科学计算服务不会保存用户的Token认证凭据,在后台异步作业中操作用户的资源(如OBS桶)前,需要用户通过IAM委托向AI科学计算显式授权,AI科学计算在需要时使用用户的委托获取临时认证凭据用于操作用户资源。
托授权的越权风险
为了控制委托授权的越权风险,AI科学计算服务要求租户主账号才能为用户配置委托,由主账号保证委托授权的安全性。
委托授权的最小化
主账号在配置委托授权时,应严格控制授权的范围。
委托基础授权范围
AI科学计算服务委托授权的权限列表如表1所示。
委托名称 |
委托授权项 |
委托范围 |
依赖服务 |
委托用途 |
---|---|---|---|---|
ai4s_admin_agency |
"iam:users:getUser", "iam:users:listUsersForGroup", "iam:users:listUsers", "iam:groups:getGroup", "iam:groups:listGroupsForUser", "iam:groups:listGroups", "iam:roles:getRole", "iam:roles:listRoles", "iam:agencies:getAgency", "iam:agencies:listAgencies" |
全局 |
IAM |
AI科学计算服务项目权限控制管理相关功能需要。 |
ai4s_service_agency |
"iam:users:getUser", "iam:users:listUsersForGroup", "iam:users:listUsers", "iam:groups:getGroup", "iam:groups:listGroupsForUser", "iam:groups:listGroups", "iam:roles:getRole", "iam:roles:listRoles", "iam:agencies:getAgency", "iam:agencies:listAgencies", "iam:permissions:listRolesForGroupOnDomain" |
全局 |
IAM |
AI科学计算服务用户管理功能需要。 |
"obs:bucket:GetBucketPolicy", "obs:bucket:GetBucketLocation", "obs:object:GetObjectVersion", "obs:bucket:GetBucketStorage", "obs:object:GetObject", "obs:object:GetObjectVersionAcl", "obs:bucket:GetBucketQuota", "obs:object:ListMultipartUploadParts", "obs:bucket:GetBucketAcl", "obs:bucket:GetBucketStoragePolicy", "obs:bucket:GetEncryptionConfiguration", "obs:object:GetObjectAcl", "obs:bucket:ListBucketMultipartUploads", "obs:bucket:HeadBucket", "obs:bucket:ListAllMyBuckets", "obs:bucket:ListBucket", "obs:bucket:PutLifecycleConfiguration", "obs:object:DeleteObject", "obs:bucket:PutBucketQuota", "obs:object:AbortMultipartUpload", "obs:object:DeleteObjectVersion", "obs:object:PutObject", "obs:bucket:PutEncryptionConfiguration", "obs:object:PutObjectVersionAcl", "obs:bucket:PutBucketAcl", "obs:object:PutObjectAcl", "obs:bucket:PutBucketPolicy", "obs:bucket:DeleteBucketPolicy", "obs:bucket:CreateBucket", "obs:bucket:DeleteBucket" |
全局 |
OBS |
AI科学计算服务数据管理功能需要。 |
|
"css:cluster:get", "css:cluster:list" |
项目级 |
CSS |
AI科学计算服务药物管理功能需要,纳管CSS集群。 |
|
CCE Administrator |
项目级 |
CCE |
AI科学计算服务流程管理功能需要,投递作业以及更新作业状态等。 |
|
"aom:metric:list" |
项目级 |
AOM |
AI科学计算服务流程管理功能需要,查询节点监控信息。 |
|
"sfsturbo:shares:getShare" "sfsturbo:shares:getAllShares" |
项目级 |
SFS-Turbo |
AI科学计算服务流程管理功能需要,纳管SFS-Turbo实例。 |
|
"swr:namespace:createNamespace", "swr:namespace:getNamespace", "swr:namespace:deleteNamespaceAccess", "swr:repo:listRepoTags" |
项目级 |
SWR |
AI科学计算服务项目管理及镜像管理需要。 |
|
elb:loadbalancers:create创建弹性负载均衡器实例 elb:loadbalancers:delete删除弹性负载均衡器实例 elb:loadbalancers:get查询弹性负载均衡器实例详情 elb:pools:get查询云服务器组详情 elb:pools:create创建云服务器组实例 elb:pools:delete删除云服务器组实例 elb:members:delete删除云服务器实例 elb:members:create创建云服务器实例 elb:members:get查询云服务器详情 elb:listeners:create创建监听器实例 elb:listeners:delete删除监听器实例 elb:listeners:get查询监听器详情 |
项目级 |
ELB |
AI科学计算服务notebook开发环境需要。 |
|
nat:snatRules:create创建SNAT规则 nat:snatRules:delete删除SNAT规则 nat:snatRules:get查询SNAT规则详情 nat:natGateways:create创建NAT网关 nat:natGateways:delete删除NAT网关 nat:natGateways:get查询NAT网关详情 |
项目级 |
NAT |
AI科学计算服务notebook开发环境需要。 |
|
vpcep:epservices:create创建终端节点服务 vpcep:epservices:delete删除终端节点服务 vpcep:epservices:get查询终端节点服务详情 vpcep:epservices:list查询终端节点服务列表 vpcep:permissions:update批量添加或移除终端节点服务的白名单 vpcep:permissions:list查询终端节点服务的白名单列表 vpc:subnets:get 查询vpc子网 vpc:publicIps:create 创建弹性公网IP vpc:publicIps:delete 删除弹性公网IP vpcep:endpoints:get 查询终端节点详情 |
项目级 |
VPCEP |
AI科学计算服务notebook开发环境需要。 |