Puedes asignar direcciones IP externas estáticas a tus instancias de máquina virtual (VM). También puedes cambiar, enumerar y liberar direcciones IP estáticas para tus VMs. Para reservar una dirección IP externa estática, consulta Reserva una dirección IP externa estática.
Las direcciones IP externas pueden ser estáticas o efímeras. Si una VM requiere una dirección IP externa fija que no cambie, haz lo siguiente:
- Obtén una dirección IP externa estática. Puedes reservar direcciones IP externas nuevas o ascender direcciones IP externas efímeras existentes.
- Asigna la dirección IP reservada a una VM existente o asígnala cuando crees una VM nueva.
Si necesitas una dirección IP estática en tu red interna de Compute Engine, consulta Reserva una dirección IP interna estática, en su lugar.
Antes de comenzar
- Lee sobre las direcciones IP.
- Lee sobre cuotas y límites para direcciones IP externas estáticas.
- Lee sobre los precios de las direcciones IP externas.
-
Si aún no lo hiciste, configura la autenticación.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud.
Para ejecutar un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
-
Para crear y actualizar VMs: Administrador de instancias de Compute (v1) (
roles/compute.instanceAdmin.v1
) -
compute.instances.update
en la instancia de VM -
compute.instances.updateNetworkInterface
en la instancia de VM -
compute.instances.addAccessConfig
en la instancia de VM -
compute.instances.deleteAccessConfig
en la instancia de VM -
compute.networks.list
en la red compute.subnetworks.use
en la subredcompute.subnetworks.list
en la subred-
Para crear VMs, sigue estos pasos:
compute.instances.create
en el proyecto- Para usar una imagen personalizada con el fin de crear la VM, sigue estos pasos:
compute.images.useReadOnly
en la imagen - Si deseas usar una instantánea para crear la VM, sigue estos pasos:
compute.snapshots.useReadOnly
en la instantánea - Para usar una plantilla de instancias a fin de crear la VM, haz lo siguiente:
compute.instanceTemplates.useReadOnly
en la plantilla de instancias - Para asignar una red heredada a la VM:
compute.networks.use
en el proyecto - Si deseas especificar una dirección IP estática para la VM;
compute.addresses.use
en el proyecto - Para asignar una dirección IP externa a la VM cuando se usa una red y punto heredado;
compute.networks.useExternalIp
en el proyecto - A fin de especificar una subred para la VM:
compute.subnetworks.use
en el proyecto o en la subred elegida - Para asignar una dirección IP externa a la VM cuando se usa una red de VPC,
compute.subnetworks.useExternalIp
en el proyecto o en la subred elegida - A fin de configurar los metadatos de la instancia de VM para la VM y los puntos, sigue estos pasos:
compute.instances.setMetadata
en el proyecto - A fin de configurar etiquetas para la VM y los puntos;
compute.instances.setTags
en la VM - Si deseas configurar etiquetas para la VM, haz lo siguiente:
compute.instances.setLabels
en la VM - A fin de configurar una cuenta de servicio para que la VM la use
compute.instances.setServiceAccount
en la VM - Si deseas crear un disco nuevo para la VM:
compute.disks.create
en el proyecto - Para conectar un disco existente en modo de solo lectura o de lectura y escritura, haz lo siguiente:
compute.disks.use
en el disco - Para conectar un disco existente en modo de solo lectura y dos puntos, sigue estos pasos:
compute.disks.useReadOnly
en el disco
Solo un recurso a la vez puede usar una dirección IP externa estática.
No hay forma de verificar si una dirección IP es estática o efímera después de que se asigna a un recurso. Puedes comparar la dirección IP con la lista de direcciones IP externas estáticas reservadas para ese proyecto. Usa el subcomando
gcloud compute addresses list
a fin de ver una lista de direcciones IP externas estáticas disponibles para el proyecto.Cada VM puede tener varias interfaces de red y cada interfaz puede tener las siguientes direcciones IP asignadas:
- Una dirección IPv4 interna (obligatoria)
- Una dirección IPv4 externa
- Un rango de direcciones IPv6
/96
, ya sean internas o externas, pero no ambas
No puedes cambiar el nombre de una dirección IP estática.
Las direcciones IP externas asignadas existen en el mismo host físico que la instancia de VM y existen en la misma región que la VM para todos los fines, incluidos el enrutamiento, la latencia y los precios. Esto sucede sin importar la información de búsqueda de la ubicación geográfica de Internet.
En la consola de Google Cloud, ve a la página Direcciones IP.
Haz clic en Direcciones IP externas.
Para enumerar todas las direcciones IP, usa el siguiente comando:
gcloud compute addresses list
Para enumerar todas las direcciones IP globales, usa el siguiente comando:
gcloud compute addresses list --global
Para enumerar todas las direcciones IP regionales en una región determinada, usa el siguiente comando:
gcloud compute addresses list \ --regions=REGION
Reemplaza
REGION
por la región de la que deseas enumerar las direcciones. Puedes enumerar direcciones de varias regiones si especificas nombres de región separados por comas:gcloud compute addresses list \ --regions=REGION1,REGION2,..REGION_n_
Para enumerar las direcciones IPv4 o IPv6 regionales, llama al método
addresses.list
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID del proyecto de esta solicitud.REGION
: El nombre de la región para esta solicitud
Para enumerar todas las direcciones de todas las regiones, llama al método
addresses.aggregatedList
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/addresses
Para enumerar las direcciones IPv4 o IPv6 globales, llama al método
globalAddresses.list
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID del proyecto de esta solicitud.En la consola de Google Cloud, ve a la página Crea una instancia.
Especifica los detalles de la VM.
Expanda la sección Opciones avanzadas.
Expande la sección Herramientas de redes.
En la sección Interfaces de red, expande una interfaz de red para editarla.
Para asignar una dirección IPv4, haz lo siguiente:
- Elige una red.
- Elige la dirección IP de la lista Dirección IPv4 externa.
Para asignar una dirección IPv6, haz lo siguiente:
- Elige una red que contenga una subred IPv6.
- Elige una subred de pila doble de la lista Subred.
- En Tipo de pila IP, elige IPv4 e IPv6 (pila doble).
- Elige la dirección IPv6 externa recién reservada de la lista Dirección IPv6 externa. Como alternativa, elige CREAR DIRECCIÓN IP y reserva una dirección IPv6 externa estática nueva.
- En Nivel de servicio de red, elige Premium.
Para terminar de modificar la interfaz de red, haz clic en Listo.
Continúa con el proceso de creación de VM.
Para asignar una dirección IPv4 externa estática, haz lo siguiente:
gcloud compute instances create VM_NAME --address=IP_ADDRESS
Reemplaza lo siguiente:
VM_NAME
: el nombre de la VM.IP_ADDRESS
: La dirección IP que se asignará a la VM. Usa la dirección IP externa estática reservada, no el nombre de la dirección.
Para asignar una dirección IPv6 externa estática, haz lo siguiente:
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
- En la consola de Google Cloud, ve a la página Instancias de VM.
- Haz clic en el nombre de la VM a la que quieres asignar una IP externa. Se mostrará la página Detalles de la instancia.
En la página Detalles de la instancia, completa los siguientes pasos:
- Haga clic en Editar.
- Expande Interfaces de red.
- Elige la dirección IP externa requerida para asignar a la VM:
- En Dirección IPv4 externa, elige Dirección IPv4 efímera o una dirección IPv4 externa estática.
- En Dirección IPv6 externa, elige Dirección IPv6 externa o estática.
- Haz clic en Listo.
Haz clic en Guardar.
Opcional: Reserva una dirección IP externa estática.
Si quieres asignar una dirección IP externa estática, debes reservar una dirección y asegurarte de que no la use otro recurso. Si es necesario, sigue las instrucciones si necesitas reservar una nueva dirección IP externa estática o si deseas anular la asignación de una dirección IP externa estática.
Si planeas usar una dirección IP externa efímera, puedes omitir este paso y Compute Engine asigna de manera aleatoria una dirección IP externa efímera.
Quita cualquier asignación de dirección IP existente, como se describe en Anula la asignación de una dirección IP externa estática.
Asigna la dirección IP externa nueva.
Para asignar una dirección IPv4, usa el subcomando
instances add-access-config
:Nota: No reemplacesIP_ADDRESS
con el nombre de la IP estática. Debes usar la dirección IP real.gcloud compute instances add-access-config VM_NAME \ --access-config-name="ACCESS_CONFIG_NAME" --address=IP_ADDRESS
Reemplaza lo siguiente:
VM_NAME
: el nombre de la VM.ACCESS_CONFIG_NAME
: El nombre para llamar a esta configuración de acceso. Asegúrate de incluir el nombre completo entre comillas.IP_ADDRESS
: La dirección IP que se agregará.
Si deseas que Compute Engine asigne una dirección IP externa efímera en lugar de usar una dirección IP externa estática, omite la propiedad
--address IP_ADDRESS
:gcloud compute instances add-access-config VM_NAME \ --access-config-name="ACCESS_CONFIG_NAME"
Para asignar un rango de direcciones IPv6, usa el subcomando
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
Reemplaza lo siguiente:
VM_NAME
: el nombre de la VM.NIC
: el nombre de la interfaz de redIPV6_ADDRESS
: La dirección IPv6 que se asignará a la VM. Especifica la primera dirección IPv6 en el rango/96
.ZONE
: la zona de la VM.
Quita cualquier asignación de dirección IP existente, como se describe en Anula la asignación de una dirección IP externa estática.
Borra la configuración de acceso existente mediante una solicitud
POST
al métodoinstances.deleteAccessConfig
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/deleteAccessConfig
Para agregar una nueva configuración de acceso a la interfaz de red de la VM, realiza una solicitud
POST
al métodoinstances.addAccessConfig
.Para las direcciones IPv4, realiza la siguiente solicitud:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/addAccessConfig { "natIP": "IPV4_ADDRESS", "name": "ACCESS_CONFIG_NAME" }
Para las direcciones IPv6, actualiza la propiedad
networkInterfaces[].ipv6AccessConfigs[].externalIpv6
y la dirección IPv6 externa que deseas utilizar.Consulta Asigna una dirección IP externa estática a una instancia de VM nueva
- Puedes aplicar esta restricción de lista solo a las VMs.
- No puedes aplicar la restricción de forma retroactiva. Todas las VM que tienen direcciones IP externas antes de habilitar la política conservarán sus direcciones IP externas.
- Esta restricción acepta una
allowedList
o unadeniedList
, pero no ambas en la misma política. - Depende de ti o de un administrador que cuente con los permisos necesarios para administrar y mantener el ciclo de vida y la integridad de la instancia. La restricción solo verifica el URI de la VM y no evita que las VMs de la lista de anunciantes permitidos se modifiquen, borren o se vuelvan a crear.
- Ve a la página Políticas de organización.
- Si es necesario, elige la organización requerida en el menú desplegable del proyecto.
- Haz clic en Definir IP externas permitidas para instancias de VM.
- Haz clic en Editar para editar la política de IP externa. Si no puedes acceder a la herramienta Editar, no tienes los permisos correctos.
Elige Personalizar a fin de establecer la política de la organización para VMs específicas.
Elige el Tipo de política y la Aplicación de política obligatorios.
En Valores de la política, elige Personalizado.
Ingresa un URI para una VM y presiona Intro. El URI debe tener el siguiente formato:
projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Haz clic en Nuevo valor de la política e ingresa los URI para las VMs según sea necesario.
Haz clic en Guardar para aplicar la restricción.
PROJECT_ID
: El ID del proyecto de esta solicitud, comoexample-project
. Ten en cuenta que esto es diferente de la configuración de políticas de la organización, que requieren el ID numérico de la organización.ZONE
: La zona de la VMVM_NAME
: El nombre de la VMPROJECT_ID
: El ID del proyecto de esta solicitud, comoexample-project
. Ten en cuenta que esto es diferente de la configuración de políticas de la organización, que requieren el ID numérico de la organización.ZONE
: la zona de la VM.VM_NAME
: el nombre de la VM.Evita usar la lista
deniedValues
con esta restricción. Si defines valores en la listadeniedValues
, implica que solo las VMs en la listadeniedValues
tienen restringido el uso de direcciones IP externas. Esto podría representar un problema de seguridad si quieres controlar con precisión qué VM pueden tener direcciones IP externas. Si deseas quitar ciertas VM de la listaallowedValues
, actualiza la política existente para quitar las VM deallowedList
, en lugar de colocar las VM en la listadeniedValues
en una jerarquía inferior.Si deseas establecer una política en una gran parte de la jerarquía de recursos, pero eximir determinados proyectos, restablece la política predeterminada mediante el método
setOrgPolicy
y especifica el objetorestoreDefault
para permitir que todas las VM de los proyectos se asocien con direcciones IP externas. Las políticas actuales de los proyectos no se ven afectadas por la configuración predeterminada.Usa esta política de organización junto con las funciones de IAM si quieres controlar mejor tu entorno. Esta política solo se aplica a las VMs, pero si deseas controlar y restringir mejor las direcciones IP externas en los dispositivos de red, puedes otorgar el rol
compute.networkAdmin
a las partes correspondientes.Todos los servicios y productos que se ejecutan en Compute Engine dentro de la organización o proyecto con la política habilitada están sujetos a esta política de la organización. En particular, los servicios como Google Kubernetes Engine, Dataflow, Dataproc y Cloud SQL se ven afectados por esta política. Si esto genera algún problema, Google recomienda configurar otros servicios y productos en un proyecto diferente que no tenga aplicada la política de la organización, y usar Shared VPC si es necesario.
En la consola de Google Cloud, ve a la página Direcciones IP.
Busca la dirección en la lista y verifica la columna Tipo para el tipo de dirección IP.
En la consola de Google Cloud, ve a la página Direcciones IP.
Haz clic en Direcciones IP externas.
Elige la dirección IP estática para la que deseas anular la asignación.
Haz clic en Cambiar para abrir el cuadro de diálogo Adjuntar dirección IP.
En la lista desplegable Adjuntar a, elige Ninguna.
Haz clic en OK.
Comprueba si una dirección IP estática está en uso mediante el comando
gcloud compute addresses list
:gcloud compute addresses list
El resultado es similar a este:
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 la dirección IP no está en uso, el estado es
RESERVED
. - Si la dirección IP está en uso, el estado es
IN_USE
.
- Si la dirección IP no está en uso, el estado es
Recupera el nombre de la VM que usa la dirección IP:
gcloud compute addresses describe ADDRESS_NAME \ --region=REGION
Reemplaza lo siguiente:
ADDRESS_NAME
: el nombre del recurso de dirección IPv6.REGION
: la región del recurso de dirección IPv6.
El resultado es similar a este:
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
El campo
users
muestra el nombre de la VM que usa la dirección IP.Anula la asignación de la dirección IP de la VM.
Para anular la asignación de una dirección IPv4, borra el archivo de configuración de acceso de la VM:
Obtén el nombre de la configuración de acceso que quieres borrar. Para obtener el nombre, usa el comando
gcloud compute instances describe
. ReemplazaVM_NAME
por el nombre de la VM.gcloud compute instances describe VM_NAME
La configuración de acceso aparece en el siguiente formato:
networkInterfaces: - accessConfigs: - kind: compute#accessConfig name: external-nat natIP: 203.0.113.1 type: ONE_TO_ONE_NAT
Borra la configuración de acceso con el comando
gcloud compute instances delete-access-config
:gcloud compute instances delete-access-config VM_NAME \ --access-config-name="ACCESS_CONFIG_NAME"
Reemplaza lo siguiente:
VM_NAME
: el nombre de la VM.ACCESS_CONFIG_NAME
: El nombre de la configuración de acceso que se borrará. Asegúrate de incluir el nombre completo entre comillas.
Para anular la asignación de un rango de direcciones IPv6, usa el comando
instance network-interfaces update
:gcloud compute instances network-interfaces update VM_NAME \ --network-interface=nic0 \ --stack-type=IPV4_ONLY \ --zone=ZONE
Reemplaza lo siguiente:
VM_NAME
: Es el nombre de la VM que usa la dirección IP.ZONE
: la zona de la VM.
Comprueba que tu dirección IP externa estática ahora esté disponible y marcada como
RESERVED
, en lugar deIN_USE
.gcloud compute addresses list \ --filter="ADDRESS_NAME AND region=REGION"
Reemplaza lo siguiente:
ADDRESS_NAME
: el nombre del recurso de dirección IP.REGION
: la región del recurso de la dirección IP.
Para las direcciones IPv4, borra la configuración de acceso adjunta a la VM que usa la dirección.
Para verificar los detalles de configuración de acceso de una VM, realiza una solicitud
GET
al métodoinstances.get
.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Borra la configuración de acceso existente mediante una solicitud
POST
al métodoinstances.deleteAccessConfig
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/deleteAccessConfig
Reemplaza lo siguiente:
PROJECT_ID
: El ID del proyecto de esta solicitudZONE
: La zona donde se ubica la VM.VM_NAME
: El nombre de la VM
Para las direcciones IPv6, actualiza el tipo de pila de la interfaz de red de la VM a la que se adjunta la dirección IPv6.
Realiza una solicitud
PATCH
al métodoinstances.updateNetworkInterface
.En el cuerpo de la solicitud, actualiza el valor del campo
stackType
aIPV4_ONLY
.Por ejemplo:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/updateNetworkInterface { "networkInterfaces": [{ ... "stackType" : "IPV4_ONLY" ... }] }
- Obtén más información sobre direcciones IP.
- Obtén más información sobre redes y firewalls.
- Obtén más información para acceder a VM con DNS interno.
- Revisa los precios de VPC.
Terraform
Para usar las muestras de Terraform de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para obtener más información, consulta Set up authentication for a local development environment.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.
Funciones obligatorias
Para obtener los permisos que necesitas para configurar y administrar direcciones IP estáticas, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
Si quieres obtener más información para otorgar roles, consulta Administra el acceso.
Estos roles predefinidos contienen los permisos necesarios para configurar y administrar direcciones IP estáticas. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para reservar y administrar direcciones IP estáticas:
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos
Limitaciones
Nota: Las interfaces de red pueden recibir tráfico de varias reglas de reenvío, que pueden entregar a otras direcciones IP externas. Cualquier cantidad de direcciones IP externas puede hacer referencia a una interfaz de red a través de estas reglas de reenvío, sin embargo, a cada interfaz de red se le puede asignar solo una dirección IPv4 externa y un rango de direcciones IPv6
/96
externas.Para obtener más información sobre el balanceo de cargas y las reglas de reenvío, consulta la documentación de balanceo de cargas.
Visualiza las direcciones IP externas estáticas disponibles
Para crear una lista de las direcciones IP externas estáticas que reservaste para tu proyecto, sigue estos pasos.
Console
gcloud
Usa el comando
gcloud compute addresses list
:API
Configura direcciones IP externas estáticas
En las siguientes secciones, se describe cómo configurar direcciones IP externas estáticas para las VMs.
Crea una VM que use una dirección IP externa estática
Después de reservar una dirección IP externa estática, puedes asignarla a una VM.
Consola
gcloud
Puedes crear una VM y asignar una dirección IP externa regional estática que ya hayas reservado.
Terraform
Puedes usar el recurso
google_compute_instance
para asignar una dirección IP externa.REST
Para asignar una dirección IPv4 externa estática a una VM nueva, haz lo siguiente:
En tu solicitud para crear una VM nueva, debes proporcionar explícitamente la propiedad
networkInterfaces[].accessConfigs[].natIP
y la dirección IPv4 externa que quieres utilizar. Por ejemplo:{ "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" } }] }
Para asignar una dirección IPv6 externa estática a una VM nueva, haz lo siguiente:
En tu solicitud para crear una VM nueva, debes proporcionar explícitamente la propiedad
networkInterfaces[].ipv6AccessConfigs[].externalIpv6
y la dirección IPv6 externa que quieres utilizar. Por ejemplo:{ "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" }, }], }
Cambia o asigna una dirección IP externa a una VM existente
Puedes cambiar o asignar una dirección IP externa, efímera o estática, a una VM existente.
Una VM puede tener varias interfaces y cada una de estas puede tener una dirección IP externa. Si la VM ya tiene una dirección IP externa, primero debes quitar esa dirección. Luego, puedes asignar una dirección IP externa nueva a la VM existente.
Console
gcloud
REST
Si deseas cambiar la dirección IPv4 o IPv6 externa de una VM, puedes agregar una configuración de acceso nueva para esa VM.
Restringe direcciones IP externas a VMs específicas
Para ciertas cargas de trabajo, puede que tengas requisitos esenciales que incluyen restricciones de seguridad y de red. Por ejemplo, es posible que desees restringir las direcciones IP externas para que solo las VMs específicas puedan usarlas. Esta opción puede ayudar a evitar el robo de datos o mantener el aislamiento de red. Mediante una política de la organización, puedes restringir las direcciones IP externas a VMs específicas con restricciones a fin de controlar el uso de direcciones IP externas para las VM dentro de una organización o un proyecto.
Esta es la restricción para controlar la dirección IP externa en las VM:
constraints/compute.vmExternalIpAccess
Para usar la restricción, especifica una política con una
allowedList
de VMs que pueden tener direcciones IP externas. Si no especificas una política, se permiten todas las direcciones IP externas para todas las VMs. Cuando la política está vigente, solo a las VMs que aparecen en la lista deallowedValues
se les puede asignar una dirección IP externa, ya sea efímera o estática, y otras VMs de Compute Engine en la organización o proyecto que no están definidas de forma explícita en la política tienen prohibido el uso de direcciones IP externas.Se identifican las VMs en las listas de entidades permitidas y de denegación con el URI de la VM:
projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Especificaciones para restringir direcciones IP externas
Permisos necesarios para restringir direcciones IP externas
Para establecer una restricción en el proyecto o en el nivel de la organización, debes tener la función
orgpolicy.policyAdmin
en la organización.Establece la restricción de políticas a nivel de la organización
Consola
gcloud
Primero necesitas el ID de tu organización si quieres establecer una restricción para el acceso de IP externas. Puedes encontrar el ID de la organización si ejecutas el comando
organizations list
y buscas el ID numérico en la respuesta:gcloud organizations list
La CLI de gcloud muestra una lista de organizaciones en el siguiente formato:
DISPLAY_NAME ID example-organization1 29252605212 example-organization2 1234567890
Usa el comando
gcloud resource-manager org-policies set-policy
para establecer la política. Debes proporcionar tu política como un archivo JSON. Crea un archivo JSON en el siguiente formato:{ "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" ] } }
Reemplaza lo siguiente:
De manera alternativa, puedes especificar una lista
deniedValues
en la que se expresen las VMs que no quieres que tengan una dirección IP externa. A cualquier instancia que no esté en la lista se le permitirá de manera implícita tener una dirección IP externa. Solo puedes especificarallowedValues
odeniedValues
, pero no ambos.Luego, debes pasar el archivo con la solicitud:
gcloud resource-manager org-policies set-policy MY_POLICY.JSON --organization=ORGANIZATION_ID
Reemplaza
ORGANIZATION_ID
por el ID numérico de la organización.Si no quieres que ninguna VM tenga acceso a una IP externa, puedes establecer una política con
allValues
establecido comoDENY
:{ "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allValues": "DENY" } }
REST
Usa la API de
setOrgPolicy()
para definir la restricción. Las VM que aparecen en la listaallowedValue
que especificas pueden tener direcciones IP externas. De manera alternativa, puedes especificar una listadeniedValues
en la que se expresen las VMs que no quieres que tengan una dirección IP externa. A cualquier instancia que no esté en la lista se le permitirá de manera implícita tener una dirección IP externa. Solo puedes especificarallowedValues
odeniedValues
, pero no ambos.Por ejemplo, la siguiente es una solicitud para establecer la restricción
compute.vmExternalIpAccess
en una organización en la que las VMs de determinados proyectos dentro de la organización pueden tener direcciones IP externas:POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORGANIZATION_ID:setOrgPolicy
En el ejemplo anterior,
ORGANIZATION_ID
es el ID numérico de la organización.Ahora, en el cuerpo de la solicitud, debes proporcionar la política deseada para esta restricción:
{ "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 no quieres que ninguna VM tenga acceso a una IP externa, puedes establecer una política con
allValues
establecido comoDENY
:{ "policy": { "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allValues": "DENY" } } }
Establece la política a nivel de proyecto
Establecer una política a nivel de proyecto anula la política a nivel de organización. Por ejemplo, si el nivel de la organización tiene
example-vm-1
en la listaallowedValues
, pero la política en el nivel de proyecto tiene la misma VM en la listadeniedValues
, la VM no podrá tener una dirección IP externa.Consola
Sigue el mismo proceso documentado en Establece una restricción de política a nivel de la organización, pero elige el proyecto deseado del selector de proyectos, en lugar de la organización.
gcloud
Usa el comando
gcloud resource-manager org-policies set-policy
para establecer la política. Debes proporcionar tu política como un archivo JSON. Crea un archivo JSON en el siguiente formato:{ "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allowedValues": [ "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME" ] } }
Reemplaza lo siguiente:
De manera alternativa, puedes especificar una lista
deniedValues
de VMs a las que deseas prohibirles de manera explícita que tengan una dirección IP externa. A cualquier instancia que no esté en la lista se le permitirá de manera implícita tener una dirección IP externa. Solo puedes especificarallowedValues
odeniedValues
, pero no ambos.Luego, debes pasar el archivo con la solicitud:
gcloud resource-manager org-policies set-policy MY_POLICY.JSON --project=example-project
REST
Usa la API de
setOrgPolicy
para definir la restricción. Las VMs que aparecen en la listaallowedValue
que especificas pueden tener direcciones IP externas. De manera alternativa, puedes especificar una listadeniedValues
en la que se expresen las VMs que no quieres que tengan una dirección IP externa. Cualquier instancia que no esté en la lista, está autorizada de forma implícita a tener una dirección IP externa. Solo puedes especificarallowedValues
odeniedValues
, pero no ambos.Por ejemplo, la siguiente es una solicitud para establecer la restricción
compute.vmExternalIpAccess
en un proyecto a fin de permitir que VMs específicas tengan direcciones IP externas:POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setOrgPolicy
Reemplaza
PROJECT_ID
por el ID del proyecto para esta solicitudEl cuerpo de la solicitud contiene la política deseada de esta restricción:
{ "policy": { "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allowedValues": [ "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME" ] } } }
Prácticas recomendadas para restringir direcciones IP externas
Administra direcciones IP externas estáticas
En las siguientes secciones, se describe cómo administrar direcciones IP externas estáticas para tus VMs.
Determina si una dirección IP interna es efímera o estática
Las direcciones IP internas estáticas y efímeras se comportan y se ven iguales en la mayoría de los contextos. Sin embargo, con las direcciones IP internas estáticas, puedes usar la misma dirección IP para el mismo recurso, incluso si borras y vuelves a crear el recurso. En general, una dirección IP efímera se libera si detienes o borras el recurso.
Para determinar si una dirección es estática o efímera, haz lo siguiente:
Anula la asignación de una dirección IP externa estática
Anular la asignación de una dirección IP la quita del recurso, pero mantiene la dirección IP reservada. Una vez que se anula la asignación de la dirección IP, puedes reasignarla a otro recurso.
Para anular la asignación de la dirección IPv4 o IPv6, también puedes borrar la VM.
Console
gcloud
Ya que tu dirección IP externa estática está disponible, puedes elegir asignarla a otra instancia.
REST
Para anular la asignación de una dirección IPv4 o IPv6 externa estática, sigue estos pasos:
Liberar una dirección IP externa estática
Si ya no necesitas una dirección IPv4 o IPv6 externa estática, puedes borrar el recurso de dirección IP para liberarla. Borrar una VM no libera de forma automática una dirección IP externa estática. Debes liberar las direcciones IP internas estáticas de forma manual cuando ya no las necesites.
Para liberar una dirección IP externa estática, consulta Libera una dirección IP externa estática en la documentación de VPC.
¿Qué sigue?
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-09-03 (UTC)
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema de traducción" },{ "type": "thumb-down", "id": "otherDown", "label":"Otro" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Fácil de comprender" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Resolvió mi problema" },{ "type": "thumb-up", "id": "otherUp", "label":"Otro" }] -