如果您希望对PAI的AI计算资源进行更细颗粒度的授权和管理,您可以创建自定义授权策略,授予RAM用户(即子账号)创建、更新、删除或扩缩容等权限。
背景信息
RAM权限主要针对云原生资源类别(包括通用计算资源和灵骏智算资源)中的资源池管理,以及资源配额管理生效。
资源池
资源池负责AI计算资源的购买和管理,其中,资源池列表中的每一项为专有资源组,即ResourceGroup。
更多详情,请参见资源池功能介绍。
资源配额
资源配额从资源池中划分AI计算资源,并可以关联到PAI工作空间,在PAI工作空间内的用户就可以使用这个资源配额进行AI的训练、开发及在线服务等功能,更多详情,请参见资源配额(Quota)功能介绍。
如下图所示,资源配额可以是一个树形结构,其中,从资源池中划分资源创建出来的资源配额称为根资源配额(根Quota),以根资源配额为父节点,可以继续划分多级子资源配额(子Quota)。
操作步骤
创建RAM用户。具体操作,请参见创建RAM用户。
创建自定义权限策略。具体操作,请参见通过脚本编辑模式创建自定义权限策略。
自定义权限策略的具体内容,请参见下文自定义授权策略示例。
为RAM用户授权已创建的自定义权限策略。具体操作,请参见为RAM用户授权。
自定义授权策略示例
授权管理资源池
授权管理资源池的用户具有以下权限:查看、创建、更新和删除专有资源组。
资源池负责资源的购买和管理,如果某个RAM用户要操作资源池相关的资源,需要对该RAM用户授予以下权限策略。
在控制台创建专有资源组时,需要配置专有网络,因此除了授予RAM用户管理资源池的权限,也需要授予VPC相关权限。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"pai:*ResourceGroup*"
],
"Resource": [
"*"
]
},
{
"Effect": "Allow",
"Action": [
"vpc:DescribeVpcs",
"vpc:DescribeVSwitches",
"ecs:DescribeSecurityGroups"
],
"Resource": "*"
}
]
}
授权创建/扩缩容/删除根Quota
根Quota的资源来源于资源池(可来源于一个或多个资源组),因此RAM用户如果要对根Quota进行创建、更新、扩缩容或删除的操作,需要同时拥有资源池和Quota两种权限策略。
如下示例权限策略中,定义了resourcegroup1
、resourcegroup2
、resourcegroup3
这三个资源池的Get、List、Update三个权限点,表示被授权的RAM用户只能从这三个资源池上划分资源来创建根Quota。
"acs:pai:*:*:quota/*"
表示被授权这个权限策略的用户可以操作所有的资源配额树,但资源的来源仅限于资源池中的resourcegroup1
、resourcegroup2
、resourcegroup3
三个专有资源组。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"pai:GetResourceGroup",
"pai:ListResourceGroups",
"pai:UpdateResourceGroup"
],
"Resource": [
"acs:pai:*:*:resourcegroup/resourcegroup1",
"acs:pai:*:*:resourcegroup/resourcegroup2",
"acs:pai:*:*:resourcegroup/resourcegroup3"
]
},
{
"Effect": "Allow",
"Action": [
"pai:CreateQuota",
"pai:UpdateQuota",
"pai:ScaleQuota",
"pai:DeleteQuota",
"pai:GetQuota",
"pai:ListQuotas"
],
"Resource": [
"acs:pai:*:*:quota/*"
]
}
]
}
授权管理根Quota(以quota1为例)
和创建/扩缩容/删除根资源配额需要同时拥有资源池相关的权限不同,管理根资源配额可以不需要资源池相关的权限,授权管理quota1的用户具有以下权限:
查看quota1
更新quota1元数据(如Quota标签、描述等)
管理以quota1为根的资源配额树(如创建、更新、扩缩、删除子quota)
管理quota1
权限策略中定义了两个Statement,其中第一个表示对以quota1
为根的资源配额树的操作权限,第二个表示对quota1
本身的操作权限。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"pai:CreateQuota",
"pai:UpdateQuota",
"pai:ScaleQuota",
"pai:DeleteQuota",
"pai:GetQuota",
"pai:ListQuotas"
],
"Resource": [
"acs:pai:*:*:quota/quota1/*"
]
},
{
"Effect": "Allow",
"Action": [
"pai:UpdateQuota",
"pai:GetQuota",
"pai:ListQuotas"
],
"Resource": [
"acs:pai:*:*:quota/quota1"
]
}
]
}
授权管理某一级子Quota(以quota1.2为例)
授权管理Quota1.2的用户具有以下权限:
查看quota1.2
更新quota1.2元数据(如Quota标签、描述等)
管理以quota1.2为根的资源配额子树(如创建、更新、扩缩、删除子quota)
管理quota1.2
的权限策略中定义了两个Statement,其中第一个表示对以quota1.2
为根的资源配额树的操作权限,第二个表示对quota1.2
本身的操作权限。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"pai:CreateQuota",
"pai:UpdateQuota",
"pai:ScaleQuota",
"pai:DeleteQuota",
"pai:GetQuota",
"pai:ListQuotas"
],
"Resource": [
"acs:pai:*:*:quota/*/quota1.2/*"
]
},
{
"Effect": "Allow",
"Action": [
"pai:UpdateQuota",
"pai:GetQuota",
"pai:ListQuotas"
],
"Resource": [
"acs:pai:*:*:quota/*/quota1.2"
]
}
]
}
授权VPC相关权限
在乌兰察布灵骏的场景下,在控制台创建Quota、新增子级Quota时可设置VPC,因此上文的Quota相关权限策略中也需要增加如下VPC权限。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"vpc:DescribeVpcs",
"vpc:DescribeVSwitches",
"ecs:DescribeSecurityGroups"
],
"Resource": "*"
}
]
}