Configurar servicios privados solo para uso interno

En esta página se muestra la configuración necesaria para exponer un servicio del entorno flexible de App Engine solo en su dirección IP interna.

De forma predeterminada, los servicios del entorno flexible reciben una dirección IP interna y una dirección IP externa efímera cuando se implementan por primera vez. La dirección IP externa efímera permite que tu servicio envíe solicitudes a servicios de App Engine con dominios personalizados y recursos en Internet. Las direcciones IP externas efímeras tienen costes.

Si tu servicio no requiere una dirección IP externa, puedes evitar que envíe solicitudes a recursos de Internet y reducir los costes limitando el uso de tu servicio a su dirección IP interna. Esto no impide que tu servicio reciba solicitudes de Internet o de servicios de App Engine con dominios personalizados, ya que el nombre de dominio completo de tu servicio sigue siendo visible externamente.

Limitaciones

Inhabilitar las direcciones IP externas efímeras tiene las siguientes limitaciones:

  • Servicios con dominios personalizados: para enviar solicitudes a servicios de App Engine con dominios personalizados, debes configurar Cloud NAT.
  • Recursos externos: para enviar solicitudes a recursos externos, debes configurar Cloud NAT.
  • Dependencia del acceso privado de Google: las instancias con el modo de IP definido en internal requieren el acceso privado de Google en la subred de destino.
  • Redes antiguas: las redes antiguas no pueden usar el acceso privado de Google y, por lo tanto, no pueden inhabilitar las direcciones IP externas efímeras.

Antes de empezar

Para desplegar aplicaciones del entorno flexible sin direcciones IP externas, debes habilitar el acceso privado de Google en la subred de destino.

Preparar una red de VPC compartida

Si usas la VPC compartida, sigue estos pasos para preparar tu red de VPC compartida para la configuración.

  1. Verifica que tengas una ruta compatible con el acceso privado de Google. Normalmente, la ruta predeterminada de una red es compatible con Acceso privado de Google. En el caso de otras rutas, confirma que la ruta esté configurada de la siguiente manera.

    Network: SHARED_VPC_NETWORK_NAME
    Destination IP address range: 0.0.0.0/0
    Instance tags: INSTANCE_TAGS
    Next hop: DEFAULT_INTERNET_GATEWAY
    

    Haz los cambios siguientes:

    • SHARED_VPC_NETWORK_NAME: nombre de tu red de VPC compartida.
    • INSTANCE_TAGS: Si no utiliza ninguna etiqueta de instancia, no especifique nada en este campo. Si usas etiquetas de instancia, incluye aef-instances en tu lista de etiquetas de instancia.
    • DEFAULT_INTERNET_GATEWAY: la pasarela de Internet predeterminada.

    Para obtener más información sobre las rutas compatibles con Acceso privado de Google, consulta la documentación sobre opciones de enrutamiento.

  2. Verifica que tienes una regla de cortafuegos compatible con el acceso privado a Google. La regla de cortafuegos debe configurarse de la siguiente manera.

    Network: SHARED_VPC_NETWORK_NAME
    Destination IP address range: 0.0.0.0/0
    Destination filter: IP ranges
    Direction of traffic: Egress
    Attach on match: Allow
    Instance tags: INSTANCE_TAGS
    

    Haz los cambios siguientes:

    • SHARED_VPC_NETWORK_NAME: nombre de tu red de VPC compartida.
    • INSTANCE_TAGS: Si no utiliza ninguna etiqueta de instancia, no especifique nada en este campo. Si usas etiquetas de instancia, incluye aef-instances en tu lista de etiquetas de instancia.

    Para obtener más información sobre las reglas de cortafuegos compatibles con Acceso privado de Google, consulta la documentación sobre configuración del cortafuegos.

Configurar el servicio para que solo use su dirección IP interna

  1. Actualiza Google Cloud CLI. De esta forma, te aseguras de que estás usando una versión de la CLI de gcloud que admite direcciones IP privadas para aplicaciones del entorno flexible.

    gcloud components update
  2. En el archivo app.yaml, añada el campo instance_ip_mode a la sección network y asígnale el valor internal.

    • Si tu archivo app.yaml ya tiene una sección network, añade la siguiente línea dentro de esa sección:network

      instance_ip_mode: internal

    • Si tu archivo app.yaml no tiene una sección network, créala y especifica el modo de IP de la instancia añadiendo las siguientes líneas:

      network:
       instance_ip_mode: internal

    Guarda estos cambios.

  3. Implementa el servicio.

    gcloud beta app deploy
  4. Verifica la configuración consultando la página Instancias de la Google Cloud consola.

    Ir a Instancias

    Desplázate hacia abajo hasta la tabla Instancias (debajo del gráfico Resumen). En la columna IP externa, comprueba que no haya ninguna dirección IP. Si no hay ninguna dirección IP en esta columna, significa que tu instancia no tiene ninguna dirección IP externa. Aunque este campo esté vacío, tu instancia sigue teniendo una dirección IP interna.

Enviar solicitudes externas sin una dirección IP externa

Si tu servicio envía solicitudes a Internet, pero quieres limitar su uso a su dirección IP interna, puedes usar Cloud NAT para crear una pasarela. Tu servicio puede enviar solicitudes externas a través de la pasarela Cloud NAT sin usar las direcciones IP externas efímeras predeterminadas.

  1. Sigue los pasos que se indican en la sección Configurar el servicio para que solo use su dirección IP interna.

  2. Sigue los pasos para configurar Cloud NAT.

Para obtener más información sobre este enfoque, consulta la documentación del centro de arquitectura en la nube sobre implementación de Cloud NAT para obtener datos.