Halaman ini membahas cara mengontrol akses ke endpoint Vertex AI dengan menetapkan kebijakan IAM ke endpoint tersebut. Anda dianggap sudah memahami konsep IAM seperti kebijakan, peran, izin, dan akun utama seperti yang dijelaskan dalam Kontrol akses Vertex AI dengan IAM dan Konsep yang terkait dengan pengelolaan akses.
Kebijakan IAM mencakup satu atau beberapa binding peran yang menentukan peran IAM mana yang terkait dengan akun utama tertentu. Peran adalah kumpulan izin yang Anda berikan kepada akun utama. Vertex AI menyediakan peran bawaan yang dapat digunakan dalam kebijakan Anda. Anda juga dapat membuat peran khusus sendiri.
Mendapatkan kebijakan IAM
Anda dapat melihat kebijakan IAM saat ini di endpoint Vertex AI menggunakan REST API. Untuk melakukannya, Anda harus memiliki izin endpoints.getIamPolicy
di endpoint atau project itu.
Peran Administrator Vertex AI (roles/aiplatform.admin
) memberikan izin ini.
REST
Untuk mendapatkan kebijakan IAM dari sebuah resource, kirim permintaan POST
yang menggunakan metode getIamPolicy
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION_ID: Region tempat endpoint berada, misalnya,
us-central1
. - PROJECT_ID: ID project Google Cloud Anda.
- ENDPOINT_ID: ID untuk endpoint.
Metode HTTP dan URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:getIamPolicy
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:getIamPolicy"
PowerShell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:getIamPolicy" | Select-Object -Expand Content
Anda akan menerima respons JSON yang berisi kebijakan IAM saat ini:
{ "version": 1, "etag": "BwXTmICm7mI", "bindings": [ { "role": "roles/aiplatform.user", "members": [ "user:example@example.com" ] } ] }
Menetapkan kebijakan IAM
Anda dapat menetapkan kebijakan IAM pada endpoint menggunakan REST API.
Untuk melakukannya, Anda harus memiliki izin endpoints.setIamPolicy
di endpoint atau project itu.
Peran Administrator Vertex AI (roles/aiplatform.admin
) memberikan izin ini.
REST
Untuk menetapkan kebijakan IAM pada sebuah resource, kirim permintaan POST
yang menggunakan metode setIamPolicy
.
Menetapkan kebijakan IAM akan mengabaikan semua kebijakan yang sudah ada; perubahan tidak ditambahkan. Untuk mengubah kebijakan yang ada di sebuah resource, gunakan metode getIamPolicy
untuk mendapatkan kebijakannya yang ada, lalu lakukan modifikasi. Sertakan kebijakan yang telah diubah beserta etag
dalam permintaan setIamPolicy
Anda.
Jika Anda menerima kode error 409
, berarti permintaan setIamPolicy
serentak telah memperbarui kebijakan.
Gunakan metode getIamPolicy
untuk mendapatkan etag
kebijakan yang telah diperbarui, lalu coba lagi permintaan setIamPolicy
dengan etag
baru.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION_ID: Region tempat endpoint berada, misalnya,
us-central1
. - PROJECT_ID: ID project Google Cloud Anda.
- ENDPOINT_ID: ID untuk endpoint.
- ROLE: Peran IAM yang mencakup izin yang akan diberikan, seperti
roles/aiplatform.user
. - PRINCIPAL: Akun utama yang diberi izin peran, seperti
user:myuser@example.com
. - ETAG: Nilai string yang digunakan untuk mencegah pembaruan kebijakan secara bersamaan agar tidak menimpa satu sama lain. Nilai ini ditampilkan sebagai bagian dari respons
getIamPolicy
.
Metode HTTP dan URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:setIamPolicy
Isi JSON permintaan:
{ "policy": { "bindings": [ { "role": "ROLE", "members": [ "PRINCIPAL" ] }, ... ], "etag": "ETAG" } }
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://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID: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://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:setIamPolicy" | Select-Object -Expand Content
Anda akan menerima respons JSON yang berisi kebijakan IAM saat ini:
{ "version": 1, "etag": "BwXTmICm7mI", "bindings": [ { "role": "roles/aiplatform.user", "members": [ "user:example@example.com" ] } ] }
Memverifikasi izin IAM pengguna untuk endpoint
Anda dapat memverifikasi apakah pengguna yang saat ini terautentikasi memiliki izin IAM tertentu untuk sebuah endpoint atau tidak.
REST
Untuk memverifikasi apakah pengguna memiliki izin IAM tertentu untuk resource, kirim permintaan POST
yang menggunakan metode testIamPermissions
.
Contoh berikut memungkinkan Anda menguji apakah pengguna yang saat ini terautentikasi memiliki sekumpulan izin IAM untuk sebuah endpoint.
Sebelum menggunakan data permintaan mana pun, lakukan penggantian berikut:
- LOCATION_ID: Region tempat endpoint berada, misalnya,
us-central1
. - PROJECT_ID: ID project Google Cloud Anda.
- ENDPOINT_ID: ID untuk endpoint.
Metode HTTP dan URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:testIamPermissions -d
Isi JSON permintaan:
{ "permissions": [ "aiplatform.googleapis.com/aiplatform.endpoints.get", "aiplatform.googleapis.com/aiplatform.endpoints.predict" ] }
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://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:testIamPermissions -d"
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://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:testIamPermissions -d" | Select-Object -Expand Content
{ "permissions": [ "aiplatform.googleapis.com/aiplatform.endpoints.get", "aiplatform.googleapis.com/aiplatform.endpoints.predict" ] }
Langkah selanjutnya
Untuk mempelajari lebih lanjut cara menyiapkan project dengan kontrol akses endpoint yang lebih aman, lihat Menyiapkan project untuk tim.