Puede asignar direcciones IP externas estáticas a su máquina virtual (VM) e instancias bare metal. También puede cambiar, enumerar y liberar direcciones IP estáticas para sus instancias. Para reservar una dirección IP externa estática, consulte Reservar una dirección IP externa estática .
Las direcciones IP externas pueden ser estáticas o efímeras . Si una instancia requiere una dirección IP externa fija que no cambia, haga lo siguiente:
- Obtenga una dirección IP externa estática. Puede reservar nuevas direcciones IP externas o promocionar direcciones IP externas efímeras existentes.
- Asigne la dirección IP reservada a una instancia existente o asígnela al crear una nueva instancia.
Si necesita una dirección IP estática en su red interna de Compute Engine, consulte Reservar una dirección IP interna estática .
Para obtener información sobre cómo reservar una dirección IP externa estática o crear una dirección IP externa global, consulte Reservar una dirección IP externa estática .
Antes de comenzar
- Lea acerca de las direcciones IP .
- Lea sobre cuotas y límites para direcciones IP externas estáticas .
- Lea sobre los precios de las direcciones IP externas .
- Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
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
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
If an authentication error is returned, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.
- Para crear y actualizar instancias: Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) -
compute.instances.update
en la instancia -
compute.instances.updateNetworkInterface
en la instancia -
compute.instances.addAccessConfig
en la instancia -
compute.instances.deleteAccessConfig
en la instancia -
compute.networks.list
en la red -
compute.subnetworks.use
en la subred -
compute.subnetworks.list
en la subred - Para crear instancias:
-
compute.instances.create
en el proyecto. - Para usar una imagen personalizada para crear la VM:
compute.images.useReadOnly
en la imagen - Para usar una instantánea para crear la VM:
compute.snapshots.useReadOnly
en la instantánea - Para usar una plantilla de instancia para crear la VM:
compute.instanceTemplates.useReadOnly
en la plantilla de instancia - Para asignar una red heredada a la VM:
compute.networks.use
en el proyecto - Para 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 heredada:
compute.networks.useExternalIp
en el proyecto - Para 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 VPC:
compute.subnetworks.useExternalIp
en el proyecto o en la subred elegida - Para configurar metadatos de instancia de VM para la VM:
compute.instances.setMetadata
en el proyecto - Para configurar etiquetas para la VM:
compute.instances.setTags
en la VM - Para configurar etiquetas para la VM:
compute.instances.setLabels
en la VM - Para configurar una cuenta de servicio para que la use la VM:
compute.instances.setServiceAccount
en la VM - Para crear un nuevo disco para la VM:
compute.disks.create
en el proyecto - Para conectar un disco existente en modo de solo lectura o lectura-escritura:
compute.disks.use
en el disco - Para conectar un disco existente en modo de solo lectura:
compute.disks.useReadOnly
en el disco
-
Sólo un recurso a la vez puede utilizar una dirección IP externa estática.
No hay forma de comprobar si una dirección IP es estática o efímera después de haber sido asignada a un recurso. Puede 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
para ver una lista de direcciones IP externas estáticas disponibles para el proyecto.Cada VM puede tener múltiples interfaces de red y cada interfaz puede tener las siguientes direcciones IP asignadas según su tipo de pila :
- Interfaces solo IPv4:
- Una dirección IPv4 interna (obligatoria)
- Una dirección IPv4 externa (opcional)
- Interfaces de doble pila (IPv4 e IPv6):
- Una dirección IPv4 interna (obligatoria)
- Una dirección IPv4 externa (opcional)
- Un rango de direcciones IPv6
/96
, ya sea interno o externo, pero no ambos (obligatorio)
- Interfaces solo IPv6 ( vista previa ):
- Un rango de direcciones IPv6
/96
, ya sea interno o externo, pero no ambos (obligatorio)
- Un rango de direcciones IPv6
- Interfaces solo IPv4:
No puede desasignar ni cambiar la dirección IPv6 externa de una máquina virtual con una interfaz de red solo IPv6. Sin embargo, puede promover una dirección IP externa efímera de un recurso a una dirección IP externa estática para que la dirección permanezca reservada incluso después de que se elimine el recurso.
No puede cambiar el nombre de una dirección IP estática.
En la consola de Google Cloud, vaya a la página de direcciones IP .
Haga clic en Direcciones IP externas .
Para enumerar todas las direcciones IP, utilice el siguiente comando:
gcloud compute addresses list
Para enumerar todas las direcciones IP globales, utilice el siguiente comando:
gcloud compute addresses list --global
Para enumerar todas las direcciones IP regionales en una región determinada, utilice el siguiente comando:
gcloud compute addresses list \ --regions=REGION
Reemplace
REGION
con la región para la que desea enumerar las direcciones. Puede enumerar direcciones de varias regiones especificando nombres de región separados por comas:gcloud compute addresses list \ --regions=REGION1,REGION2,..REGION_n_
Para enumerar direcciones IPv4 o IPv6 regionales, llame al método
addresses.list
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses
Reemplace lo siguiente:
-
PROJECT_ID
: el ID del proyecto para esta solicitud -
REGION
: el nombre de la región para esta solicitud
-
Para enumerar todas las direcciones en todas las regiones, llame al método
addresses.aggregatedList
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/addresses
Para enumerar direcciones IPv4 o IPv6 globales, llame al método
globalAddresses.list
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses
Reemplace lo siguiente:
PROJECT_ID
: el ID del proyecto para esta solicitudEn la consola de Google Cloud, vaya a la página Crear una instancia .
Para asignar una dirección IP externa estática a la instancia, haga lo siguiente:
En el menú de navegación, haga clic en Redes .
En la sección Interfaces de red , especifique las interfaces de red que desea para la instancia mediante las siguientes opciones:
Para agregar una interfaz de red, haga clic en Agregar una interfaz de red . Luego, en la lista Red , seleccione una red.
Para eliminar una interfaz de red, haga clic en
Eliminar .
Seleccione una de las siguientes opciones:
Para asignar una dirección IPv4 externa estática, haga lo siguiente:
- Expandir una interfaz de red.
- Seleccione la dirección IP de la lista de direcciones IPv4 externas .
Para asignar una dirección IPv6 externa estática, haga lo siguiente:
- Expanda una interfaz de red que contenga una subred con un rango de direcciones IPv6 externo.
- Seleccione esa subred de la lista Subred .
- Para el tipo de pila IP , seleccione IPv4 e IPv6 (pila doble) o IPv6 (pila única) .
- Seleccione la dirección IPv6 externa recién reservada de la lista de direcciones IPv6 externas . Alternativamente, seleccione Reservar dirección IPv6 externa estática y reserve una nueva dirección IPv6 externa estática.
- Para Nivel de servicio de red , seleccione Premium .
Para terminar de modificar la interfaz de red, haga clic en Listo .
Continúe con el proceso de creación de la instancia.
Para asignar una dirección IPv4 externa estática, haga lo siguiente:
gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --address=IPV4_ADDRESS
Para asignar una dirección IPv6 externa estática, haga lo siguiente:
gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --subnet=SUBNET \ --stack-type=STACK_TYPE \ --external-ipv6-address=IPV6_ADDRESS \ --external-ipv6-prefix-length=96 \ --ipv6-network-tier=PREMIUM
Reemplace lo siguiente:
-
INSTANCE_NAME
: el nombre de la instancia informática. -
ZONE
: la zona para crear la instancia en -
IPV4_ADDRESS
: la dirección IPv4 que se asignará a la instancia. Utilice la dirección IP externa estática reservada, no el nombre de la dirección. -
SUBNET
: una subred que contiene direcciones IPv6 externas -
STACK_TYPE
: el tipo de pila para la instancia, ya seaIPV4_IPV6
(doble pila) oIPV6_ONLY
-
IPV6_ADDRESS
: la dirección IPv6 que se asignará a la instancia. Utilice la dirección IP externa estática reservada, no el nombre de la dirección.
-
Para asignar una dirección IPv4 externa estática a una nueva instancia informática, haga lo siguiente:
En su solicitud para crear una nueva instancia , proporcione explícitamente la propiedad
networkInterfaces[].accessConfigs[].natIP
y la dirección IPv4 externa que desea usar, por ejemplo:{ "name": "INSTANCE_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" } }] }
Reemplace lo siguiente:
-
INSTANCE_NAME
: el nombre de la instancia informática -
ZONE
: la zona para crear la instancia en -
MACHINE_TYPE
: Opcional: una URL completa o parcial del recurso de tipo de máquina que se utilizará al crear la instancia, en el formato:zones/ ZONE /machineTypes/ MACHINE_TYPE
-
IPV4_ADDRESS
: la dirección IPv4 que se asignará a la instancia. Utilice la dirección IP externa estática reservada, no el nombre de la dirección. -
SOURCE_IMAGE
: una versión específica de una imagen pública, comoprojects/debian-cloud/global/images/debian-10-buster-v20200309
o una familia de imágenes, comoprojects/debian-cloud/global/images/family/debian-10
-
Para asignar una dirección IPv6 externa estática a una nueva instancia, haga lo siguiente:
En su solicitud para crear una nueva instancia , proporcione explícitamente la propiedad
networkInterfaces[].ipv6AccessConfigs[].externalIpv6
y la dirección IPv6 externa que desea usar, por ejemplo:{ "name": "INSTANCE_NAME", "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "networkInterfaces": [{ "ipv6AccessConfigs": [{ "externalIpv6": "IPV6_ADDRESS", "externalIpv6PrefixLength": 96, "name": "external-ipv6-access-config", "networkTier": "PREMIUM", "type": "DIRECT_IPV6" }], "stackType": "STACK_TYPE", "subnetwork":"SUBNETWORK" }], "disks": [{ "autoDelete": "true", "boot": "true", "mode": "READ_WRITE", "type": "PERSISTENT", "initializeParams": { "sourceImage": "SOURCE_IMAGE" }, }], }
Reemplace lo siguiente:
-
INSTANCE_NAME
: el nombre de la instancia informática -
ZONE
: la zona para crear la instancia en -
MACHINE_TYPE
: Opcional: una URL completa o parcial del recurso de tipo de máquina que se utilizará al crear la instancia, en el formato:zones/ ZONE /machineTypes/ MACHINE_TYPE
-
IPV6_ADDRESS
: la dirección IPv6 que se asignará a la instancia. Utilice la dirección IP externa estática reservada, no el nombre de la dirección. -
STACK_TYPE
: el tipo de pila para la instancia, ya seaIPV4_IPV6
(doble pila) oIPV6_ONLY
-
SUBNET
: una subred que contiene direcciones IPv6 externas -
SOURCE_IMAGE
: una versión específica de una imagen pública, como"projects/debian-cloud/global/images/debian-10-buster-v20200309"
o una familia de imágenes, como"projects/debian-cloud/global/images/family/debian-10"
-
En la consola de Google Cloud, vaya a la página de instancias de VM .
Haga clic en el nombre de la instancia a la que desea asignar una IP externa. Se muestra la página de detalles de la instancia .
Desde la página de detalles de la instancia , complete los siguientes pasos:
- Haga clic en Editar .
- Expanda Interfaces de red .
- Seleccione la dirección IP externa requerida para asignarla a la instancia. Si la instancia es solo IPv4 y desea asignar una dirección IPv6, primero debe cambiar el tipo de pila a doble pila.
- Para Dirección IPv4 externa , seleccione Dirección IPv4 externa efímera o estática.
- Para Dirección IPv6 externa , seleccione Dirección IPv6 externa efímera o estática.
- Haga clic en Listo .
Haga clic en Guardar .
Opcional: Reserve una dirección IP externa estática.
Si desea asignar una dirección IP externa estática, debe reservar una dirección y asegurarse de que la dirección no esté siendo utilizada por otro recurso. Si es necesario, siga las instrucciones para reservar una nueva dirección IP externa estática o desasignar una dirección IP externa estática .
Si tiene la intención de utilizar una dirección IP externa efímera, puede omitir este paso y Compute Engine asignará aleatoriamente una dirección IP externa efímera.
Elimine cualquier asignación de dirección IP existente, como se describe en Desasignar una dirección IP externa estática .
Asigne la nueva dirección IP externa.
Para asignar una dirección IPv4, utilice el subcomando
instances add-access-config
:Nota: No reemplaceIP_ADDRESS
con el nombre de la dirección IP estática. Debe utilizar la dirección IP real.gcloud compute instances add-access-config INSTANCE_NAME \ --access-config-name="ACCESS_CONFIG_NAME" --address=IP_ADDRESS
Reemplace lo siguiente:
-
INSTANCE_NAME
: el nombre de la instancia. -
ACCESS_CONFIG_NAME
: el nombre para llamar a esta configuración de acceso. Asegúrese de incluir el nombre completo entre comillas. -
IP_ADDRESS
: la dirección IP a 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 INSTANCE_NAME \ --access-config-name="ACCESS_CONFIG_NAME"
-
Para cambiar una instancia a doble pila y asignarle una dirección IPv6, utilice el subcomando
instance network-interfaces update
:gcloud compute instances network-interfaces update INSTANCE_NAME \ --network-interface=NIC \ --ipv6-network-tier=PREMIUM \ --stack-type=STACK_TYPE \ --external-ipv6-address=IPV6_ADDRESS \ --external-ipv6-prefix-length=96 \ --zone=ZONE
Reemplace lo siguiente:
-
INSTANCE_NAME
: el nombre de la instancia. -
NIC
: el nombre de la interfaz de red. -
STACK_TYPE
: el tipo de pila de la instancia, que debe serIPV4_IPV6
. No puede cambiar el tipo de pila a IPV6_ONLY. -
IPV6_ADDRESS
: la dirección IPv6 que se asignará a la instancia. Especifique la primera dirección IPv6 en el rango/96
. -
ZONE
: la zona de la instancia.
-
Elimine cualquier asignación de dirección IP existente, como se describe en Desasignar una dirección IP externa estática .
Elimine la configuración de acceso existente realizando una solicitud
POST
al métodoinstances.deleteAccessConfig
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/deleteAccessConfig
Agregue una nueva configuración de acceso a la interfaz de red de la instancia realizando una solicitud
POST
al métodoinstances.addAccessConfig
.Para direcciones IPv4, realice la siguiente solicitud:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/addAccessConfig { "natIP": "IPV4_ADDRESS", "name": "ACCESS_CONFIG_NAME" }
Para direcciones IPv6, actualice el
stackType
de la interfaz de red aIPV4_IPV6
y actualice la propiedadnetworkInterfaces[].ipv6AccessConfigs[].externalIpv6
y la dirección IPv6 externa que desea usar.Para obtener más información, consulte Asignar una dirección IP externa estática a una nueva instancia .
- Puede aplicar esta restricción de lista solo a instancias.
- No puede aplicar la restricción retroactivamente. Todas las instancias que tienen direcciones IP externas antes de habilitar la política conservan sus direcciones IP externas.
- Esta restricción acepta una
allowedList
o unadeniedList
pero no ambas en la misma política. - Depende de usted o de un administrador con los permisos necesarios administrar y mantener el ciclo de vida y la integridad de la instancia. La restricción solo verifica el URI de la instancia y no impide que las instancias en la lista de permitidos se modifiquen, eliminen o vuelvan a crear.
- Vaya a la página Políticas organizativas .
- Si es necesario, seleccione la organización requerida en el menú desplegable del proyecto.
- Haga clic en Definir IP externas permitidas para instancias de VM .
- Haga clic en Editar para editar la política de IP externa. Si no puede acceder a la herramienta Editar , no tiene los permisos correctos.
Seleccione Personalizar para configurar la política de la organización para instancias específicas.
Seleccione la aplicación de políticas y el tipo de política requeridos.
Para Valores de política , seleccione Personalizado .
Ingrese un URI para una instancia. El URI debe tener el siguiente formato:
projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
Haga clic en Nuevo valor de política e ingrese los URI para las instancias según sea necesario.
Haga clic en Guardar para aplicar la restricción.
-
PROJECT_ID
: el ID del proyecto para esta solicitud, comoexample-project
. Tenga en cuenta que esto es diferente a configurar políticas de organización, que requieren el ID numérico de la organización. -
ZONE
: la zona de la instancia. -
INSTANCE_NAME
: el nombre de la instancia -
PROJECT_ID
: el ID del proyecto para esta solicitud, comoexample-project
. Tenga en cuenta que esto es diferente a configurar políticas de organización, que requieren el ID numérico de la organización. -
ZONE
: la zona de la instancia. -
INSTANCE_NAME
: el nombre de la instancia. Evite utilizar la lista de
deniedValues
con esta restricción. Si define valores en la listadeniedValues
, significa que solo las instancias de la lista dedeniedValues
tienen restringido el uso de direcciones IP externas. Esto podría ser un problema de seguridad si desea controlar exactamente qué instancias pueden tener direcciones IP externas. Si desea eliminar determinadas instancias de la listaallowedValues
, actualice la política existente para eliminar las instancias de laallowedList
en lugar de colocarlas en la lista dedeniedValues
en una jerarquía inferior.Si desea establecer una política en una gran parte de la jerarquía de recursos pero eximir ciertos proyectos, restaure la política predeterminada utilizando el método
setOrgPolicy
especificando el objetorestoreDefault
para permitir que todas las instancias de los proyectos se asocien con direcciones IP externas. Las políticas actuales para proyectos no se ven afectadas por la configuración predeterminada.Utilice la política de organización junto con los roles de IAM para controlar mejor su entorno. Esta política se aplica solo a instancias, pero si desea controlar y restringir mejor las direcciones IP externas en dispositivos de red, puede otorgar la función
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. Específicamente, esta política afecta a servicios como Google Kubernetes Engine, Dataflow, Dataproc y Cloud SQL. Si esto supone un problema, Google recomienda configurar otros servicios y productos en un proyecto diferente al que no se le haya aplicado la política de la organización y utilizar VPC compartida , si es necesario.
En la consola de Google Cloud, vaya a la página de direcciones IP .
Busque la dirección en la lista y verifique la columna Tipo para ver el tipo de dirección IP.
En la consola de Google Cloud, vaya a la página de direcciones IP .
Haga clic en Direcciones IP externas .
Seleccione la dirección IP estática que desea desasignar.
Haga clic en
Ver acciones y seleccione la opción Reasignar a otro recurso .En la lista desplegable Adjuntar a , seleccione Ninguno .
Haga clic en Aceptar .
Comprueba si hay una dirección IP estática en uso mediante el comando
gcloud compute addresses list
:gcloud compute addresses list
El resultado es similar al siguiente:
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
Recupere el nombre de la instancia que utiliza la dirección IP:
gcloud compute addresses describe ADDRESS_NAME \ --region=REGION
Reemplace 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 al siguiente:
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/INSTANCE_NAME
El campo
users
muestra el nombre de la instancia que utiliza la dirección IP.-
Desasignar la dirección IP de la instancia.
Para cancelar la asignación de una dirección IPv4, elimine el archivo de configuración de acceso de la instancia:
Obtenga el nombre de la configuración de acceso que desea eliminar. Para obtener el nombre, usa el comando
gcloud compute instances describe
. ReemplaceINSTANCE_NAME
con el nombre de la instancia.gcloud compute instances describe INSTANCE_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
Elimina la configuración de acceso mediante el comando
gcloud compute instances delete-access-config
:gcloud compute instances delete-access-config INSTANCE_NAME \ --access-config-name="ACCESS_CONFIG_NAME"
Reemplace lo siguiente:
-
INSTANCE_NAME
: el nombre de la instancia. -
ACCESS_CONFIG_NAME
: el nombre de la configuración de acceso a eliminar. Asegúrese de incluir el nombre completo entre comillas.
-
Para desasignar un rango de direcciones IPv6, use el comando
instance network-interfaces update
:gcloud compute instances network-interfaces update INSTANCE_NAME \ --network-interface=nic0 \ --stack-type=IPV4_ONLY \ --zone=ZONE
Reemplace lo siguiente:
-
INSTANCE_NAME
: el nombre de la instancia que utiliza la dirección IP. -
ZONE
: la zona de la instancia.
-
Verifique que su 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"
Reemplace lo siguiente:
-
ADDRESS_NAME
: el nombre del recurso de dirección IP. -
REGION
: la región del recurso de dirección IP.
-
Para direcciones IPv4, elimine la configuración de acceso adjunta a la instancia que usa la dirección.
Para verificar los detalles de configuración de acceso de una instancia, realice una solicitud
GET
al métodoinstances.get
.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
Elimine la configuración de acceso existente realizando una solicitud
POST
al métodoinstances.deleteAccessConfig
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/deleteAccessConfig
Reemplace lo siguiente:
-
PROJECT_ID
: el ID del proyecto para esta solicitud -
ZONE
: la zona donde se encuentra la instancia -
INSTANCE_NAME
: el nombre de la instancia
-
Para direcciones IPv6, actualice el tipo de pila de la interfaz de red para la instancia donde está adjunta la dirección IPv6.
Realice una solicitud
PATCH
al métodoinstances.updateNetworkInterface
.En el cuerpo de la solicitud, actualice el valor del campo
stackType
aIPV4_ONLY
.Por ejemplo:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateNetworkInterface { "networkInterfaces": [{ ... "stackType" : "IPV4_ONLY" ... }] }
- Obtenga más información sobre las direcciones IP .
- Obtenga más información sobre redes y firewalls .
- Aprenda cómo abordar instancias de Compute Engine mediante DNS interno .
- Revise 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.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .
Roles requeridos
Para obtener los permisos que necesita para configurar y administrar direcciones IP estáticas, solicite a su administrador que le otorgue las siguientes funciones de IAM en su proyecto:
Para obtener más información sobre cómo otorgar roles, consulte Administrar el acceso a proyectos, carpetas y organizaciones .
Estos roles predefinidos contienen los permisos necesarios para configurar y administrar direcciones IP estáticas. Para ver los permisos exactos que se requieren, expanda la sección Permisos requeridos :
Permisos requeridos
Se requieren los siguientes permisos para configurar y administrar direcciones IP estáticas:
Es posible que también pueda obtener estos permisos con roles personalizados u otros roles predefinidos .
Limitaciones
Nota: Las interfaces de red pueden recibir tráfico de múltiples reglas de reenvío , que podrían servir 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, pero a cada interfaz de red solo se le puede asignar una dirección IPv4 externa y un rango de direcciones IPv6 externo
/96
.Para obtener más información sobre el equilibrio de carga y las reglas de reenvío, lea la documentación sobre equilibrio de carga .
Ver direcciones IP externas estáticas disponibles
Para enumerar las direcciones IP externas estáticas que ha reservado para su proyecto, siga estos pasos.
Consola
nube de gcloud
Usa el comando
gcloud compute addresses list
:API
Ir
Java
Pitón
Configurar direcciones IP externas estáticas
Las siguientes secciones describen cómo configurar direcciones IP externas estáticas para sus instancias.
Cree una instancia que utilice una dirección IP externa estática
Después de haber reservado una dirección IP externa estática , puede asignarla a una instancia.
Consola
nube de gcloud
Puede crear una instancia y asignar una dirección IP externa regional estática que ya haya reservado.
Terraformar
Puede utilizar el recurso
google_compute_instance
para asignar una dirección IP externa.DESCANSAR
Ir
Java
Pitón
Cambiar o asignar una dirección IP externa a una instancia existente
Puede cambiar o asignar una dirección IP externa, ya sea efímera o estática, a una instancia existente de doble pila o solo IPv4. Este procedimiento no se admite para instancias solo de IPv6.
Una instancia informática puede tener varias interfaces. Una interfaz de pila única puede tener una dirección IP externa. Una interfaz de doble pila puede tener una dirección IPv4 externa y una dirección IPv6 externa. Si la instancia ya tiene una dirección IP externa, primero debe eliminar esa dirección . Luego puede asignar una nueva dirección IP externa a la instancia existente.
Consola
nube de gcloud
DESCANSAR
Puede cambiar la dirección IPv4 o IPv6 externa de una instancia agregando una nueva configuración de acceso para esa instancia.
Ir
Java
Pitón
Restringir direcciones IP externas a instancias específicas
Para determinadas cargas de trabajo, es posible que tenga requisitos esenciales que incluyan restricciones de seguridad y de red. Por ejemplo, es posible que desee restringir las direcciones IP externas para que solo instancias informáticas específicas puedan usarlas. Esta opción puede ayudar a evitar la filtración de datos o mantener el aislamiento de la red. Al utilizar una política de organización , puede restringir las direcciones IP externas a instancias específicas con restricciones para controlar el uso de direcciones IP externas para sus instancias dentro de una organización o un proyecto.
La restricción para controlar la dirección IP externa en las instancias es:
constraints/compute.vmExternalIpAccess
Para utilizar la restricción, especifica una política con una
allowedList
de instancias que pueden tener direcciones IP externas. Si no especifica una política, se permiten todas las direcciones IP externas para todas las instancias. Cuando la política está implementada, solo a las instancias que figuran en la lista deallowedValues
se les puede asignar una dirección IP externa, ya sea efímera o estática, y otras instancias de Compute Engine en la organización o proyecto que no estén definidas explícitamente en la política tienen prohibido usar direcciones IP externas.Las instancias se identifican en las listas de permitir y denegar mediante el URI de la instancia:
projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
Especificaciones para restringir direcciones IP externas
Permisos necesarios para restringir direcciones IP externas
Para establecer una restricción a nivel de proyecto u organización, se le debe haber otorgado el rol
orgpolicy.policyAdmin
en la organización.Establecer la restricción de política a nivel de organización
Consola
nube de gcloud
Para establecer una restricción para el acceso IP externo, primero necesita el ID de su organización. Puede encontrar el ID de la organización ejecutando el comando
organizations list
y buscando el ID numérico en la respuesta:gcloud organizations list
La CLI de gcloud devuelve 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 configurar la política. Debe proporcionar su política como un archivo JSON. Cree un archivo JSON en el siguiente formato:{ "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allowedValues": [ "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME", "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME", "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME" ] } }
Reemplace lo siguiente:
Alternativamente, puede especificar una lista de
deniedValues
para indicar las instancias a las que desea prohibir explícitamente que tengan una dirección IP externa. A cualquier instancia que no esté en la lista se le permitiría implícitamente tener una dirección IP externa. Solo puede especificarallowedValues
odeniedValues
, pero no ambos.Luego, pasa el archivo con tu solicitud:
gcloud resource-manager org-policies set-policy MY_POLICY.JSON --organization=ORGANIZATION_ID
Reemplace
ORGANIZATION_ID
con el ID numérico de la organización.Si no desea que ninguna instancia tenga acceso a IP externa, puede establecer una política con
allValues
configurado enDENY
:{ "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allValues": "DENY" } }
DESCANSAR
Utilice la API
setOrgPolicy()
para definir su restricción. Las instancias en la lista deallowedValue
que especifique pueden tener direcciones IP externas. Alternativamente, puede especificar una lista dedeniedValues
para expresar las instancias a las que desea prohibir explícitamente que tengan una dirección IP externa. A cualquier instancia que no esté en la lista se le permitiría implícitamente tener una dirección IP externa. Solo puede especificarallowedValues
odeniedValues
, pero no ambos.Por ejemplo, la siguiente es una solicitud para aplicar la restricción
compute.vmExternalIpAccess
a una organización donde las instancias de ciertos proyectos dentro de la organización pueden tener direcciones IP externas:POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORGANIZATION_ID:setOrgPolicy
donde
ORGANIZATION_ID
es el ID numérico de la organización.Ahora, en el cuerpo de su solicitud, proporcione la política para esta restricción:
{ "policy": { "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allowedValues": [ "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME", "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME", "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME" ] } } }
Si no desea que ninguna instancia tenga acceso a IP externa, puede establecer una política con
allValues
configurado enDENY
:{ "policy": { "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allValues": "DENY" } } }
Establecer 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 organización tiene
example-vm-1
en la lista deallowedValues
pero la política a nivel de proyecto tiene la misma instancia en la lista dedeniedValues
, no se permitirá que la instancia tenga una dirección IP externa.Consola
Siga el mismo proceso documentado en Establecer una restricción de política a nivel de organización, pero elija su proyecto en el selector de proyectos en lugar de la organización.
nube de gcloud
Usa el comando
gcloud resource-manager org-policies set-policy
para configurar la política. Debe proporcionar su política como un archivo JSON. Cree un archivo JSON en el siguiente formato:{ "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allowedValues": [ "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME" ] } }
Reemplace lo siguiente:
Alternativamente, puede especificar una lista de
deniedValues
de instancias a las que desea prohibir explícitamente que tengan una dirección IP externa. A cualquier instancia que no esté en la lista se le permitiría implícitamente tener una dirección IP externa. Solo puede especificarallowedValues
odeniedValues
, pero no ambos.Luego, pasa el archivo con tu solicitud:
gcloud resource-manager org-policies set-policy MY_POLICY.JSON --project=example-project
DESCANSAR
Utilice la API
setOrgPolicy
para definir su restricción. Las instancias en la lista deallowedValue
que especifique pueden tener direcciones IP externas. Alternativamente, puede especificar una lista dedeniedValues
para expresar las instancias que desea prohibir explícitamente que tengan una dirección IP externa. Cualquier instancia que no esté en la lista tiene implícitamente permitido tener una dirección IP externa. Puede especificar soloallowedValues
odeniedValues
, pero no ambos.Por ejemplo, la siguiente es una solicitud para establecer la restricción
compute.vmExternalIpAccess
en un proyecto para permitir que instancias específicas tengan direcciones IP externas:POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setOrgPolicy
Reemplace
PROJECT_ID
con el ID del proyecto para esta solicitud.El cuerpo de la solicitud contiene la política para esta restricción:
{ "policy": { "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allowedValues": [ "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME" ] } } }
Mejores prácticas para restringir direcciones IP externas
Administrar direcciones IP externas estáticas
Las siguientes secciones describen cómo administrar direcciones IP externas estáticas para sus instancias.
Determinar si una dirección IP interna es efímera o estática
Las direcciones IP internas estáticas y efímeras se comportan y aparecen igual en la mayoría de los contextos. Sin embargo, con direcciones IP internas estáticas, puede usar la misma dirección IP para el mismo recurso incluso si elimina y vuelve a crear el recurso. En general, se libera una dirección IP efímera si detiene o elimina el recurso.
Para determinar si una dirección es estática o efímera, haga lo siguiente:
Desasignar una dirección IP externa estática
La desasignación de una dirección IP la elimina del recurso pero mantiene la dirección IP reservada. Una vez desasignada la dirección IP, puede reasignarla a otro recurso. Este procedimiento se admite para instancias de doble pila, pero no para instancias de solo IPv6.
También puede desasignar la dirección IPv4 o IPv6 eliminando la instancia .
Consola
nube de gcloud
Ahora que su dirección IP externa estática está disponible, puede optar por asignarla a otra instancia .
DESCANSAR
Para desasignar una dirección IPv4 o IPv6 externa estática, realice los siguientes pasos:
Java
Pitón
Liberar una dirección IP externa estática
Si ya no necesita una dirección IPv4 o IPv6 externa estática, puede liberar la dirección IP eliminando el recurso de dirección IP. Eliminar una instancia no libera automáticamente una dirección IP externa estática. Debe liberar manualmente las direcciones IP externas estáticas cuando ya no las necesite.
Para liberar una dirección IP externa estática, consulte Liberar una dirección IP externa estática en la documentación de VPC.
¿Qué sigue?
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-04-17 (UTC).
-