Projektübergreifendes Dienstkonto verwenden

In diesem Dokument wird beschrieben, wie Sie beim Erstellen einer TPU-VM ein projektübergreifendes Dienstkonto verwenden. Ein projektübergreifendes Dienstkonto ist ein Dienstkonto, das sich in einem anderen Projekt als die TPU-VM befindet.

Diese Anleitung berücksichtigt weder freigegebene VPC noch VPC Service Controls. Möglicherweise sind zusätzliche Konfigurationen oder Berechtigungen erforderlich, um ihre Verwendung zu unterstützen. Weitere Informationen finden Sie unter Gemeinsam freigegebene VPC erstellen und ändern und VPC Service Controls.

Vorbereitung

IAM-Berechtigungen festlegen

  1. Weisen Sie Ihrem Nutzerkonto die Rolle Dienstkontonutzer zu, damit es das Dienstkonto an die VM-Instanz anhängen kann.

    gcloud iam service-accounts add-iam-policy-binding \
      SERVICE_ACCOUNT_EMAIL \
      --project=SERVICE_PROJECT_ID \
      --member=user:USER_EMAIL \
      --role=roles/iam.serviceAccountUser
    

    Ersetzen Sie die folgenden Platzhalter:

    • SERVICE_ACCOUNT_EMAIL: Die E-Mail-Adresse des Dienstkontos.
    • SERVICE_PROJECT_ID: Die ID des Projekts, das das Dienstkonto enthält.
    • USER_EMAIL: Die E-Mail-Adresse des Nutzerkontos.
  2. Wenn Ihre Arbeitslast in Docker-Containern ausgeführt wird, gewähren Sie dem Compute Engine-Dienstagent Zugriff auf den Metadatenserver.

    gcloud iam service-accounts add-iam-policy-binding \
      SERVICE_ACCOUNT_EMAIL \
      --project=SERVICE_PROJECT_ID \
      --role=roles/iam.serviceAccountTokenCreator \
      --member=serviceAccount:service-TPU_PROJECT_ID@compute-system.iam.gserviceaccount.com
    

    Ersetzen Sie die folgenden Platzhalter:

    • SERVICE_ACCOUNT_EMAIL: Die E-Mail-Adresse des Dienstkontos.
    • SERVICE_PROJECT_ID: Die ID des Projekts, das das Dienstkonto enthält.
    • TPU_PROJECT_ID: Die ID des Projekts, das die TPU-VM enthält.

TPU-VM im TPU-Projekt erstellen

Erstellen Sie im TPU-Projekt eine TPU-VM mit dem Dienstkonto im Dienstprojekt.

  gcloud compute instances create TPU_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --service-account=SERVICE_ACCOUNT_EMAIL \
    --project=TPU_PROJECT_ID \
    --zone=ZONE \
    --maintenance-policy=TERMINATE

Ersetzen Sie die folgenden Platzhalter:

  • TPU_NAME: Der Name der TPU-VM.
  • MACHINE_TYPE: Der Maschinentyp.
  • IMAGE_FAMILY: Die Betriebssystem-Image-Familie für die TPU-VM. Verwenden Sie das Flag --image, um eine bestimmte Betriebssystemversion zu installieren.
  • IMAGE_PROJECT: Das Projekt, das das Betriebssystem-Image enthält. Bei TPU-Images ist dies ubuntu-os-accelerator-images.
  • SERVICE_ACCOUNT_EMAIL: Die E-Mail-Adresse des Dienstkontos.
  • TPU_PROJECT_ID: Die ID des Projekts, das die TPU-VM enthält.
  • ZONE: Die Zone der TPU-VM.