Créer des rôles et des comptes de service Google Cloud manuellement

Cet article explique comment configurer les autorisations pour une migration manuelle de Google Cloud Migrate for Compute Engine (anciennement Velostrata). Il est destiné à ceux qui souhaitent mieux comprendre ou contrôler l'attribution des autorisations dans le cadre du processus de migration et des charges de travail migrées.

Cette page décrit le processus de création de rôle pour la migration vers :

  • Un seul projet Google Cloud
  • Plusieurs projets Google Cloud

Prérequis

Pour effectuer les migrations, Migrate for Compute Engine nécessite la création de deux comptes de service. Pour plus d'informations sur chacun de ces comptes de service et sur les rôles associés, consultez la page Configurer Google Cloud. Pour en savoir plus sur les commandes gcloud et leurs paramètres, consultez la documentation de gcloud CLI.

  1. Vous devez installer le SDK Google Cloud.
  2. Créez un projet Google Cloud afin d'héberger l'infrastructure Migrate for Compute Engine sur GCP. Nous désignerons ce projet par projet d'infrastructure. Utilisez ce projet chaque fois que project-ID apparaît.
  3. Activez les API suivantes sur votre projet d'infrastructure.
    gcloud services enable iam.googleapis.com --project project-ID
    gcloud services enable cloudresourcemanager.googleapis.com --project project-ID
    gcloud services enable compute.googleapis.com --project project-ID
    gcloud services enable storage-component.googleapis.com --project project-ID
    gcloud services enable logging.googleapis.com --project project-ID
    gcloud services enable monitoring.googleapis.com --project project-ID
    

Pour continuer, indiquez si vous effectuez une migration vers un ou plusieurs projets.

Projet unique

Cette section décrit comment créer les comptes de service requis pour un seul projet autonome et attribuer les rôles appropriés à ces comptes de service.

Créer des rôles

Créez les rôles au niveau du projet :

  1. Ouvrez une invite de commande et exécutez la commande suivante. Remplacez le paramètre de connexion par les informations de connexion de votre compte Google Cloud.
    gcloud auth login login@google.com --no-launch-browser --brief
    
  2. Téléchargez le fichier Cloud Deployment Manager à partir de la page Téléchargements.
  3. Développez le fichier téléchargé et enregistrez-le dans un répertoire auquel vous pouvez accéder pour créer les rôles.
  4. Dans les répertoires développés, ouvrez le répertoire manual.
    cd google/migrate/gce/manual
    
  5. Attribuez des autorisations aux rôles à l'aide des fichiers YAML de ce répertoire :

    gcloud iam roles create "velos_manager" --project project-ID \
    --file velos_gcp_mgmt_role.yaml --no-user-output-enabled --quiet
    gcloud iam roles create "velos_ce" --project project-ID \
    --file velos_gcp_ce_role.yaml.yaml --no-user-output-enabled --quiet
    

Créer des comptes de service

  1. Créez le compte de service velos-manager dans Google Cloud. Remarque : Le project-ID correspond à votre projet d'infrastructure.

    gcloud config set project project-ID
    gcloud iam service-accounts create "velos-manager" --display-name "velos-manager"

  2. Attribuez le rôle velos_manager au compte de service velos-manager.

    gcloud projects add-iam-policy-binding project-ID --member \
     serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
     --role "projects/project-ID/roles/velos_manager" \
     --no-user-output-enabled --quiet
    
  3. Ajoutez les rôles supplémentaires requis au rôle velos_manager :

    gcloud projects add-iam-policy-binding project-ID --member \
     serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
     --role "roles/iam.serviceAccountUser"
     --no-user-output-enabled --quiet
    
    gcloud projects add-iam-policy-binding project-ID --member \
     serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
     --role "roles/logging.logWriter"
     --no-user-output-enabled --quiet
    
    gcloud projects add-iam-policy-binding project-ID --member \
     serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
     --role "roles/monitoring.metricWriter"
     --no-user-output-enabled --quiet
    
    gcloud projects add-iam-policy-binding project-ID --member \
     serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
     --role "roles/monitoring.viewer"
     --no-user-output-enabled --quiet
    
    gcloud iam service-accounts add-iam-policy-binding \
    "velos-manager@project-ID.iam.gserviceaccount.com" \
    --member=serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
    --role=roles/iam.serviceAccountTokenCreator --project project-ID
    
  4. Créez le compte de service velos-cloud-extension dans Google Cloud. Créez ce compte dans le projet dans lequel vous prévoyez de déployer l'extension cloud Migrate for Compute Engine.

    gcloud iam service-accounts create "velos-cloud-extension" \
    --display-name "velos-cloud-extension"
  5. Attribuez le rôle velos_ce au compte de service velos-cloud-extension :

    gcloud projects add-iam-policy-binding project-ID \
    --member serviceAccount:"velos-cloud-extension@project-ID.iam.gserviceaccount.com" \
    --role "projects/project-ID/roles/velos_ce" \
    --no-user-output-enabled --quiet
    
  6. Attribuez les rôles supplémentaires requis au compte de service velos-cloud-extension :

    gcloud projects add-iam-policy-binding project-ID \
    --member serviceAccount:"velos-cloud-extension@project-ID.iam.gserviceaccount.com" \
    --role "roles/logging.logWriter" \
    --no-user-output-enabled --quiet
    
    gcloud projects add-iam-policy-binding project-ID \
    --member serviceAccount:"velos-cloud-extension@project-ID.iam.gserviceaccount.com" \
    --role "roles/monitoring.metricWriter" \
    --no-user-output-enabled --quiet
    

Projets multiples

Cette section explique comment créer les rôles requis pour les migrations vers plusieurs projets et les attribuer aux comptes de service.

Créer des rôles

Les étapes suivantes permettent de créer des rôles pour Migrate for Compute Engine sur Google Cloud.

  1. Créez les rôles Migrate for Compute Engine dans Google Cloud au niveau de l'organisation :
    gcloud auth login orgadmin@google.com --no-launch-browser --brief
  2. Téléchargez le fichier Cloud Deployment Manager à partir de la page Téléchargements.
  3. Développez le fichier téléchargé et enregistrez-le dans un répertoire auquel vous pouvez accéder pour créer les rôles.
  4. Dans les répertoires développés, ouvrez le répertoire manual.
    cd google/migrate/gce/manual
    
  5. Attribuez des autorisations aux rôles à l'aide des fichiers YAML de ce répertoire :

    gcloud iam roles create "velos_manager" --organization organization-ID \
    --file velos_gcp_mgmt_role.yaml --no-user-output-enabled --quiet
    gcloud iam roles create "velos_ce" --project project-ID \
    --file velos_gcp_ce_role.yaml.yaml --no-user-output-enabled --quiet
    

Créer des comptes de service et leur attribuer des rôles

  1. Créez le compte de service velos-manager dans Google Cloud. Bien que le compte de service velos-manager puisse être créé dans n'importe lequel de vos projets, il est préférable, dans le cadre de Migrate for Compute Engine 4.5, de créer ce service dans le projet hôte pour simplifier la configuration.

    gcloud config set project project-ID
    gcloud iam service-accounts create "velos-manager" \
    --display-name "velos-manager"
  2. Attribuez le rôle velos_manager au compte de service velos-manager.

    gcloud organizations add-iam-policy-binding organization-ID \
    --member serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com"\
    --role organizations/organization-ID/roles/"velos_manager"\
    --no-user-output-enabled --quiet
    
    gcloud iam service-accounts add-iam-policy-binding \
    "velos-manager@project-ID.iam.gserviceaccount.com" \
    --member=serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
    --role=roles/iam.serviceAccountTokenCreator --project project-ID
    
  3. Ajoutez les rôles supplémentaires requis au rôle velos_manager :

    gcloud organizations add-iam-policy-binding organization-ID --member \
     serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
     --role "roles/iam.serviceAccountUser"
     --no-user-output-enabled --quiet
    
    gcloud projects add-iam-policy-binding project-ID --member \
     serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
     --role "roles/logging.logWriter"
     --no-user-output-enabled --quiet
    
    gcloud projects add-iam-policy-binding project-ID --member \
     serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
     --role "roles/monitoring.metricWriter"
     --no-user-output-enabled --quiet
    
    gcloud projects add-iam-policy-binding project-ID --member \
     serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
     --role "roles/monitoring.viewer"
     --no-user-output-enabled --quiet
    
    gcloud iam service-accounts add-iam-policy-binding \
    "velos-manager@project-ID.iam.gserviceaccount.com" \
    --member=serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
    --role=roles/iam.serviceAccountTokenCreator --project project-ID
    
    
  4. Créez le compte de service velos-cloud-extension dans Google Cloud. Créez ce compte dans le projet dans lequel vous prévoyez de déployer l'extension cloud Migrate for Compute Engine.

    gcloud iam service-accounts create "velos-cloud-extension" \
    --display-name "velos-cloud-extension"
  5. Attribuez le rôle velos_ce au compte de service velos-cloud-extension :

    gcloud projects add-iam-policy-binding project-ID \
    --member serviceAccount:"velos-cloud-extension@project-ID.iam.gserviceaccount.com" \
    --role "projects/project-ID/roles/velos_ce" \
    --no-user-output-enabled --quiet
    
  6. Attribuez les rôles supplémentaires requis au compte de service velos-cloud-extension :

    gcloud projects add-iam-policy-binding project-ID \
    --member serviceAccount:"velos-cloud-extension@project-ID.iam.gserviceaccount.com" \
    --role "roles/logging.logWriter" \
    --no-user-output-enabled --quiet
    
    gcloud projects add-iam-policy-binding project-ID \
    --member serviceAccount:"velos-cloud-extension@project-ID.iam.gserviceaccount.com" \
    --role "roles/monitoring.metricWriter" \
    --no-user-output-enabled --quiet