管理代管型筆記本執行個體的存取權

本指南說明如何授予特定 Vertex AI Workbench 代管型筆記本執行個體的存取權。如要管理 Vertex AI 資源的存取權,請參閱存取控管的 Vertex AI 頁面

如要授予代管筆記本執行個體存取權,請在執行個體上設定Identity and Access Management (IAM) 政策。這項政策會將一或多個主體 (例如使用者或服務帳戶) 繫結至一或多個角色。每個角色都包含權限清單,可讓主體與執行個體互動。

您可以授予執行個體的存取權,而非專案、資料夾或機構等父項資源的存取權,以實行最低權限原則。

如果您授予父項資源 (例如專案) 的存取權,系統會隱含授予所有子項資源 (例如該專案中的所有執行個體) 的存取權。如要限制資源存取權,請盡可能在較低層級的資源上設定 IAM 政策,而不是在專案層級或以上設定。

如要瞭解如何授予、變更及撤銷與 Vertex AI Workbench 無關的資源存取權 (例如授予 Google Cloud 專案的存取權),請參閱 IAM 說明文件中的「授予、變更及撤銷資源的存取權」。

存取限制

視您指派給主體的角色而定,執行個體存取權可能包含各種能力。舉例來說,您可以授予主體啟動、停止、升級及監控執行個體健康狀態的權限。如需可用的完整 IAM 權限清單,請參閱預先定義的受管理 Notebooks IAM 角色

不過,即使授予主體對代管筆記本執行個體的完整存取權,也不代表主體可以使用執行個體的 JupyterLab 介面。如要授予 JupyterLab 介面的存取權,請參閱「管理 JupyterLab 介面的存取權」。

授予代管型筆記本執行個體存取權

如要授予使用者存取特定受管理筆記本執行個體的權限,請在該執行個體上設定 IAM 政策

如要將角色授予代管 Notebooks 執行個體的主體,請使用 getIamPolicy 方法擷取目前的政策,編輯目前政策的存取權,然後使用 setIamPolicy 方法更新執行個體上的政策。

擷取目前的政策

使用任何要求資料之前,請先替換以下項目:

  • INSTANCE_NAME:受管理筆記本執行個體的名稱

HTTP 方法和網址:

GET https://notebooks.googleapis.com/v1/INSTANCE_NAME:getIamPolicy

如要傳送要求,請選擇以下其中一個選項:

curl

執行下列指令:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://notebooks.googleapis.com/v1/INSTANCE_NAME:getIamPolicy"

PowerShell

執行下列指令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://notebooks.googleapis.com/v1/INSTANCE_NAME:getIamPolicy" | Select-Object -Expand Content
回應是執行個體 IAM 政策的文字。 請參閱以下範例。
{
  "bindings": [
    {
      "role": "roles/notebooks.viewer",
      "members": [
        "user:email@example.com"
      ]
    }
  ],
  "etag": "BwWWja0YfJA=",
  "version": 3
}

編輯政策

使用文字編輯器編輯政策,新增或移除主體及其相關聯的角色。舉例來說,如要將 notebooks.admin 角色授予 eve@example.com,請在 "bindings" 區段中,將下列新繫結新增至政策:

{
  "role": "roles/notebooks.admin",
  "members": [
    "user:eve@example.com"
  ]
}

新增繫結後,政策可能如下所示:

{
  "bindings": [
    {
      "role": "roles/notebooks.viewer",
      "members": [
        "user:email@example.com"
      ]
    },
    {
      "role": "roles/notebooks.admin",
      "members": [
        "user:eve@example.com"
      ]
    }
  ],
  "etag": "BwWWja0YfJA=",
  "version": 3
}

更新執行個體上的政策

在要求主體中,提供上一步更新的 IAM 政策,並將其巢狀內嵌於 "policy" 區段中。

使用任何要求資料之前,請先替換以下項目:

  • INSTANCE_NAME:受管理筆記本執行個體的名稱

HTTP 方法和網址:

POST https://notebooks.googleapis.com/v1/INSTANCE_NAME:setIamPolicy

JSON 要求主體:

{
  "policy": {
    "bindings": [
      {
        "role": "roles/notebooks.viewer",
        "members": [
          "user:email@example.com"
        ]
      },
      {
        "role": "roles/notebooks.admin",
        "members": [
          "user:eve@example.com"
        ]
      }
    ],
    "etag": "BwWWja0YfJA=",
    "version": 3
  }
}

如要傳送要求,請選擇以下其中一個選項:

curl

將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://notebooks.googleapis.com/v1/INSTANCE_NAME:setIamPolicy"

PowerShell

將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://notebooks.googleapis.com/v1/INSTANCE_NAME:setIamPolicy" | Select-Object -Expand Content

您應該會收到執行成功的狀態碼 (2xx) 和空白回應。

授予 JupyterLab 介面存取權

授予主體代管筆記本執行個體的存取權,並不會授予使用執行個體 JupyterLab 介面的權限。如要授予 JupyterLab 介面的存取權,請參閱「管理 JupyterLab 介面的存取權」。

後續步驟