如果您希望對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": "*"
}
]
}