Mengelola akses ke instance notebook terkelola

Panduan ini menjelaskan cara memberikan akses ke instance notebook terkelola tertentu Vertex AI Workbench. Untuk mengelola akses ke resource Vertex AI, lihat halaman Vertex AI tentang kontrol akses.

Anda dapat memberikan akses ke instance notebook terkelola dengan menetapkan kebijakan Identity and Access Management (IAM) ke instance tersebut. Kebijakan ini mengikat satu atau beberapa akun utama, seperti akun layanan atau pengguna, ke satu atau beberapa peran. Setiap peran berisi daftar izin yang memungkinkan akun utama untuk berinteraksi dengan instance tersebut.

Anda dapat memberikan akses ke instance, bukan ke resource induk seperti project, folder, atau organisasi, untuk menjalankan prinsip hak istimewa terendah.

Jika Anda memberikan akses ke resource induk (misalnya, ke sebuah project), Anda secara implisit akan memberikan akses ke semua resource turunannya (misalnya, ke semua instance di dalam proyek tersebut). Untuk membatasi akses ke resource, tetapkan kebijakan IAM ke resource yang levelnya lebih rendah jika memungkinkan, bukan di level project atau di atasnya.

Untuk mengetahui informasi umum tentang cara memberikan, mengubah, dan mencabut akses ke resource yang tidak terkait dengan Vertex AI Workbench, misalnya, untuk memberikan akses ke project Google Cloud, lihat dokumentasi IAM untuk Memberikan, mengubah, dan mencabut akses ke resource.

Batasan akses

Akses ke instance dapat mencakup berbagai macam kemampuan, bergantung pada peran yang Anda tetapkan pada akun utama. Misalnya, Anda dapat memberi akun utama kemampuan untuk memulai, menghentikan, mengupgrade, dan memantau status kondisi instance. Untuk mengetahui daftar lengkap izin IAM yang tersedia, lihat Peran IAM notebook terkelola yang telah ditetapkan.

Namun, akses penuh ke instance notebook terkelola yang diberikan kepada akun utama tidak serta-merta memberikan kemampuan untuk menggunakan antarmuka JupyterLab instance. Untuk memberikan akses ke antarmuka JupyterLab, lihat Mengelola akses ke antarmuka JupyterLab instance notebook terkelola.

Memberikan akses ke instance notebook terkelola

Untuk memberi pengguna izin mengakses instance notebook terkelola tertentu, tetapkan kebijakan IAM ke instance.

Untuk memberikan peran ke akun utama pada instance notebook terkelola, gunakan metode getIamPolicy untuk mengambil kebijakan saat ini, edit akses kebijakan saat ini, lalu gunakan metode setIamPolicy untuk memperbarui kebijakan pada instance.

Mengambil kebijakan saat ini

Sebelum menggunakan data permintaan mana pun, lakukan penggantian berikut:

  • INSTANCE_NAME: Nama instance notebook terkelola Anda

Metode HTTP dan URL:

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

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Jalankan perintah berikut:

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

PowerShell

Jalankan perintah berikut:

$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
Responsnya adalah teks dari kebijakan IAM instance Anda. Lihat contoh berikut ini.
{
  "bindings": [
    {
      "role": "roles/notebooks.viewer",
      "members": [
        "user:email@example.com"
      ]
    }
  ],
  "etag": "BwWWja0YfJA=",
  "version": 3
}

Mengedit kebijakan

Edit kebijakan menggunakan editor teks untuk menambahkan atau menghapus akun utama dan peran yang terkait. Misalnya, untuk memberikan peran notebooks.admin kepada eve@example.com, tambahkan binding yang baru berikut ini ke kebijakan yang berada di dalam bagian "bindings":

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

Setelah menambahkan binding yang baru, kebijakan mungkin akan terlihat seperti berikut:

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

Memperbarui kebijakan pada instance

Dalam isi permintaan, berikan kebijakan IAM yang telah diperbarui dari langkah sebelumnya, yang disusun secara bertingkat di dalam bagian "policy".

Sebelum menggunakan data permintaan mana pun, lakukan penggantian berikut:

  • INSTANCE_NAME: Nama instance notebook terkelola Anda

Metode HTTP dan URL:

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

Isi JSON permintaan:

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

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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

Anda akan menerima kode status yang berhasil (2xx), serta respons yang kosong.

Memberikan akses ke antarmuka JupyterLab

Akses ke instance notebook terkelola yang diberikan kepada akun utama tidak mencakup kemampuan untuk menggunakan antarmuka JupyterLab instance. Untuk memberikan akses ke antarmuka JupyterLab, lihat Mengelola akses ke antarmuka JupyterLab instance notebook terkelola.

Langkah selanjutnya