全部產品
Search
文件中心

Platform For AI:雲產品依賴和授權:AI計算資源群組

更新時間:Jul 13, 2024

如果您希望對PAI的AI計算資源進行更細顆粒度的授權和管理,您可以建立自訂授權策略,授予RAM使用者(即子帳號)建立、更新、刪除或擴縮容等許可權。

背景資訊

RAM許可權主要針對雲原生資源類別(包括通用計算資源和靈駿智算資源)中的資源集區管理,以及資源配額管理生效。

資源集區

資源集區負責AI計算資源的購買和管理,其中,資源集區列表中的每一項為專有資源群組,即ResourceGroup。

更多詳情,請參見資源集區功能介紹

資源配額

資源配額從資源集區中劃分AI計算資源,並可以關聯到PAI工作空間,在PAI工作空間內的使用者就可以使用這個資源配額進行AI的訓練、開發及線上服務等功能,更多詳情,請參見資源配額(Quota)功能介紹

如下圖所示,資源配額可以是一個樹形結構,其中,從資源集區中劃分資源建立出來的資源配額稱為根資源配額(根Quota),以根資源配額為父節點,可以繼續劃分多級子資源配額(子Quota)。

操作步驟

  1. 建立RAM使用者。具體操作,請參見建立RAM使用者

  2. 建立自訂權限原則。具體操作,請參見通過指令碼編輯模式建立自訂權限原則

    自訂權限原則的具體內容,請參見下文自訂授權策略樣本

  3. 為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兩種權限原則。

如下樣本權限原則中,定義了resourcegroup1resourcegroup2resourcegroup3這三個資源集區的Get、List、Update三個許可權點,表示被授權的RAM使用者只能從這三個資源集區上劃分資源來建立根Quota。

"acs:pai:*:*:quota/*"表示被授權這個權限原則的使用者可以操作所有的資源配額樹,但資源的來源僅限於資源集區中的resourcegroup1resourcegroup2resourcegroup3三個專有資源群組。

{
  "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": "*"
    }
  ]
}