Usa una cuenta de servicio entre proyectos

En este documento, se describe cómo usar una cuenta de servicio entre proyectos cuando creas una VM de TPU. Una cuenta de servicio entre proyectos es una cuenta de servicio que reside en un proyecto diferente al de la VM de TPU.

Estas instrucciones no incluyen consideraciones sobre la VPC compartida ni los Controles del servicio de VPC. Es posible que se requieran parámetros de configuración o permisos adicionales para admitir su uso. Para obtener más información, consulta Crea y modifica redes de VPC compartida y Descripción general de los Controles del servicio de VPC.

Antes de comenzar

Configura los permisos de IAM

  1. Otorga a tu cuenta de usuario el rol de Usuario de cuenta de servicio para permitirle adjuntar la cuenta de servicio a la instancia de VM.

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

    Reemplaza los marcadores de posición que se indican más abajo:

    • SERVICE_ACCOUNT_EMAIL: Es la dirección de correo electrónico de la cuenta de servicio.
    • SERVICE_PROJECT_ID: Es el ID del proyecto que contiene la cuenta de servicio.
    • USER_EMAIL: Es la dirección de correo electrónico de la cuenta de usuario.
  2. Si tu carga de trabajo se ejecuta en contenedores de Docker, otorga acceso al agente de servicio de Compute Engine al servidor de metadatos.

    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
    

    Reemplaza los marcadores de posición que se indican más abajo:

    • SERVICE_ACCOUNT_EMAIL: Es la dirección de correo electrónico de la cuenta de servicio.
    • SERVICE_PROJECT_ID: Es el ID del proyecto que contiene la cuenta de servicio.
    • TPU_PROJECT_ID: Es el ID del proyecto que contiene la VM de TPU.

Crea una VM de TPU en el proyecto de TPU

Crea una VM de TPU en el proyecto de TPU con la cuenta de servicio en el proyecto de servicio.

  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

Reemplaza los marcadores de posición que se indican más abajo:

  • TPU_NAME: Es el nombre de la VM de TPU.
  • MACHINE_TYPE: Es el tipo de máquina.
  • IMAGE_FAMILY: Es la familia de imágenes del SO de la VM de TPU. Para instalar una versión específica del SO, usa la marca --image.
  • IMAGE_PROJECT: Es el proyecto que contiene la imagen de SO. Para las imágenes de TPU, es ubuntu-os-accelerator-images.
  • SERVICE_ACCOUNT_EMAIL: Es la dirección de correo electrónico de la cuenta de servicio.
  • TPU_PROJECT_ID: Es el ID del proyecto que contiene la VM de TPU.
  • ZONE: Es la zona de la VM de TPU.