如果您希望對PAI的AI計算資源進行更細顆粒度的授權和管理,您可以創建自定義授權策略,授予RAM用戶(即子賬號)創建、更新、刪除或擴縮容等權限。
背景信息
RAM權限主要針對云原生資源類別(包括通用計算資源和靈駿智算資源)中的資源池管理,以及資源配額管理生效。
資源池
資源池負責AI計算資源的購買和管理,其中,資源池列表中的每一項為專有資源組,即ResourceGroup。
更多詳情,請參見資源池功能介紹。
資源配額
資源配額從資源池中劃分AI計算資源,并可以關聯到PAI工作空間,在PAI工作空間內的用戶就可以使用這個資源配額進行AI的訓練、開發及在線服務等功能,更多詳情,請參見資源配額(Quota)功能介紹。
如下圖所示,資源配額可以是一個樹形結構,其中,從資源池中劃分資源創建出來的資源配額稱為根資源配額(根Quota),以根資源配額為父節點,可以繼續劃分多級子資源配額(子Quota)。
如下資源配額接口已接入RAM權限管理,您可以通過自定義的權限策略,對AI計算資源進行細粒度的權限管理。
接口名稱 | 接口描述 |
創建資源配額(支持創建根資源配額以及創建子級資源配額) | |
擴縮容資源配額(支持擴縮容根資源配額以及擴縮容子級資源配額) | |
獲取資源配額詳情(如標簽、描述、VPC信息等) | |
獲取資源配額列表 | |
更新資源配額(如更新標簽、描述、VPC信息等) | |
刪除資源配額 |
操作步驟
創建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": "*"
}
]
}