管理 IAM 存取權限以供 Red Hat AI 推論

您帳戶中使用者對 Red Hat AI Inference 專案的存取權限,由 IBM Cloud® Identity and Access Management (IAM)進行管控。 您帳戶中每位存取 Red Hat AI Inference 服務的使用者,都必須被指派一項包含 IAM 角色的存取政策。 請檢視以下角色、操作等相關資訊,以協助您決定授予 Red Hat AI Inference 存取權限的最佳方式。

您在帳戶中為使用者指派的存取權限政策,將決定該使用者在您所選定的服務或特定專案的範圍內,可執行哪些操作。 允許的操作是由服務管理員( Red Hat AI Inference )根據服務可執行的操作進行自訂與定義的。 每項操作都會對應至一個 IAM 平台或服務角色,您可以將該角色指派給使用者。

請確保您對欲使用的資源群組也具備「檢視者」角色。

IAM 存取政策可啟用不同層級的存取權限。 以下是一些選項:

  • 授予特定專案的「讀取」或「寫入」權限。
  • 授予「讀取」或「寫入」權限,以存取可能包含多個專案的特定資源群組。
  • 授予「讀取」或「寫入」權限至整個帳戶,而該帳戶中可能包含多個資源群組,每個資源群組下又可能有許多專案。
  • 授予檢視者對資源群組內及帳戶層級的「Red Hat AI 推論」專案的存取權限。
  • 授予「創建」權限,以便在資源群組及帳戶層級內建立 Red Hat AI 推論 專案。

如果某個特定角色及其動作不符合您想要處理的使用情境,您可以 建立自訂角色,並選擇要包含的動作。

請參閱以下表格,其中概述了在使用「Red Hat AI Inference」服務時,各角色可執行的任務類型。 平台管理角色可讓使用者在平台層級對服務資源執行各項任務,例如:授予使用者對該服務的存取權限、建立或刪除專案,以及將專案綁定至應用程式。 服務存取角色可讓使用者存取 Red Hat AI Inference,並能呼叫 Red Hat AI Inference 的 API。

以下是關於平台角色允許使用者執行哪些操作的高階概覽。 請以淺顯易懂的語言說明,當被指派各角色時,使用者可以完成哪些類型的任務,或是預期會執行哪些常見的工作。

IAM 角色和動作

IAM 平台角色
平台角色 說明
檢視者 身為瀏覽者,您可以檢視專案,但無法修改它們。
操作員 身為操作員,您可以執行配置和運作專案所需的平臺操作,例如檢視服務的儀表板。
編輯者 身為編輯者,您可以可能所有平台動作,但管理帳戶及指派存取原則除外。
管理者 身為管理者,您可以根據指派此角色的資源執行所有平台動作,包括指派存取原則給其他使用者。
服務配置器讀取器 讀取服務設定以進行治理管理的能力。
金鑰管理員 身為金鑰管理員,此服務可執行管理資源金鑰所需的平台操作,例如建立新的資源金鑰。
IAM 服務存取角色
服務角色 說明
讀者 身為讀取者,您可以在服務內執行唯讀動作,例如檢視服務特定的資源。
撰寫者 身為撰寫者,您具有讀者角色之外的許可權,包括建立及編輯服務特定的資源。
管理員 身為管理員,您具有撰寫者角色之外的許可權,以完成服務所定義的特許動作。 此外,您可以建立及編輯服務特定的資源。
IAM 操作
行動與活動 說明 角色
instructlab.dashboard.view 檢視 Red Hat AI Inference 的儀表板。 操作員、管理員、編輯
instructlab.taxonomy.read 閱讀分類法的詳細資訊。 讀者、撰寫者、管理員
instructlab.taxonomy.create 建立分類法 作者、管理員
instructlab.taxonomy.list 列出分類法。 讀者、撰寫者、管理員
instructlab.taxonomy.delete 刪除分類法。 作者、管理員
instructlab.sdgdata.read 閱讀資料產生執行任務的詳細資訊。 讀者、撰寫者、管理員
instructlab.sdgdata.list 列出資料產生執行紀錄。 讀者、撰寫者、管理員
instructlab.sdgdata.create 建立一個資料產生執行任務。 作者、管理員
instructlab.sdgdata.delete 刪除一次資料產生執行。 作者、管理員
instructlab.sdgdata.stop 停止一次資料產生執行。 作者、管理員
instructlab.sdgdata.stop 停止一次資料產生執行。 作者、管理員
instructlab.model.read 閱讀某次模型訓練執行詳情。 讀者、撰寫者、管理員
instructlab.model.list 列出模型訓練的執行紀錄。 讀者、撰寫者、管理員
instructlab.model.create 建立一個模型訓練執行程序。 作者、管理員
instructlab.model.delete 刪除一個模型訓練執行。 作者、管理員
instructlab.model.stop 停止模型的訓練執行。 作者、管理員

授予 InstuctLab 權限,以建立及更新 Object Storage 的構建產出

請為 Red Hat AI 推論 授予 Object Storage 服務的「Writer」存取角色。 已登入的使用者也必須擁有相同的權限。

  1. 為 Red Hat AI 推論 和 Object Storage 建立授權政策。

    ibmcloud iam authorization-policy-create Writer --source-service-name instructlab --target-service-name cloud-object-storage
    

    如果您已有可用的 Object Storage 資源,您可以將授權範圍限定為僅這些資源。

    ibmcloud iam authorization-policy-create Writer --source-service-name instructlab --target-service-name cloud-object-storage --target-service-instance-id CLOUD-OBJECT-STORAGE-INSTANCE-ID --target-resource CLOUD-OBJECT-STORAGE-BUCKET --target-resource-type bucket
    
  2. 請確認授權政策已建立。

    ibmcloud iam authorization-policies
    

    當授權未限定於特定的 Object Storage 儲存桶時,結果如下:

    Getting authorization policies under account abc1234 as user...
    OK
    ID:                        <id>
    Source service name:       instructlab
    Source service instance:   All instances
    Target service name:       cloud-object-storage
    Target service instance:   All instances
    Roles:                     Writer
    

    當授權範圍限定於特定的 Object Storage 儲存桶時,結果如下:

    Getting authorization policies under account abc1234 as user...
    OK
    ID:                        <id>
    Source service name:       instructlab
    Source service instance:   All instances
    Target service name:       cloud-object-storage
    Target service instance:   bucket
    Roles:                     Writer
    
  3. 可選 )若您使用的是私有儲存庫,請為 Red Hat AI 推論 建立另一項服務授權,並 Secrets Manager

    ibmcloud iam authorization-policy-create Reader --source-service-name instructlab --target-service-name secrets-manager
    
  4. 如有需要,請授予已登入的使用者「Writer」權限。 請包含上一步驟中取得的「Object Storage」服務實例 ID。

    ibmcloud iam user-policy-create <user> --roles Writer --service-instance <cloud-object-storage-instance-id>
    

為您的資源指派使用者存取權限

您可以控制帳戶中的哪些使用者(或使用者群組)可以存取您的 Red Hat AI Inference 資源。 請依照以下步驟,在控制台中指派存取權限。

如需進一步了解如何指派存取權限、使用 CLI 的相關步驟,或是限制對 Red Hat AI Inference 或您的 Object Storage 儲存桶存取權限的各種方法,請參閱 《 管理 Red Hat AI Inference 的 IAM 存取權限 》。

授予存取權限有兩種常見的方式:

依使用者設定的存取政策。
您可透過控制台中的「管理」>「存取權限 (IAM)」>「使用者」頁面,針對每位使用者管理存取權限政策。 有關指派 IAM 存取權限的步驟,請參閱「在主控台中管理資源存取權限」。
存取群組。
存取群組用於簡化存取管理:只需對群組進行一次存取權限設定,之後即可根據需要向群組中新增或移除使用者,藉此控制其存取權限。 您可透過控制台中的「管理 > 存取權限 (IAM) > 存取群組」頁面,管理存取群組及其存取權限。 如需更多資訊,請參閱「在主控台中為群組指派存取權限」。

{{../iam/iam-mng-access.md#access-resources-console}}

{{../iam/iam-mng-access.md#access-to-resources-console}}

{{../iam/iam-mng-access.md#access-to-resource-group}}

使用 CLI 授予對 Red Hat AI 推論 的存取權限

有關指派、撤銷及檢視存取權限的逐步說明,請參閱 《 使用 CLI 指派資源存取權限 》。 以下範例展示了一條用於將「Writer」角色指派給「instructlab」的指令:

請將服務名稱設定為「instructlab」。 若要找出角色 ID,請執行 ibmcloud iam roles 指令。 此外,若角色名稱由多個單字組成,請用引號將其括起來。 例如 "Service Configuration Reader"

以下為賦予使用者該帳戶中特定 Red Hat AI 推論 專案之「檢視者」角色的範例指令。

ibmcloud iam user-policy-create name@example.com --roles Viewer --service-name instructlab --attributes "projectId=1b111111-1ef1-11f1-1111-111bae11111a"

以下為賦予使用者該帳戶中某個特定 Red Hat AI 推論 專案之「金鑰管理員」角色的範例指令。

ibmcloud iam user-policy-create name@email.com --roles "Key Manager" --service-name instructlab

以下為賦予使用者該帳戶中所有 Red Hat AI 推論 專案之「撰寫者」角色的範例指令。

ibmcloud iam user-policy-create USER@EXAMPLE.COM --service-name instructlab --roles Writer

以下為範例指令,用於將「管理員」角色指派給該帳戶中所有「Red Hat AI 推論」服務的執行個體。

ibmcloud iam user-policy-create name@example.com --roles Administrator --service-name instructlab

將「檢視者」角色指派給帳戶中所有資源群組的範例指令。

ibmcloud iam user-policy-create name@example.com --roles Viewer --resource-type resource-group

將「檢視者」角色指派給特定資源群組中所有使用者的範例指令。

ibmcloud iam user-policy-create name@example.com --roles Viewer --resource-type resource-group

以下為賦予資源群組「管理員」角色的範例指令。

ibmcloud iam service-policy-create test --roles Administrator --resource-group-name sample-resource-group

使用 API 為 Red Hat AI 推論 指派使用者存取權限

有關指派、撤銷及檢視存取權限的逐步操作說明,請參閱 使用 API 授予資源存取權限建立政策 API 文件。 下表中所列的角色雲端資源名稱(CRN)用於透過 API 授予存取權限。

請將服務名稱設定為「instructlab」,並參閱「角色 CRN 值」表格,以確保您為該角色使用的是正確的值。 請檢視以下角色 CRN 清單。

IAM 角色的 CRN
角色 CRN
讀者 crn:v1:bluemix:public:iam::::serviceRole:Reader
撰寫者 crn:v1:bluemix:public:iam::::serviceRole:Writer
管理員 crn:v1:bluemix:public:iam::::serviceRole:Manager
檢視者 crn:v1:bluemix:public:iam::::role:Viewer
操作員 crn:v1:bluemix:public:iam::::role:Operator
編輯者 crn:v1:bluemix:public:iam::::role:Editor
管理者 crn:v1:bluemix:public:iam::::role:Administrator
服務配置器讀取器 crn:v1:bluemix:public:iam::::role:ConfigReader
金鑰管理員 crn:v1:bluemix:public:resource-controller::::role:KeyManager

以下範例將「Writer」角色指派給 instructlab

curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{
  "type": "access",
  "description": "Writer role for InstructLab",
  "subjects": [
    {
      "attributes": [
        {
          "name": "iam_id",
          "value": "IBMid-123453user"
        }
      ]
    }'
  ],
  "roles":[
    {
      "role_id": "crn:v1:bluemix:public:iam::::serviceRole:Writer"
    }
  ],
  "resources":[
    {
      "attributes": [
        {
          "name": "accountId",
          "value": "$ACCOUNT_ID"
        },
        {
          "name": "serviceName",
          "value": "instructlab"
        }
      ]
    }
  ]
}

{{../iam/iam-mng-access.md#access-resources-api}}

{{../iam/iam-mng-access.md#access-resourcegroups-api}}