Désactiver un VPC partagé

Cette page décrit comment désactiver une configuration de VPC partagé existante, en déconnectant tous les projets de service d'un projet hôte de VPC partagé. La désactivation est un processus à sens unique. Assurez-vous d'abord d'avoir bien pris connaissance du contenu des pages Présentation du VPC partagé et Provisionner un VPC partagé.

Tâches d'administration du projet de service

Dans chaque projet de service associé au projet hôte de VPC partagé, un administrateur de projet de service doit supprimer toutes les dépendances du projet hôte. Les dépendances peuvent inclure des instances, des groupes d'instances, des modèles d'instance, des services de backend et des règles de transfert.

Déterminer les ressources affectées

Pour identifier les ressources dépendantes du projet hôte de VPC partagé, un administrateur de projet de service peut répertorier ses sous-réseaux partagés. Lorsque le projet de service sera détaché du projet hôte, ces sous-réseaux ne seront plus disponibles. Ainsi, toutes les ressources qui en dépendent seront affectées.

Supprimer des ressources

Une fois qu'un administrateur de projet de service a identifié les ressources affectées par le processus de désactivation, celles-ci doivent être supprimées :

Tâches d'administration de l'équilibreur de charge (équilibreurs de charge HTTP(S) internes et équilibreurs de charge HTTP(S) externes régionaux uniquement)

Les équilibreurs de charge HTTP(S) internes régionaux et HTTP(S) externes régionaux vous permettent de configurer l'équilibreur de charge de sorte qu'un mappage d'URL dans un projet hôte ou de service puisse référencer des services de backend (et des backends) situés sur plusieurs projets dans des environnements VPC partagés.

Avant de pouvoir supprimer un projet de service, vous devez vous assurer que toutes les références inter-projets aux services de backend de votre projet de service ont été supprimées. Les administrateurs d'équilibrage de charge devront modifier leurs mappages d'URL pour supprimer les références aux services de backend dans votre projet de service.

Tâches administratives de VPC partagé

Toutes les tâches de cette section doivent être effectuées par un administrateur de VPC partagé.

Détacher des projets de service

Répétez ces étapes pour chacun des projets de service que vous devez détacher du projet hôte de VPC partagé.

Console

Pour afficher la page "VPC partagé" dans Google Cloud Console, vous devez disposer du rôle Administrateur de VPC partagé.

  1. Accédez à la page VPC partagé de Google Cloud Console.
    Accéder à la page VPC partagé
  2. Connectez-vous en tant qu'administrateur de VPC partagé.
  3. Sélectionnez le projet hôte dont vous souhaitez supprimer les projets de service.
  4. Cliquez sur l'onglet Projets associés.
  5. Sélectionnez le projet de service que vous souhaitez dissocier.
  6. Cliquez sur le bouton Dissocier des projets.
  7. Examinez les informations fournies dans la boîte de dialogue.
  8. Cliquez sur Dissocier.

gcloud

  1. Si ce n'est pas déjà fait, authentifiez-vous auprès de gcloud en tant qu'administrateur de VPC partagé. Remplacez SHARED_VPC_ADMIN par le nom de l'administrateur de VPC partagé :

    gcloud auth login SHARED_VPC_ADMIN
    
  2. Dissociez le projet de service du projet hôte. Remplacez SERVICE_PROJECT_ID par l'ID du projet de service et HOST_PROJECT_ID par l'ID du projet hôte.

    Si vous avez le rôle d'administrateur de VPC partagé au niveau de l'organisation

    gcloud compute shared-vpc associated-projects remove SERVICE_PROJECT_ID
        --host-project HOST_PROJECT_ID
    

    Si vous avez le rôle d'administrateur de VPC partagé au niveau du dossier

    gcloud beta compute shared-vpc associated-projects remove SERVICE_PROJECT_ID
        --host-project HOST_PROJECT_ID
    
  3. Confirmez que le projet de service a été détaché en utilisant l'une des commandes suivantes :

    gcloud compute shared-vpc get-host-project SERVICE_PROJECT_ID
    
    gcloud compute shared-vpc list-associated-resources HOST_PROJECT_ID
    
  4. Si vous devez uniquement dissocier des projets de service, déconnectez-vous de gcloud pour protéger les identifiants de votre compte administrateur de VPC partagé. Sinon, ignorez cette étape et passez à la désactivation du projet hôte.

    gcloud auth revoke SHARED_VPC_ADMIN
    

API

  1. Dissociez le projet de service.

    • Si vous avez un rôle d'administrateur de VPC partagé au niveau de l'organisation, utilisez l'API v1 :

      POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/disableXpnResource
      {
      "xpnResource": {
        "id": "SERVICE_PROJECT_ID"
      }
      }
      
    • Si vous avez un rôle d'administrateur de VPC partagé au niveau du dossier, utilisez l'API en version bêta :

      POST https://compute.googleapis.com/compute/beta/projects/HOST_PROJECT_ID/disableXpnResource
      {
      "xpnResource": {
        "id": "SERVICE_PROJECT_ID"
      }
      }
      

    Remplacez les espaces réservés par des valeurs valides :

    • HOST_PROJECT_ID correspond à l'ID du projet hôte.
    • SERVICE_PROJECT_ID correspond à l'ID du projet de service à dissocier.

    Pour plus d'informations, reportez-vous à la méthode projects.disableXpnResource.

  2. Confirmez que le projet de service a bien été dissocié.

    • Vérifiez que le projet de service n'est associé à aucun projet hôte.

      GET https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/getXpnHost
      

      Remplacez SERVICE_PROJECT_ID par l'ID du projet de service.

      Pour plus d'informations, reportez-vous à la méthode projects.getXpnHost.

    • Répertoriez les projets de service associés au projet hôte de VPC partagé pour vérifier que le projet ne figure plus dans la liste.

      GET https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/getXpnResources
      

      Remplacez HOST_PROJECT_ID par l'ID du projet hôte.

      Pour plus d'informations, reportez-vous à la méthode projects.getXpnResources.

Désactiver le projet hôte

Il n'est possible de désactiver le VPC partagé pour le projet hôte qu'une fois que tous les projets de service ont été détachés. Une fois la désactivation effectuée, le privilège empêchant la suppression intempestive est automatiquement supprimé.

Console

Pour afficher la page "VPC partagé" dans Google Cloud Console, vous devez disposer du rôle Administrateur de VPC partagé.

  1. Accédez à la page VPC partagé de Google Cloud Console.
    Accéder à la page VPC partagé
  2. Connectez-vous en tant qu'administrateur de VPC partagé.
  3. Sélectionnez le projet hôte que vous souhaitez désactiver.
  4. Cliquez sur le bouton Désactiver le VPC partagé.
  5. Lisez attentivement la description de la boîte de dialogue.
  6. Saisissez l'ID du projet hôte dans le champ ID du projet hôte.
  7. Cliquez sur Désactiver.

gcloud

  1. Si ce n'est pas déjà fait, authentifiez-vous auprès de gcloud en tant qu'administrateur de VPC partagé. Remplacez SHARED_VPC_ADMIN par le nom de l'administrateur de VPC partagé :

    gcloud auth login SHARED_VPC_ADMIN
    
  2. Désactivez le VPC partagé pour le projet hôte. Remplacez HOST_PROJECT_ID par l'ID du projet hôte.

    Si vous avez le rôle d'administrateur de VPC partagé au niveau de l'organisation

    gcloud compute shared-vpc disable HOST_PROJECT_ID
    

    Si vous avez le rôle d'administrateur de VPC partagé au niveau du dossier

    gcloud beta compute shared-vpc disable HOST_PROJECT_ID
    
  3. Confirmez que le projet n'est plus répertorié en tant que projet hôte pour votre organisation. Remplacez ORG_ID par l'ID de votre organisation (déterminé par gcloud organizations list).

    gcloud compute shared-vpc organizations list-host-projects ORG_ID
    
  4. Si vous devez uniquement désactiver un projet hôte, vous pouvez vous déconnecter de gcloud pour protéger vos identifiants de compte d'administrateur de VPC partagé. Sinon, ignorez cette étape et passez à la suppression de projets.

    gcloud auth revoke SHARED_VPC_ADMIN
    

API

  1. Désactivez le VPC partagé pour le projet.

    • Si vous avez un rôle d'administrateur de VPC partagé au niveau de l'organisation, utilisez l'API v1 :

      POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/disableXpnHost
      
    • Si vous avez un rôle d'administrateur de VPC partagé au niveau du dossier, utilisez l'API en version bêta :

      POST https://compute.googleapis.com/compute/beta/projects/HOST_PROJECT_ID/disableXpnHost
      

    Remplacez HOST_PROJECT_ID par l'ID du projet hôte.

    Pour plus d'informations, reportez-vous à la méthode projects.disableXpnHost.

  2. Répertoriez vos projets hôtes pour vérifier que le projet ne figure pas dans la liste.

    POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/listXpnHosts
    

    Remplacez HOST_PROJECT_ID par l'ID du projet hôte.

    Pour plus d'informations, reportez-vous à la méthode projects.listXpnHosts.

Supprimer des projets

Cette section traite de la suppression de projets qui ne sont plus utilisés. Par exemple, il peut s'agir de projets de service à supprimer après qu'ils ont été détachés d'un projet hôte ou d'un projet hôte dont vous n'avez plus besoin après sa désactivation.

Supprimer le projet hôte

Vous pouvez choisir de le conserver comme projet normal ou de l'arrêter. Arrêter un projet le supprime.

Une entité principale IAM peut supprimer le projet hôte si elle dispose du rôle resourcemanager.projectDeleter pour votre organisation ou si elle est propriétaire du projet hôte. Les administrateurs de VPC partagés peuvent supprimer des projets hôtes s'ils disposent du rôle ou de la propriété appropriés.

Supprimer des projets de service

Vous pouvez choisir d'arrêter chaque projet de service si vous n'en avez plus besoin. Avant cela, assurez-vous que le projet de service a été dissocié du projet hôte.

Une entité principale IAM peut supprimer un projet de service si elle dispose du rôle resourcemanager.projectDeleter pour votre organisation ou si elle est propriétaire du projet de service. Les administrateurs de projet de service peuvent supprimer des projets de service s'ils disposent du rôle ou de la propriété appropriés.

Supprimer de force un projet hôte

Lorsque le VPC partagé est actif pour un projet hôte, un privilège est placé sur le projet pour empêcher qu'il ne soit supprimé accidentellement. Comme ce privilège peut être supprimé par un propriétaire de projet, les instructions relatives au provisionnement d'un VPC partagé indiquent la procédure permettant de définir une stratégie organisationnelle afin de limiter le nombre d'entités principales IAM autorisées à supprimer un privilège de projet.

Normalement, un projet hôte doit être supprimé après que les tâches suivantes ont été effectuées (dans l'ordre) :

Lorsque le VPC partagé a été désactivé, le privilège protégeant le projet hôte est automatiquement supprimé.

Cette section explique comment forcer l'arrêt d'un projet hôte. Cette option ne doit être envisagée que dans les cas suivants :

  • La procédure normale permettant de détacher les projets de service, puis de désactiver le VPC partagé ne peut pas être appliquée.
  • Le projet hôte est protégé par des privilèges supplémentaires supérieurs à celui qui est ajouté automatiquement.

Si vous forcez l'arrêt d'un projet hôte et que des ressources sont utilisées dans des projets de service qui utilisent le réseau VPC partagé, les événements suivants se produisent :

  • Tous les réseaux VPC partagés, leurs sous-réseaux, routes, règles de pare-feu et toutes les ressources réseau du projet hôte sont supprimés.
  • Les ressources, telles que les instances en cours d'exécution dans les projets de service associés au projet hôte, sont arrêtées.
  • Les équilibreurs de charge TCP/UDP internes sont désactivés si leurs règles de transfert dépendent du réseau VPC partagé.

gcloud

  1. Authentifiez-vous auprès de gcloud en tant qu'entité principale IAM autorisée à supprimer un privilège de projet. Si vous disposez d'une règle d'administration permettant de limiter les membres autorisés à supprimer des privilèges, vous devez vous authentifier en tant qu'entité principale IAM disposant du rôle resourcemanager.lienModifier pour votre organisation. Si une telle règle n'est pas mise en place, le propriétaire du projet hôte peut supprimer le privilège.

    Remplacez ACCOUNT par le nom de l'entité principale IAM appropriée :

    gcloud auth login ACCOUNT
    
  2. Listez les privilèges associés au projet hôte. Remplacez HOST_PROJECT_ID par l'ID du projet hôte.

    gcloud alpha resource-manager liens list \
    --project HOST_PROJECT_ID
    
  3. Retirez chaque privilège par son nom, un à la fois, jusqu'à ce qu'il n'y ait plus de privilèges. Remplacez LIEN_NAME par le nom du privilège à supprimer.

    gcloud alpha resource-manager liens delete LIEN_NAME \
    --project HOST_PROJECT_ID
    
  4. Confirmez que tous les privilèges ont été supprimés.

    gcloud alpha resource-manager liens list \
    --project HOST_PROJECT_ID
    
  5. Après avoir supprimé le privilège, vous pouvez vous déconnecter de gcloud pour protéger les identifiants de l'entité principale IAM autorisée à supprimer les privilèges.

    gcloud auth revoke ACCOUNT
    
  6. Le projet hôte peut maintenant être arrêté.

API

  1. Répertoriez les privilèges associés au projet hôte.

    GET https://cloudresourcemanager.googleapis.com/v1/liens?parent=projects:HOST_PROJECT_ID
    

    Remplacez HOST_PROJECT_ID par l'ID du projet hôte.

    Pour plus d'informations, reportez-vous à la méthode liens.list.

  2. Retirez chaque privilège par son nom, jusqu'à ce qu'il n'y ait plus de privilèges.

    DELETE https://cloudresourcemanager.googleapis.com/v1/liens/LIEN_NAME
    

    Remplacez LIEN_NAME par le nom du privilège à supprimer.

    Pour plus d'informations, reportez-vous à la méthode liens.delete.

  3. Répertoriez à nouveau les privilèges pour confirmer qu'ils ont été supprimés.

Étapes suivantes