Berbagi 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 Anda dan versinya.

Panduan ini berfokus pada dua peran Prediksi AI Platform yang telah ditetapkan yang dapat digunakan untuk memberikan akses ke resource model:

  • Pemilik Model Prediksi AI Platform
  • Pengguna Model Prediksi AI Platform

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 Prediksi AI Platform dan Pengguna Model memberikan berbagai izin ke resource model tertentu.

Anda dapat berbagi model dengan individu atau layanan dengan memberi mereka peran Pengguna Model.

Nama Peran Nama Peran Kapabilitas
Pemilik Model Prediksi AI Platform

roles/ml.modelOwner

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

Pengguna Model Prediksi AI Platform

roles/ml.modelUser

Izin untuk membaca model dan versinya, serta menggunakannya untuk prediksi. Memberikan peran ini akan memudahkan Anda membagikan 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

Berbagi model dengan pengguna atau akun layanan

  1. Buka halaman AI Platform Prediction Models.

    Buka halaman model Prediksi AI Platform

  2. Pilih kotak centang untuk setiap model yang ingin Anda bagikan.

  3. Klik tombol Show Info Panel di pojok kanan atas untuk menampilkan tab Permissions.

  4. Di kolom Add Member, 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 Pemilik Model ML Engine atau Pengguna Model ML Engine.

    Jika 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 pemilihan peran.

  7. Halaman konsol Google Cloud akan dimuat ulang dan menampilkan peran yang telah Anda tetapkan di tab Izin dengan daftar anggota yang terkait dengan peran tersebut.

Untuk berhenti berbagi model dengan pengguna atau akun layanan, klik ikon tempat sampah di samping ID akun.

gcloud

Memodifikasi 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, dan tuliskan 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. Pada contoh kebijakan berikut, akun layanan diberi peran Pemilik Model Prediksi AI Platform 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, update file iam.json Anda seperti 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 ini menghasilkan kebijakan yang 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 Prediksi AI Platform yang sudah 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=
    

Berbagi 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 Prediksi AI Platform yang ada. Dalam contoh ini, kita menghapus email1@gmail.com Pemilik Model 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 tersebut menampilkan kebijakan saat ini sebagai 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 tersebut menampilkan kebijakan yang telah diperbarui dalam respons. Dalam contoh ini, kami 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 pemilik di header Otorisasi:

    curl -s -H 'Authorization: Bearer <ACCESS_TOKEN>' \
        https://ml.googleapis.com/v1/projects/<project>/models/<model>:getIamPolicy