Réserver une adresse IP externe statique


Vous pouvez réserver les adresses IP externes statiques pour votre instance de machine virtuelle (VM). Vous pouvez également modifier, regrouper et publier des adresses IP statiques pour votre VM.

Les adresses IP externes peuvent être statiques ou éphémères. Si une VM nécessite une adresse IP externe fixe qui ne change pas, vous pouvez l'obtenir de l'une des façons suivantes : Vous pouvez réserver de nouvelles adresses IP externes ou convertir des adresses IP externes éphémères existantes.

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

Avant de commencer

  • En savoir plus sur les adresses IP.
  • En savoir plus sur les quotas et limites pour les adresses IP externes statiques.
  • Consultez la section sur la tarification des adresses IP externes.
  • 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.

    Terraform

    Pour utiliser les exemples Terraform de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.

    1. Installez Google Cloud CLI.
    2. Pour initialiser gcloudCLI, exécutez la commande suivante :

      gcloud init
    3. Créez des identifiants d'authentification locaux pour votre compte Google :

      gcloud auth application-default login

    Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.

    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

Autorisations

Pour réserver des adresses IPv6 externes statiques régionales à l'aide de la console Google Cloud, vous devez sélectionner un réseau et un sous-réseau. Toutefois, pour afficher la liste des réseaux et sous-réseaux disponibles, vous devez disposer des autorisations IAM suivantes :

  • compute.networks.list
  • compute.subnetworks.list

À propos des adresses IP externes statiques

Une adresse IP externe statique est une adresse IP réservée pour votre ressource 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 ressource. Vous pouvez également convertir une adresse IP externe éphémère en adresse IP externe statique.

Pour en savoir plus, consultez la section Adresses IP.

Le tableau suivant répertorie les adresses IP externes statiques acceptées par Google Cloud.

Type d'adresse IP Ressource Plage d'adresses IP Source Associée à
Adresses IPv6 externes régionales VM et équilibreurs de charge régionaux /32 Pool d'adresses IP externes de Google Projet
Adresses IPv6 externes régionales VM et équilibreurs de charge régionaux compatibles /96 Plage d'adresses IPv6 externe du sous-réseau Sous-réseau
Adresses IPv4 externes globales Équilibreurs de charge mondiaux /32 Pool d'adresses IP externes de Google Projet
Adresses IPv6 externes globales Équilibreurs de charge mondiaux /64 Pool d'adresses IP externes de Google Projet

Pour consulter la liste des équilibreurs de charge régionaux et globaux, reportez-vous au Récapitulatif des types d'équilibreurs de charge.

Spécifications d'utilisation des adresses IP externes statiques

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

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

  • Chaque 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.

  • Vous ne pouvez pas modifier le nom d'une adresse IP statique.

  • Les adresses IP externes attribuées existent sur le même hôte physique que la VM et existent dans la même région que la VM à toutes fins, y compris pour le routage, la latence et les tarifs. Cela est valable quelles que soient les informations de recherche de géolocalisation Internet.

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.

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

Réserver une nouvelle adresse IP externe statique

Une fois l'adresse réservée, attribuez-la à une nouvelle VM lors de sa création ou à une VM existante.

Console

  1. Dans la console Google Cloud, accédez à la page Réserver une adresse statique.

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

  2. Choisissez un nom pour la nouvelle adresse.

  3. Indiquez si le niveau de service réseau est Premium ou Standard. La réservation d'adresse statique IPv6 n'est acceptée qu'avec le niveau Premium.

  4. Indiquez s'il s'agit d'une adresse IPv4 ou IPv6.

  5. Choisissez si cette adresse IP est régionale ou globale.

    • Si vous réservez une adresse IP statique pour un équilibreur de charge global, sélectionnez Global, puis cliquez sur Réserver.
    • Si vous réservez une adresse IP statique pour une VM ou pour un équilibreur de charge régional, sélectionnez Régional, puis sélectionnez la région dans laquelle créer l'adresse.
  6. Si vous réservez une adresse IPv6 externe régionale, choisissez également les éléments suivants :

    • Réseau : le réseau VPC
    • Sous-réseau : sous-réseau à partir duquel attribuer l'adresse IPv6 régionale statique
    • Type de point de terminaison : choisissez Instance de VM ou Équilibreur de charge réseau.
  7. Facultatif : Si vous réservez l'adresse IP externe statique pour une VM, sélectionnez une VM à laquelle associer l'adresse IP dans la liste Associée à.

  8. Cliquez sur Réserver pour réserver l'adresse IP.

gcloud

Pour réserver une adresse IP externe statique, utilisez la commande gcloud compute addresses create.

Suivez les instructions ci-dessous pour réserver une adresse IPv4 ou IPv6 externe statique :

  • Pour réserver une adresse IP globale, utilisez les champs --global et --ip-version. Pour le champ --ip-version, spécifiez IPv4 ou IPv6. Les adresses IP globales ne peuvent être utilisées qu'avec les équilibreurs de charge globaux.

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

    Remplacez ADDRESS_NAME par le nom que vous souhaitez associer à cette adresse.

  • Pour réserver une adresse IPv4 externe régionale, utilisez le champ --region.

    gcloud compute addresses create ADDRESS_NAME \
       --region=REGION
    

    Remplacez les éléments suivants :

    • ADDRESS_NAME : nom que vous souhaitez associer à cette adresse.
    • REGION : région dans laquelle vous souhaitez réserver cette adresse. Il doit s'agir de la même région que la ressource à laquelle vous souhaitez associer l'adresse IP.
  • Pour réserver une adresse IPv6 externe régionale, utilisez les champs --region, --subnet, --ip-version et --endpoint-type. Une plage IPv6 /96 est attribuée à partir du sous-réseau spécifié.

    gcloud compute addresses create IPV6_ADDRESS_NAME \
       --region=REGION \
       --subnet=SUBNET_NAME \
       --ip-version=IPV6 \
       --endpoint-type=[VM | NETLB]
    

    Remplacez les éléments suivants :

    • IPV6_ADDRESS_NAME : nom de l'adresse.
    • REGION : région de l'adresse.
    • SUBNET_NAME : sous-réseau à partir duquel attribuer l'adresse IPv6 régionale statique. Le sous-réseau doit avoir une plage d'adresses IPv6 externe attribuée.
    • VM | NETLB : type de point de terminaison qu'il s'agisse d'une VM ou d'un équilibreur de charge réseau.

Pour afficher le résultat, utilisez la commande gcloud compute addresses describe :

gcloud compute addresses describe ADDRESS_NAME

Terraform

Vous pouvez utiliser la ressource google_compute_address pour créer une adresse IP externe régionale.

resource "google_compute_address" "default" {
  name   = "my-test-static-ip-address"
  region = "us-central1"
}

L'exemple suivant montre comment utiliser la ressource google_compute_global_address pour créer une adresse IPv6 externe globale :

resource "google_compute_global_address" "default" {
  project      = var.project_id # Replace this with your service project ID in quotes
  name         = "ipv6-address"
  address_type = "EXTERNAL"
  ip_version   = "IPV6"
}

REST

  • Pour créer une adresse IPv4 régionale, appelez la méthode addresses.insert régionale :

    POST https://compute.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"
    }
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet pour cette requête
    • REGION : nom de la région pour cette requête
    • ADDRESS_NAME : nom que vous souhaitez associer à l'adresse
  • Pour les adresses IPv4 statiques globales, appelez la méthode globalAddresses.insert :

    POST https://compute.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, appelez la méthode globalAddresses.insert :

    POST https://compute.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"
    }
    

    Pour afficher le résultat, utilisez la méthode addresses.get.

  • Pour les adresses IPv6 statiques régionales, appelez la méthode addresses.insert :

    POST https://compute.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",
      "ipVersion": "IPV6",
      "ipv6EndpointType": "VM|LB",
      "networkTier": "PREMIUM",
      "subnetwork": "SUBNET"
    }
    

    Remplacez SUBNET par le sous-réseau de ce projet.

    Pour afficher le résultat, utilisez la méthode addresses.get.

Attribuer une adresse IP externe statique à une nouvelle VM

Après avoir réservé une adresse IP externe statique, vous pouvez l'attribuer à une VM.

Console

  1. Accédez à la page Créer une instance dans Google Cloud Console.

    Accéder à la page Créer une instance

  2. Spécifiez les détails de la VM.

  3. Développez la section Options avancées.

  4. Développez la section Mise en réseau.

  5. Dans la section Interfaces réseau, développez une interface réseau pour la modifier.

  6. Pour attribuer une adresse IPv4, procédez comme suit :

    1. Sélectionnez un réseau.
    2. Sélectionnez l'adresse IP dans la liste Adresse IPv4 externe.
  7. Pour attribuer une adresse IPv6, procédez comme suit :

    1. Sélectionnez un réseau contenant un sous-réseau IPv6.
    2. Sélectionnez un sous-réseau à double pile dans la liste Sous-réseau.
    3. Dans le champ Type de pile d'adresses IP, sélectionnez IPv4 et IPv6 (double pile).
    4. Sélectionnez l'adresse IPv6 externe nouvellement réservée dans la liste Adresse IPv6 externe. Vous pouvez également sélectionner CRÉER UNE ADRESSE IP et réserver une nouvelle adresse IPv6 externe statique.
    5. Pour Niveau de service réseau, sélectionnez Premium.
  8. Pour terminer la modification de l'interface réseau par défaut, cliquez sur Terminé.

  9. Poursuivez le processus de création de la VM.

gcloud

Vous pouvez créer une VM et attribuer une adresse IP externe régionale statique que vous avez déjà réservée.

  • Pour attribuer une adresse IPv4 externe statique, procédez comme suit :

    gcloud compute instances create VM_NAME --address=IP_ADDRESS
    

    Remplacez les éléments suivants :

    • VM_NAME : nom de la VM.
    • IP_ADDRESS : adresse IP à attribuer à l'instance. Utilisez l'adresse IP externe statique réservée plutôt que le nom d'adresse.
  • Pour attribuer une adresse IPv6 externe statique, procédez comme suit :

    gcloud compute instances create VM_NAME \
        --subnet=SUBNET \
        --stack-type=IPV4_IPV6 \
        --external-ipv6-address=IPV6_ADDRESS \
        --external-ipv6-prefix-length=96 \
        --ipv6-network-tier=PREMIUM \
        --zone=ZONE
    

Terraform

Vous pouvez utiliser la ressource google_compute_instance pour attribuer une adresse IP externe.

resource "google_compute_instance" "default" {
  name         = "dns-proxy-nfs"
  machine_type = "n1-standard-1"
  zone         = "us-central1-a"

  boot_disk {
    initialize_params {
      image = "ubuntu-1404-trusty-v20160627"
    }
  }

  network_interface {
    network = "default"
    access_config {
      nat_ip = google_compute_address.default.address
    }
  }
}

REST

Pour attribuer une adresse IPv4 externe statique à une nouvelle VM, procédez comme suit :

Dans votre requête de création de VM, indiquez explicitement la propriété networkInterfaces[].accessConfigs[].natIP et l'adresse IPv4 externe que vous souhaitez utiliser. Par exemple :

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "networkInterfaces": [{
    "accessConfigs": [{
      "type": "ONE_TO_ONE_NAT",
      "name": "External NAT",
      "natIP": "IPV4_ADDRESS"
     }],
    "network": "global/networks/default"
  }],
  "disks": [{
      "autoDelete": "true",
      "boot": "true",
      "type": "PERSISTENT",
      "initializeParams": {
          "sourceImage": "SOURCE_IMAGE"
      }
}]
}

Pour attribuer une adresse IPv6 externe statique à une nouvelle VM, procédez comme suit :

Dans votre requête de création de VM, indiquez explicitement la propriété networkInterfaces[].ipv6AccessConfigs[].externalIpv6 et l'adresse IPv6 externe que vous souhaitez utiliser. Par exemple :

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "networkInterfaces": [{
          "accessConfigs": [{
              "name": "external-nat",
              "type": "ONE_TO_ONE_NAT"
          }],
          "ipv6AccessConfigs": [{
        "externalIpv6": "IOV6_ADDRESS",
        "externalIpv6PrefixLength": 96,
        "name": "external-ipv6-access-config",
        "networkTier": "PREMIUM",
        "type": "DIRECT_IPV6"
          }],
      "stackType": "IPV4_IPV6",
      "subnetwork":"SUBNETWORK
  }],
  "disks": [{
    "autoDelete": "true",
    "boot": "true",
    "mode": "READ_WRITE",
    "type": "PERSISTENT",
    "initializeParams": {
        "sourceImage": "SOURCE_IMAGE"
    },
  }],
 }

Modifier ou attribuer une adresse IP externe à une VM existante

Vous pouvez modifier ou attribuer une adresse IP externe, éphémère ou statique à une VM existante.

Une VM peut avoir plusieurs interfaces et chaque interface peut avoir une adresse IP externe. Si la VM dispose déjà d'une adresse IP externe, vous devez d'abord la supprimer. Vous pouvez ensuite attribuer une nouvelle adresse IP externe à la VM existante.

Console

  1. Dans la console Google Cloud, accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Cliquez sur le nom de la VM à 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. Développez la section Interfaces réseau.
    3. Sélectionnez l'adresse IP externe requise à attribuer à la VM :
      1. Dans le champ Adresse IPv4 externe, sélectionnez Éphémère ou une adresse IPv4 externe statique.
      2. Dans le champ Adresse IPv6 externe, sélectionnez Éphémère ou une adresse IPv6 externe statique.
    4. Cliquez sur OK.
  4. 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 attribue alors une adresse IP externe éphémère de manière aléatoire.

  2. Supprimez l'attribution d'adresse IP existante.

    • Pour supprimer une adresse IPv4 d'une VM, supprimez les configurations d'accès existantes.

      Vous pouvez définir une configuration d'accès pour chaque VM. Avant d'essayer d'attribuer une nouvelle configuration d'accès à une VM, vérifiez si votre VM dispose d'une configuration d'accès en effectuant une requête à l'aide de la commande gcloud compute instances describe :

      gcloud compute instances describe VM_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: 203.0.113.1
          type: ONE_TO_ONE_NAT
      

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

      gcloud compute instances delete-access-config VM_NAME \
          --access-config-name="ACCESS_CONFIG_NAME"
      

      Remplacez les éléments suivants :

      • VM_NAME : Nom de la VM.
      • ACCESS_CONFIG_NAME : configuration d'accès à supprimer. Assurez-vous d'inclure le nom complet entre guillemets.
    • Pour supprimer une adresse IPv6 d'une VM, modifiez le type de pile.

      Pour vérifier si votre VM dispose d'une configuration IPv6, envoyez une requête à l'aide de la commande gcloud compute instances describe :

      gcloud compute instances describe VM_NAME \
          --zone=ZONE
      

      Remplacez les éléments suivants :

      • VM_NAME : Nom de la VM.
      • ZONE : zone de la VM.

      Si une adresse IPv6 externe a déjà été attribuée à nic0, la configuration est affichée au format suivant :

      networkInterfaces:
        ...
        ipv6AccessConfigs:
        - externalIpv6: 2001:db8:4000:15:0:0:0:0
          externalIpv6PrefixLength: 96
          kind: compute#accessConfig
          name: external-ipv6
          networkTier: PREMIUM
          type: DIRECT_IPV6
        ipv6AccessType: EXTERNAL
        kind: compute#networkInterface
        name: nic0
      

      Supprimez la configuration d'adresse IPv6 existante à l'aide de la sous-commande instance network-interfaces update :

      gcloud compute instances network-interfaces update VM_NAME \
        --network-interface=NIC \
        --stack-type=IPV4_ONLY \
        --zone=ZONE
      

      Remplacez les éléments suivants :

      • NIC : nom de l'interface réseau
      • VM_NAME : nom de la VM.
      • ZONE : zone de la VM.
  3. Attribuez la nouvelle adresse IP externe.

    • Pour attribuer une adresse IPv4, utilisez la sous-commande instances add-access-config :

      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 VM_NAME \
      --access-config-name="ACCESS_CONFIG_NAME" --address=IP_ADDRESS
      

      Remplacez les éléments suivants :

      • VM_NAME : Nom de la VM.
      • ACCESS_CONFIG_NAME : nom destiné à cette configuration d'accès. Assurez-vous d'inclure le nom complet entre guillemets.
      • IP_ADDRESS : 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 VM_NAME \
        --access-config-name="ACCESS_CONFIG_NAME"
      
    • Pour attribuer une plage d'adresses IPv6, utilisez la sous-commande instance network-interfaces update :

      gcloud compute instances network-interfaces update VM_NAME \
        --network-interface==NIC \
        --ipv6-network-tier=PREMIUM \
        --stack-type=IPV4_IPV6 \
        --external-ipv6-address=IPV6_ADDRESS \
        --external-ipv6-prefix-length=96 \
        --zone=ZONE
      

      Remplacez les éléments suivants :

      • VM_NAME : nom de la VM.
      • NIC : nom de l'interface réseau
      • IPV6_ADDRESS : adresse IPv6 à attribuer à la VM. Spécifiez la première adresse IPv6 de la plage /96.
      • ZONE : zone de la VM.

REST

Vous pouvez modifier l'adresse IPv4 ou IPv6 externe d'une VM en ajoutant une nouvelle configuration d'accès pour cette VM.

  1. Vérifiez si votre VM dispose d'une configuration d'accès existante. Pour vérifier les détails de la VM, envoyez une requête GET à la méthode instances.get.

     GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
     

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet pour cette requête
    • ZONE : zone où se trouve la VM
    • VM_NAME : nom de la VM.

    S'il existe déjà une configuration d'accès IPv4, la réponse est semblable à ce qui suit :

    "networkInterfaces": [
      {
        "network":
        ...
        "name": "nic0",
        "accessConfigs": [
          {
            "type": "ONE_TO_ONE_NAT",
            "name": "External NAT",
            "natIP": "IPV4_ADDRESS",
            "networkTier": "PREMIUM",
            "kind": "compute#accessConfig"
          }
        ],
        ...
      }
    ]
    

    Le champ networkInterfaces[].accessConfigs[].natIP renvoie l'adresse IPv4 externe statique de la VM.

    S'il existe déjà une configuration d'accès IPv6, la réponse est semblable à ce qui suit :

    "networkInterfaces": [
      {
        "network":
        ...
        "name": "nic0",
        "ipv6AccessConfigs": [
          {
            type: "DIRECT_IPV6",
            "name": "external-ipv6",
            "externalIpv6": "IPV6_ADDRESS",
            "externalIpv6PrefixLength": 96,
            "networkTier": "PREMIUM",
            "kind": "compute#accessConfig"
          }
        ],
        ...
      }
    ]
    

    Le champ networkInterfaces[].ipv6AccessConfigs[].externalIpv6 renvoie l'adresse IPv6 externe statique de la VM.

  2. Supprimez la configuration d'accès existante en envoyant une requête POST à la méthode instances.deleteAccessConfig.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/deleteAccessConfig
    
  3. Ajoutez une configuration d'accès à l'interface réseau de l'instance de VM en envoyant une requête POST à la méthode instances.addAccessConfig.

Modifier l'adresse IP d'une règle de transfert

Si vous devez mettre à jour l'adresse IP dans une règle de transfert, procédez comme suit :

  1. Annulez l'attribution de l'adresse IP.

  2. Supprimez la règle de transfert à l'aide de la commande gcloud compute forwarding-rules delete ou de la méthode forwardingRules.delete.

  3. Recréez la règle de transfert à l'aide de la commande gcloud compute forwarding-rules create ou de la méthode forwardingRules.insert.

Convertir une adresse IP externe éphémère

Si votre VM 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 à la VM par Google Cloud. Cela inclut les paquets envoyés à la VM directement ou au moyen d'un équilibreur de charge.

Console

  1. Accédez à la page Adresses IP.

    Accéder à la page "Adresses IP"

  2. Cliquez sur Adresses IP externes.
  3. Facultatif : dans le champ Filtre, recherchez l'adresse IP éphémère que vous souhaitez convertir.
  4. Dans le menu Plus d'actions () de l'adresse IP que vous souhaitez convertir, sélectionnez Convertir en adresse IP statique.
  5. Saisissez un nom pour la nouvelle adresse IP statique, puis cliquez sur Réserver.

gcloud

Suivez les instructions ci-dessous pour convertir une adresse IPv4 ou IPv6 externe statique :

  • Pour convertir une adresse IPv4 externe éphémère en adresse IPv4 externe statique, indiquez l'adresse IP externe éphémère à l'aide de l'option --addresses avec la commande compute addresses create. Utilisez l'option region pour convertir une adresse IP régionale éphémère ou l'option global pour convertir une adresse IP globale éphémère.

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

    Remplacez les éléments suivants :

    • ADDRESS_NAME : nom que vous souhaitez associer à cette adresse.
    • IP_ADDRESS : adresse IP que vous souhaitez promouvoir.
    • REGION : région à laquelle appartient l'adresse IP régionale.

    • Pour convertir une adresse IPv6 externe régionale éphémère en adresse IPv6 externe régionale statique, indiquez l'adresse IP externe éphémère à l'aide de l'option --addresses avec la commande compute addresses create

    gcloud compute addresses create ADDRESS_NAME \
        --region=REGION \
        --addresses=IPV6_ADDRESS \
        --prefix-length=96
    

    Remplacez les éléments suivants :

    • ADDRESS_NAME : nom de la ressource d'adresse IP
    • REGION : région de la ressource d'adresse IPv6
    • IPV6_ADDRESS : adresse IPv6 que vous convertissez

REST

Pour promouvoir une adresse IP régionale éphémère, appelez la méthode addresses.insert :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses

Spécifiez les valeurs des champs obligatoires du corps de la requête :

  • Pour les adresses IPv4, le corps de la requête doit contenir les champs suivants :

    {
      "name": "ADDRESS_NAME",
      "address": "IPV4_ADDRESS"
      "addressType": "EXTERNAL"
    }
    
  • Pour les adresses IPv6, le corps de la requête doit contenir les champs suivants :

    {
      "name": "ADDRESS_NAME",
      "address": "IPV6_ADDRESS"
      "prefixLength": 96
      "addressType": "EXTERNAL"
    }
    

    Remplacez les éléments suivants :

    • ADDRESS_NAME : nom que vous souhaitez associer à cette adresse
    • IPV4_ADDRESS|IPV6_ADDRESS : adresse IPv4 ou IPv6 que vous souhaitez convertir
    • REGION : région à laquelle appartient l'adresse IPv4 ou IPv6
    • PROJECT_ID : ID du projet pour cette requête

L'adresse IP externe reste associée à la VM 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 à une autre ressource, annulez l'attribution de l'adresse IP externe statique à la VM 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, procédez comme suit :

Console

Pour afficher la liste des adresses IP de votre projet, accédez à la page Adresses IP externes dans la console Google Cloud.

Accéder à la page "Adresses IP externes"

gcloud

Exécutez la commande gcloud compute addresses list :

  • Pour répertorier toutes les adresses IP, utilisez la commande suivante :

    gcloud compute addresses list
  • Pour répertorier toutes les adresses IP globales, utilisez la commande suivante :

    gcloud compute addresses list --global
  • Pour répertorier toutes les adresses IP régionales dans une région donnée, utilisez la commande suivante :

    gcloud compute addresses list \
      --regions=REGION
    

    Remplacez REGION par la région pour laquelle vous souhaitez répertorier les adresses. Vous pouvez répertorier les adresses de plusieurs régions en spécifiant des noms de région séparés par une virgule :

    gcloud compute addresses list \
      --regions=REGION1,REGION2,..REGION_n_
    

REST

  • Pour répertorier les adresses IPv4 ou IPv6 régionales, appelez la méthode addresses.list :

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses
    

    Remplacez les éléments suivants :

    • REGION : nom de la région pour cette requête
    • PROJECT_ID : ID du projet pour cette requête
  • Pour répertorier toutes les adresses dans toutes les régions, appelez la méthode aggregatedList :

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/addresses
    
  • Pour répertorier les adresses IPv4 ou IPv6 globales, appelez la méthode globalAddresses.list :

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses
    

    Remplacez les éléments suivants :

    PROJECT_ID : ID du projet pour cette requête

Décrire une adresse IP externe statique

Pour obtenir des informations sur une adresse IP externe statique, procédez comme suit :

Console

  1. Dans Google Cloud Console, accédez à la page Adresses IP externes.

    Accéder à la page "Adresses IP externes"

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

gcloud

Utilisez la commande addresses describe et remplacez ADDRESS_NAME par le nom de l'adresse IP externe que vous souhaitez décrire.

  • Pour une adresse IPv4 ou IPv6 globale, utilisez la commande suivante :

    gcloud compute addresses describe ADDRESS_NAME --global
  • Pour une adresse IPv4 ou IPv6 régionale, utilisez la commande suivante :

    gcloud compute addresses describe ADDRESS_NAME --region=REGION

REST

  • Pour décrire une adresse IPv4 ou IPv6 régionale, appelez la méthode addresses.get :

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME
    

    Remplacez les éléments suivants :

    • ADDRESS_NAME : nom de l'adresse IP.
    • REGION : nom de la région pour la requête.
    • PROJECT_ID : ID du projet pour la requête.
  • Pour décrire une adresse IPv4 ou IPv6 globale, appelez la méthode globalAddresses.get :

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses/ADDRESS_NAME
    

    Remplacez les éléments suivants :

    • ADDRESS_NAME : nom de l'adresse IP.
    • PROJECT_ID : ID du projet pour la requête.

Annuler l'attribution d'une adresse IP externe statique

Cette annulation d'attribution supprime l'adresse IP de la ressource, mais elle reste réservée. Une fois l'adresse IP annulée, vous pouvez la réattribuer à une autre ressource.

Vous pouvez également annuler l'attribution de l'adresse IPv4 ou IPv6 en supprimant la VM.

Console

  1. Dans Google Cloud Console, accédez à la page Adresses IP externes.

    Accéder à la page "Adresses IP externes"

  2. Sélectionnez l'adresse IP statique dont vous souhaitez annuler l'attribution.
  3. Cliquez sur Modifier pour ouvrir la boîte de dialogue Associer une adresse IP.
  4. Dans la liste déroulante Associer à, sélectionnez Aucune.
  5. Cliquez sur OK.

gcloud

  1. Vérifiez si une adresse IP statique est utilisée à l'aide de la commande gcloud compute addresses list :

    gcloud compute addresses list
    

    Le résultat ressemble à ce qui suit :

    NAME                      REGION    ADDRESS                  STATUS
    example-address-ipv4      REGION    198.51.100.1             RESERVED
    example-address-new-ipv4  REGION    203.0.113.1              IN_USE
    example-address-ipv6      REGION    2001:db8:1:1:1:1:1:1     RESERVED
    example-address-new-ipv6  REGION    2001:db8:4:4:4:4:4:4     IN_USE
    
    • Si l'adresse IP n'est pas utilisée, l'état est défini sur RESERVED.
    • Si l'adresse IP est utilisée, l'état est IN_USE.
  2. Récupérez le nom de la VM qui utilise l'adresse IP :

    gcloud compute addresses describe ADDRESS_NAME \
      --region=REGION
    

    Remplacez les éléments suivants :

    • ADDRESS_NAME : nom de la ressource d'adresse IPv6
    • REGION : région de la ressource d'adresse IPv6

    Le résultat ressemble à ce qui suit :

    address: IP_ADDRESS
    addressType: EXTERNAL
    ...
    region: https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION
    selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/addresses/ADDRESS_NAME
    status: IN_USE
    subnetwork: https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/subnetworks/SUBNET
    users:
    - https://www.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances/VM_NAME
    

    Le champ users affiche le nom de la VM qui utilise l'adresse IP.

  3. Annulez l'attribution de l'adresse IP à la VM.

    • Pour annuler l'attribution d'une adresse IPv4, supprimez le fichier de configuration d'accès de la VM :

      1. Récupérez le nom de la configuration d'accès à supprimer. Pour cela, utilisez la commande gcloud compute instances describe. Remplacez VM_NAME par le nom de la VM.

        gcloud compute instances describe VM_NAME
        

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

        networkInterfaces:
          - accessConfigs:
            - kind: compute#accessConfig
              name: external-nat
              natIP: 203.0.113.1
              type: ONE_TO_ONE_NAT
        
      2. Supprimez la configuration d'accès à l'aide de la commande gcloud compute instances delete-access-config :

        gcloud compute instances delete-access-config VM_NAME \
          --access-config-name="ACCESS_CONFIG_NAME"
        

        Remplacez les éléments suivants :

        • VM_NAME : nom de la VM.
        • ACCESS_CONFIG_NAME : nom de la configuration d'accès à supprimer. Assurez-vous d'inclure le nom complet entre guillemets.
    • Pour annuler l'attribution d'une plage d'adresses IPv6, utilisez la commande instance network-interfaces update :

      gcloud compute instances network-interfaces update VM_NAME \
        --network-interface=nic0 \
        --stack-type=IPV4_ONLY \
        --zone=ZONE
      

      Remplacez les éléments suivants :

      • VM_NAME : nom de la VM qui utilise l'adresse IP.
      • ZONE : zone de la VM.
  4. 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 \
      --filter="ADDRESS_NAME AND region=REGION"
    

    Remplacez les éléments suivants :

    • ADDRESS_NAME : nom de la ressource d'adresse IP
    • REGION : région de l'adresse IP

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

REST

Pour annuler l'attribution d'une adresse IPv4 ou IPv6 externe statique, procédez comme suit :

  • Pour les adresses IPv4, supprimez la configuration d'accès associée à la VM qui utilise l'adresse.

    1. Pour vérifier les détails de configuration d'accès d'une VM, envoyez une requête GET à la méthode instances.get.

      GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
      
    2. Supprimez la configuration d'accès existante en envoyant une requête POST à la méthode instances.deleteAccessConfig.

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/deleteAccessConfig
      

      Remplacez les éléments suivants :

      • PROJECT_ID : ID du projet pour cette requête
      • ZONE : zone où se trouve la VM
      • VM_NAME : nom de la VM.
  • Pour les adresses IPv6, mettez à jour le type de pile de l'interface réseau pour la VM à laquelle l'adresse IPv6 est associée.

    1. Envoyez une requête PATCH à la méthode instances.updateNetworkInterface.

    2. Dans le corps de la requête, remplacez la valeur du champ stackType par IPV4_ONLY.

      Par exemple :

      PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/updateNetworkInterface
      
      {
        "networkInterfaces": [{
          ...
          "stackType" : "IPV4_ONLY"
          ...
          }]
      }
      

Libérer une adresse IP externe statique

Si vous n'avez plus besoin d'une adresse IPv4 ou IPv6 externe statique, vous pouvez libérer l'adresse IP en supprimant la ressource d'adresse IP.

Si vous utilisez la console Google Cloud, vous ne pouvez libérer une adresse IP statique que si elle n'est pas utilisée par une autre ressource.

Si vous utilisez la gcloud CLI ou REST, vous pouvez libérer une adresse IP, qu'elle soit utilisée ou non par une autre ressource.

  • Si l'adresse IP n'est pas utilisée par une ressource, elle est renvoyée au pool d'adresses IP externes disponibles.

  • Si l'adresse IP est utilisée par une ressource, elle reste associée à la ressource jusqu'à ce que cette dernière soit supprimée.

Console

  1. Dans Google Cloud Console, accédez à la page Adresses IP externes.

    Accéder à la page "Adresses IP externes"

  2. Sélectionnez l'adresse IP à libérer.
  3. Cliquez sur Libérer l'adresse IP.

gcloud

Exécutez la commande compute addresses delete :

gcloud compute addresses delete ADDRESS_NAME

Remplacez ADDRESS_NAME par le nom de l'adresse IPv4 ou IPv6 à libérer.

REST

  • Pour libérer une adresse IPv4 ou IPv6 régionale, appelez la méthode addresses.delete :

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME
    

    Remplacez les éléments suivants :

    • ADDRESS_NAME : nom de l'adresse IP.
    • REGION : nom de la région pour cette requête
    • PROJECT_ID : ID du projet pour cette requête
  • Pour libérer une adresse IPv4 ou IPv6 globale, appelez la méthode globalAddresses.delete :

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses/ADDRESS_NAME
    

    Remplacez les éléments suivants :

    • ADDRESS_NAME : nom de l'adresse IP.
    • PROJECT_ID : ID du projet pour cette requête

Limiter les adresses IP externes à des VM spécifiques

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 restreindre les adresses IP externes afin que seules des VM spécifiques puissent les utiliser. Cette option permet d'éviter l'exfiltration de données ou de maintenir l'isolation du réseau. À l'aide d'une règle d'administration, vous pouvez limiter les adresses IP externes à des VM spécifiques avec des contraintes pour contrôler l'utilisation des adresses IP externes pour vos VM au sein d'une organisation ou d'un projet.

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

constraints/compute.vmExternalIpAccess

Pour utiliser la contrainte, vous devez spécifier une règle avec la liste allowedList des VM autorisées à avoir des adresses IP externes. Si vous ne spécifiez pas de règle, toutes les adresses IP externes sont autorisées pour toutes les VM. Lorsque la règle est en place, seules les 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 VM Compute Engine dans l'organisation ou le projet et 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 et de refus à l'aide de l'URI :

projects/PROJECT_ID/zones/ZONE/instances/VM_NAME

Spécifications pour la restriction des adresses IP externes

  • Vous ne pouvez appliquer cette contrainte de liste qu'aux VM.
  • Vous ne pouvez pas appliquer la contrainte rétroactivement. Toutes les VM qui avaient des adresses IP externes avant l'activation de la règle conservent leurs adresses IP externes.
  • 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 la VM. La contrainte ne valide que l'URI de la VM et n'empêche pas les VM de la liste d'autorisation d'être modifiées, supprimées ou recréées.

Autorisations requises pour restreindre les adresses IP externes

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

Console

  1. Accédez à la page Règles d'administration.

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

  2. Si nécessaire, sélectionnez l'organisation requise 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 Personnaliser pour appliquer une règle d'administration à certaines VM.

    Option de personnalisation sur la page de modification de la règle d'administration.

  6. Sélectionnez les valeurs appropriées dans Application des règles et Type de règle.

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

  8. Saisissez un URI pour une VM, puis appuyez sur Entrée. L'URI doit respecter le format suivant :

    projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
    
  9. Cliquez sur Nouvelle valeur de règle et saisissez les URI des VM si nécessaire.

  10. Cliquez sur Enregistrer pour appliquer la contrainte.

gcloud

Pour définir une contrainte pour l'accès aux adresses IP externes, vous devez d'abord disposer de l'ID de votre organisation. Vous pouvez trouver l'ID de l'organisation en exécutant la commande organizations list et en recherchant l'ID numérique dans la réponse :

gcloud organizations list

gcloud CLI renvoie une liste d'organisations au format suivant :

DISPLAY_NAME               ID
example-organization1      29252605212
example-organization2      1234567890

Exécutez la commande gcloud resource-manager org-policies set-policy pour définir la règle. Vous devez fournir votre règle sous la forme d'un fichier JSON. Créez un fichier JSON au format suivant :

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID de projet de cette requête, tel que 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 : zone de la VM
  • VM_NAME : nom de la VM.

Vous pouvez également spécifier une liste deniedValues pour indiquer les VM pour lesquelles vous voulez explicitement interdire les adresses IP externes. Les VM 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 resource-manager org-policies set-policy MY_POLICY.JSON --organization=ORGANIZATION_ID

Remplacez ORGANIZATION_ID par l'ID numérique de l'organisation.

Si vous ne souhaitez pas que les VM 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"
  }
}

REST

Utilisez l'API setOrgPolicy() pour définir votre contrainte. Les VM de la liste allowedValue que vous spécifiez sont autorisées à disposer d'adresses IP externes. Vous pouvez également spécifier une liste deniedValues pour indiquer les VM pour lesquelles vous voulez explicitement interdire les adresses IP externes. Les VM 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 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 pour cette contrainte :

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

Si vous ne souhaitez pas que les VM 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. Par 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, la 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 dans le sélecteur de projet plutôt que via le sélecteur d'organisation.

Sélecteur de projet

gcloud

Exécutez la commande gcloud resource-manager org-policies set-policy pour définir la règle. Vous devez fournir votre règle sous la forme d'un fichier JSON. Créez un fichier JSON au format suivant :

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID de projet de cette requête, tel que 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 : zone de la VM.
  • VM_NAME : nom de la VM.

Vous pouvez également spécifier une liste deniedValues de VM pour lesquelles vous voulez explicitement interdire les adresses IP externes. Les VM 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 resource-manager org-policies set-policy MY_POLICY.JSON --project=example-project

REST

Utilisez l'API setOrgPolicy pour définir votre contrainte. Les VM de la liste allowedValue que vous spécifiez sont autorisées à disposer d'adresses IP externes. Vous pouvez également spécifier une liste deniedValues pour indiquer les VM pour lesquelles vous voulez explicitement interdire les adresses IP externes. Les VM 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 VM spécifiques à posséder des adresses IP externes :

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

Remplacez PROJECT_ID par l'ID du projet pour cette requête.

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

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

Bonnes pratiques pour restreindre les adresses IP externes

  • Évitez d'utiliser la liste deniedValues avec cette contrainte. Si vous définissez des valeurs dans la liste deniedValues, cela signifie que seules les 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 VM peuvent disposer d'adresses IP externes. Si vous voulez supprimer certaines VM de la liste allowedValues, mettez à jour la règle existante pour retirer les VM de la liste allowedList plutôt que d'ajouter des VM à 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 actuelles pour les projets ne sont pas affectées par le paramètre par défaut.

  • Appliquez cette règle d'administration avec les rôles IAM pour mieux contrôler votre environnement. Cette stratégie s'applique uniquement aux VM, mais si vous souhaitez mieux contrôler et restreindre les adresses IP externes sur les appareils réseau, vous pouvez attribuer 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 Google Kubernetes Engine, Cloud Dataflow, Cloud Dataproc 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 un VPC partagé.

Étapes suivantes