Vous pouvez attribuer des adresses IP externes statiques à vos instances de machines virtuelles (VM). Vous pouvez également modifier, lister et libérer des adresses IP statiques pour vos VM. Pour réserver une adresse IP externe statique, consultez la page Réserver une adresse IP externe statique.
Les adresses IP externes peuvent être statiques ou éphémères. Procédez comme suit si une VM nécessite une adresse IP externe qui ne change pas :
- Obtenez une adresse IP externe statique. Vous pouvez réserver de nouvelles adresses IP externes ou convertir des adresses IP externes éphémères existantes.
- Attribuez l'adresse IP réservée à une VM existante, ou attribuez-la lors de la création d'une VM.
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- 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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
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.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
Rôles requis
Pour obtenir les autorisations nécessaires pour configurer et gérer des adresses IP statiques, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :
-
Pour créer et mettre à jour des VM : Administrateur d'instances Compute (v1) (
roles/compute.instanceAdmin.v1
)
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Ces rôles prédéfinis contiennent les autorisations requises pour configurer et gérer des adresses IP statiques. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Vous devez disposer des autorisations suivantes pour configurer et gérer des adresses IP statiques :
-
compute.instances.update
sur l'instance de VM -
compute.instances.updateNetworkInterface
sur l'instance de VM -
compute.instances.addAccessConfig
sur l'instance de VM -
compute.instances.deleteAccessConfig
sur l'instance de VM -
compute.networks.list
sur le réseau -
compute.subnetworks.use
sur le sous-réseau -
compute.subnetworks.list
sur le sous-réseau -
Pour créer des machines virtuelles :
compute.instances.create
sur le projet- Pour créer la VM à l'aide d'une image personnalisée :
compute.images.useReadOnly
sur l'image - Pour créer la VM à l'aide d'un instantané :
compute.snapshots.useReadOnly
sur l'instantané - Pour créer la VM à l'aide d'un modèle d'instance :
compute.instanceTemplates.useReadOnly
sur le modèle d'instance - Pour attribuer un ancien réseau à la VM :
compute.networks.use
sur le projet - Pour spécifier une adresse IP statique pour la VM :
compute.addresses.use
sur le projet - Pour attribuer une adresse IP externe à la VM, en cas d'utilisation d'un ancien réseau :
compute.networks.useExternalIp
sur le projet - Pour spécifier un sous-réseau pour la VM :
compute.subnetworks.use
sur le projet ou sur le sous-réseau choisi - Pour attribuer une adresse IP externe à la VM, en cas d'utilisation d'un réseau VPC :
compute.subnetworks.useExternalIp
sur le projet ou sur le sous-réseau choisi - Pour définir les métadonnées d'instance de VM pour la VM :
compute.instances.setMetadata
sur le projet - Pour définir des tags pour la VM :
compute.instances.setTags
sur la VM - Pour définir des libellés pour la VM :
compute.instances.setLabels
sur la VM - Pour définir un compte de service à utiliser avec la VM :
compute.instances.setServiceAccount
sur la VM - Pour créer un disque pour la VM :
compute.disks.create
sur le projet - Pour associer un disque existant en mode lecture seule ou en mode lecture-écriture :
compute.disks.use
sur le disque - Pour associer un disque existant en mode lecture seule :
compute.disks.useReadOnly
sur le disque
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Limites
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
gcloud compute addresses list
pour afficher la liste des adresses IP externes statiques disponibles pour le projet.Chaque VM peut avoir plusieurs interfaces réseau, et chaque interface peut avoir les adresses IP suivantes :
- Une adresse IPv4 interne (obligatoire)
- Une adresse IPv4 externe
- Une plage d'adresses IPv6
/96
, internes ou externes, mais pas les deux
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. Le nombre d'adresses IP externes pouvant faire référence à une interface réseau via ces règles de transfert est libre, en revanche, chaque interface réseau ne peut se voir attribuer qu'une seule adresse IPv4 externe et une seule plage d'adresses IPv6 externes /96
.
Pour en savoir plus sur l'équilibrage de charge et les règles de transfert, consultez la documentation sur l'équilibrage de charge.
Afficher les adresses IP externes statiques disponibles
Pour répertorier les adresses IP externes statiques que vous avez réservées pour votre projet, procédez comme suit :
Console
Dans la console Google Cloud, accédez à la page Adresses IP.
Cliquez sur 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_
API
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 :
PROJECT_ID
: ID du projet pour cette requêteREGION
: nom de la région pour cette requête
Pour répertorier toutes les adresses dans toutes les régions, appelez la méthode
addresses.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
Configurer des adresses IP externes statiques
Les sections suivantes expliquent comment configurer des adresses IP externes statiques pour vos VM.
Créer une VM qui utilise une adresse IP externe statique
Après avoir réservé une adresse IP externe statique, vous pouvez l'attribuer à une VM.
Console
Accédez à la page Créer une instance dans Google Cloud Console.
Spécifiez les détails de la VM.
Développez la section Options avancées.
Développez la section Mise en réseau.
Dans la section Interfaces réseau, développez une interface réseau pour la modifier.
Pour attribuer une adresse IPv4, procédez comme suit :
- Sélectionnez un réseau.
- Sélectionnez l'adresse IP dans la liste Adresse IPv4 externe.
Pour attribuer une adresse IPv6, procédez comme suit :
- Sélectionnez un réseau contenant un sous-réseau IPv6.
- Sélectionnez un sous-réseau à double pile dans la liste Sous-réseau.
- Dans le champ Type de pile d'adresses IP, sélectionnez IPv4 et IPv6 (double pile).
- Sélectionnez la nouvelle adresse IPv6 externe 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.
- Pour Niveau de service réseau, sélectionnez Premium.
Pour terminer la modification de l'interface réseau par défaut, cliquez sur Terminé.
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.
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 possède déjà une adresse IP externe, vous devez d'abord supprimer cette adresse. Vous pouvez ensuite attribuer une nouvelle adresse IP externe à la VM existante.
Console
- Dans la console Google Cloud, accédez à la page Instances de VM.
- 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.
Sur la page des détails de l'instance, procédez comme suit :
- Cliquez sur Modifier.
- Développez la section Interfaces réseau.
- Sélectionnez l'adresse IP externe requise à attribuer à la VM :
- Dans le champ Adresse IPv4 externe, sélectionnez l'option Éphémère, ou bien une adresse IPv4 externe statique.
- Dans le champ Adresse IPv6 externe, sélectionnez l'option Éphémère, ou bien une adresse IPv6 externe statique.
- Cliquez sur OK.
Cliquez sur Enregistrer.
gcloud
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.
Supprimez toute attribution d'adresse IP existante, comme décrit dans la section Annuler l'attribution d'une adresse IP externe statique.
Attribuez la nouvelle adresse IP externe.
Pour attribuer une adresse IPv4, utilisez la sous-commande
instances add-access-config
:Remarque : Ne remplacez pasIP_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éseauIPV6_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.
Supprimez toute attribution d'adresse IP existante, comme décrit dans la section Annuler l'attribution d'une adresse IP externe statique.
Supprimez la configuration d'accès existante en envoyant une requête
POST
à la méthodeinstances.deleteAccessConfig
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/deleteAccessConfig
Ajoutez une configuration d'accès à l'interface réseau de l'instance de VM en envoyant une requête
POST
à la méthodeinstances.addAccessConfig
.Pour les adresses IPv4, exécutez la requête suivante :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/addAccessConfig { "natIP": "IPV4_ADDRESS", "name": "ACCESS_CONFIG_NAME" }
Pour les adresses IPv6, mettez à jour la propriété
networkInterfaces[].ipv6AccessConfigs[].externalIpv6
et l'adresse IPv6 externe que vous souhaitez utiliser.Consultez la section Attribuer une adresse IP externe statique à une nouvelle VM.
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 listedeniedList
, 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 ; elle n'empêche pas les opérations de modification, de suppression ou de recréation sur les VM figurant dans la liste d'autorisation.
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
- Accédez à la page Règles d'administration.
- Si nécessaire, sélectionnez l'organisation requise dans le menu déroulant du projet.
- Cliquez sur Définir les adresses IP externes autorisées pour les instances de VM.
- Cliquez sur Modifier pour modifier la règle des adresses IP externes. Si vous ne pouvez pas accéder à l'outil Modifier, cela signifie que vous ne disposez pas des autorisations appropriées.
Sélectionnez Personnaliser pour appliquer une règle d'administration à certaines VM.
Sélectionnez les valeurs appropriées dans Application des règles et Type de règle.
Pour Valeurs de règles, sélectionnez Personnalisé.
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
Cliquez sur Nouvelle valeur de règle et saisissez les URI des VM si nécessaire.
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 queexample-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 VMVM_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
où 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.
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 queexample-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 listedeniedValues
, cela signifie que seules les VM de la listedeniedValues
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 listeallowedValues
, mettez à jour la règle existante pour retirer les VM de la listeallowedList
plutôt que d'ajouter des VM à la listedeniedValues
à 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'objetrestoreDefault
pour que toutes les VM des projets puissent être associées à des adresses IP externes. Les règles actuelles concernant 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é.
Gérer des adresses IP externes statiques
Les sections suivantes expliquent comment gérer les adresses IP externes statiques pour vos VM.
Déterminer si une adresse IP interne est éphémère ou statique
Les adresses IP internes statiques et éphémères se comportent et apparaissent de manière identique dans la plupart des contextes. Cependant, avec les adresses IP internes statiques, vous pouvez utiliser la même adresse IP pour la même ressource même si vous supprimez et recréez la ressource. En général, une adresse IP éphémère est libérée si vous arrêtez ou supprimez la ressource.
Pour déterminer si une adresse est statique ou éphémère, procédez comme suit :
Dans la console Google Cloud, accédez à la page Adresses IP.
Recherchez l'adresse dans la liste et vérifiez le type d'adresse IP dans la colonne Type.
Annuler l'attribution d'une adresse IP externe statique
Le fait d'annuler l'attribution d'une adresse IP supprime cette adresse de la ressource, mais elle reste réservée. Une fois l'attribution de l"adresse IP annulée, vous pouvez la réattribuer à une autre ressource.
Vous pouvez également annuler l'attribution d'une adresse IPv4 ou IPv6 en supprimant la VM.
Console
Dans la console Google Cloud, accédez à la page Adresses IP.
Cliquez sur Adresses IP externes.
Sélectionnez l'adresse IP statique dont vous souhaitez annuler l'attribution.
Cliquez sur Modifier pour ouvrir la boîte de dialogue Associer une adresse IP.
Dans la liste déroulante Associer à, sélectionnez Aucune.
Cliquez sur OK.
gcloud
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 n'est pas utilisée, l'état est défini sur
IN_USE
.
- Si l'adresse IP n'est pas utilisée, l'état est défini sur
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 IPv6REGION
: 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.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 :
Récupérez le nom de la configuration d'accès à supprimer. Pour cela, utilisez la commande
gcloud compute instances describe
. RemplacezVM_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
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.
Vérifiez que votre adresse IP externe statique est maintenant disponible et marquée comme
RESERVED
au lieu deIN_USE
.gcloud compute addresses list \ --filter="ADDRESS_NAME AND region=REGION"
Remplacez les éléments suivants :
ADDRESS_NAME
: nom de la ressource d'adresse IPREGION
: 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.
Pour vérifier les détails de configuration d'accès d'une VM, envoyez une requête
GET
à la méthodeinstances.get
.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Supprimez la configuration d'accès existante en envoyant une requête
POST
à la méthodeinstances.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êteZONE
: zone où se trouve la VMVM_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.
Envoyez une requête
PATCH
à la méthodeinstances.updateNetworkInterface
.Dans le corps de la requête, remplacez la valeur du champ
stackType
parIPV4_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 la libérer en supprimant la ressource d'adresse IP. La suppression d'une VM ne libère pas automatiquement une adresse IP externe statique. Vous devez libérer manuellement les adresses IP externes statiques lorsque vous n'en avez plus besoin.
Pour libérer une adresse IP externe statique, consultez la page Libérer une adresse IP externe statique dans la documentation sur les VPC.
Étapes suivantes
- Obtenez plus d'informations sur les adresses IP.
- Obtenez plus d'informations sur les réseaux et pare-feu.
- Apprenez à accéder à des VM à l'aide du nom DNS interne.
- Consultez les tarifs de VPC.