Membagikan model

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

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

roles/ml.modelOwner

Akses penuh ke model dan versinya. Peran ini otomatis diberikan kepada pengguna yang membuat model.

AI Platform Prediction Model User

roles/ml.modelUser

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

  1. Buka halaman Model AI Platform Prediction.

    Buka halaman model AI Platform Prediction

  2. Centang kotak untuk setiap model yang ingin Anda bagikan.

  3. Klik tombol Tampilkan Panel Info di pojok kanan atas untuk menampilkan tab Izin.

  4. Di kolom Tambahkan Anggota, tambahkan Akun Google untuk pengguna yang ingin Anda ajak berbagi model. Misalnya, "email1@gmail.com".

  5. 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.

  6. Klik tombol Tambahkan di samping kolom drop-down Pilih peran untuk menyelesaikan pilihan peran Anda.

  7. 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.

  1. Dapatkan kebijakan yang ingin Anda ubah, lalu tulis ke file JSON.

    gcloud ai-platform models get-iam-policy <MODEL_NAME> --format json > iam.json
    
  2. Buka file kebijakan (iam.json dalam contoh ini), atau jalankan cat 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=",
     }
    
  3. Dengan menggunakan editor teks, perbarui file iam.json Anda sebagai berikut. Tambahkan objek baru ke array bindings yang menentukan anggota grup dan peran untuk anggota tersebut. Misalnya, untuk memberikan peran roles/ml.modelUser kepada pengguna email2@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=",
     }
    
  4. Perbarui kebijakan project dengan menjalankan perintah berikut:

    gcloud ai-platform models set-iam-policy <MODEL_NAME> iam.json
    
  5. 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

  1. 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

  1. 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

  1. 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 Model email1@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

  1. 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"
              ]
          }
          ]
       }
    
  2. 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"
                   ]
               }
               ]
           }
        }
    
  1. Untuk mendapatkan token akses:

    gcloud auth print-access-token
    
  2. 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