Conectarse a una red de VPC

En esta página, se muestra cómo usar el Acceso a VPC sin servidores para conectar un servicio de Cloud Run directamente a tu red de VPC, lo que permite el acceso a instancias de VM de Compute Engine, instancias de Memorystore y cualquier otro recurso con dirección IP interna.

Para usar el Acceso a VPC sin servidores, primero debes crear un conector de acceso a VPC sin servidores en el proyecto de tu servicio que administre la comunicación con tu red de VPC. Después de crear un conector, configura tu servicio de Cloud Run para usar el conector.

Crea un conector de Acceso a VPC sin servidores

A fin de obtener instrucciones detalladas para crear conectores de Acceso a VPC sin servidores, consulta Crea un conector.

Configura un servicio para usar un conector

Puedes configurar un servicio para usar un conector de Cloud Console, la línea de comandos o el archivo YAML cuando creas un servicio nuevo o implementas una revisión nueva:

Console

  1. Ir a Cloud Run

  2. Haz clic en Crear servicio si quieres configurar un servicio nuevo en el que realizarás la implementación. Si quieres configurar un servicio existente, haz clic en el servicio y, luego, en Edit and Deploy New Revision.

  3. Si estás configurando un servicio nuevo, llena la página de configuración inicial del servicio como desees y haz clic en Siguiente > Configuración avanzada para acceder a la página de configuración del servicio.

  4. Haz clic en la pestaña Conexiones.

    image

  5. En el campo Conector de VPC (VPC Connector), selecciona el conector que usarás o selecciona Ninguno (None) para desconectar tu servicio de una red de VPC.

  6. Haz clic en Crear o Implementar.

Línea de comandos

Para especificar un conector durante la implementación, usa la marca --vpc-connector:

gcloud run deploy SERVICE --image IMAGE_URL --vpc-connector CONNECTOR_NAME
  • Reemplaza SERVICE por el nombre de tu servicio.
  • Reemplaza IMAGE_URL por una referencia a la imagen de contenedor, como gcr.io/myproject/my-image:latest.
  • Reemplaza CONNECTOR_NAME por el nombre de tu conector.

Para conectar, actualizar o quitar un conector de un servicio existente, usa el comando gcloud run services update con cualquiera de las siguientes marcas, según sea necesario:

Por ejemplo, para adjuntar o actualizar un conector, haz lo siguiente:

gcloud run services update SERVICE --vpc-connector CONNECTOR_NAME
  • Reemplaza SERVICE por el nombre de tu servicio.
  • Reemplaza CONNECTOR_NAME por el nombre de tu conector.

YAML

Puedes descargar y ver la configuración del servicio existente mediante el comando gcloud run services describe --format export, que genera resultados limpios en formato YAML. Luego, puedes modificar los campos que se describen a continuación y subir el YAML modificado mediante el comando gcloud beta run services replace. Asegúrate de modificar los campos tal como se indica en la documentación.

  1. Para ver y descargar la configuración, ejecuta el siguiente comando:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Agrega o actualiza el atributo run.googleapis.com/vpc-access-connector en el atributo annotations, en el atributo de nivel superior spec:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/vpc-access-connector: CONNECTOR_NAME
    • Reemplaza SERVICE por el nombre de tu servicio de Cloud Run.
    • Reemplaza CONNECTOR_NAME por el nombre de tu conector.
  3. Reemplaza el servicio por la configuración nueva mediante el siguiente comando:

    gcloud beta run services replace service.yaml

Conexión a una red de VPC compartida

Si tu organización usa una VPC compartida, un servicio de Cloud Run en un proyecto de servicio de VPC compartida puede conectarse a una red de VPC compartida después de configurar algunos parámetros en el proyecto host de la VPC compartida.

  1. Configura el proyecto host para la VPC compartida según las instrucciones de Configura el proyecto host si usas una VPC compartida.

  2. Crea el conector para la VPC compartida según las instrucciones que aparecen en Crea un conector.

  3. Cuando implementas o actualizas un servicio de Cloud Run en tu proyecto de servicio, especifica el conector en la IU de la consola con el menú desplegable del Conector de VPC en la pestaña Conexiones, o, si usas la línea de comandos de gcloud, especifica el conector con la marca --vpc-connector.

Controla el tráfico de salida desde un servicio

De forma predeterminada, solo las solicitudes a las direcciones IP internas y a los nombres de DNS internos se enrutan a través de un conector de Acceso a VPC sin servidores. Sin embargo, en algunos casos, es posible que desees que todas las solicitudes salientes del servicio se enruten a tu red de VPC, por ejemplo, para evitar el tráfico saliente a hosts peligrosos o no deseados con las reglas de firewall de tu red.

Para controlar las solicitudes salientes de salida desde tu servicio, puedes configurar la salida de VPC con una de las siguientes opciones:

  • Enrutar solo las solicitudes a IP privadas a través del conector de VPC: Opción predeterminada. Solo las solicitudes a los rangos de direcciones IP RFC 1918 y RFC 6598, o a nombres de DNS internos se enrutan a la red de VPC. Todas las demás solicitudes se enrutan directamente a Internet.
  • Enrutar todo el tráfico por medio del conector de VPC: todas las solicitudes salientes del servicio se enrutan a la red de VPC. Las solicitudes cumplirán con las reglas de firewall, DNS y enrutamiento de la red.

Puedes especificar una configuración de salida de VPC desde Cloud Console, la línea de comandos o el archivo YAML cuando creas un servicio nuevo o implementas una revisión nueva:

Console

  1. Ir a Cloud Run

  2. Haz clic en Crear servicio si quieres configurar un servicio nuevo en el que realizarás la implementación. Si quieres configurar un servicio existente, haz clic en el servicio y, luego, en Edit and Deploy New Revision.

  3. Si estás configurando un servicio nuevo, llena la página de configuración inicial del servicio como desees y haz clic en Siguiente > Configuración avanzada para acceder a la página de configuración del servicio.

  4. Haz clic en la pestaña Conexiones.

    image

  5. Después de seleccionar un conector de VPC, selecciona Enrutar solo las solicitudes a IP privadas por medio del conector de VPC o Enrutar todo el tráfico por medio del conector de VPC.

  6. Haz clic en Crear o Implementar.

Línea de comandos

Para especificar una configuración de salida, usa la marca --vpc-egress. Puedes especificar una configuración de salida durante la implementación:

gcloud run deploy SERVICE \
--image IMAGE_URL \
--vpc-connector CONNECTOR_NAME \
--vpc-egress EGRESS_SETTING
  • Reemplaza SERVICE por el nombre de tu servicio.
  • Reemplaza IMAGE_URL por una referencia a la imagen de contenedor, como gcr.io/myproject/my-image:latest.
  • Reemplaza CONNECTOR_NAME por el nombre de tu conector.
  • Reemplaza EGRESS_SETTING por un valor de configuración de salida:
    • all-traffic: Envía todo el tráfico saliente por medio del conector.
    • private-ranges-only: Envía solo el tráfico a direcciones internas por medio del conector de VPC.

También puedes actualizar un servicio existente y cambiar la configuración de salida:

gcloud run services update SERVICE --vpc-egress EGRESS_SETTING

YAML

Puedes descargar y ver la configuración del servicio existente mediante el comando gcloud run services describe --format export, que genera resultados limpios en formato YAML. Luego, puedes modificar los campos que se describen a continuación y subir el YAML modificado mediante el comando gcloud beta run services replace. Asegúrate de modificar los campos tal como se indica en la documentación.

  1. Para ver y descargar la configuración, ejecuta el siguiente comando:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Agrega o actualiza el atributo run.googleapis.com/vpc-access-egress en el atributo annotations, en el atributo de nivel superior spec:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/vpc-access-connector: CONNECTOR_NAME
            run.googleapis.com/vpc-access-egress: EGRESS_SETTING
    • Reemplaza SERVICE por el nombre de tu servicio de Cloud Run.
    • Reemplaza CONNECTOR_NAME por el nombre de tu conector. El atributo run.googleapis.com/vpc-access-connector es obligatorio cuando se especifica una configuración de salida.
    • Reemplaza EGRESS_SETTING por uno de los siguientes valores:
      • all-traffic: Envía todo el tráfico saliente por medio del conector.
      • private-ranges-only: Envía solo el tráfico a direcciones internas por medio del conector de VPC.
  3. Reemplaza el servicio por la configuración nueva mediante el comando siguiente:

    gcloud beta run services replace service.yaml

Próximos pasos

Visualiza la configuración de conexiones de VPC

Para ver la configuración actual de las conexiones de VPC del servicio, sigue estos pasos:

Console

  1. Ir a Cloud Run

  2. Haz clic en el servicio que te interesa para abrir la página Detalles del servicio.

  3. Hacer clic en la pestaña Revisions (Revisiones).

  4. En el panel de detalles de la derecha, la configuración de conexiones de VPC se enumera en la pestaña Connections.

Línea de comandos

  1. Usa el siguiente comando:

    gcloud run services describe SERVICE
  2. Ubica la configuración de las conexiones de VPC en la configuración que se muestra.