Utilizzare un account di servizio tra progetti

Questo documento descrive come utilizzare un account di servizio tra progetti durante la creazione di una VM TPU. Un account di servizio tra progetti è un account di servizio che si trova in un progetto diverso dalla VM TPU.

Queste istruzioni non includono considerazioni per VPC condiviso o Controlli di servizio VPC. Per supportarne l'utilizzo potrebbero essere necessarie configurazioni o autorizzazioni aggiuntive. Per saperne di più, consulta Creare e modificare le VPC condiviso condivise e Panoramica dei Controlli di servizio VPC.

Prima di iniziare

Imposta autorizzazioni IAM

  1. Concedi al tuo account utente il ruolo Utente service account per consentirgli di collegare il account di servizio all'istanza VM.

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

    Sostituisci i seguenti segnaposto:

    • SERVICE_ACCOUNT_EMAIL: l'indirizzo email del account di servizio.
    • SERVICE_PROJECT_ID: l'ID del progetto che contiene il account di servizio.
    • USER_EMAIL: l'indirizzo email dell'account utente.
  2. Se il tuo carico di lavoro viene eseguito in container Docker, concedi al service agent Compute Engine l'accesso al server di metadati.

    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
    

    Sostituisci i seguenti segnaposto:

    • SERVICE_ACCOUNT_EMAIL: l'indirizzo email del account di servizio.
    • SERVICE_PROJECT_ID: l'ID del progetto che contiene il account di servizio.
    • TPU_PROJECT_ID: l'ID del progetto che contiene la VM TPU.

Crea una VM TPU nel progetto TPU

Crea una VM TPU nel progetto TPU utilizzando il account di servizio nel progetto di servizio.

  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

Sostituisci i seguenti segnaposto:

  • TPU_NAME: il nome della VM TPU.
  • MACHINE_TYPE: il tipo di macchina.
  • IMAGE_FAMILY: la famiglia di immagini del sistema operativo per la VM TPU. Per installare una versione specifica del sistema operativo, utilizza il flag --image.
  • IMAGE_PROJECT: Il progetto che contiene l'immagine sistema operativo. Per le immagini TPU, questo valore è ubuntu-os-accelerator-images.
  • SERVICE_ACCOUNT_EMAIL: l'indirizzo email del account di servizio.
  • TPU_PROJECT_ID: l'ID del progetto che contiene la VM TPU.
  • ZONE: la zona della VM TPU.