AI Platform Prediction verwendet die Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM), um den Zugriff auf Ressourcen zu verwalten. Wenn Sie Zugriff auf eine Ressource gewähren möchten, weisen Sie einem Nutzer, einer Gruppe oder einem Dienstkonto mindestens eine Rolle zu. Durch das Zuweisen einer Rolle, die Zugriff auf ein Modell und seine Versionen gewährt, geben Sie das Modell frei.
Der Schwerpunkt dieses Leitfadens liegt auf zwei vordefinierten Rollen für AI Platform Prediction, mit denen Zugriff auf Modellressourcen gewährt werden kann:
- AI Platform Prediction-Modellinhaber
- AI Platform Prediction-Modellnutzer
Weitere Informationen zu anderen Rollen finden Sie in der vollständigen Erläuterung aller IAM-Rollen, die für AI Platform Prediction verfügbar sind.
Vorbereitung
- Trainieren Sie Ihr Modell für maschinelles Lernen.
- Stellen Sie Ihr Modell für AI Platform Prediction bereit.
Modellrollen
Die Rollen für AI Platform Prediction-Modellinhaber und -Modellnutzer gewähren einer bestimmten Modellressource unterschiedliche Berechtigungen.
Sie können Modelle für Einzelpersonen oder Dienste freigeben, indem Sie ihnen die Modellnutzerrolle zuweisen.
Rollentitel | Rollenname | Leistungsspektrum |
---|---|---|
AI Platform Prediction-Modellinhaber |
Voller Zugriff auf das Modell und seine Versionen. Diese Rolle wird dem Nutzer, der das Modell erstellt, automatisch zugewiesen. |
|
AI Platform Prediction-Modellnutzer |
Berechtigungen zum Lesen des Modells und seiner Versionen und deren Nutzung für Vorhersagen. Die Erteilung dieser Rolle macht es einfach, bestimmte Modelle zu teilen. |
Personen und Dienstkonten Zugriff auf ein Modell gewähren
In diesem Beispiel wird gezeigt, wie Sie eine IAM-Richtlinie für ein bestimmtes Modell bearbeiten, indem Sie Personen und Dienstkonten Modellinhaber- oder Modellnutzerrollen zuweisen. Sie können die Richtliniendatei mithilfe der API gcloud
oder der Google Cloud Console bearbeiten.
Console
Modell für einen Nutzer oder ein Dienstkonto freigeben
Öffnen Sie die Seite "AI Platform Prediction-Modelle".
Klicken Sie das Kästchen neben jedem Modell an, das Sie freigeben möchten.
Klicken Sie oben rechts auf Infofeld anzeigen, um den Tab Berechtigungen einzublenden.
Fügen Sie im Feld Mitglieder hinzufügen die Google-Konten für die Nutzer hinzu, für die Sie das Modell freigeben möchten. Zum Beispiel: "email1@gmail.com".
Wählen Sie aus der Drop-down-Liste Rolle auswählen die Rolle aus, die Sie diesem Nutzer zuweisen möchten. Wenn Sie eine Modellressource freigeben möchten, wählen Sie ML Engine-Modellinhaber oder ML Engine-Modellnutzer aus.
Wenn Sie nicht sicher sind, welche Rolle ausgewählt werden soll, finden Sie weitere Informationen unter Modellrollen.
Klicken Sie neben der Drop-down-Liste Rolle auswählen auf die Schaltfläche Hinzufügen, um Ihre Rollenauswahl abzuschließen.
Die Seite der Google Cloud Console wird aktualisiert und zeigt die Rollen, die Sie auf dem Tab Berechtigungen zugewiesen haben, sowie eine Liste der Mitglieder an, die der Rolle zugeordnet sind.
Klicken Sie auf das Papierkorbsymbol neben der Konto-ID, um die Freigabe eines Modells für einen Nutzer oder ein Dienstkonto aufzuheben.
gcloud
Modellrichtlinie durch direkte Bearbeitung der Richtliniendatei ändern
Sie können entweder JSON- oder YAML-Dateien mit den gcloud
-Befehlen verwenden. In diesem Beispiel wird JSON verwendet.
Rufen Sie die Richtlinie ab, die Sie ändern möchten, und schreiben Sie sie in eine JSON-Datei:
gcloud ai-platform models get-iam-policy <MODEL_NAME> --format json > iam.json
Öffnen Sie die Richtliniendatei (in diesem Beispiel
iam.json
) oder führen Siecat iam.json
aus, um die Richtlinie zu sehen. In der folgenden Beispielrichtlinie wird dem Dienstkonto die Rolle des AI Platform Prediction-Modellinhabers zugewiesen, sodass es Zugriff auf die Onlinevorhersage hat.{ "bindings": [ { "role": "roles/ml.modelOwner", "members": [ "serviceAccount:my-other-app@appspot.gserviceaccount.com", "user:email1@gmail.com" ] } ], "etag": "BwVUJYGz8M4=", }
Aktualisieren Sie die Datei
iam.json
auf folgende Weise mit einem Texteditor. Fügen Sie dem Array ein neues Objektbindings
hinzu, mit dem die Gruppenmitglieder und die Rolle für diese Mitglieder definiert werden. Wenn Sie zum Beispiel dem Nutzeremail2@gmail.com
die Rolleroles/ml.modelUser
gewähren möchten, ändern Sie so das oben gezeigte Beispiel:{ "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=", }
Aktualisieren Sie die Richtlinie des Projekts mit dem folgenden Befehl:
gcloud ai-platform models set-iam-policy <MODEL_NAME> iam.json
Der Befehl gibt die aktualisierte Richtlinie in YAML aus:
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=
Richtlinie mit Richtlinienbindungsbefehlen ändern
Verwenden Sie die Befehle add-iam-policy-binding
und remove-iam-policy-binding
, um den Zugriff auf Modelle zu gewähren, zu widerrufen und zu aktualisieren.
Modell für einen Nutzer freigeben
Verwenden Sie den Befehl
add-iam-policy-binding
, um einen Nutzer auf folgende Weise zu einer vorhandenen AI Platform Prediction-Modellrichtlinie hinzuzufügen:gcloud ai-platform models add-iam-policy-binding <MODEL_NAME> \ --member user:email3@gmail.com --role roles/ml.modelUser
Der Befehl gibt die aktualisierte Richtlinie aus:
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=
Modell für einen Dienst freigeben
Verwenden Sie den Befehl
add-iam-policy-binding
, um ein Dienstkonto zu einer vorhandenen AI Platform Prediction-Modellrichtlinie hinzuzufügen. Dazu gehen Sie so vor:gcloud ai-platform models add-iam-policy-binding <MODEL_NAME> \ --member=serviceAccount:newserviceapp@appspot.gserviceaccount.com \ --role=roles/ml.modelOwner
Der Befehl gibt die aktualisierte Richtlinie aus:
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=
Freigabe eines Modells aufheben
Wenn Sie die Freigabe eines Modells für einen Nutzer oder Dienst beenden möchten, verwenden Sie den Befehl
remove-iam-policy-binding
, um den Nutzer oder Dienst aus einer vorhandenen AI Platform Prediction-Modellrichtlinie zu entfernen. In diesem Beispiel entfernen Sie den Modellinhaberemail1@gmail.com
aus der Modellrichtlinie.gcloud ai-platform models remove-iam-policy-binding <MODEL_NAME> \ --member=user:email1@gmail.com \ --role=roles/ml.modelOwner
Der Befehl gibt die aktualisierte Richtlinie aus:
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=
REST API
Richtlinie über JSON API ändern
Rufen Sie die vorhandene Richtlinie ab, indem Sie die folgende Anfrage senden:
GET https://ml.googleapis.com/v1/projects/<project>/models/<model>:getIamPolicy
Durch den Befehl wird in der Antwort die Richtlinie zurückgegeben:
{ "bindings": [ { "role": "roles/ml.modelOwner", "members": [ "serviceAccount:my-other-app@appspot.gserviceaccount.com", "user:email1@gmail.com" ] } ] }
Nachdem Sie die Richtlinie geändert haben, können Sie sie durch Senden der folgenden Anfrage aktualisieren:
POST https://ml.googleapis.com/v1/projects/<project>/models/<model>:setIamPolicy
Der Befehl gibt die aktualisierte Richtlinie in der Antwort zurück: In diesem Beispiel haben wir den Nutzer
email2@gmail.com
als Modellnutzer hinzugefügt:{ "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" ] } ] } }
So erhalten Sie ein Zugriffstoken:
gcloud auth print-access-token
Wenn Sie die API aufrufen, übergeben Sie in einem Autorisierungsheader den Tokenwert als Inhabertoken:
curl -s -H 'Authorization: Bearer <ACCESS_TOKEN>' \ https://ml.googleapis.com/v1/projects/<project>/models/<model>:getIamPolicy