Réserver une adresse IP externe statique

Si une instance requiert une adresse IP externe fixe qui ne change pas, vous pouvez obtenir une adresse IP externe statique pour cette instance à l'aide de l'une des options suivantes :

Si vous avez besoin d'une adresse IP statique sur votre réseau interne Compute Engine, consultez la rubrique Réserver une adresse interne statique.

Dans Compute Engine, chaque instance de VM peut avoir plusieurs interfaces réseau. Chaque interface peut avoir des adresses IP internes et externes. Les règles de transfert peuvent disposer d'adresses IP externes pour l'équilibrage de charge externe ou d'adresses internes pour l'équilibrage de charge interne. Pour en savoir plus sur les adresses IP, consultez la documentation sur les adresses IP.

Avant de commencer

Réserver une nouvelle adresse IP externe statique

Une adresse IP externe statique est une adresse IP externe réservée pour votre projet jusqu'à ce que vous décidiez de la libérer. Si vous disposez d'une adresse IP qui permet à vos clients ou utilisateurs d'accéder à votre service, vous pouvez réserver cette adresse IP pour qu'elle ne puisse être utilisée que par votre projet. Il est également possible de convertir une adresse IP externe éphémère en adresse IP externe statique.

Vous pouvez réserver deux types d'adresses IP externes :

Réservez une adresse IP externe statique dans l'outil de ligne de commande gcloud ou via l'API. Une fois l'adresse réservée, attribuez-la à une instance lors de sa création ou à une instance existante.

Restrictions

  • Une adresse IP externe statique peut être utilisée par une seule ressource à la fois.

  • Il n'y a aucun moyen de savoir si une adresse IP est statique ou éphémère après son attribution à une ressource, si ce n'est en comparant l'adresse IP à la liste des adresses IP externes statiques réservées pour ce projet. Exécutez la sous-commande addresses list pour afficher la liste des adresses IP externes statiques disponibles pour le projet.

  • Chaque instance de VM peut avoir plusieurs interfaces réseau, mais chaque interface ne peut posséder qu'une seule adresse IP externe, qu'elle soit éphémère ou statique.

Remarque : Les interfaces réseau peuvent recevoir du trafic provenant de plusieurs règles de transfert, qui peuvent diffuser d'autres adresses IP externes. N'importe quel nombre d'adresses IP externes peut faire référence à une interface réseau via ces règles de transfert, mais chaque interface réseau ne peut avoir qu'une seule adresse IP externe en charge de convertir les paquets vers l'adresse IP interne de l'interface.

Pour en savoir plus sur l'équilibrage de charge et les règles de transfert, consultez la documentation sur l'équilibrage de charge.

Console

  1. Accédez à la page "Réserver une adresse statique" dans la console GCP.

    Accéder à la page "Réserver une adresse statique"

  2. Choisissez un nom pour la nouvelle adresse.
  3. Indiquez s'il s'agit d'une adresse IPv4 ou IPv6. Les adresses IPv6 ne peuvent être que globales et ne peuvent être utilisées qu'avec les équilibreurs de charge globaux HTTP(S), proxy SSL et TCP.
  4. Choisissez si cette adresse IP est régionale ou globale. Si vous réservez une adresse IP statique pour une instance ou pour un équilibreur de charge réseau, sélectionnez Régional. Si vous réservez une adresse IP statique pour un équilibreur de charge HTTP(S), proxy SSL ou TCP, sélectionnez Global.
  5. S'il s'agit d'une adresse IP régionale, sélectionnez la région dans laquelle créer l'adresse.
  6. [Facultatif] Sélectionnez une ressource à laquelle associer l'adresse IP.
  7. Cliquez sur Réserver pour réserver l'adresse IP.

gcloud

Pour réserver une nouvelle adresse IP externe statique à l'aide de gcloud compute, exécutez la sous-commande addresses create et indiquez si vous souhaitez réserver une adresse IP globale ou régionale :

gcloud compute addresses create [ADDRESS_NAME] \
    [--region [REGION] | --global ] \
    [--ip-version [IPV4 | IPV6]]

où :

  • [ADDRESS_NAME] est le nom que vous voulez donner à cette adresse.
  • Si vous spécifiez une adresse IP régionale, indiquez la [REGION] souhaitée pour la demande. Ce devrait être la même que celle de la ressource à laquelle vous souhaitez associer l'adresse IP.
  • S'il s'agit d'une adresse IP globale, spécifiez l'indicateur --global. Si vous souhaitez une adresse IPv6, spécifiez les indicateurs --global et --ip-version IPV6. Les adresses IPv6 ne peuvent être que globales et peuvent seulement être utilisées avec les équilibreurs de charge globaux HTTP(S), proxy SSL et TCP.

API

Pour envoyer une requête directement à l'API pour une adresse IPv4 régionale, envoyez une requête POST à l'URI suivant :

https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/addresses

Le corps de votre requête doit contenir les éléments suivants :

{
  name: "[ADDRESS_NAME]"
}

où :

  • [ADDRESS_NAME] est le nom que vous voulez donner à cette adresse.
  • [REGION] est le nom de la région pour cette requête.
  • [PROJECT_ID] est l'ID de projet pour cette requête.

Pour les adresses IPv4 statiques globales, envoyez une requête à cet URI :

https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/addresses

Le corps de votre requête doit contenir les éléments suivants :

{
  name: "[ADDRESS_NAME]"
}

Pour les adresses IPv6 statiques globales, envoyez une requête à cet URI :

https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/addresses

Le corps de votre requête doit contenir les éléments suivants :

{
  "name": "[ADDRESS_NAME]",
  "ipVersion": "IPV6"
}

Attribuer une adresse IP externe statique à une nouvelle instance de VM

Lorsque vous créez une instance de VM, une adresse IP externe éphémère lui est automatiquement attribuée. Si vous ne voulez pas d'adresse IP externe éphémère, vous pouvez explicitement attribuer une adresse IP externe statique à l'instance.

Console

  1. Dans la console GCP, accédez à la page "Instances de VM".

    Accéder à la page Instances de VM

  2. Cliquez sur Créer une instance.
  3. Sur la page Créer une instance, spécifiez les propriétés souhaitées pour votre instance.
  4. Développez la section Gestion, sécurité, disques, mise en réseau et location unique.
  5. Cliquez sur Mise en réseau.
  6. Sous Interfaces réseau, cliquez sur l'interface réseau par défaut pour la modifier.
  7. Sous la section Adresse IP externe, sélectionnez l'adresse IP externe statique que vous avez réservée dans le menu déroulant.
  8. Cliquez sur OK pour terminer la modification de l'interface réseau par défaut.
  9. Cliquez sur Créer pour créer l'instance.

gcloud

Pour attribuer une adresse IP externe statique, utilisez le paramètre --address lors de la création de l'instance et indiquez l'adresse IP externe statique :

gcloud compute instances create [INSTANCE_NAME] --address [IP_ADDRESS]

où :

  • [INSTANCE_NAME] est le nom de l'instance.
  • [IP_ADDRESS] est l'adresse IP à attribuer à l'instance. Utilisez l'adresse IP, pas le nom de l'adresse.

API

Dans votre requête de création d'instance, indiquez explicitement la propriété networkInterfaces[].accessConfigs[].natIP et l'adresse IP externe que vous souhaitez utiliser. Exemple :

{
  "name": "[INSTANCE_NAME]",
  "machineType": "zones/[ZONE]/machineTypes/[MACHINE_TYPE]",
  "networkInterfaces": [{
    "accessConfigs": [{
      "type": "ONE_TO_ONE_NAT",
      "name": "External NAT",
      "natIP": "[IP_ADDRESS]"
     }],
    "network": "global/networks/default"
  }],
  "disks": [{
     "autoDelete": "true",
     "boot": "true",
     "type": "PERSISTENT",
     "initializeParams": {
        "sourceImage": "projects/debian-cloud/global/images/v20150818"
     }
   }]
 }

Modifier ou attribuer une adresse IP externe à une instance existante

Vous pouvez modifier ou attribuer une adresse IP externe, éphémère ou statique, à une instance existante en modifiant la configuration d'accès de l'instance.

Une instance peut avoir plusieurs interfaces et chaque interface peut avoir une adresse IP externe. Si l'instance en possède déjà une, vous devez d'abord retirer l'adresse IP externe existante en supprimant l'ancienne configuration d'accès. Vous pouvez ensuite ajouter une configuration d'accès avec la nouvelle adresse IP externe.

Console

  1. Accédez à la page "Instances de VM" de la console GCP.

    Accéder à la page "Instances de VM"

  2. Cliquez sur le nom de l'instance à laquelle vous souhaitez attribuer une adresse IP externe. La page de détails de l'instance s'affiche.
  3. Sur la page des détails de l'instance, procédez comme suit :

    1. Cliquez sur Modifier.
    2. Sous Network interfaces (Interfaces réseau), cliquez sur le bouton Modifier.

      Capture d'écran de la section de l'interface réseau de la console

    3. Sous External IP (Adresse IP externe), sélectionnez une adresse IP externe éphémère ou statique à attribuer à l'instance.

      Capture d'écran des options IP internes et externes

    4. Cliquez sur OK.

    5. Cliquez sur Enregistrer.

gcloud

  1. [Facultatif] Réservez une adresse IP externe statique.

    Si vous souhaitez attribuer une adresse IP externe statique, vous devez réserver une adresse et vous assurer que celle-ci n'est pas utilisée par une autre ressource. Si nécessaire, suivez les instructions pour réserver une nouvelle adresse IP externe statique ou pour annuler l'attribution d'une adresse IP externe statique.

    Si vous souhaitez utiliser une adresse IP externe éphémère, vous pouvez ignorer cette étape. Compute Engine vous attribuera alors une adresse IP externe éphémère de manière aléatoire.

  2. Supprimez les configurations d'accès existantes.

    Une instance ne peut avoir qu'une seule configuration d'accès. Avant d'essayer d'attribuer une nouvelle configuration d'accès à une instance, vérifiez si votre instance dispose d'une configuration d'accès en effectuant une requête gcloud compute instances describe :

    gcloud compute instances describe [INSTANCE_NAME]
    

    S'il existe déjà une configuration d'accès, elle s'affiche au format suivant :

    networkInterfaces:
    - accessConfigs:
      - kind: compute#accessConfig
        name: external-nat
        natIP: 130.211.181.55
        type: ONE_TO_ONE_NAT
    

    Avant d'ajouter une configuration d'accès, vous devez supprimer l'existante à l'aide de la sous-commande instances delete-access-config :

    gcloud compute instances delete-access-config [INSTANCE_NAME] \
        --access-config-name "[ACCESS_CONFIG_NAME]"
    

    où :

    • [INSTANCE_NAME] est le nom de l'instance.
    • [ACCESS_CONFIG_NAME] est la configuration d'accès à supprimer. Assurez-vous d'inclure le nom complet entre guillemets.
  3. Ajoutez la nouvelle adresse IP externe.

    Exécutez la sous-commande instances add-access-config pour ajouter une adresse IP externe :

    Remarque : Ne remplacez pas [IP_ADDRESS] par le nom de l'adresse IP statique. Vous devez utiliser l'adresse IP réelle.
    gcloud compute instances add-access-config [INSTANCE_NAME] \
       --access-config-name "[ACCESS_CONFIG_NAME]" --address [IP_ADDRESS]
    

    où :

    • [INSTANCE_NAME] est le nom de l'instance.
    • [ACCESS_CONFIG_NAME] est le nom donné à cette configuration d'accès. Assurez-vous d'inclure le nom complet entre guillemets.
    • [IP_ADDRESS] est l'adresse IP à ajouter.

    Si vous souhaitez que Compute Engine attribue une adresse IP externe éphémère plutôt que d'utiliser une adresse IP externe statique, ne renseignez pas la propriété --address [IP_ADDRESS] :

    gcloud compute instances add-access-config [INSTANCE_NAME] \
        --access-config-name "[ACCESS_CONFIG_NAME]"
    

Convertir une adresse IP externe éphémère

Si votre instance possède une adresse IP externe éphémère et que vous souhaitez l'attribuer de manière permanente à votre projet, convertissez l'adresse IP externe éphémère en adresse IP externe statique. La conversion d'une adresse IP externe éphémère en adresse IP réservée n'entraîne pas la suppression des paquets envoyés à l'instance par GCP. Cela inclut les paquets envoyés à l'instance directement ou au moyen d'un équilibreur de charge.

Console

  1. Accédez à la page "Adresses IP externes" de la console GCP.

    Accéder à la page "Adresses IP externes"

  2. Dans la colonne Type, définissez le type d'adresse sur Statique pour l'adresse IP que vous souhaitez convertir.
  3. Indiquez un nom pour la nouvelle adresse IP statique, puis cliquez sur Réserver.

gcloud

Pour convertir une adresse IP externe éphémère en adresse IP externe statique, spécifiez l'adresse IP externe éphémère à l'aide du paramètre --addresses lors de la création d'une adresse. Utilisez l'indicateur region pour convertir une adresse IP régionale éphémère ou l'indicateur global pour convertir une adresse IP globale éphémère.

gcloud compute addresses create [ADDRESS_NAME] \
  --addresses [IP_ADDRESS] \
  [--region [REGION] | --global]

où :

  • [ADDRESS_NAME] est le nom que vous voulez donner à cette adresse.
  • [IP_ADDRESS] est l'adresse IP que vous souhaitez convertir.
  • [REGION] est la région à laquelle appartient l'adresse IP régionale.

API

Pour convertir une adresse IP régionale éphémère, envoyez une requête PUT à l'URI suivant :

https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/addresses

Le corps de votre requête doit contenir les éléments suivants :

{
  name: "[ADDRESS_NAME]",
  address: "[IP_ADDRESS]"
}

où :

  • [ADDRESS_NAME] est le nom que vous voulez donner à cette adresse.
  • [IP_ADDRESS] est l'adresse IP que vous souhaitez convertir.
  • [REGION] est la région à laquelle appartient l'adresse IP.
  • [PROJECT_ID] est l'ID de projet pour cette requête.

Pour convertir une adresse IP globale éphémère, envoyez une requête PUT à l'URI suivant :

https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/addresses

Le corps de votre requête doit contenir les éléments suivants :

{
  name: "[ADDRESS_NAME]",
  address: "[IP_ADDRESS]"
}

où :

  • [ADDRESS_NAME] est le nom que vous voulez donner à cette adresse.
  • [IP_ADDRESS] est l'adresse IP que vous souhaitez convertir.
  • [PROJECT_ID] est l'ID de projet pour cette requête.

L'adresse IP externe reste associée à l'instance même après sa conversion en adresse IP externe statique. Si vous devez attribuer l'adresse IP externe statique que vous venez de convertir en une autre ressource, annulez l'attribution de l'adresse IP externe statique à l'instance existante.

Répertorier des adresses IP externes statiques

Pour répertorier les adresses IP externes statiques que vous avez réservées pour votre projet, exécutez la commande addresses list ou envoyez une requête GET à l'API.

Console

Accédez à la page "Adresses IP externes" de la console GCP pour afficher la liste des adresses IP du projet.

Accéder à la page "Adresses IP externes"

gcloud

À l'aide de l'outil de ligne de commande gcloud :

gcloud compute addresses list

API

Pour envoyer une requête directement à l'API, transmettez une requête GET à l'URI suivant avec un corps de requête vide :

https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/addresses

où :

  • [REGION] est le nom de la région pour cette requête.
  • [PROJECT_ID] est l'ID de projet pour cette requête.

Pour répertorier l'ensemble des adresses dans toutes les régions, envoyez une requête à cet URI :

https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/aggregated/addresses

Décrire une adresse IP externe statique

Pour obtenir des informations sur une adresse IP externe statique, exécutez la commande gcloud compute addresses describe et indiquez le nom de l'adresse, ou envoyez une requête GET à l'API.

Console

  1. Accédez à la page "Adresses IP externes" de la console GCP.

    Accéder à la page "Adresses IP externes"

  2. Cliquez sur l'adresse IP pour laquelle vous souhaitez obtenir plus d'informations.

gcloud

Pour utiliser gcloud compute addresses describe, exécutez la commande suivante :

gcloud compute addresses describe [ADDRESS_NAME]

[ADDRESS_NAME] est le nom de l'adresse IP externe que vous souhaitez décrire.

API

Pour envoyer une requête directement à l'API, transmettez une requête GET avec un corps de requête vide à cet URI :

https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/addresses/[ADDRESS_NAME]

où :

  • [ADDRESS_NAME] est le nom de l'adresse IP.
  • [REGION] est le nom de la région pour cette requête.
  • [PROJECT_ID] est l'ID de projet pour cette requête.

Annuler l'attribution d'une adresse IP externe statique

Vous pouvez annuler l'attribution d'une adresse IP externe statique en supprimant l'instance ou en supprimant la configuration d'accès associée à l'instance qui utilise l'adresse. Annuler l'attribution d'une adresse IP externe statique permet de la réattribuer à une autre ressource.

Cette annulation d'attribution supprime l'adresse IP de la ressource, mais elle reste réservée au projet. Vous pouvez vérifier qu'une adresse IP statique est utilisée en envoyant une requête gcloud compute addresses list :

gcloud compute addresses list

La réponse peut ressembler à la suivante :

NAME                 REGION      ADDRESS            STATUS
example-address      [REGION]    130.211.160.207    RESERVED
example-address-new  [REGION]    130.211.114.137    IN_USE

Dans cet exemple, l'adresse example-address-new est actuellement utilisée.

Pour supprimer la configuration d'accès d'une instance et annuler l'attribution d'une adresse IP externe statique, procédez comme suit :

  1. Récupérez le nom de la configuration d'accès à supprimer. Pour obtenir ce nom, envoyez une requête gcloud compute instances describe :

    gcloud compute instances describe [INSTANCE_NAME]
    

    [INSTANCE_NAME] est le nom de l'instance.

    La configuration d'accès s'affiche au format suivant :

    networkInterfaces:
    - accessConfigs:
     - kind: compute#accessConfig
       name: external-nat
       natIP: 130.211.181.55
       type: ONE_TO_ONE_NAT
    
  2. Supprimez la configuration d'accès.

    Exécutez la sous-commande instances delete-access-config :

    gcloud compute instances delete-access-config [INSTANCE_NAME] \
        --access-config-name "[ACCESS_CONFIG_NAME]"
    

    où :

    • [INSTANCE_NAME] est le nom de l'instance.
    • [ACCESS_CONFIG_NAME] est le nom de la configuration d'accès à supprimer. Assurez-vous d'inclure le nom complet entre guillemets.
  3. Vérifiez que votre adresse IP externe statique est maintenant disponible et marquée comme RESERVED au lieu de IN_USE.

    gcloud compute addresses list
    

    Exemple :

    NAME                 REGION      ADDRESS            STATUS
    example-address      [REGION]    130.211.160.207    RESERVED
    example-address-new  [REGION]    130.211.114.137    RESERVED
    

Maintenant que votre adresse IP externe statique est disponible, vous pouvez choisir de l'attribuer à une autre instance.

Libérer une adresse IP externe statique

Si vous n'avez plus besoin d'une adresse IP externe statique, vous pouvez la libérer afin qu'elle soit renvoyée au pool d'adresses IP général pour les autres utilisateurs de Compute Engine.

Console

  1. Accédez à la page "Adresses IP externes" de la console GCP.

    Accéder à la page "Adresses IP externes"

  2. Cochez la case à côté de l'adresse IP à libérer.
  3. Cliquez sur Libérer l'adresse IP.

gcloud

Utiliser l'outil de ligne de commande gcloud :

gcloud compute addresses delete [ADDRESS_NAME]

[ADDRESS_NAME] est le nom de l'adresse IP.

API

Pour envoyer une requête directement à l'API, transmettez une requête DELETE avec un corps de requête vide à cet URI :

https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/addresses/[ADDRESS_NAME]

où :

  • [ADDRESS_NAME] est le nom de l'adresse IP.
  • [REGION] est le nom de la région pour cette requête.
  • [PROJECT_ID] est l'ID de projet pour cette requête.

Choisir une adresse IP interne lors de la création de l'instance

Vous pouvez éventuellement choisir l'adresse IP interne que vous souhaitez attribuer à une instance lors de sa création. Il doit s'agir d'une adresse IP valide du sous-réseau de l'instance, et elle ne doit pas être déjà utilisée. L'adresse IP reste associée à l'instance jusqu'à ce que vous supprimiez cette dernière, ce qui libère l'adresse IP dans le pool. Si vous arrêtez et redémarrez l'instance, celle-ci conserve la même adresse IP interne.

Si vous n'indiquez pas d'adresse IP, Compute Engine en alloue une automatiquement depuis le sous-réseau ou le réseau. Vous pouvez spécifier une adresse IP interne à l'aide de l'outil de ligne de commande gcloud ou de l'API.

gcloud

Dans gcloud, exécutez la commande suivante :

gcloud compute instances create [INSTANCE_NAME]
     --private-network-ip [IP_ADDRESS]

où :

  • [INSTANCE_NAME] est le nom de l'instance que vous souhaitez créer.
  • [IP_ADDRESS] est l'adresse IP que vous voulez attribuer.

Si vous utilisez un réseau en mode sous-réseau personnalisé, vous devez également spécifier le sous-réseau à l'aide du paramètre --subnet [SUBNET].

API

Pour créer une instance avec une adresse IP interne statique, servez-vous de l'API Compute Engine. Envoyez une requête pour créer une instance en suivant la procédure habituelle, mais renseignez explicitement la propriété networkInterfaces[].networkIP avec l'adresse IP interne que vous souhaitez utiliser. Exemple :

{
  "name": "[INSTANCE_NAME]",
  "machineType": "zones/us-central1-f/machineTypes/f1-micro",
  "networkInterfaces": [{
    "accessConfigs": [{
      "type": "ONE_TO_ONE_NAT",
      "name": "External NAT",
     }],
    "network": "global/networks/default",
    "networkIP": "[IP_ADDRESS]"
  }],
  "disks": [{
     "autoDelete": "true",
     "boot": "true",
     "type": "PERSISTENT",
     "initializeParams": {
        "sourceImage": "projects/debian-cloud/global/images/v20150818"
     }
   }]
 }

où :

  • [INSTANCE_NAME] est le nom de l'instance.
  • [IP_ADDRESS] est l'adresse IP à attribuer à l'instance.

Si vous supprimez une instance pour laquelle une adresse IP est spécifiée, celle-ci retourne dans le pool d'adresses non allouées. Si l'adresse IP interne doit persister au-delà de la durée de vie de l'instance, vous pouvez réserver une adresse IP interne statique.

Désactiver l'accès aux adresses IP externes pour les instances de VM

Pour certaines charges de travail, il est possible que vous deviez respecter des conditions requises essentielles, telles que des restrictions de sécurité et de réseau. Par exemple, vous pouvez vouloir restreindre l'accès aux adresses IP externes sur les instances de VM afin d'empêcher l'exfiltration des données ou de maintenir l'isolation du réseau, autant de restrictions courantes et nécessaires pour de nombreux clients. Avec une règle d'administration, il est à présent possible de désactiver l'accès aux adresses IP externes avec une contrainte de règle qui facilite et rend pratique le contrôle des accès par adresses IP externes à vos instances de VM au sein d'une organisation ou d'un projet.

Voici la contrainte pour contrôler les adresses IP externes sur les instances de VM :

constraints/compute.vmExternalIpAccess

Pour utiliser la contrainte, vous devez spécifier une règle avec la liste allowedList des instances de VM pouvant avoir des adresses IP externes. Si aucune règle n'est spécifiée, toutes les adresses IP externes sont autorisées pour toutes les instances de VM. Lorsque la règle est en place, seules les instances de VM répertoriées dans la liste allowedValues peuvent se voir attribuer une adresse IP externe, éphémère ou statique. En revanche, les autres instances de VM Compute Engine, dans l'organisation ou le projet, qui ne sont pas explicitement définies dans la règle ne sont pas autorisées à utiliser des adresses IP externes.

Les VM sont identifiées dans les listes d'autorisation ou d'interdiction à l'aide de l'URL de l'instance :

projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]

Spécifications

  • Vous ne pouvez appliquer cette contrainte de liste qu'aux instances de VM.
  • Vous ne pouvez pas appliquer la contrainte rétroactivement. Toutes les instances de VM qui ont des adresses IP externes avant que la règle ne soit activée conserveront leur adresse IP externe.
  • Cette contrainte accepte soit une liste allowedList, soit une liste deniedList, mais pas les deux dans la même règle.
  • C'est à vous ou à un administrateur disposant des autorisations nécessaires de gérer et d'administrer le cycle de vie et l'intégrité de l'instance. La contrainte valide uniquement l'URL de l'instance et n'empêche pas les VM de la liste blanche d'être modifiées, supprimées ni recréées.

Autorisations

Pour définir une contrainte au niveau du projet ou de l'organisation, vous devez disposer du rôle orgpolicy.policyAdmin sur l'organisation.

Définir la contrainte de règle au niveau de l'organisation

Pour définir une contrainte pour l'accès aux adresses IP externes, vous devez d'abord disposer de l'ID de votre organisation.

Trouver l'ID de votre organisation

Console

Vous pouvez également trouver l'ID dans la console Google Cloud Platform :

  1. Connectez-vous à la console Google Cloud Platform.
  2. Cliquez sur le sélecteur de projet.

    Capture d'écran du sélecteur d'organisation et du sélecteur de projet

  3. Sélectionnez une organisation, puis recherchez l'ID de l'organisation.

    Capture d'écran de l'ID de l'organisation

gcloud

Vous pouvez trouver le n numérique en exécutant la commande gcloud suivante et en recherchant l'ID :

gcloud organizations list

gcloud renvoie un résultat semblable au suivant :

DISPLAY_NAME           ID
example-organization   29252605212

Définir une contrainte de règle

Console

  1. Accédez à la page "Règles de l'organisation".

    Accéder à la page "Règles de l'organisation"

  2. Si nécessaire, choisissez l'organisation souhaitée dans le menu déroulant du projet.
  3. Cliquez sur Définir les adresses IP externes autorisées pour les instances de VM.
  4. Cliquez sur Modifier pour modifier la règle des adresses IP externes. Si vous ne pouvez pas accéder à l'outil Modifier, vous ne disposez pas des autorisations appropriées.
  5. Sélectionnez Plate-forme du processeur et GPU pour appliquer spécifiquement une règle d'administration à certaines instances de VM.

    Capture d'écran illustrant la personnalisation de la règle d'administration

  6. Choisissez l'option souhaitée pour Application des règles et Type de règles.

  7. Sous Valeurs de règles, sélectionnez Personnalisé.

  8. Saisissez une URL partielle vers une instance de machine virtuelle, puis appuyez sur "Entrée". Continuez à saisir les instances de VM comme vous le souhaitez.

    Capture d'écran illustrant l'ajout des instances de VM à la règle d'administration

  9. Cliquez sur Enregistrer pour enregistrer les modifications.

gcloud

Exécutez la commande gcloud resource-manager org-policies set-policy pour définir la règle. Vous devrez fournir votre règle sous la forme d'un fichier JSON. Créez un fichier JSON dont le contenu ressemble à celui-ci :

{
"constraint": "constraints/compute.vmExternalIpAccess",
"listPolicy": {
  "allowedValues": [
     "projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]",
     "projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]",
     "projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]"
  ]
 }
}

où :

  • [PROJECT_ID] est l'ID du projet pour cette requête, par exemple example-project. Sachez que la procédure diffère des étapes à suivre pour configurer les règles d'administration qui, elles, nécessitent l'ID numérique de l'organisation.
  • [ZONE] est la zone de l'instance.
  • [INSTANCE_NAME] est le nom de l'instance.

Vous pouvez également spécifier une liste deniedValues pour indiquer les instances de VM pour lesquelles vous voulez explicitement interdire les adresses IP externes. Les instances qui ne figurent pas sur la liste seront implicitement autorisées à posséder une adresse IP externe. Vous pouvez spécifier une liste allowedValues ou une liste deniedValues, mais pas les deux.

Ensuite, transmettez le fichier avec votre requête gcloud :

gcloud beta resource-manager org-policies set-policy my-policy.json --organization [ORGANIZATION_ID]

[ORGANIZATION_ID] est l'ID numérique de l'organisation.

Si vous ne souhaitez pas que les instances aient accès aux adresses IP externes, vous pouvez configurer une règle avec le paramètre allValues défini sur DENY :

{
"constraint": "constraints/compute.vmExternalIpAccess",
"listPolicy": {
  "allValues": "DENY"
 }
}

API

Définissez votre contrainte à l'aide l'API setOrgPolicy(). Les VM de la liste allowedValue que vous avez spécifiées seront autorisées à disposer d'adresses IP externes. Vous pouvez également spécifier une liste deniedValues pour indiquer les instances de VM pour lesquelles vous voulez explicitement interdire les adresses IP externes. Les instances qui ne figurent pas sur la liste seront implicitement autorisées à posséder une adresse IP externe. Vous pouvez spécifier une liste allowedValues ou une liste deniedValues, mais pas les deux.

Par exemple, voici une requête permettant de définir la contrainte compute.vmExternalIpAccess sur une organisation, dans laquelle les instances de VM de certains projets de l'organisation sont autorisées à posséder des adresses IP externes :

POST https://cloudresourcemanager.googleapis.com/v1/organizations/[ORGANIZATION_ID]:setOrgPolicy

[ORGANIZATION_ID] est l'ID numérique de l'organisation.

Dans le corps de votre requête, indiquez la règle souhaitée pour cette contrainte :

{
  "policy": {
    "constraint": "constraints/compute.vmExternalIpAccess",
    "listPolicy": {
      "allowedValues": [
        "projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]",
        "projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]",
        "projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]"
        ]
      }
    }
 }

Si vous ne souhaitez pas que les instances aient accès aux adresses IP externes, vous pouvez configurer une règle avec le paramètre allValues défini sur DENY :

{
  "policy": {
    "constraint": "constraints/compute.vmExternalIpAccess",
    "listPolicy": {
      "allValues": "DENY"
      }
    }
 }

Définir la règle au niveau du projet

Une règle définie au niveau du projet est prioritaire sur la règle définie au niveau de l'organisation. Exemple : si example-vm-1 figure sur la liste allowedValues au niveau de l'organisation, mais que la règle au niveau du projet mentionne la même VM sur la liste deniedValues, l'instance de VM ne sera pas autorisée à posséder une adresse IP externe.

Console

Suivez la même procédure que celle décrite à la section Définir la contrainte de règle au niveau de l'organisation en choisissant le projet souhaité dans le sélecteur de projet plutôt que via le sélecteur d'organisation.

Capture d'écran du sélecteur de projet

gcloud

Exécutez la commande gcloud beta resource-manager org-policies set-policy pour définir la règle. Vous devrez fournir votre règle sous la forme d'un fichier JSON. Créez un fichier JSON dont le contenu ressemble à celui-ci :

{
 "constraint": "constraints/compute.vmExternalIpAccess",
 "listPolicy": {
  "allowedValues": [
   "projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]"
  ]
 }
}

où :

  • [PROJECT_ID] est l'ID du projet pour cette requête, par exemple example-project. Sachez que la procédure diffère des étapes à suivre pour configurer les règles d'administration qui, elles, nécessitent l'ID numérique de l'organisation.
  • [ZONE] est la zone de l'instance.
  • [INSTANCE_NAME] est le nom de l'instance.

Vous pouvez également spécifier une liste deniedValues d'instances de VM pour lesquelles vous souhaitez explicitement interdire les adresses IP externes. Les instances qui ne figurent pas sur la liste seront implicitement autorisées à posséder une adresse IP externe. Vous pouvez spécifier une liste allowedValues ou une liste deniedValues, mais pas les deux.

Ensuite, transmettez le fichier avec votre requête gcloud :

gcloud beta resource-manager org-policies set-policy my-policy.json --project example-project

API

Définissez votre contrainte à l'aide l'API setOrgPolicy(). Les VM de la liste allowedValue que vous avez spécifiées seront autorisées à disposer d'adresses IP externes. Vous pouvez également spécifier une liste deniedValues pour indiquer les instances de VM pour lesquelles vous voulez explicitement interdire les adresses IP externes. Les instances qui ne figurent pas sur la liste sont implicitement autorisées à posséder une adresse IP externe. Vous pouvez spécifier une liste allowedValues ou une liste deniedValues, mais pas les deux.

Par exemple, voici une requête permettant de définir la contrainte compute.vmExternalIpAccess sur un projet pour autoriser des instances de VM spécifiques à posséder des adresses IP externes :

POST https://cloudresourcemanager.googleapis.com/v1/projects/[PROJECT_ID]:setOrgPolicy

[PROJECT_ID] est l'ID de projet pour cette requête.

Le corps de la requête contient la règle souhaitée pour cette contrainte :

{
 "policy": {
  "constraint": "constraints/compute.vmExternalIpAccess",
  "listPolicy": {
   "allowedValues": [
    "projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]"
   ]
  }
 }
}

Bonnes pratiques

  • Google vous recommande d'éviter d'utiliser la liste deniedValues avec cette contrainte. Si vous définissez des valeurs dans la liste deniedValues, cela signifie que seules les instances de VM de la liste deniedValues ne peuvent pas se servir d'adresses IP externes. Cela peut poser un problème de sécurité si vous souhaitez contrôler exactement quelles instances peuvent disposer d'adresses IP externes. Si vous voulez supprimer certaines instances de la liste allowedValues, mettez à jour la règle existante pour retirer les instances de la liste allowedList plutôt que d'ajouter des instances à la liste deniedValues à un niveau hiérarchique inférieur.

  • Si vous souhaitez définir une règle sur une grande partie de la hiérarchie des ressources, mais exclure certains projets, vous devez restaurer la règle par défaut à l'aide de la méthode setOrgPolicy. Pour ce faire, spécifiez l'objet restoreDefault pour que toutes les VM des projets puissent être associées à des adresses IP externes. Les règles actuellement en place pour les projets ne seront pas affectées par ce paramètre par défaut.

  • Appliquez cette règle d'administration avec les rôles IAM pour mieux contrôler votre environnement. Cette règle s'applique uniquement aux instances de VM, mais si vous souhaitez mieux contrôler et restreindre les adresses IP externes sur les appareils réseau, vous pouvez accorder le rôle compute.networkAdmin aux parties appropriées.

  • Tous les services et produits qui s'exécutent sur Compute Engine au sein de l'organisation ou du projet avec la règle activée sont soumis à cette règle d'administration. Plus précisément, les services tels que Kubernetes Engine, Dataflow, Data Proc et Cloud SQL sont affectés par cette règle. Si cela pose problème, Google recommande de configurer d'autres services et produits dans un projet différent auquel la règle d'administration n'est pas appliquée, et d'utiliser si nécessaire XPN (cross-project networking).

Étapes suivantes

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation Compute Engine