En esta página, se muestra cómo usar el Acceso a VPC sin servidores para conectar un servicio de Cloud Run (completamente administrado) 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 a fin de controlar la comunicación con tu red de VPC. Después de crear un conector, configura tu servicio de Cloud Run (completamente administrado) 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
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.
En Configuración avanzada, haz clic en Conexiones.
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.
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, comogcr.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.
Para ver y descargar la configuración, ejecuta el siguiente comando:
gcloud run services describe SERVICE --format export > service.yaml
Agrega o actualiza el atributo
run.googleapis.com/vpc-access-connector
en el atributoannotations
, en el atributo de nivel superiorspec
: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 del servicio de Cloud Run (completamente administrado). - Reemplaza
CONNECTOR_NAME
por el nombre de tu conector.
- Reemplaza
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 (completamente administrado) 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.
- Asegúrate de que un administrador del proyecto host complete la configuración descrita en Usa una red de VPC compartida. Esta configuración incluye crear un conector de acceso a VPC sin servidores en el proyecto host y adjuntarlo a la red de VPC compartida.
Habilita la API de Acceso a VPC sin servidores en el proyecto de servicio:
Una vez que se completa la configuración del proyecto host, cuando implementas o actualizas un servicio de Cloud Run (completamente administrado) en tu proyecto de servicio, puedes especificar el conector del proyecto host mediante el nombre completamente calificado del conector. Por ejemplo:
gcloud run deploy SERVICE --image IMAGE_URL \ --vpc-connector projects/HOST_PROJECT_ID/locations/CONNECTOR_REGION/connectors/CONNECTOR_NAME
De este modo, se conecta el servicio a la red de VPC compartida.
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
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.
En Configuración avanzada, haz clic en Conexiones.
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.
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 beta 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, comogcr.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
: 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 beta run services update SERVICE --vpc-egress EGRESS_SETTING
SERVICE
por el nombre del servicio- Reemplaza
EGRESS_SETTING
por un valor de configuración de salida, como se mostró antes.
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.
Para ver y descargar la configuración, ejecuta el siguiente comando:
gcloud run services describe SERVICE --format export > service.yaml
Agrega o actualiza el atributo
run.googleapis.com/vpc-access-egress
en el atributoannotations
, en el atributo de nivel superiorspec
: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 del servicio de Cloud Run (completamente administrado). - Reemplaza
CONNECTOR_NAME
por el nombre de tu conector. El atributorun.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
: 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.
- Reemplaza
Reemplaza el servicio por la configuración nueva mediante el siguiente comando:
gcloud beta run services replace service.yaml
Próximos pasos
- Obtén más información sobre el Acceso a VPC sin servidores.
- Obtén más información para conectarte a Memorystore desde Cloud Run (completamente administrado).