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
- Addestra il tuo modello di machine learning.
- Esegui il deployment del modello in AI Platform Prediction.
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 |
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 |
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
Apri la pagina Modelli di AI Platform Prediction.
Seleziona la casella di controllo per 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 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.
Fai clic sul pulsante Aggiungi accanto al campo del menu a discesa Seleziona un ruolo per completare le selezioni dei ruoli.
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.
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
Apri il file delle norme (
iam.json
in questo esempio) o eseguicat 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=", }
Con un editor di testo, aggiorna il file
iam.json
come segue. 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 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=", }
Aggiorna le norme del progetto eseguendo il seguente 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=
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
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
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
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 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 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
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" ] } ] }
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" ] } ] } }
Per ottenere un token di accesso:
gcloud auth print-access-token
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