AI Platform Prediction menggunakan Identity and Access Management (IAM) untuk mengelola akses ke resource. Untuk memberikan akses ke resource, tetapkan satu atau beberapa peran ke pengguna, grup, atau akun layanan. Untuk membagikan model, Anda memberikan peran yang memberikan akses ke model dan versinya.
Panduan ini berfokus pada dua peran AI Platform Prediction yang telah ditentukan sebelumnya yang dapat digunakan untuk memberikan akses ke resource model:
- AI Platform Prediction Model Owner
- AI Platform Prediction Model User
Untuk mengetahui detail tentang peran lainnya, lihat penjelasan lengkap tentang semua peran IAM yang tersedia untuk digunakan dengan AI Platform Prediction.
Sebelum memulai
- Latih model machine learning Anda.
- Deploy model Anda ke AI Platform Prediction.
Peran model
Peran Pemilik Model dan Pengguna Model AI Platform Prediction memberikan izin yang bervariasi ke resource model tertentu.
Anda dapat membagikan model kepada individu atau layanan dengan memberi mereka peran Pengguna Model.
Nama Peran | Nama Peran | Kemampuan |
---|---|---|
AI Platform Prediction Model Owner |
Akses penuh ke model dan versinya. Peran ini otomatis diberikan kepada pengguna yang membuat model. |
|
AI Platform Prediction Model User |
Izin untuk membaca model dan versinya, serta menggunakannya untuk prediksi. Memberikan peran ini akan memudahkan Anda berbagi model tertentu. |
Memberi individu dan akun layanan akses ke model
Contoh ini menunjukkan cara mengedit kebijakan IAM untuk model tertentu dengan
memberikan peran Pemilik Model atau Pengguna Model kepada individu dan akun
layanan. Anda dapat mengedit file kebijakan menggunakan API, gcloud
, atau konsol Google Cloud.
Konsol
Membagikan model dengan akun pengguna atau layanan
Buka halaman Model AI Platform Prediction.
Centang kotak untuk setiap model yang ingin Anda bagikan.
Klik tombol Tampilkan Panel Info di pojok kanan atas untuk menampilkan tab Izin.
Di kolom Tambahkan Anggota, tambahkan Akun Google untuk pengguna yang ingin Anda ajak berbagi model. Misalnya, "email1@gmail.com".
Di kolom drop-down Pilih peran, pilih peran yang ingin Anda tambahkan untuk pengguna. Untuk membagikan resource model, pilih ML Engine Model Owner atau ML Engine Model User.
Jika Anda tidak yakin peran mana yang harus dipilih, lihat detail selengkapnya tentang peran model.
Klik tombol Tambahkan di samping kolom drop-down Pilih peran untuk menyelesaikan pilihan peran Anda.
Halaman konsol Google Cloud akan dimuat ulang dan menampilkan peran yang telah Anda tetapkan di tab Permissions dengan daftar anggota yang terkait dengan peran tersebut.
Untuk berhenti membagikan model dengan akun pengguna atau layanan, klik ikon tempat sampah di samping ID akun.
gcloud
Mengubah kebijakan model dengan mengedit file kebijakan secara langsung
Anda dapat menggunakan file JSON atau YAML dengan perintah gcloud
. Contoh
ini menggunakan JSON.
Dapatkan kebijakan yang ingin Anda ubah, lalu tulis ke file JSON.
gcloud ai-platform models get-iam-policy <MODEL_NAME> --format json > iam.json
Buka file kebijakan (
iam.json
dalam contoh ini), atau jalankancat iam.json
untuk melihat kebijakan. Dalam contoh kebijakan berikut, akun layanan diberi peran Pemilik Model AI Platform Prediction sehingga memiliki akses ke prediksi online.{ "bindings": [ { "role": "roles/ml.modelOwner", "members": [ "serviceAccount:my-other-app@appspot.gserviceaccount.com", "user:email1@gmail.com" ] } ], "etag": "BwVUJYGz8M4=", }
Dengan menggunakan editor teks, perbarui file
iam.json
Anda sebagai berikut. Tambahkan objek baru ke arraybindings
yang menentukan anggota grup dan peran untuk anggota tersebut. Misalnya, untuk memberikan peranroles/ml.modelUser
kepada penggunaemail2@gmail.com
, ubah contoh yang ditampilkan di atas sebagai berikut:{ "bindings": [ { "role": "roles/ml.modelOwner", "members": [ "serviceAccount:my-other-app@appspot.gserviceaccount.com", "user:email1@gmail.com" ] }, { "role": "roles/ml.modelUser", "members": [ "user:email2@gmail.com" ] } ], "etag": "BwVUJYGz8M4=", }
Perbarui kebijakan project dengan menjalankan perintah berikut:
gcloud ai-platform models set-iam-policy <MODEL_NAME> iam.json
Perintah tersebut menghasilkan kebijakan yang telah diperbarui dalam YAML:
bindings: - members: - user:email1@gmail.com - serviceAccount:otherapp@appspot.gserviceaccount.com role: roles/ml.modelOwner - members: - user:email2@gmail.com role: roles/ml.modelUser etag: BwVUJYGz8M4=
Mengubah kebijakan dengan perintah binding kebijakan
Gunakan perintah add-iam-policy-binding
dan remove-iam-policy-binding
untuk memberikan, mencabut, dan memperbarui akses ke model.
Membagikan model kepada pengguna
Gunakan perintah
add-iam-policy-binding
untuk menambahkan pengguna ke kebijakan model AI Platform Prediction yang ada sebagai berikut:gcloud ai-platform models add-iam-policy-binding <MODEL_NAME> \ --member user:email3@gmail.com --role roles/ml.modelUser
Perintah tersebut menghasilkan kebijakan yang telah diperbarui:
bindings: - members: - user:email1@gmail.com - serviceAccount:otherapp@appspot.gserviceaccount.com role: roles/ml.modelOwner - members: - user:email2@gmail.com - user:email3@gmail.com role: roles/ml.modelUser etag: BwVUJYGz8M4=
Membagikan model dengan layanan
Gunakan perintah
add-iam-policy-binding
untuk menambahkan akun layanan ke kebijakan model Prediksi AI Platform yang ada sebagai berikut:gcloud ai-platform models add-iam-policy-binding <MODEL_NAME> \ --member=serviceAccount:newserviceapp@appspot.gserviceaccount.com \ --role=roles/ml.modelOwner
Perintah tersebut menghasilkan kebijakan yang telah diperbarui:
bindings: - members: - user:email1@gmail.com - serviceAccount:otherapp@appspot.gserviceaccount.com - serviceAccount:newserviceapp@appspot.gserviceaccount.com role: roles/ml.modelOwner - members: - user:email2@gmail.com - user:email3@gmail.com role: roles/ml.modelUser etag: BwVUJYGz8M4=
Berhenti membagikan model
Untuk berhenti membagikan model kepada pengguna atau layanan, gunakan perintah
remove-iam-policy-binding
untuk menghapus pengguna atau layanan dari kebijakan model AI Platform Prediction yang ada. Dalam contoh ini, kita menghapus Pemilik Modelemail1@gmail.com
dari kebijakan model.gcloud ai-platform models remove-iam-policy-binding <MODEL_NAME> \ --member=user:email1@gmail.com \ --role=roles/ml.modelOwner
Perintah tersebut menghasilkan kebijakan yang telah diperbarui:
bindings: - members: - serviceAccount:otherapp@appspot.gserviceaccount.com - serviceAccount:newserviceapp@appspot.gserviceaccount.com role: roles/ml.modelOwner - members: - user:email2@gmail.com - user:email3@gmail.com role: roles/ml.modelUser etag: BwVUJYGz8M4=
REST API
Mengubah kebijakan melalui JSON API
Dapatkan kebijakan yang ada dengan mengirim permintaan berikut:
GET https://ml.googleapis.com/v1/projects/<project>/models/<model>:getIamPolicy
Perintah ini menampilkan kebijakan saat ini dalam respons:
{ "bindings": [ { "role": "roles/ml.modelOwner", "members": [ "serviceAccount:my-other-app@appspot.gserviceaccount.com", "user:email1@gmail.com" ] } ] }
Setelah Anda mengubah kebijakan, perbarui dengan mengirimkan permintaan berikut:
POST https://ml.googleapis.com/v1/projects/<project>/models/<model>:setIamPolicy
Perintah ini menampilkan kebijakan yang telah diperbarui dalam respons. Dalam contoh ini, kita telah menambahkan pengguna
email2@gmail.com
sebagai Pengguna Model:{ "policy": { "bindings": [ { "role": "roles/ml.modelOwner", "members": [ "serviceAccount:my-other-app@appspot.gserviceaccount.com", "user:email1@gmail.com" ] }, { "role": "roles/ml.modelUser", "members": [ "user:email2@gmail.com" ] } ] } }
Untuk mendapatkan token akses:
gcloud auth print-access-token
Saat memanggil API, teruskan nilai token sebagai token pembawa di header Authorization:
curl -s -H 'Authorization: Bearer <ACCESS_TOKEN>' \ https://ml.googleapis.com/v1/projects/<project>/models/<model>:getIamPolicy