Modelle teilen

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

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 dadurch freigeben, dass Sie ihnen die Modellnutzerrolle zuweisen.

Rollentitel Rollenname Leistungsspektrum
AI Platform Prediction-Modellinhaber

roles/ml.modelOwner

Voller Zugriff auf das Modell und seine Versionen. Diese Rolle wird dem Nutzer, der das Modell erstellt, automatisch zugewiesen.

AI Platform Prediction-Modellnutzer

roles/ml.modelUser

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 dadurch bearbeiten, dass Sie Personen und Dienstkonten Modellinhaber- oder Modellnutzerrollen zuweisen. Sie können die Richtliniendatei mithilfe der API gcloud oder der Cloud Console bearbeiten.

Console

Modell für einen Nutzer oder ein Dienstkonto freigeben

  1. Öffnen Sie die Seite "AI Platform Prediction-Modelle".

    Seite "AI Platform Prediction-Modelle" öffnen

  2. Klicken Sie das Kästchen neben jedem Modell an, das Sie freigeben möchten.

  3. Klicken Sie oben rechts auf Infofeld anzeigen, um den Tab Berechtigungen einzublenden.

  4. 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".

  5. 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.

  6. Klicken Sie neben der Drop-down-Liste Rolle auswählen auf die Schaltfläche Hinzufügen, um Ihre Rollenauswahl abzuschließen.

  7. Die Seite der Cloud Console wird aktualisiert und auf dem Tab Berechtigungen sehen Sie die zugewiesenen Rollen mit einer Liste der mit der Rolle verknüpften Mitglieder.

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.

  1. 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
    
  2. Öffnen Sie die Richtliniendatei (in diesem Beispiel iam.json) oder führen Sie cat 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=",
     }
    
  3. Aktualisieren Sie die Datei iam.json auf folgende Weise mit einem Texteditor. Fügen Sie dem Array ein neues Objekt bindings hinzu, mit dem die Gruppenmitglieder und die Rolle für diese Mitglieder definiert werden. Wenn Sie zum Beispiel dem Nutzer email2@gmail.com die Rolle roles/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=",
     }
    
  4. Aktualisieren Sie die Richtlinie des Projekts mit dem folgenden Befehl:

    gcloud ai-platform models set-iam-policy <MODEL_NAME> iam.json
    
  5. 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

  1. 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

  1. 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

  1. 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 Modellinhaber email1@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

  1. 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"
              ]
          }
          ]
       }
    
  2. 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"
                   ]
               }
               ]
           }
        }
    
  1. So erhalten Sie ein Zugriffstoken:

    gcloud auth print-access-token
    
  2. 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