Benutzerdefiniertes Dienstkonto verwenden

Sie können AI Platform Prediction so konfigurieren, dass ein Dienstkonto Ihrer Wahl verwendet wird, wenn benutzerdefinierter Code für Vorhersagen ausgeführt wird. Dabei haben Sie die Möglichkeit, ein benutzerdefiniertes Dienstkonto mit einem der folgenden Schritte auszuführen:

Mit einem benutzerdefinierten Dienstkonto können Sie festlegen, auf welche Google Cloud-Ressourcen Ihr benutzerdefinierter Bereitstellungscode zugreifen darf, ohne dass Sie dem Dienstkonto, das AI Platform Prediction standardmäßig verwendet, zu viele Berechtigungen erteilen müssen.

Der Schwerpunkt der Anleitung liegt auf den Berechtigungen von AI Platform Prediction-Ressourcen für den Zugriff auf andere Google Cloud-Ressourcen. Weitere Informationen zu den Berechtigungen, die Sie benötigen, um auf AI Platform Prediction-Ressourcen zuzugreifen, finden Sie unter Zugriffssteuerung.

Informationen zum von Google verwalteten Dienstkonto

Standardmäßig verwendet AI Platform Prediction ein von Google verwaltetes Dienstkonto, um Onlinevorhersagen aus Modellversionen bereitzustellen, die keine benutzerdefinierten Container verwenden. Dieses Dienstkonto wird durch eine E-Mail-Adresse im folgenden Format identifiziert:

service-PROJECT_NUMBER@cloud-ml.google.com.iam.gserviceaccount.com

PROJECT_NUMBER muss durch die Projektnummer für Ihr Google Cloud-Projekt ersetzt werden.

Ermitteln Sie in der Google Cloud Console oder mit dem gcloud-Befehlszeilentool das entsprechende Dienstkonto für Ihr Projekt:

Cloud Console

Rufen Sie in der Cloud Console die Seite "IAM" auf und ermitteln Sie das Mitglied, das dem zuvor in diesem Abschnitt beschriebenen E-Mail-Adressformat entspricht. Das Dienstkonto hat auch den Namen Google Cloud ML Engine Service Agent.

Zur Seite "IAM"

gcloud

Führen Sie den folgenden Befehl in einer Shell-Umgebung aus, in der Sie das gcloud-Tool initialisiert haben:

gcloud projects get-iam-policy PROJECT_ID \
  --flatten="bindings[].members" \
  --format="table(bindings.members)" \
  --filter="bindings.role:roles/ml.serviceAgent" \
  | grep serviceAccount:

Ersetzen Sie PROJECT_ID durch die ID Ihres Google Cloud-Projekts.

Dieser Befehl gibt Folgendes aus:

serviceAccount:GOOGLE_MANAGED_SERVICE_ACCOUNT

GOOGLE_MANAGED_SERVICE_ACCOUNT ist die E-Mail-Adresse des von Google verwalteten AI Platform-Dienstkontos Ihres Projekts.

Für dieses von Google verwaltete Dienstkonto gelten Berechtigungen, die für die meisten Modellversionen geeignet sind. Beispielsweise kann es aus Cloud Storage-Buckets im selben Google Cloud-Projekt lesen.

Wenn Ihre benutzerdefinierten Vorhersageroutinen mit zusätzlichen Berechtigungen ausgeführt werden sollen, können Sie diesem Dienstkonto weitere Rollen der Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) zuweisen. Beispielsweise haben Sie die Möglichkeit, Zugriff auf Cloud Storage-Buckets in anderen Google Cloud-Projekten zu gewähren.

Standardmäßig in benutzerdefinierten Containern verwendetes Dienstkonto

Wenn Ihre Modellversion einen benutzerdefinierten Container verwendet, wird der Container standardmäßig nicht über das von Google verwaltete Dienstkonto von AI Platform ausgeführt. Stattdessen wird dafür ein Dienstkonto von AI Platform Prediction genutzt. Dieses Dienstkonto hat die Berechtigung Modellartefakte lesen, mit der AI Platform Prediction unter einem in der Umgebungsvariable AIP_STORAGE_URI gespeicherten URI verfügbar gemacht werden kann.

Sie können die Berechtigungen dieses Dienstkontos, die standardmäßig in benutzerdefinierten Containern verwendet werden, nicht ändern. Wenn Sie die für Ihren benutzerdefinierten Container verfügbaren Berechtigungen anpassen möchten, finden Sie in den folgenden Abschnitten Informationen zur Verwendung eines benutzerdefinierten Dienstkontos mit Ihrer Modellversion.

Benutzerdefiniertes Dienstkonto verwenden

Wenn Sie Google Cloud-Berechtigungen für eine bestimmte Modellversion gewähren oder einschränken möchten, verwenden Sie ein benutzerdefiniertes Dienstkonto anstelle des von Google verwalteten Dienstkontos.

Richten Sie dazu als Erstes ein benutzerdefiniertes Dienstkonto ein. Geben Sie dann dieses benutzerdefinierte Dienstkonto an, wenn Sie eine Modellversion erstellen.

Benutzerdefiniertes Dienstkonto einrichten

So richten Sie ein benutzerdefiniertes Dienstkonto ein:

  1. Erstellen Sie ein vom Nutzer verwaltetes Dienstkonto.

  2. Weisen Sie dem neuen Dienstkonto IAM-Rollen zu, um den Code für die Vorhersage mit allen Berechtigungen bereitzustellen, die für die Ausführung erforderlich sind.

  1. Weisen Sie dem von Google verwalteten AI Platform-Dienstkonto Ihres Projekts die Rolle "Dienstkontoadministrator" (roles/iam.serviceAccountAdmin) für Ihr neues benutzerdefiniertes Dienstkonto zu. Verwenden Sie dazu das gcloud-Tool, um den folgenden Befehl auszuführen:

    gcloud iam service-accounts add-iam-policy-binding \
      --role=roles/iam.serviceAccountAdmin \
      --member=serviceAccount:GOOGLE_MANAGED_SERVICE_ACCOUNT \
      CUSTOM_SERVICE_ACCOUNT
    

    Ersetzen Sie in diesem Befehl die folgenden Platzhalter:

    • GOOGLE_MANAGED_SERVICE_ACCOUNT ist die E-Mail-Adresse des Google Cloud ML Engine Service Agent Ihres Projekts. Informationen zum Ermitteln dieser E-Mail-Adresse erhalten Sie in einem vorherigen Abschnitt dieses Leitfadens.

    • CUSTOM_SERVICE_ACCOUNT ist die E-Mail-Adresse des neuen nutzerverwalteten Dienstkontos, das Sie in einem vorherigen Schritt dieses Abschnitts erstellt haben.

Benutzerdefiniertes Dienstkonto für Ihre Modellversion angeben

Um dem Code zur Vorhersagebereitstellung Zugriff auf ein benutzerdefiniertes Dienstkonto zu gewähren, legen Sie beim Erstellen einer Modellversion das Feld serviceAccount fest. Beachten Sie, dass die Modellversion entweder einen benutzerdefinierten Container oder eine benutzerdefinierte Vorhersageroutine nutzen muss.

Wenn Sie mit dem gcloud-Tool eine Modellversion erstellen, können Sie das Flag --service-account mit der Komponente gcloud beta verwenden. Beispiel:

gcloud beta ai-platform versions create VERSION \
  --service-account CUSTOM_SERVICE_ACCOUNT \
  ...

Dabei gilt:

Nächste Schritte