Benutzerdefiniertes Dienstkonto verwenden

In diesem Leitfaden wird beschrieben, wie Sie die Gemini Enterprise Agent Platform für die Verwendung eines benutzerdefinierten Dienstkontos in den folgenden Szenarien konfigurieren:

Wann sollte ein benutzerdefiniertes Dienstkonto verwendet werden?

Wenn die Agent Platform ausgeführt wird, agiert sie in der Regel mit den Berechtigungen eines von mehreren Dienstkonten, die Google für Ihr Cloud de Confiance by S3NS -Projekt erstellt und verwaltet. Wenn Sie der Agent Platform in bestimmten Kontexten erweiterten Zugriff auf andere Cloud de Confiance-Dienste gewähren möchten, können Sie den Dienst-Agents der Agent Platform bestimmte Rollen hinzufügen.

Das Anpassen der Berechtigungen von Dienst-Agents bietet jedoch möglicherweise nicht die gewünschte detaillierte Zugriffssteuerung. Typische Anwendungsfälle:

  • Weniger Berechtigungen für Agent Platform-Jobs und ‑Modelle zulassen. Der Standard-Agent Platform-Dienst-Agent hat Zugriff auf BigQuery und Cloud Storage.
  • Unterschiedlichen Jobs Zugriff auf unterschiedliche Ressourcen gewähren. Möglicherweise möchten Sie vielen Nutzern erlauben, Jobs in einem einzelnen Projekt zu starten, aber den Jobs jedes Nutzers nur Zugriff auf eine bestimmte BigQuery-Tabelle oder einen bestimmten Cloud Storage-Bucket gewähren.

Beispielsweise möchten Sie möglicherweise jeden benutzerdefinierten Trainingsjob, den Sie ausführen, individuell anpassen, um Zugriff auf verschiedeneCloud de Confiance -Ressourcen außerhalb Ihres Projekts zu haben.

Darüber hinaus ändern sich durch das Anpassen der Berechtigungen von Dienst-Agents nicht die Berechtigungen eines Containers, mit dem Vorhersagen von einem benutzerdefinierten Model bereitgestellt werden.

Wenn Sie den Zugriff jedes Mal anpassen möchten, wenn Sie ein benutzerdefiniertes Training ausführen, oder um die Berechtigungen des Vorhersagecontainers eines benutzerdefinierten Model anzupassen, müssen Sie ein benutzerdefiniertes Dienstkonto verwenden.

Standardzugriff

In diesem Abschnitt wird der Standardzugriff für benutzerdefinierte Trainings- und Vorhersagecontainer von benutzerdefinierten Model-Ressourcen erläutert. Wenn Sie ein benutzerdefiniertes Dienstkonto verwenden, überschreiben Sie diesen Zugriff für eine bestimmte Ressource vom Typ CustomJob, HyperparameterTuningJob, TrainingPipeline oder DeployedModel.

Trainingscontainer

Wenn Sie einen CustomJob, einen HyperparameterTuningJob oder einen benutzerdefinierten TrainingPipeline erstellen, wird der Trainingscontainer standardmäßig mit dem Dienst-Agenten für benutzerdefinierten Code der Gemini Enterprise Agent Platform IhresCloud de Confiance -Projekts ausgeführt.

Weitere Informationen zum Dienst-Agent für benutzerdefinierten Code der Gemini Enterprise Agent Platform, einschließlich der Möglichkeit, ihm Zugriff auf zusätzliche Cloud de Confiance -Ressourcen zu gewähren.

Vorhersagecontainer

Wenn Sie ein benutzerdefiniertes Model in einem Endpoint bereitstellen, wird der Vorhersagecontainer mit einem von der Agent Platform verwalteten Dienstkonto ausgeführt. Dieses Dienstkonto unterscheidet sich von den Dienst-Agents der Agent Platform.

Das Dienstkonto, das der Vorhersagecontainer standardmäßig verwendet, hat die Berechtigung, Modellartefakte zu lesen, die die Agent Platform unter einem URI bereitstellt, der in der Umgebungsvariable AIP_STORAGE_URI gespeichert ist. Wenn Sie andere Berechtigungen benötigen, ist dafür das Dienstkonto nicht geeignet. Sie können die Berechtigungen des Dienstkontos nicht anpassen.

Benutzerdefiniertes Dienstkonto konfigurieren

In den folgenden Abschnitten wird gezeigt, wie Sie ein benutzerdefiniertes Dienstkonto für die Verwendung mit der Agent Platform einrichten und wie Sie CustomJob, HyperparameterTuningJob, TrainingPipeline oder DeployedModel für die Verwendung des Dienstkontos konfigurieren. Sie können kein benutzerdefiniertes Dienstkonto zum Abrufen von Bildern aus Artifact Registry konfigurieren. Die Gemini Enterprise Agent Platform verwendet das Standarddienstkonto, um Images abzurufen.

Benutzerdefiniertes Dienstkonto einrichten

So richten Sie ein benutzerdefiniertes Dienstkonto ein:

  1. Erstellen Sie ein vom Nutzer verwaltetes Dienstkonto. Das nutzerverwaltete Dienstkonto kann sich im selben Projekt wie Ihre Agent Platform-Ressourcen oder in einem anderen Projekt befinden.

  2. Weisen Sie dem neuen Dienstkonto IAM-Rollen zu, die Zugriff auf die Cloud de Confiance -Dienste und -Ressourcen gewähren, die die Agent Platform für das benutzerdefinierte Training oder die Vorhersage verwenden soll.

  3. Optional: Wenn sich das vom Nutzer verwaltete Dienstkonto in einem anderen Projekt als Ihre Trainingsjobs befindet, müssen Sie dem Agent Platform-Dienst-Agenten des Projekts, in dem Sie die Agent Platform verwenden, die Rolle Service Account Token Creator (roles/iam.serviceAccountTokenCreator) zuweisen.

    gcloud iam service-accounts add-iam-policy-binding \
        --role=roles/iam.serviceAccountTokenCreator \
        --member=serviceAccount:AI_PLATFORM_SERVICE_AGENT \
        CUSTOM_SERVICE_ACCOUNT
    
  4. Optional: Wenn Sie das nutzerverwaltete Dienstkonto auch für Vorhersagen verwenden möchten, müssen Sie dem Agent Platform-Dienst-Agent des Projekts, in dem Sie die Agent Platform verwenden, die Rolle „Dienstkontoadministrator“ (roles/iam.serviceAccountAdmin) zuweisen:

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

    Ersetzen Sie Folgendes:

    • AI_PLATFORM_SERVICE_AGENT: Die E-Mail-Adresse des Dienst-Agents der Agent Platform in Ihrem Projekt im folgenden Format:

      service-PROJECT_NUMBER@gcp-sa-aiplatform.s3ns-system.iam.gserviceaccount.com

      Rufen Sie in der Cloud de Confiance Console die Seite IAM auf, um den Agent Platform-Dienst-Agent zu finden.

      IAM aufrufen

    • CUSTOM_SERVICE_ACCOUNT: Die E-Mail-Adresse des neuen nutzerverwalteten Dienstkontos, das Sie im ersten Schritt dieses Abschnitts erstellt haben.

Benutzerdefiniertes Dienstkonto für Agent Platform-Ressourcen angeben

Der Vorgang, bei dem die Agent Platform so konfiguriert wird, dass ein bestimmtes Dienstkonto für eine Ressource verwendet wird, wird als Anhängen des Dienstkontos an die Ressource bezeichnet. In den folgenden Abschnitten wird beschrieben, wie Sie das im vorherigen Abschnitt erstellte Dienstkonto an mehrere Agent Platform-Ressourcen anhängen.

Dienstkonto an eine benutzerdefinierte Trainingsressource anhängen

Wenn Sie die Agent Platform so konfigurieren möchten, dass Ihr neues Dienstkonto während des benutzerdefinierten Trainings verwendet wird, geben Sie beim Starten des benutzerdefinierten Trainings die E-Mail-Adresse des Dienstkontos im Feld serviceAccount einer CustomJobSpec-Nachricht an. Abhängig vom Typ der benutzerdefinierten Trainingsressource, die Sie erstellen, unterscheidet sich die Platzierung dieses Felds in der API-Anfrage:

  • Wenn Sie einen CustomJob erstellen, geben Sie die E-Mail-Adresse des Dienstkontos in CustomJob.jobSpec.serviceAccount an.

    Weitere Informationen erhalten Sie im Abschnitt über das Erstellen eines CustomJob.

  • Wenn Sie einen HyperparameterTuningJob erstellen, geben Sie die E-Mail-Adresse des Dienstkontos in HyperparameterTuningJob.trialJobSpec.serviceAccount an.

    Weitere Informationen im Abschnitt über das Erstellen eines HyperparameterTuningJob.

  • Wenn Sie eine benutzerdefinierte TrainingPipeline ohne Hyperparameter-Abstimmung erstellen, geben Sie die E-Mail-Adresse des Dienstkontos in TrainingPipeline.trainingTaskInputs.serviceAccount an.

  • Wenn Sie eine benutzerdefinierte TrainingPipeline mit Hyperparameter-Abstimmung erstellen, geben Sie die E-Mail-Adresse des Dienstkontos in TrainingPipeline.trainingTaskInputs.trialJobSpec.serviceAccount an.

Dienstkonto an einen Container für Onlinevorhersagen anhängen

Um einen Vorhersagecontainer für ein benutzerdefiniertes Model für die Verwendung Ihres neuen Dienstkontos zu konfigurieren, geben Sie die E-Mail-Adresse des Dienstkontos an, wenn Sie das Model für einen Endpoint bereitstellen:

Console

Folgen Sie den Erläuterungen unter Modell mit derCloud de Confiance Console bereitstellen. Beim Festlegen von Modelleinstellungen wählen Sie das Dienstkonto in der Drop-down-Liste Dienstkonto aus.

gcloud

Folgen Sie den Erläuterungen unter Modell mit der Agent Platform API bereitstellen. Verwenden Sie beim Ausführen des Befehls gcloud ai endpoints deploy-model das Flag --service-account, um die E-Mail-Adresse Ihres Dienstkontos anzugeben.

Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

  • ENDPOINT_ID: Die ID des Endpunkts.
  • LOCATION_ID: Die Region, in der Sie die Agent Platform verwenden.
  • MODEL_ID: Die ID des bereitzustellenden Modells.
  • DEPLOYED_MODEL_NAME: Ein Name für DeployedModel. Sie können auch den Anzeigenamen von Model für DeployedModel verwenden.
  • MACHINE_TYPE: Optional. Die für jeden Knoten dieser Bereitstellung verwendeten Maschinenressourcen. Die Standardeinstellung ist n1-standard-2. Weitere Informationen zu Maschinentypen.
  • MIN_REPLICA_COUNT: Die minimale Anzahl von Knoten für diese Bereitstellung. Die Knotenzahl kann je nach Inferenzlast erhöht oder verringert werden, bis zur maximalen Anzahl von Knoten und niemals auf weniger als diese Anzahl von Knoten.
  • MAX_REPLICA_COUNT: Die maximale Anzahl von Knoten für diese Bereitstellung. Die Knotenanzahl kann je nach Inferenzlast erhöht oder verringert werden, bis zu dieser Knotenanzahl und niemals weniger als die Mindestanzahl von Knoten.
  • CUSTOM_SERVICE_ACCOUNT: Die E-Mail-Adresse des Dienstkontos. Beispiel: SA_NAME@PROJECT_ID.s3ns.iam.gserviceaccount.com.

Führen Sie den Befehl gcloud ai endpoints deploy-model aus:

Linux, macOS oder Cloud Shell

gcloud ai endpoints deploy-model ENDPOINT_ID \
  --region=LOCATION \
  --model=MODEL_ID \
  --display-name=DEPLOYED_MODEL_NAME \
  --machine-type=MACHINE_TYPE \
  --min-replica-count=MIN_REPLICA_COUNT \
  --max-replica-count=MAX_REPLICA_COUNT \
  --traffic-split=0=100 \
  --service-account=CUSTOM_SERVICE_ACCOUNT

Windows (PowerShell)

gcloud ai endpoints deploy-model ENDPOINT_ID `
  --region=LOCATION `
  --model=MODEL_ID `
  --display-name=DEPLOYED_MODEL_NAME `
  --machine-type=MACHINE_TYPE `
  --min-replica-count=MIN_REPLICA_COUNT `
  --max-replica-count=MAX_REPLICA_COUNT `
  --traffic-split=0=100 `
  --service-account=CUSTOM_SERVICE_ACCOUNT

Windows (cmd.exe)

gcloud ai endpoints deploy-model ENDPOINT_ID ^
  --region=LOCATION ^
  --model=MODEL_ID ^
  --display-name=DEPLOYED_MODEL_NAME ^
  --machine-type=MACHINE_TYPE ^
  --min-replica-count=MIN_REPLICA_COUNT ^
  --max-replica-count=MAX_REPLICA_COUNT ^
  --traffic-split=0=100 ^
  --service-account=CUSTOM_SERVICE_ACCOUNT
 

API

Folgen Sie den Erläuterungen unter Modell mit der Agent Platform API bereitstellen. Wenn Sie die Anfrage projects.locations.endpoints.deployModel senden, legen Sie für das Feld deployedModel.serviceAccount die E-Mail-Adresse des Dienstkontos fest.

Dienstkonto an eine CopyModel-Anfrage anhängen

Wenn Sie die Agent Platform so konfigurieren möchten, dass beim Kopieren eines Modells Ihr neues Dienstkonto verwendet wird, geben Sie die E-Mail-Adresse des Dienstkontos im Feld customServiceAccount der Nachricht CopyModelRequest an. Dieses Dienstkonto muss zum Zielprojekt gehören, in das das Modell kopiert wird, und Sie benötigen die Berechtigung iam.serviceAccounts.actAs für dieses Dienstkonto.

REST

Folgen Sie der Anleitung unter Modell mit der Agent Platform API kopieren und fügen Sie das Feld customServiceAccount in den JSON-Text der Anfrage ein.

API

Wenn Sie die projects.locations.models.copy-Anfrage senden, legen Sie für das Feld customServiceAccount die E-Mail-Adresse des Dienstkontos fest.

Über den Code auf Cloud de Confiance -Dienste zugreifen

Wenn Sie die Agent Platform so konfigurieren, dass ein benutzerdefiniertes Dienstkonto verwendet wird, indem Sie der Anleitung in den vorherigen Abschnitten folgen, kann Ihr Trainings- oder Vorhersagecontainer auf alle Cloud de Confiance -Dienste und -Ressourcen zugreifen, auf die das Dienstkonto Zugriff hat.

Wenn Sie auf Cloud de Confiance -Dienste zugreifen möchten, schreiben Sie Ihren Trainingscode oder Ihren Code für die Bereitstellung von Vorhersagen so, dass Standardanmeldedaten für Anwendungen (ADC) verwendet werden, und geben Sie explizit die Projekt-ID oder Projektnummer der Ressource an, auf die Sie zugreifen möchten. Weitere Informationen zum Schreiben von Code für den Zugriff auf andere Cloud de Confiance-Dienste

Beschränkungen

Für benutzerdefinierte Dienstkonten in der Gemini Enterprise Agent Platform gelten die folgenden Einschränkungen:

  • Für die Batch-Inferenz wird der Gemini Enterprise Agent Platform-Dienst-Agent weiterhin für den Zugriff auf BigQuery und Cloud Storage verwendet, auch wenn ein benutzerdefiniertes Dienstkonto konfiguriert ist.
  • Pro Projekt, Region und Dienst (z. B. Vertex AI Inference) sind maximal 20 benutzerdefinierte Dienstkonten zulässig.

Nächste Schritte