Gérer la contrainte de virtualisation imbriquée


Ce document explique comment vérifier si la virtualisation imbriquée est activée et comment modifier la contrainte booléenne qui contrôle si la virtualisation imbriquée est activée pour votre organisation, votre projet ou votre dossier.

Une contrainte booléenne dans une règle d'administration détermine si vous pouvez créer des VM imbriquées. La contrainte booléenne de virtualisation imbriquée est une restriction, ce qui signifie qu'une fois appliquée, elle indique à la règle d'administration de restreindre la création de VM imbriquées. Pour en savoir plus sur les contraintes booléennes, consultez la page Comprendre les contraintes.

La contrainte Désactiver la virtualisation imbriquée des VM n'est pas appliquée par défaut. Vous n'avez donc pas besoin de modifier des contraintes booléennes pour activer la virtualisation imbriquée. Toutefois, Google recommande de définir explicitement la valeur de la contrainte afin que votre organisation, vos dossiers et vos projets ne reposent pas sur le paramètre par défaut. Si votre projet n'est pas subordonné à une organisation, la contrainte n'est pas appliquée par défaut et vous ne pouvez pas la modifier.

Avant de commencer

  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.

    gcloud

    1. Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init
    2. Définissez une région et une zone par défaut.

    REST

    Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

      Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init

Vérifier si la virtualisation imbriquée est autorisée

Vérifiez si la virtualisation imbriquée est autorisée pour une organisation, un dossier ou un projet à l'aide de la console Google Cloud, de Google Cloud CLI ou de REST.

Console

Vérifiez si vous pouvez créer des VM imbriquées dans votre organisation, votre dossier ou votre projet en vérifiant si la contrainte booléenne permettant de désactiver la virtualisation imbriquée n'est pas appliquée. Si la contrainte Désactiver la virtualisation imbriquée des VM n'est pas appliquée par la règle d'administration, vous pouvez créer des VM imbriquées.

  1. Dans Google Cloud Console, accédez à la page Règles d'administration.

    Accéder à la page Règles d'administration

  2. Dans le sélecteur d'organisation, de dossier et de projet, sélectionnez l'entité pour laquelle vous souhaitez afficher les règles d'administration.

  3. Sélectionnez la contrainte Désactiver la virtualisation imbriquée des VM pour ouvrir la page Détails des règles.

  4. Affichez la valeur du paramètre Application :

    • Si la valeur est Non appliquée, la virtualisation imbriquée est activée et vous pouvez créer des VM imbriquées.

    • Si la valeur est Appliquée, la virtualisation imbriquée est désactivée et vous ne pouvez pas créer de VM imbriquées.

gcloud

Vérifiez la valeur de la contrainte booléenne compute.disableNestedVirtualization à l'aide de la commande gcloud resource-manager org-policies describe.

Si la sortie de Google Cloud CLI n'affiche pas de valeur pour booleanPolicy, la virtualisation imbriquée est autorisée et vous pouvez créer des VM imbriquées.

Si la valeur de sortie de Google Cloud CLI pour booleanPolicy est enforced: true, la règle d'administration applique la contrainte de désactivation de la virtualisation imbriquée et vous ne pouvez pas créer de VM imbriquées.

gcloud resource-manager org-policies \
  describe constraints/compute.disableNestedVirtualization \
  (--organization=ORGANIZATION_ID | --folder=FOLDER_ID |
  --project=PROJECT_ID) --effective

Remplacez exactement l'un des éléments suivants :

  • ORGANIZATION_ID : ID de l'organisation dont vous souhaitez obtenir la valeur de contrainte. Pour obtenir la liste des organisations accessibles et de leurs ID, exécutez la commande gcloud organizations list.

  • FOLDER_ID : ID du dossier dont vous souhaitez obtenir la valeur de contrainte. Pour obtenir la liste des dossiers accessibles et de leurs ID, exécutez la commande gcloud resource-manager folders list.

  • PROJECT_ID : ID du projet dont vous souhaitez obtenir la valeur de contrainte. Pour obtenir la liste des projets accessibles et de leurs ID, exécutez la commande gcloud projects list.

REST

Utilisez REST pour vérifier la valeur de la contrainte booléenne compute.disableNestedVirtualization, qui détermine si vous pouvez créer des VM imbriquées dans votre organisation, votre dossier ou votre projet.

Si la réponse REST ne renvoie pas de valeur "booleanPolicy" pour la contrainte, la virtualisation imbriquée n'est pas désactivée et vous pouvez créer des VM imbriquées.

Si la valeur de "booleanPolicy" dans la sortie est "enforced": true, la virtualisation imbriquée est désactivée et vous ne pouvez pas créer de VM imbriquées.

POST https://cloudresourcemanager.googleapis.com/v1/RESOURCE/RESOURCE_ID:getOrgPolicy

{
  "constraint": "compute.disableNestedVirtualization"
}

Remplacez l'élément suivant :

Modifier la règle d'administration de la virtualisation imbriquée

Si vous disposez du rôle approprié, vous pouvez déterminer si une organisation, un dossier ou un projet peut créer des VM imbriquées. Contrôlez cette mesure d'application en utilisant la contrainte booléenne de la virtualisation imbriquée.

Utilisez la console Google Cloud, Google Cloud CLI ou REST pour activer la virtualisation imbriquée pour une organisation, un dossier ou un projet.

Console

Pour activer la virtualisation imbriquée, désactivez l'application de la contrainte booléenne Désactiver la virtualisation imbriquée des VM. Pour désactiver la virtualisation imbriquée, activez l'application de la contrainte booléenne.

  1. Dans Google Cloud Console, accédez à la page Règles d'administration.

    Accéder à la page Règles d'administration

  2. Dans le sélecteur d'organisation, de dossier et de projet, sélectionnez l'entité pour laquelle vous souhaitez modifier les règles d'administration.

  3. Sélectionnez la contrainte Désactiver la virtualisation imbriquée des VM pour ouvrir la page Détails des règles.

  4. Cliquez sur Modifier, puis sur Personnaliser.

  5. Sous Application, sélectionnez l'une des options d'application suivantes pour la contrainte booléenne Désactiver la virtualisation imbriquée des VM :

    • Activée : active l'application et désactive la virtualisation imbriquée.
    • Désactivée : désactive l'application forcée et active la virtualisation imbriquée.
  6. Cliquez sur Enregistrer.

gcloud

Exécutez la commande gcloud resource-manager org-policies pour activer ou désactiver l'application de la contrainte booléenne de la règle d'administration compute.disableNestedVirtualization.

Si vous désactivez la contrainte compute.disableNestedVirtualization à l'aide de la commande disable-enforce, vous pouvez créer des VM sur lesquelles la virtualisation imbriquée est activée.

Si vous activez la contrainte à l'aide de la commande enable-enforce, vous ne pouvez pas créer de VM sur lesquelles la virtualisation imbriquée est activée.

gcloud resource-manager org-policies \
  ( disable-enforce | enable-enforce ) compute.disableNestedVirtualization \
  (--organization=ORGANIZATION_ID | --folder=FOLDER_ID |
  --project=PROJECT_ID)

Remplacez exactement l'un des éléments suivants :

  • ORGANIZATION_ID : ID de l'organisation dont vous souhaitez modifier la valeur de contrainte. Pour obtenir la liste des organisations accessibles et de leurs ID, exécutez la commande gcloud organizations list.

  • FOLDER_ID : ID du dossier dont vous souhaitez modifier la valeur de contrainte. Pour obtenir la liste des dossiers accessibles et de leurs ID, exécutez la commande gcloud resource-manager folders list.

  • PROJECT_ID : ID du projet dont vous souhaitez modifier la valeur de contrainte. Pour obtenir la liste des projets accessibles et de leurs ID, exécutez la commande gcloud projects list.

REST

Utilisez REST pour modifier la valeur de la contrainte booléenne compute.disableNestedVirtualization, qui détermine si vous pouvez créer des VM imbriquées dans votre organisation, votre dossier ou votre projet.

POST https://cloudresourcemanager.googleapis.com/v1/RESOURCE/RESOURCE_ID:setOrgPolicy

{
  "policy": {
    "booleanPolicy": {
      "enforced": ENFORCE
    },
    "constraint": "constraints/compute.disableNestedVirtualization"
  }
}

Remplacez les éléments suivants :

  • RESOURCE : ressource pour laquelle vous souhaitez modifier la règle d'administration. Définissez ce paramètre sur l'une des options suivantes :

  • RESOURCE_ID : organisation, dossier ou projet sur lequel vous souhaitez vérifier l'état de la contrainte de virtualisation imbriquée.

  • ENFORCE : détermine si la règle d'administration applique la contrainte booléenne compute.disableNestedVirtualization. Définissez l'une des options suivantes :

    • true : pour appliquer la contrainte. Avec ce paramètre, vous ne pouvez pas créer de VM sur lesquelles la virtualisation imbriquée est activée.

    • false : pour ne pas appliquer la contrainte. Ce paramètre vous permet de créer des VM sur lesquelles la virtualisation imbriquée est activée.

Étapes suivantes