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
- Addestra il tuo modello di machine learning.
- Esegui il deployment del modello in AI Platform Prediction.
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 |
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 |
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
Apri la pagina dei modelli di previsione di AI Platform.
Seleziona la casella di controllo in corrispondenza di ogni modello che vuoi condividere.
Fai clic sul pulsante Mostra riquadro informazioni nell'angolo in alto a destra per visualizzare la scheda Autorizzazioni.
Nel campo Aggiungi membri, aggiungi gli Account Google degli utenti con cui vuoi condividere il modello. Ad esempio, "email1@gmail.com".
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.
Fai clic sul pulsante Aggiungi accanto al campo a discesa Seleziona un ruolo per finalizzare le selezioni dei ruoli.
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.
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
Apri il file del criterio (
iam.json
in questo esempio) o eseguicat 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=", }
Utilizzando un editor di testo, aggiorna il file
iam.json
nel seguente modo. Aggiungi un nuovo oggetto all'arraybindings
che definisce i membri del gruppo e il ruolo per questi membri. Ad esempio, per concedere il ruoloroles/ml.modelUser
all'utenteemail2@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=", }
Aggiorna il criterio del progetto eseguendo questo comando:
gcloud ai-platform models set-iam-policy <MODEL_NAME> iam.json
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
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
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
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 modelloemail1@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
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" ] } ] }
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" ] } ] } }
Per ottenere un token di accesso:
gcloud auth print-access-token
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