Utiliser un compte de service multiprojet

Ce document explique comment utiliser un compte de service multiprojet lors de la création d'une VM TPU. Un compte de service multiprojet est un compte de service situé dans un projet différent de celui de la VM TPU.

Ces instructions ne tiennent pas compte du VPC partagé ni de VPC Service Controls. Des configurations ou des autorisations supplémentaires peuvent être nécessaires pour les utiliser. Pour en savoir plus, consultez Créer et modifier des réseaux VPC partagés et Présentation de VPC Service Controls.

Avant de commencer

Définir les autorisations IAM

  1. Attribuez à votre compte utilisateur le rôle Utilisateur du compte de service pour lui permettre d'associer le compte de service à l'instance 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
    

    Remplacez les espaces réservés suivants :

    • SERVICE_ACCOUNT_EMAIL : adresse e-mail du compte de service.
    • SERVICE_PROJECT_ID : ID du projet contenant le compte de service.
    • USER_EMAIL : adresse e-mail du compte utilisateur.
  2. Si votre charge de travail s'exécute dans des conteneurs Docker, accordez à l'agent de service Compute Engine l'accès au serveur de métadonnées.

    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
    

    Remplacez les espaces réservés suivants :

    • SERVICE_ACCOUNT_EMAIL : adresse e-mail du compte de service.
    • SERVICE_PROJECT_ID : ID du projet contenant le compte de service.
    • TPU_PROJECT_ID : ID du projet contenant la VM TPU.

Créer une VM TPU dans le projet TPU

Créez une VM TPU dans le projet TPU à l'aide du compte de service dans le projet de service.

  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

Remplacez les espaces réservés suivants :

  • TPU_NAME : nom de la VM TPU.
  • MACHINE_TYPE : type de machine.
  • IMAGE_FAMILY : famille d'images de l'OS pour la VM TPU. Pour installer une version spécifique de l'OS, utilisez l'option --image.
  • IMAGE_PROJECT : projet contenant l'image de l'OS. Pour les images TPU, il s'agit de ubuntu-os-accelerator-images.
  • SERVICE_ACCOUNT_EMAIL : adresse e-mail du compte de service.
  • TPU_PROJECT_ID : ID du projet contenant la VM TPU.
  • ZONE : zone de la VM TPU.