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 modello di previsione AI Platform

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 Proprietario del modello e Utente modello di AI Platform Prediction concedono autorizzazioni per una determinata risorsa del modello.

Puoi condividere i modelli con privati o servizi concedendo loro il ruolo Utenti del 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 automaticamente concessi 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 la concessione dei ruoli Proprietario del modello o Utente modello a individui e servizi . 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 visualizza 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 sul 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 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 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 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=
    

Modifica di un criterio con i comandi di associazione dei criteri

Utilizza 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 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=
    

Condividi 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 la remove-iam-policy-binding per rimuovere l'utente o il servizio da un il 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 attuale nella risposta:

       {
          "bindings": [
          {
              "role": "roles/ml.modelOwner",
              "members": [
                  "serviceAccount:my-other-app@appspot.gserviceaccount.com",
                  "user:email1@gmail.com"
              ]
          }
          ]
       }
    
  2. Una volta modificate le norme, aggiornale inviando quanto segue 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 accesso in un'intestazione Authorization:

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