Modelle freigeben

AI Platform verwendet die Identitäts- und Zugriffsverwaltung (IAM) zur Verwaltung des Zugriffs auf Ressourcen. 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.

Im Mittelpunkt dieser Anleitung stehen zwei vordefinierte AI Platform-Rollen, mit denen Zugriff auf Modellressourcen gewährt werden kann:

  • AI Platform-Modellinhaber
  • AI Platform-Modellnutzer

Ausführliche Informationen zu anderen Rollen finden Sie in der vollständigen Erläuterung aller IAM-Rollen, die mit AI Platform verwendet werden können.

Vorbereitung

Modellrollen

Die Rollen "AI Platform-Modellinhaber und -Modellnutzer" gewähren unterschiedliche Berechtigungen auf eine bestimmte Modellressource.

Sie können Modelle für Einzelpersonen oder Dienste freigeben, indem Sie ihnen die Modellnutzerrolle zuweisen.

Rollentitel Rollenname Rechte
AI Platform-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-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 freizugeben.

Modelle freigeben

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 GCP Console bearbeiten.

Konsole

Modell für einen Nutzer oder ein Dienstkonto freigeben

  1. Öffnen Sie die Seite mit den AI Platform-Modellen.

    Zur Seite mit den AI Platform-Modellen

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

  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 anzusehen. In der folgenden Beispielrichtlinie wird dem Dienstkonto die Rolle "AI Platform-Modellinhaber" zugewiesen, damit 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. Verwenden Sie einen Texteditor, um Ihre iam.json-Datei wie beschrieben zu aktualisieren. Fügen Sie dem Array bindings ein neues Objekt hinzu, das die Gruppenmitglieder und die Rolle für diese Mitglieder definiert. Zum Beispiel müssen Sie das oben gezeigte Beispiel so ändern, um dem Nutzer roles/ml.modelUser die Rolle email2@gmail.com zuzuweisen:

     {
        "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 erteilen, zu widerrufen und zu aktualisieren.

Modell für einen Nutzer freigeben

  1. Verwenden Sie den folgenden add-iam-policy-binding-Befehl, um einer vorhandenen AI Platform-Modellrichtlinie einen Nutzer 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 folgenden add-iam-policy-binding-Befehl, um einer vorhandenen AI Platform-Modellrichtlinie ein Dienstkonto hinzuzufügen:

    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. Verwenden Sie den Befehl remove-iam-policy-binding, um einen Nutzer oder Dienst aus einer vorhandenen AI Platform-Modellrichtlinie zu entfernen und damit die Freigabe des Modells an diesen Nutzer oder Dienst aufzuheben. In diesem Beispiel entfernen wir 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=
    

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 Autorisierungs-Header den Tokenwert als Inhabertoken:

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

Weitere Informationen

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...