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, concedi l'accesso al modello e alle sue versioni.

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

  • Proprietario modello di previsione AI Platform
  • Utente modello di previsione AI Platform

Per maggiori dettagli 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 Proprietario modello di previsione di AI Platform e Utente modello concedono autorizzazioni diverse a una determinata risorsa del modello.

Puoi condividere i modelli con privati o servizi assegnando loro il ruolo Utente modello.

Titolo del ruolo Nome ruolo Funzionalità
Proprietario modello di previsione AI Platform

roles/ml.modelOwner

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

Utente modello di previsione AI Platform

roles/ml.modelUser

Autorizzazioni per leggere il modello e le relative versioni e utilizzarle per la previsione. L'assegnazione di questo ruolo semplifica la condivisione di modelli specifici.

Concessione dell'accesso a un modello a privati e account di servizio

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

Console

Condividere un modello con un account utente o di servizio

  1. Apri la pagina dei modelli di previsione di AI Platform.

    Apri la pagina dei modelli di previsione di AI Platform

  2. Seleziona la casella di controllo in corrispondenza di 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 a discesa Seleziona un ruolo, scegli il ruolo che vuoi aggiungere per gli utenti. Per condividere una risorsa del modello, seleziona Proprietario modello ML Engine o Utente modello ML Engine.

    Se hai dubbi su quale ruolo selezionare, consulta ulteriori dettagli sui ruoli modello.

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

  7. La pagina della console Google Cloud si aggiorna e mostra i ruoli che hai assegnato nella scheda Autorizzazioni, con un elenco dei 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 dei criteri

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

  1. Ottieni 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 del criterio (iam.json in questo esempio) o esegui cat iam.json per visualizzare il criterio. Nel criterio di esempio seguente, all'account di servizio viene assegnato il ruolo Proprietario modello di previsione AI Platform in modo da poter accedere alla previsione online.

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

     {
        "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 il criterio del progetto eseguendo questo 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=
    

Modificare un criterio con i comandi di associazione di criteri

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 di AI Platform Prediction esistente, come indicato di seguito:

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

    Il comando restituisce il 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 di 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 restituisce il 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 di 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 restituisce il 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 del criterio tramite l'API JSON

  1. Per recuperare 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 la norma, aggiornala 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 di connessione in un'intestazione di autorizzazione:

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