Mengelola akses ke instance notebook yang dikelola pengguna

Panduan ini menjelaskan Anda cara untuk memberikan akses ke instance notebook Vertex AI Workbench yang dikelola pengguna. Untuk mengelola akses ke resource Vertex AI, lihat halaman Vertex AI tentang kontrol akses.

Anda dapat memberikan akses ke instance notebook yang dikelola pengguna dengan menetapkan kebijakan Identity and Access Management (IAM) pada instance tersebut. Kebijakan ini mengikat satu atau beberapa akun utama, seperti pengguna atau akun layanan, 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 pada resource level yang 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 mengelola akses ke project, folder, dan organisasi.

Batasan akses

Akses ke instance dapat mencakup berbagai macam kemampuan, bergantung pada peran yang Anda tetapkan pada akun utama. Contohnya, Anda dapat memberi akun utama kemampuan untuk memulai, menghentikan, mengupgrade, dan memantau status kondisi sebuah instance. Untuk mengetahui daftar lengkap IAM permissions available, see Peran IAM notebook yang dikelola pengguna yang telah ditetapkan.

Akan tetapi, bahkan memberikan akses penuh utama ke instance notebook yang dikelola pengguna tidak memberikan pengguna tersebut kemampuan untuk menggunakan antarmuka JupyterLab instance. Untuk memberikan akses ke antarmuka JupyterLab, lihat Mengelola akses ke antarmuka JupyterLab instance notebook yang dikelola pengguna.

Memberikan akses ke instance notebook yang dikelola pengguna

Untuk memberi pengguna izin agar dapat mengakses instance notebook tertentu yang dikelola pengguna, tetapkan kebijakan IAM pada instance tersebut.

gcloud

Untuk memberikan peran ke akun utama pada instance notebook yang dikelola pengguna, gunakan perintah get-iam-policy untuk mengambil kebijakan saat ini, mengedit akses kebijakan saat ini, lalu menggunakan perintah set-iam-policy untuk memperbarui kebijakan pada instance tersebut.

Mengambil kebijakan saat ini

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut ini:

  • INSTANCE_NAME: Nama instance notebook yang dikelola pengguna
  • PROJECT_ID: ID Project Google Cloud Anda
  • ZONE: Zona tempat instance Anda berada

Jalankan perintah berikut:

Linux, macOS, atau Cloud Shell

gcloud notebooks instances get-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE

Windows (PowerShell)

gcloud notebooks instances get-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE

Windows (cmd.exe)

gcloud notebooks instances get-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE
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

  1. Edit kebijakan dengan editor teks untuk menambahkan atau menghapus akun utama dan peran yang terkait. Misalnya, untuk memberikan peran notebooks.admin ke 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
    }
    
  2. Simpan kebijakan yang telah diperbarui dalam file bernama request.json.

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 salah satu data perintah di bawah, lakukan penggantian berikut ini:

  • INSTANCE_NAME: Nama instance notebook yang dikelola pengguna
  • PROJECT_ID: ID Project Google Cloud Anda
  • ZONE: Zona tempat instance Anda berada

Simpan konten berikut ini dalam file yang bernama request.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
  }
}

Jalankan perintah berikut:

Linux, macOS, atau Cloud Shell

gcloud notebooks instances set-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE request.json --format=json

Windows (PowerShell)

gcloud notebooks instances set-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE request.json --format=json

Windows (cmd.exe)

gcloud notebooks instances set-iam-policy INSTANCE_NAME --project=PROJECT_ID --location=ZONE request.json --format=json

Memberikan akses ke antarmuka JupyterLab

Pemberian akses utama ke instance notebook yang dikelola pengguna tidak berarti memberikan untuk menggunakan antarmuka JupyterLab instance. Untuk memberikan akses ke antarmuka JupyterLab, lihat Mengelola akses ke antarmuka JupyterLab instance notebook yang dikelola pengguna.

API

Untuk memberikan peran ke akun utama pada instance notebook yang dikelola pengguna, gunakan metode getIamPolicy untuk mengambil kebijakan saat ini, mengedit akses kebijakan saat ini, lalu menggunakan metode setIamPolicy untuk memperbarui kebijakan pada instance.

Mengambil kebijakan saat ini

Sebelum menggunakan salah satu data permintaan, buat pengganti berikut ini:

  • INSTANCE_NAME: Nama instance notebook yang dikelola pengguna

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 salah satu data permintaan, buat pengganti berikut ini:

  • INSTANCE_NAME: Nama instance notebook yang dikelola pengguna

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

Pemberian akses utama ke instance notebook yang dikelola pengguna tidak berarti memberikan untuk menggunakan antarmuka JupyterLab instance. Untuk memberikan akses ke antarmuka JupyterLab, lihat Mengelola akses ke antarmuka JupyterLab instance notebook yang dikelola pengguna.

Langkah berikutnya