全部產品
Search
文件中心

Platform For AI:基於RAM的Condition屬性設定資源的存取權限

更新時間:Nov 08, 2024

為了提升使用者體驗和安全性,PAI-⼯作空間已全面對接阿里雲的RAM許可權系統。所有PAI資源的操作均可通過RAM進行鑒權,並支援基於RAM的可見度和建立者屬性管理。所有接入工作空間的PAI子產品資源操作,均通過工作空間介面代理至RAM進行鑒權。

簡介

RAM權限原則(Policy)中包含一個基本元素“條件(Condition)”,用於表示授權生效的限制條件。通過在Policy中設定Condition,使用者可以進一步縮小授權範圍,從而實現細粒度的許可權管控。在PAI-工作空間中,Condition支援的索引值對(key-value)如下:

key

value

pai:Accessibility

資源的可見度,取值:

  • PUBLIC:表示資源在工作空間內公開可見。

  • PRIVATE:表示資源私人。

pai:EntityAccessType

資源的建立者屬性,取值:

  • CREATOR:表示資源的建立者是當前鑒權使用者。

  • OTHERS:表示資源的建立者為其他使用者,非當前鑒權使用者。

PAI-工作空間角色授權

在PAI-工作空間中,您也可以通過給RAM角色授予相關的Policy,從而實現資源的訪問授權。關於Policy詳情,請參見權限原則基本元素

工作空間演算法開發角色Policy樣本

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "pai:*"
      ],
      "Resource": "acs:paidsw:*:*:*",
      "Effect": "Allow",
      "Condition": {
        "StringEquals": {
          "pai:Accessibility": "PRIVATE",
          "pai:EntityAccessType": "CREATOR"
        }
      }
    },
    {
      "Action": [
        "pai:*"
      ],
      "Resource": "acs:paidsw:*:*:*",
      "Effect": "Allow",
      "Condition": {
        "StringEquals": {
          "pai:Accessibility": "PUBLIC"
        }
      }
    }
  ]
}

關鍵說明:

  • StatementResource欄位使用標準格式定義RAM資源:acs:<子產品ram-code>:<region>:<account-id>:workspace/<⼯作空間ID>/<產品資源名複數格式>/<產品資源ID>

  • Statement包含兩部分:

    • 第一部分描述了該Policy有許可權操作私人且建立者為當前鑒權使用者的資源。

    • 第二部分描述了該Policy有許可權操作公開的資源(建立者可以為任意使用者)

工作空間管理員角色Policy樣本

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "pai:*"
      ],
      "Resource": "acs:paidsw:*:*:*",
      "Effect": "Allow"
    }
  ]
}

關鍵說明:

樣本中Statement只包含一部分,表示該Policy有許可權操作所有的資源(可見度以及建立者屬性可以為任意值)。

工作空間其他角色

工作空間其他角色Policy中的Condition欄位與上述工作空間演算法開發角色類似,只是Action不同,不再詳述。

RAM鑒權邏輯

  1. RAM使用者被授予與工作空間角色相對應的RAM Policy。這些策略中包含兩個Condition屬性(pai:Accessibilitypai:EntityAccessType),使用者只有在滿足Condition時,才能獲得API對象的存取權限。

  2. 當RAM使用者嘗試訪問API對象時,PAI服務將調用RAM介面進行鑒權,並在鑒權過程中設定兩個Condition屬性值。

  3. 在RAM服務進行鑒權時,要求RAM使用者不僅具備訪問API對象的許可權,還需確保調用鑒權介面時傳入的兩個Condition屬性與使用者被授權策略中的Condition屬性相匹配。如果使用者被授權策略中的Condition屬性不包括pai:Accessibilitypai:EntityAccessType,則RAM對該屬性不做檢查。

相關文檔