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:
- Erstellen Sie eine Modellversion, die einen benutzerdefinierten Container nutzt.
- Erstellen Sie eine Modellversion, die eine benutzerdefinierte Vorhersageroutine nutzt.
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.
Dienst-Agent
Standardmäßig verwendet AI Platform Prediction einen Dienstagenten, um Onlinevorhersagen aus Modellversionen bereitzustellen, die keine benutzerdefinierten Container verwenden. Dieser Dienst-Agent 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.
Suchen Sie das entsprechende Dienstkonto für Ihr Projekt in der Google Cloud Console oder mithilfe der Google Cloud CLI:
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite IAM auf, wählen Sie Von Google bereitgestellte Rollenzuweisungen hinzufügen aus und suchen Sie das Hauptkonto, das mit dem E-Mail-Adressformat übereinstimmt, wie im vorherigen Abschnitt beschrieben. Das Dienstkonto hat auch den Namen Google Cloud ML Engine Service Agent
.
gcloud
Führen Sie den folgenden Befehl in einer Shell-Umgebung aus, in der Sie die gcloud CLI 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 AI Platform-Dienst-Agents Ihres Projekts.
Dieses Dienstkonto hat 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 den AI Platform-Dienst-Agent 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 Dienst-Agents.
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:
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.
Wenn sich das nutzerverwaltete Dienstkonto in einem anderen Projekt als Ihre Modellversionen befindet, konfigurieren Sie das nutzerverwaltete Dienstkonto, damit Sie es an Ihren Modellversionen anhängen können.
Weisen Sie dem AI Platform-Dienst-Agent Ihres Projekts die Rolle „Dienstkontoadministrator“ (
roles/iam.serviceAccountAdmin
) für Ihr neues benutzerdefiniertes Dienstkonto zu. Verwenden Sie dazu die gcloud CLI, 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 einen benutzerdefinierten Vorhersageablauf verwenden muss.
Wenn Sie mit der gcloud CLI 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:
- VERSION ist ein Name für die Modellversion.
- CUSTOM_SERVICE_ACCOUNT ist die E-Mail-Adresse des nutzerverwalteten Dienstkontos, das Sie in einem vorherigen Abschnitt dieses Leitfadens eingerichtet haben.
- ... sind weitere Optionen für die Modellversion.
Nächste Schritte
Modellversion erstellen, in der ein benutzerdefinierter Container genutzt wird
Modellversion erstellen, in der eine benutzerdefinierte Vorhersageroutine genutzt wird