Condivisione di modelli

AI Platform Prediction utilizza Identity and Access Management (IAM) per gestire l'accesso alle risorse. Per concedere l'accesso a una risorsa, assegna uno o più ruoli a un utente, un gruppo o un account di servizio. Per condividere un modello, devi assegnare un ruolo che consenta l'accesso al modello e alle relative versioni.

Questa guida si concentra su due ruoli predefiniti di AI Platform Prediction che possono essere utilizzati per concedere accesso alle risorse del modello:

  • AI Platform Prediction Model Owner
  • Utente del modello AI Platform Prediction

Per informazioni dettagliate sugli altri ruoli, consulta la spiegazione completa di tutti i ruoli IAM disponibili per l'utilizzo con AI Platform Prediction.

Prima di iniziare

Ruoli modello

I ruoli Model Owner e Model User di AI Platform Prediction concedono autorizzazioni diverse a una determinata risorsa modello.

Puoi condividere i modelli con privati o servizi concedendo loro il ruolo Utenti del modello.

Titolo del ruolo Nome ruolo Funzionalità
AI Platform Prediction Model Owner

roles/ml.modelOwner

Accesso completo al modello e alle relative versioni. Questo ruolo viene assegnato automaticamente all'utente che crea il modello.

Utente del modello AI Platform Prediction

roles/ml.modelUser

Autorizzazioni a leggere il modello e le sue versioni e utilizzarle per la previsione. La concessione di questo ruolo semplifica la condivisione di modelli specifici.

Concedere a privati e account di servizio l'accesso a un modello

Questo esempio mostra come modificare un criterio IAM per un determinato modello assegnando i ruoli Proprietario del modello o Utente del modello a persone e account di servizio. Puoi modificare il file di criteri utilizzando l'API,gcloud o la console Google Cloud.

Console

Condividere un modello con un utente o un account di servizio

  1. Apri la pagina Modelli di AI Platform Prediction.

    Apri la pagina dei modelli di AI Platform Prediction

  2. Seleziona la casella di controllo per ogni modello che vuoi condividere.

  3. Fai clic sul pulsante Mostra riquadro informazioni nell'angolo in alto a destra per visualizzare la scheda Autorizzazioni.

  4. Nel campo Aggiungi membri, aggiungi gli Account Google degli utenti con cui vuoi condividere il modello. Ad esempio, "email1@gmail.com".

  5. Nel campo del menu a discesa Seleziona un ruolo, seleziona il ruolo da aggiungere per gli utenti. Per condividere una risorsa modello, seleziona Proprietario modelli ML Engine o Utente modelli ML Engine.

    Se non sai quale ruolo selezionare, consulta ulteriori dettagli sui ruoli del modello.

  6. Fai clic sul pulsante Aggiungi accanto al campo del menu a discesa Seleziona un ruolo per completare le selezioni dei ruoli.

  7. La pagina della console Google Cloud viene aggiornata e mostra i ruoli che hai assegnato nella scheda Autorizzazioni con un elenco di membri associati al ruolo.

Per interrompere la condivisione di un modello con un account utente o di servizio, fai clic sull'icona del cestino accanto all'ID account.

gcloud

Modificare un criterio del modello modificando direttamente il file del criterio

Puoi utilizzare file JSON o YAML con i comandi gcloud. Questo esempio utilizza JSON.

  1. Recupera il criterio che vuoi modificare e scrivilo in un file JSON.

    gcloud ai-platform models get-iam-policy <MODEL_NAME> --format json > iam.json
    
  2. Apri il file delle norme (iam.json in questo esempio) o esegui cat iam.json per visualizzarle. Nel seguente criterio di esempio, all'account di servizio viene assegnato il ruolo Proprietario del modello di previsione di AI Platform in modo che abbia accesso alla previsione online.

     {
        "bindings": [
        {
            "role": "roles/ml.modelOwner",
            "members": [
                "serviceAccount:my-other-app@appspot.gserviceaccount.com",
                "user:email1@gmail.com"
            ]
        }
        ],
        "etag": "BwVUJYGz8M4=",
     }
    
  3. Con un editor di testo, aggiorna il file iam.json come segue. Aggiungi un nuovo oggetto all'array bindings che definisce i membri del gruppo e il ruolo per questi membri. Ad esempio, per concedere il ruoloroles/ml.modelUser all'utente email2@gmail.com, modifica l'esempio mostrato sopra nel seguente modo:

     {
        "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. Aggiorna le norme del progetto eseguendo il seguente comando:

    gcloud ai-platform models set-iam-policy <MODEL_NAME> iam.json
    
  5. Il comando restituisce il criterio aggiornato in 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=
    

Modifica di un criterio con i comandi di associazione delle norme

Utilizza i comandi add-iam-policy-binding e remove-iam-policy-binding per concedere, revocare e aggiornare l'accesso ai modelli.

Condividere un modello con un utente

  1. Utilizza il comando add-iam-policy-binding per aggiungere un utente a un criterio del modello AI Platform Prediction esistente come segue:

    gcloud ai-platform models add-iam-policy-binding <MODEL_NAME> \
        --member user:email3@gmail.com --role roles/ml.modelUser
    

    Il comando genera l'output del criterio aggiornato:

        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=
    

Condividere un modello con un servizio

  1. Utilizza il comando add-iam-policy-binding per aggiungere un account di servizio a un criterio del modello AI Platform Prediction esistente come segue:

    gcloud ai-platform models add-iam-policy-binding <MODEL_NAME> \
        --member=serviceAccount:newserviceapp@appspot.gserviceaccount.com \
        --role=roles/ml.modelOwner
    

    Il comando genera l'output del criterio aggiornato:

      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=
    

Interrompere la condivisione di un modello

  1. Per interrompere la condivisione di un modello con un utente o un servizio, utilizza il comando remove-iam-policy-binding per rimuovere l'utente o il servizio da un criterio del modello AI Platform Prediction esistente. In questo esempio, rimuoviamo il proprietario del modello email1@gmail.com dal criterio del modello.

    gcloud ai-platform models remove-iam-policy-binding <MODEL_NAME> \
          --member=user:email1@gmail.com \
          --role=roles/ml.modelOwner
    

    Il comando genera l'output del criterio aggiornato:

      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=
    

API REST

Modifica dei criteri tramite l'API JSON

  1. Per ottenere il criterio esistente, invia la seguente richiesta:

    GET https://ml.googleapis.com/v1/projects/<project>/models/<model>:getIamPolicy
    

    Il comando restituisce il criterio corrente nella risposta:

       {
          "bindings": [
          {
              "role": "roles/ml.modelOwner",
              "members": [
                  "serviceAccount:my-other-app@appspot.gserviceaccount.com",
                  "user:email1@gmail.com"
              ]
          }
          ]
       }
    
  2. Dopo aver modificato il criterio, aggiornalo inviando la seguente richiesta:

    POST https://ml.googleapis.com/v1/projects/<project>/models/<model>:setIamPolicy
    

    Il comando restituisce il criterio aggiornato nella risposta. In questo esempio, abbiamo aggiunto l'utente email2@gmail.com come utente modello:

        {
           "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. Per ottenere un token di accesso:

    gcloud auth print-access-token
    
  2. Quando chiami l'API, passa il valore del token come token bearer in un'intestazione Authorization:

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