VPC con conectores

Puedes habilitar tu servicio o trabajo de Cloud Run para enviar tráfico a una red de VPC mediante la configuración de un conector de Acceso a VPC sin servidores.

Antes de comenzar

  • Si aún no tienes una red de VPC en tu proyecto, crea una.

  • Si usas una VPC compartida, consulta Conéctate a una red de VPC compartida.

  • En la consola de Google Cloud, asegúrate de que la API de Acceso a VPC sin servidores esté habilitada para tu proyecto.

    Habilitar API

  • Cada conector de Acceso a VPC sin servidores requiere su propia subred /28 para colocar sus instancias. Esta subred no debe tener ningún otro recurso que no sea el conector. Si no usas una VPC compartida, puedes crear una subred para que el conector la use o especificar un rango de IP personalizado sin usar para que el conector cree una subred para su uso. Si eliges el rango de IP personalizado, la subred que se crea está oculta y no se puede usar en reglas de firewall y configuraciones de NAT.

Crear un conector

Para enviar solicitudes a tu red de VPC y recibir las respuestas correspondientes sin usar la Internet pública, puedes usar un conector de Acceso a VPC sin servidores.

Si el conector se encuentra en el mismo proyecto que su red de VPC, puedes crear un conector con una subred existente o crear un conector y una subred nueva.

Si el conector se encuentra en un proyecto de servicio y usa una red de VPC compartida, el conector y su red de VPC asociada están en proyectos diferentes. Cuando un conector y su red de VPC están en proyectos diferentes, un administrador de red de VPC compartida debe crear la subred del conector en la red de VPC compartida antes de que puedas crear el conector, y debes crear el conector con una subred existente.

Para obtener más información acerca de los requisitos de subred, consulta Requisitos de subred del conector.

Para obtener información sobre la capacidad de procesamiento del conector, incluidos el tipo de máquina y el escalamiento, consulta Capacidad de procesamiento y escalamiento.

Puedes crear un conector con la consola de Google Cloud, Google Cloud CLI o Terraform:

Consola

  1. Dirígete a la página de descripción general de acceso a VPC sin servidores.

    Ir a Acceso a VPC sin servidores

  2. Haz clic en Crear conector.

  3. En el campo Nombre, ingresa un nombre para tu conector, que coincida con las convenciones de nombres de Compute Engine, con los requisitos adicionales que debe cumplir el nombre. Debe tener menos de 21 caracteres y esos guiones (-) cuentan como dos caracteres.

  4. En el campo Región, selecciona una región para el conector. Debe coincidir con la región del servicio sin servidores.

    Si tu servicio o trabajo se encuentran en la región us-central o europe-west, usa us-central1 o europe-west1.

  5. En el campo Red, selecciona la red de VPC a la que conectarás el conector.

  6. En el campo Subred, selecciona una de las siguientes opciones:

    • Crea un conector con una subred existente: Selecciona la subred existente en el campo Subred.

    • Crea un conector y una subred nueva: Selecciona Rango de IP personalizado en el campo Subred. Luego, ingresa la primera dirección en un CIDR /28 sin usar (por ejemplo, 10.8.0.0/28) para usarla como rango de direcciones IPv4 principal de una subred nueva que Google Cloud cree en la red de VPC del conector. Asegúrate de que el rango de IP no entre en conflicto con ninguna ruta existente en la red de VPC del conector. El nombre de la subred nueva comienza con el prefijo “aet-”.

  7. (Opcional) Si deseas configurar las opciones de escalamiento para tener control adicional del conector, haz clic en Mostrar la configuración de escalamiento a fin de mostrar el formulario de escalamiento:

    1. Configura la cantidad mínima y máxima de instancias para tu conector o usa los valores predeterminados, que son 2 (mínimo) y 10 (máximo). El conector se escala verticalmente al máximo especificado si el uso del tráfico lo requiere, pero el conector no se reduce cuando el tráfico disminuye. Debes usar valores que se encuentren entre 2 y 10.
    2. En el menú Tipo de instancia, elige el tipo de máquina que se usará para el conector o usa el tipo e2-micro predeterminado. Observa la barra lateral de costos a la derecha cuando elijas el tipo de instancia, en la que se muestran las estimaciones de costo y ancho de banda.
  8. Haz clic en Crear.

  9. Aparecerá una marca de verificación verde junto al nombre del conector cuando esté listo para usar.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Actualiza los componentes de gcloud a la versión más reciente:

    gcloud components update
  3. Asegúrate de que esté habilitada la API de Acceso a VPC sin servidores en el proyecto:

    gcloud services enable vpcaccess.googleapis.com
  4. Crea el conector con una de las siguientes opciones:

    Para obtener más detalles y ver los argumentos opcionales, consulta la referencia de gcloud.

    • Crea un conector con una subred existente:

      gcloud compute networks vpc-access connectors create CONNECTOR_NAME \
       --region REGION \
       --subnet SUBNET_NAME \
       --subnet-project HOST_PROJECT_ID \
       --min-instances MIN \
       --max-instances MAX \
       --machine-type MACHINE_TYPE

      Reemplaza lo siguiente:

      • CONNECTOR_NAME: un nombre para el conector, que coincide con las convenciones de nombres de Compute Engine, con los requisitos adicionales de que el nombre debe tener menos de 21 caracteres y que los guiones (-) cuentan como dos caracteres.
      • REGION: una región para el conector que coincide con la región del trabajo o servicio sin servidores. Si tu servicio o trabajo están en us-central o europe-west, usa us-central1 o europe-west1.
      • SUBNET_NAME: el nombre de la subred existente.
      • HOST_PROJECT_ID: El ID del proyecto host de VPC compartida Si el conector y la subred existente se encuentran en el mismo proyecto, omite la marca --subnet-project.
      • MIN: Es la cantidad mínima de instancias que se usarán para el conector. Usa un número entero que se encuentre entre 2(el valor predeterminado) y 9.
      • MAX: Es la cantidad máxima de instancias que se usarán para el conector. Usa un número entero que se encuentre entre 3 y 10 (el valor predeterminado). Si el conector escala verticalmente al número máximo de instancias, no se reduce la escala.
      • MACHINE_TYPE debe ser una de las siguientes opciones: f1-micro, e2-micro o e2-standard-4.
    • Crea un conector y una subred nueva:

      gcloud compute networks vpc-access connectors create CONNECTOR_NAME \
       --region REGION \
       --network VPC_NETWORK \
       --range IP_RANGE
       --min-instances MIN \
       --max-instances MAX \
       --machine-type MACHINE_TYPE

      Reemplaza lo siguiente:

      • CONNECTOR_NAME: un nombre para el conector, que coincide con las convenciones de nombres de Compute Engine, con los requisitos adicionales de que el nombre debe tener menos de 21 caracteres y que los guiones (-) cuentan como dos caracteres.
      • REGION: una región para el conector que coincide con la región del trabajo o servicio sin servidores. Si tu servicio o trabajo están en us-central o europe-west, usa us-central1 o europe-west1.
      • VPC_NETWORK: el nombre de la red de VPC a la que enchufarás el conector. El conector y la red de VPC deben encontrarse en el mismo proyecto.
      • IP_RANGE: Proporciona un CIDR /28 sin usar (por ejemplo 10.8.0.0/28) para usar como el rango de direcciones IPv4 principal de una subred nueva que Google Cloud crea en la red de VPC del conector. Asegúrate de que el rango de IP no entre en conflicto con ninguna ruta existente en la red de VPC del conector. El nombre de la subred nueva comienza con el prefijo “aet-”.
      • MIN: Es la cantidad mínima de instancias que se usarán para el conector. Usa un número entero que se encuentre entre 2(el valor predeterminado) y 9.
      • MAX: Es la cantidad máxima de instancias que se usarán para el conector. Usa un número entero que se encuentre entre 3 y 10 (el valor predeterminado). Si el conector escala verticalmente al número máximo de instancias, no se reduce la escala.
      • MACHINE_TYPE debe ser una de las siguientes opciones: f1-micro, e2-micro o e2-standard-4.
  5. Verifica que tu conector tenga el estado READY antes de usarlo:

    gcloud compute networks vpc-access connectors describe CONNECTOR_NAME \
    --region REGION

    Reemplaza lo siguiente:

    • CONNECTOR_NAME: Es el nombre de tu conector. Este es el nombre que especificaste en el paso anterior.
    • REGION: Es la región del conector. Esta es la región que especificaste en el paso anterior.

    El resultado debe contener la línea state: READY.

Terraform

Puedes usar un recurso de Terraform para habilitar la API de vpcaccess.googleapis.com.

resource "google_project_service" "vpcaccess-api" {
  project = var.project_id # Replace this with your project ID in quotes
  service = "vpcaccess.googleapis.com"
}

Puedes usar módulos de Terraform para crear una red y subred de VPC y, luego, crear el conector.

module "test-vpc-module" {
  source       = "terraform-google-modules/network/google"
  version      = "~> 9.0"
  project_id   = var.project_id # Replace this with your project ID in quotes
  network_name = "my-serverless-network"
  mtu          = 1460

  subnets = [
    {
      subnet_name   = "serverless-subnet"
      subnet_ip     = "10.10.10.0/28"
      subnet_region = "us-central1"
    }
  ]
}

module "serverless-connector" {
  source     = "terraform-google-modules/network/google//modules/vpc-serverless-connector-beta"
  version    = "~> 9.0"
  project_id = var.project_id
  vpc_connectors = [{
    name        = "central-serverless"
    region      = "us-central1"
    subnet_name = module.test-vpc-module.subnets["us-central1/serverless-subnet"].name
    # host_project_id = var.host_project_id # Specify a host_project_id for shared VPC
    machine_type  = "e2-standard-4"
    min_instances = 2
    max_instances = 7
    }
    # Uncomment to specify an ip_cidr_range
    #   , {
    #     name          = "central-serverless2"
    #     region        = "us-central1"
    #     network       = module.test-vpc-module.network_name
    #     ip_cidr_range = "10.10.11.0/28"
    #     subnet_name   = null
    #     machine_type  = "e2-standard-4"
    #     min_instances = 2
    #   max_instances = 7 }
  ]
  depends_on = [
    google_project_service.vpcaccess-api
  ]
}

Configura tu servicio

Puedes configurar el servicio de Cloud Run para usar un conector de Acceso a VPC sin servidores para enviar tráfico de salida. Puedes hacer esto mediante la consola de Google Cloud, Google Cloud CLI o el archivo YAML cuando creas un servicio nuevo o implementas una revisión nueva:

Console

  1. En la consola de Google Cloud ve a Cloud Run:

    Ir a Cloud Run

  2. Haz clic en Implementar contenedor y selecciona Servicio para configurar un servicio nuevo. Si quieres configurar un servicio existente, haz clic en el servicio y, luego, en implementar y editar la nueva revisión.

  3. Si configuras un servicio nuevo, completa la página de configuración del servicio inicial como desees y haz clic en Contenedores, volúmenes, Herramientas de redes y seguridad para expandir la página de configuración del servicio.

  4. Haz clic en la pestaña Herramientas de redes.

    imagen

    • En el campo Red, elige una de las siguientes opciones del menú:

      • Para desconectar el servicio de una red de VPC, selecciona Ninguna.
      • Para usar un conector existente, elígelo de la lista desplegable o selecciona Personalizado para usar un conector existente que no se muestra en la lista desplegable.
      • Para crear un conector nuevo, selecciona Agregar un nuevo conector de VPC. Consulta Crea un conector de Acceso a VPC sin servidores para obtener detalles sobre la creación de un conector.
      • En Enrutamiento del tráfico, selecciona una de las siguientes opciones:
        • Enruta solo las solicitudes a IP privadas a la VPC para enviar solo tráfico a direcciones internas a través de la red de VPC.
        • Enruta todo el tráfico a la VPC para enviar todo el tráfico saliente a través de la red de VPC.
  5. Haz clic en Crear o Implementar.

gcloud

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 lo siguiente:

  • SERVICE por el nombre de tu servicio
  • IMAGE_URL por una referencia a la imagen del contenedor, como us-docker.pkg.dev/cloudrun/container/hello:latest Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL tiene el formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • 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 lo siguiente:

  • SERVICE por el nombre de tu servicio
  • CONNECTOR_NAME por el nombre de tu conector.

YAML

  1. Si creas un servicio nuevo, omite este paso. Si actualizas un servicio existente, descarga su configuración de YAML:

    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
          name: REVISION

    Reemplaza lo siguiente:

    • SERVICE por el nombre del servicio de Cloud Run.
    • CONNECTOR_NAME por el nombre de tu conector.
    • REVISION por un nombre de revisión nuevo o bórralo (si está presente). Si proporcionas un nuevo nombre de revisión, debe cumplir con los siguientes criterios:
      • Comienza con SERVICE-
      • Solo contiene letras minúsculas, números y -
      • No termina con -
      • No supera los 63 caracteres
  3. Crea o actualiza el servicio con el siguiente comando:

    gcloud run services replace service.yaml

Terraform

Puedes usar un recurso de Terraform a fin de crear un servicio y configurarlo para que use tu conector.

# Cloud Run service
resource "google_cloud_run_v2_service" "gcr_service" {
  name     = "mygcrservice"
  location = "us-west1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
      resources {
        limits = {
          cpu    = "1000m"
          memory = "512Mi"
        }
      }
      # the service uses this SA to call other Google Cloud APIs
      # service_account_name = myservice_runtime_sa
    }

    scaling {
      # Limit scale up to prevent any cost blow outs!
      max_instance_count = 5
    }

    vpc_access {
      # Use the VPC Connector
      connector = google_vpc_access_connector.connector.id
      # all egress from the service should go through the VPC Connector
      egress = "ALL_TRAFFIC"
    }
  }
}

Configura tu trabajo

Después de crear un conector de acceso a VPC sin servidores, puedes configurar el trabajo de Cloud Run para usar el conector. Para ello, usa la consola de Google Cloud, Google Cloud CLI o YAML cuando crees un trabajo nuevo:

Console

  1. En la consola de Google Cloud, ve a la página de trabajos de Cloud Run:

    Ir a Cloud Run

  2. Haz clic en Implementar contenedor y selecciona Trabajo para completar la página de configuración de trabajo inicial. Si quieres configurar un trabajo existente, selecciona el trabajo y, luego, haz clic en Editar.

  3. Haz clic en Contenedor, variables y secretos, conexiones y seguridad para expandir la página de propiedades del trabajo.

  4. Haz clic en la pestaña Conexiones.

    imagen

    • En el campo Red, elige una de las siguientes opciones del menú:

      • Para desconectar tu trabajo de una red de VPC, selecciona Ninguno.
      • Para usar un conector existente, elígelo de la lista desplegable o selecciona Personalizado para usar un conector existente que no se muestra en la lista desplegable.
      • Para crear un conector nuevo, selecciona Agregar un nuevo conector de VPC.

        Consulta Crea un conector de Acceso a VPC sin servidores para obtener detalles sobre la creación de un conector.
  5. Haz clic en Crear o Actualizar.

gcloud

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

gcloud run jobs create JOB --image IMAGE_URL --vpc-connector CONNECTOR_NAME

Reemplaza lo siguiente:

  • JOB por el nombre de tu trabajo.
  • IMAGE_URL por una referencia a la imagen del contenedor, como us-docker.pkg.dev/cloudrun/container/hello:latest Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL tiene el formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • CONNECTOR_NAME por el nombre de tu conector.

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

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

gcloud run jobs update JOB --vpc-connector CONNECTOR_NAME

Reemplaza lo siguiente:

  • JOB por el nombre de tu trabajo.
  • CONNECTOR_NAME por el nombre de tu conector.

YAML

Puedes descargar y ver una configuración de trabajo existente con el comando gcloud run jobs 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 run jobs 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 jobs describe JOB --format export > job.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: Job
      metadata:
        name: JOB
      spec:
        template:
          metadata:
            annotations:
              run.googleapis.com/vpc-access-connector: CONNECTOR_NAME

    Reemplaza lo siguiente:

    • JOB por el nombre del trabajo de Cloud Run.
    • 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.
  3. Reemplaza el trabajo por su nueva configuración con el siguiente comando:

    gcloud run jobs replace job.yaml

Acceso a recursos VPC

Puedes restringir el acceso desde tu conector mediante reglas y políticas de firewall, y puedes agregar restricciones adicionales si estableces la configuración de salida y entrada.

Reglas de firewall y configuración de políticas

Reglas de firewall necesarias para conectores en proyectos de servicio

Si creas un conector en una red de VPC independiente o en el proyecto host de una red de VPC compartida, Google Cloud crea todas las reglas de firewall necesarias para el funcionamiento del conector. Para obtener más información, consulta Reglas de firewall para conectores en redes de VPC independientes o proyectos host de VPC compartida.

Sin embargo, si creas un conector en un proyecto de servicio y el conector se orienta a una red de VPC compartida en el proyecto host, debes agregar reglas de firewall para permitir el tráfico necesario para el funcionamiento del conector desde los siguientes rangos:

La infraestructura de Google subyacente a Cloud Run, funciones de Cloud Run y el entorno estándar de App Engine usa estos rangos. Todas las solicitudes de estas direcciones IP se originan en la infraestructura de Google para garantizar que cada recurso sin servidores solo se comunique con el conector al que está conectado.

También debes permitir el tráfico de la subred del conector a los recursos de tu red de VPC.

Para seguir estos pasos, debes tener una de las siguientes funciones en el proyecto host:

Para una configuración simple, aplica las reglas para permitir que los servicios sin servidores en cualquier proyecto de servicio conectado a la red de VPC compartida envíen solicitudes a cualquier recurso en la red.

Para aplicar estas reglas, ejecuta los siguientes comandos en el proyecto host:

  1. Crea reglas de firewall que permitan que las solicitudes de la infraestructura sin servidores y los sondeos de verificación de estado de Google lleguen a todos los conectores de la red. En estos comandos, se usan puertos UDP y TCP como proxies y para verificaciones de estado HTTP, respectivamente. No cambies los puertos especificados.

    gcloud compute firewall-rules create serverless-to-vpc-connector \
        --allow tcp:667,udp:665-666,icmp \
        --source-ranges=35.199.224.0/19 \
        --direction=INGRESS \
        --target-tags vpc-connector \
        --network=VPC_NETWORK
    gcloud compute firewall-rules create vpc-connector-to-serverless \
        --allow tcp:667,udp:665-666,icmp \
        --destination-ranges=35.199.224.0/19 \
        --direction=EGRESS \
        --target-tags vpc-connector \
        --network=VPC_NETWORK
    gcloud compute firewall-rules create vpc-connector-health-checks \
        --allow tcp:667 \
        --source-ranges=35.191.0.0/16,35.191.192.0/18,130.211.0.0/22 \
        --direction=INGRESS \
        --target-tags vpc-connector \
        --network=VPC_NETWORK

    Reemplaza VPC_NETWORK por el nombre de la red de VPC a la que deseas conectar tu conector.

  2. Crea una regla de firewall de entrada en la red de VPC para permitir las solicitudes de los conectores que se orientan a esta red:

    gcloud compute firewall-rules create vpc-connector-requests \
        --allow tcp,udp,icmp \
        --direction=INGRESS \
        --source-tags vpc-connector \
        --network=VPC_NETWORK

    Esta regla otorga al conector acceso a cada recurso de la red. Para limitar los recursos a los que tu entorno sin servidores puede acceder con el Acceso a VPC sin servidores, consulta Restringe el acceso de la VM del conector a los recursos de la red de VPC.

Crea reglas de firewall para conectores específicos

Seguir el procedimiento en Reglas de firewall necesarias para conectores en proyectos de servicio da como resultado reglas de firewall que se aplican a todos los conectores, tanto los actuales como los que se creen en el futuro. Si no quieres esto, pero deseas crear reglas solo para conectores específicos, puedes definir el alcance de las reglas para que se apliquen solo a esos conectores.

Para limitar el alcance de las reglas a conectores específicos, puedes usar uno de los siguientes mecanismos:

  • Etiquetas de red: Cada conector tiene dos etiquetas de red: vpc-connector y vpc-connector-REGION-CONNECTOR_NAME. Usa este último formato para limitar el alcance de las reglas de firewall a un conector específico.
  • Rangos de IP: usa esto solo para las reglas de salida, ya que no funciona con las reglas de entrada. Puedes usar el rango de IP de la subred del conector para limitar el alcance de las reglas de firewall a un solo conector de VPC.

Restringe el acceso de la VM del conector a los recursos de la red de VPC

Puedes restringir el acceso de tu conector a los recursos en la red de VPC de destino mediante las reglas de firewall de VPC o las reglas en las políticas de firewall. Puedes aplicar estas restricciones mediante una de las siguientes estrategias:

  • Crea reglas de entrada cuyos objetivos representen los recursos a los que deseas limitar el acceso de la VM del conector y cuyos orígenes representen las VMs del conector.
  • Crea reglas de salida cuyos objetivos representen las VMs del conector y cuyos destinos representen los recursos a los que deseas limitar el acceso de la VM del conector.

En los siguientes ejemplos, se ilustra cada estrategia.

Restringe el acceso con reglas de entrada

Elige las etiquetas de red o los rangos de CIDR que sirven para controlar el tráfico de entrada a tu red de VPC:

Etiquetas de red

En los siguientes pasos, se muestra cómo crear reglas de entrada que restrinjan el acceso de un conector a tu red de VPC en función de las etiquetas de red del conector.

  1. Asegúrate de tener los permisos necesarios para insertar reglas de firewall. Debes contar con una de las siguientes funciones de Identity and Access Management (IAM):

  2. Deniega el tráfico del conector en toda tu red de VPC.

    Crea una regla de firewall de entrada con una prioridad inferior a 1,000 en la red de VPC para denegar la entrada de la etiqueta de red del conector. Esto anula la regla de firewall implícita que crea el acceso a VPC sin servidores en la red de VPC de forma predeterminada.

    gcloud compute firewall-rules create RULE_NAME \
    --action=DENY \
    --rules=PROTOCOL \
    --source-tags=VPC_CONNECTOR_NETWORK_TAG \
    --direction=INGRESS \
    --network=VPC_NETWORK \
    --priority=PRIORITY

    Reemplaza lo siguiente:

    • RULE_NAME: Es el nombre de la regla de firewall nueva. Por ejemplo, deny-vpc-connector.

    • PROTOCOL: Uno o más protocolos que deseas permitir desde tu conector de VPC. Los protocolos compatibles son tcp o udp. Por ejemplo, tcp:80,udp permite el tráfico de TCP a través del puerto 80 y el tráfico de UDP. Para obtener más información, consulta la documentación de la marca allow.

      Por razones de seguridad y validación, también puedes configurar reglas de denegación para bloquear el tráfico de los siguientes protocolos no compatibles: ah, all, esp, icmp, ipip y sctp.

    • VPC_CONNECTOR_NETWORK_TAG: Es la etiqueta de red del conector universal si quieres restringir el acceso a todos los conectores (incluidos los que se creen en el futuro) o la etiqueta de red única si deseas restringir el acceso a un conector específico.

      • Etiqueta de red universal: vpc-connector
      • Etiqueta de red única: vpc-connector-REGION-CONNECTOR_NAME

        Reemplaza lo siguiente:

        • REGION: Es la región del conector que quieres restringir.
        • CONNECTOR_NAME: Es el nombre del conector que quieres restringir.

      Para obtener más información sobre las etiquetas de red del conector, consulta Etiquetas de red.

    • VPC_NETWORK es el nombre de tu red de VPC.

    • PRIORITY: un número entero entre 0 y 65535. Por ejemplo, 0 establece la prioridad más alta.

  3. Permite el tráfico del conector al recurso que debe recibir tráfico del conector.

    Usa las marcas allow y target-tags para crear una regla de firewall de entrada orientada al recurso en tu red de VPC a la que deseas que acceda el conector de VPC. Establece la prioridad para que esta regla sea un valor inferior a la prioridad de la regla que estableciste en el paso anterior.

    gcloud compute firewall-rules create RULE_NAME \
    --allow=PROTOCOL \
    --source-tags=VPC_CONNECTOR_NETWORK_TAG \
    --direction=INGRESS \
    --network=VPC_NETWORK \
    --target-tags=RESOURCE_TAG \
    --priority=PRIORITY

    Reemplaza lo siguiente:

    • RULE_NAME: Es el nombre de la regla de firewall nueva. Por ejemplo, allow-vpc-connector-for-select-resources.

    • PROTOCOL: Uno o más protocolos que deseas permitir desde tu conector de VPC. Los protocolos compatibles son tcp o udp. Por ejemplo, tcp:80,udp permite el tráfico de TCP a través del puerto 80 y el tráfico de UDP. Para obtener más información, consulta la documentación de la marca allow.

    • VPC_CONNECTOR_NETWORK_TAG: Es la etiqueta de red del conector universal si quieres restringir el acceso a todos los conectores (incluidos los que se creen en el futuro) o la etiqueta de red única si deseas restringir el acceso a un conector específico. Debe coincidir con la etiqueta de red que especificaste en el paso anterior.

      • Etiqueta de red universal: vpc-connector
      • Etiqueta de red única: vpc-connector-REGION-CONNECTOR_NAME

        Reemplaza lo siguiente:

        • REGION: Es la región del conector que quieres restringir.
        • CONNECTOR_NAME: Es el nombre del conector que quieres restringir.

      Para obtener más información sobre las etiquetas de red del conector, consulta Etiquetas de red.

    • VPC_NETWORK es el nombre de tu red de VPC.

    • RESOURCE_TAG: la etiqueta de red para el recurso de VPC al que deseas que acceda tu conector de VPC.

    • PRIORITY: un número entero inferior a la prioridad que estableciste en el paso anterior. Por ejemplo, si estableces la prioridad para la regla que creaste en el paso anterior en 990, prueba con 980.

A fin de obtener más información sobre las marcas obligatorias y opcionales para la creación de reglas de firewall, consulta la documentación de gcloud compute firewall-rules create.

Rango de CIDR

En los siguientes pasos, se muestra cómo crear reglas de entrada que restrinjan el acceso de un conector a tu red de VPC en función del rango de CIDR del conector.

  1. Asegúrate de tener los permisos necesarios para insertar reglas de firewall. Debes contar con una de las siguientes funciones de Identity and Access Management (IAM):

  2. Deniega el tráfico del conector en toda tu red de VPC.

    Crea una regla de firewall de entrada con una prioridad inferior a 1,000 en tu red de VPC para denegar la entrada desde el rango de CIDR del conector. Esto anula la regla de firewall implícita que crea el acceso a VPC sin servidores en la red de VPC de forma predeterminada.

    gcloud compute firewall-rules create RULE_NAME \
    --action=DENY \
    --rules=PROTOCOL \
    --source-ranges=VPC_CONNECTOR_CIDR_RANGE \
    --direction=INGRESS \
    --network=VPC_NETWORK \
    --priority=PRIORITY

    Reemplaza lo siguiente:

    • RULE_NAME: Es el nombre de la regla de firewall nueva. Por ejemplo, deny-vpc-connector.

    • PROTOCOL: Uno o más protocolos que deseas permitir desde tu conector de VPC. Los protocolos compatibles son tcp o udp. Por ejemplo, tcp:80,udp permite el tráfico de TCP a través del puerto 80 y el tráfico de UDP. Para obtener más información, consulta la documentación de la marca allow.

      Por razones de seguridad y validación, también puedes configurar reglas de denegación para bloquear el tráfico de los siguientes protocolos no compatibles: ah, all, esp, icmp, ipip y sctp.

    • VPC_CONNECTOR_CIDR_RANGE: El rango de CIDR del conector cuyo acceso estás restringiendo

    • VPC_NETWORK es el nombre de tu red de VPC.

    • PRIORITY: un número entero entre 0 y 65535. Por ejemplo, 0 establece la prioridad más alta.

  3. Permite el tráfico del conector al recurso que debe recibir tráfico del conector.

    Usa las marcas allow y target-tags para crear una regla de firewall de entrada orientada al recurso en tu red de VPC a la que deseas que acceda el conector de VPC. Establece la prioridad para que esta regla sea un valor inferior a la prioridad de la regla que estableciste en el paso anterior.

    gcloud compute firewall-rules create RULE_NAME \
    --allow=PROTOCOL \
    --source-ranges=VPC_CONNECTOR_CIDR_RANGE \
    --direction=INGRESS \
    --network=VPC_NETWORK \
    --target-tags=RESOURCE_TAG \
    --priority=PRIORITY

    Reemplaza lo siguiente:

    • RULE_NAME: Es el nombre de la regla de firewall nueva. Por ejemplo, allow-vpc-connector-for-select-resources.

    • PROTOCOL: Uno o más protocolos que deseas permitir desde tu conector de VPC. Los protocolos compatibles son tcp o udp. Por ejemplo, tcp:80,udp permite el tráfico de TCP a través del puerto 80 y el tráfico de UDP. Para obtener más información, consulta la documentación de la marca allow.

    • VPC_CONNECTOR_CIDR_RANGE: El rango de CIDR del conector cuyo acceso estás restringiendo

    • VPC_NETWORK es el nombre de tu red de VPC.

    • RESOURCE_TAG: la etiqueta de red para el recurso de VPC al que deseas que acceda tu conector de VPC.

    • PRIORITY: un número entero inferior a la prioridad que estableciste en el paso anterior. Por ejemplo, si estableces la prioridad para la regla que creaste en el paso anterior en 990, prueba con 980.

A fin de obtener más información sobre las marcas obligatorias y opcionales para la creación de reglas de firewall, consulta la documentación de gcloud compute firewall-rules create.

Restringe el acceso con reglas de salida

En los siguientes pasos, se muestra cómo crear reglas de salida para restringir el acceso al conector.

  1. Asegúrate de tener los permisos necesarios para insertar reglas de firewall. Debes contar con una de las siguientes funciones de Identity and Access Management (IAM):

  2. Rechaza el tráfico de salida proveniente de tu conector.

    Crea una regla de firewall de salida en tu conector de acceso a VPC sin servidores para evitar que envíe tráfico de salida, con la excepción de las respuestas establecidas, a cualquier destino.

    gcloud compute firewall-rules create RULE_NAME \
    --action=DENY \
    --rules=PROTOCOL \
    --direction=EGRESS \
    --target-tags=VPC_CONNECTOR_NETWORK_TAG \
    --network=VPC_NETWORK \
    --priority=PRIORITY

    Reemplaza lo siguiente:

    • RULE_NAME: Es el nombre de la regla de firewall nueva. Por ejemplo, deny-vpc-connector.

    • PROTOCOL: Uno o más protocolos que deseas permitir desde tu conector de VPC. Los protocolos compatibles son tcp o udp. Por ejemplo, tcp:80,udp permite el tráfico de TCP a través del puerto 80 y el tráfico de UDP. Para obtener más información, consulta la documentación de la marca allow.

      Por razones de seguridad y validación, también puedes configurar reglas de denegación para bloquear el tráfico de los siguientes protocolos no compatibles: ah, all, esp, icmp, ipip y sctp.

    • VPC_CONNECTOR_NETWORK_TAG: Es la etiqueta de red del conector de VPC universal si deseas que la regla se aplique para todos los conectores de VPC existentes y futuros. O bien, es la etiqueta de red del conector de VPC única si deseas controlar un conector específico.

    • VPC_NETWORK es el nombre de tu red de VPC.

    • PRIORITY: un número entero entre 0 y 65535. Por ejemplo, 0 establece la prioridad más alta.

  3. Permite el tráfico de salida cuando el destino se encuentra en el rango CIDR al que deseas que acceda tu conector.

    Usa las marcas allow y destination-ranges a fin de crear una regla de firewall que permita el tráfico de salida desde el conector para un rango específico de destinos. Establece el rango de destinos en el rango de CIDR del recurso en tu red de VPC a la que deseas que tu conector pueda acceder. Establece la prioridad para que esta regla sea un valor inferior a la prioridad de la regla que estableciste en el paso anterior.

    gcloud compute firewall-rules create RULE_NAME \
    --allow=PROTOCOL \
    --destination-ranges=RESOURCE_CIDR_RANGE \
    --direction=EGRESS \
    --network=VPC_NETWORK \
    --target-tags=VPC_CONNECTOR_NETWORK_TAG \
    --priority=PRIORITY

    Reemplaza lo siguiente:

    • RULE_NAME: Es el nombre de la regla de firewall nueva. Por ejemplo, allow-vpc-connector-for-select-resources.

    • PROTOCOL: Uno o más protocolos que deseas permitir desde tu conector de VPC. Los protocolos compatibles son tcp o udp. Por ejemplo, tcp:80,udp permite el tráfico de TCP a través del puerto 80 y el tráfico de UDP. Para obtener más información, consulta la documentación de la marca allow.

    • RESOURCE_CIDR_RANGE: El rango de CIDR del conector cuyo acceso estás restringiendo

    • VPC_NETWORK es el nombre de tu red de VPC.

    • VPC_CONNECTOR_NETWORK_TAG: Es la etiqueta de red del conector de VPC universal si deseas que la regla se aplique para todos los conectores de VPC existentes y futuros. O bien, es la etiqueta de red del conector de VPC única si deseas controlar un conector específico. Si usaste la etiqueta de red única en el paso anterior, usa la etiqueta de red única.

    • PRIORITY: un número entero inferior a la prioridad que estableciste en el paso anterior. Por ejemplo, si estableces la prioridad para la regla que creaste en el paso anterior en 990, prueba con 980.

A fin de obtener más información sobre las marcas obligatorias y opcionales para la creación de reglas de firewall, consulta la documentación de gcloud compute firewall-rules create.

Administra tu conector

De forma predeterminada, solo las solicitudes a ciertos destinos de direcciones IPv4 internas (incluidos los destinos IPv4 internos resueltos por las respuestas DNS) 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 o trabajo se enruten a tu red de VPC.

El Acceso a VPC sin servidores solo admite el enrutamiento de tráfico IPv4. El tráfico IPv6 no es compatible, incluso si tienes rutas IPv6 en tu red de VPC.

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

  • Enrutar solo las solicitudes a IP privadas a la VPC: Predeterminada. El tráfico se enruta a través de la red de VPC solo si los paquetes que llevan el tráfico tienen destinos que coinciden con lo siguiente:

    Los paquetes a cualquier otro destino se enrutan desde Cloud Run a Internet (no a través de ninguna red de VPC).

  • Enrutar todo el tráfico a la VPC: El tráfico siempre se enruta a través de la red de VPC asociada con el conector para todos los destinos de paquetes. Debes usar esta opción en las siguientes circunstancias:

    • Si necesitas enviar tráfico a rangos de subredes de VPC con rangos de direcciones IP externas utilizados de forma privada. Para obtener más información sobre los rangos de subredes de VPC, consulta Rangos de IPv4 válidos en la descripción general de las subredes.
    • Si necesitas enviar tráfico a un extremo de Private Service Connect para las APIs de Google cuya dirección es una dirección IP externa de uso privado. Si deseas obtener más información sobre los extremos de Private Service Connect para las APIs de Google, consulta Accede a las APIs de Google a través de extremos.
    • Si necesitas enviar tráfico a cualquier otro destino de dirección IP externa de uso privado que se pueda enrutar dentro de la red de VPC del conector. Los ejemplos de otros destinos que abarcan direcciones IP externas de uso privado pueden incluir rangos de subred de intercambio de tráfico (y rangos de subredes de intercambio de tráfico creados a partir de rangos de direcciones IP asignados para servicios) y esos destinos a los que se puede acceder mediante rutas personalizadas en la VPC.

    Si tu red de VPC incluye una ruta predeterminada, los paquetes aún se pueden enrutar a Internet después de que el conector los procese si configuras una puerta de enlace de Cloud NAT para proporcionar servicios NAT a la subred que usa el conector. Estos paquetes están sujetos a las rutas de tu red de VPC y las reglas de firewall que se aplican a tu red de VPC. Puedes usar la configuración de la ruta y del firewall para controlar la salida de Internet de todas las solicitudes salientes que envía tu función a través de un conector de Acceso a VPC sin servidores.

Controla el tráfico del servicio de salida

Puedes especificar una configuración de salida de VPC mediante la consola de Google Cloud, Google Cloud CLI o el archivo YAML cuando creas un servicio nuevo o implementas una revisión nueva:

Console

  1. En la consola de Google Cloud ve a Cloud Run:

    Ir a Cloud Run

  2. Haz clic en Implementar contenedor y selecciona Servicio para configurar un servicio nuevo. Si quieres configurar un servicio existente, haz clic en el servicio y, luego, en implementar y editar la nueva revisión.

  3. Si configuras un servicio nuevo, completa la página de configuración del servicio inicial como desees y haz clic en Contenedores, volúmenes, Herramientas de redes y seguridad para expandir la página de configuración del servicio.

  4. Haz clic en la pestaña Herramientas de redes.

    imagen

    • Después de seleccionar un conector de VPC, selecciona Enrutar solo las solicitudes a IP privadas a la VPC o Enrutar todo el tráfico a la VPC.
  5. Haz clic en Crear o Implementar.

gcloud

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 lo siguiente:

  • SERVICE por el nombre de tu servicio
  • IMAGE_URL por una referencia a la imagen del contenedor, como us-docker.pkg.dev/cloudrun/container/hello:latest Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL tiene el formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • CONNECTOR_NAME por el nombre de tu conector.
  • 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

Reemplaza lo siguiente:

YAML

  1. Si creas un servicio nuevo, omite este paso. Si actualizas un servicio existente, descarga su configuración de YAML:

    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
          name: REVISION

    Reemplaza lo siguiente:

    • SERVICE por el nombre del servicio de Cloud Run
    • 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.
    • 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.
      • REVISION por un nombre de revisión nuevo o bórralo (si está presente). Si proporcionas un nuevo nombre de revisión, debe cumplir con los siguientes criterios:
        • Comienza con SERVICE-
        • Solo contiene letras minúsculas, números y -
        • No termina con -
        • No supera los 63 caracteres
  3. Crea o actualiza el servicio con el siguiente comando:

    gcloud run services replace service.yaml

Controla el tráfico de los trabajos de salida

Puedes especificar una configuración de salida de VPC mediante la consola de Google Cloud, Google Cloud CLI o el archivo YAML cuando creas o actualizas un trabajo:

Console

  1. En la consola de Google Cloud, ve a la página de trabajos de Cloud Run:

    Ir a Cloud Run

  2. Haz clic en Implementar contenedor y selecciona Trabajo para completar la página de configuración de trabajo inicial. Si quieres configurar un trabajo existente, selecciona el trabajo y, luego, haz clic en Editar.

  3. Haz clic en Contenedor, variables y secretos, conexiones y seguridad para expandir la página de propiedades del trabajo.

  4. Haz clic en la pestaña Conexiones.

    imagen

    • Después de seleccionar un conector, selecciona Enrutar solo las solicitudes a IP privadas a la VPC o Enrutar todo el tráfico a la VPC.
  5. Haz clic en Crear o Actualizar.

gcloud

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

gcloud run jobs create JOB \
--image IMAGE_URL \
--vpc-connector CONNECTOR_NAME \
--vpc-egress EGRESS_SETTING

Reemplaza lo siguiente:

  • JOB por el nombre de tu trabajo.
  • IMAGE_URL por una referencia a la imagen del contenedor, como us-docker.pkg.dev/cloudrun/container/hello:latest Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL tiene el formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • CONNECTOR_NAME por el nombre de tu conector.
  • 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 trabajo existente y cambiar la configuración de salida:

gcloud run jobs update JOB --vpc-egress EGRESS_SETTING

Reemplaza lo siguiente:

YAML

Puedes descargar y ver una configuración de trabajo existente con el comando gcloud run jobs 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 run jobs replace. Asegúrate de modificar los campos tal como se indica en la documentación.

  1. Reemplaza el trabajo por su nueva configuración con el siguiente comando:

    gcloud run jobs replace job.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: Job
      metadata:
        name: JOB
      spec:
        template:
          metadata:
            annotations:
              run.googleapis.com/vpc-access-connector: CONNECTOR_NAME
              run.googleapis.com/vpc-access-egress: EGRESS_SETTING

    Reemplaza lo siguiente:

    • JOB por el nombre del trabajo de Cloud Run.
    • 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.
    • 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 trabajo por su nueva configuración con el siguiente comando:

    gcloud run jobs replace job.yaml

Ver la configuración del conector

Puedes ver la configuración actual del conector de Acceso a VPC sin servidores para el servicio o el trabajo mediante la consola de Google Cloud o la herramienta de línea de comandos de gcloud:

Console

  1. Ir a Cloud Run

  2. Haz clic en el servicio o trabajo que te interesa para abrir la página de detalles.

    • Para un servicio, haz clic en la pestaña Revisiones.

    • Para un trabajo, haz clic en la pestaña Configuración.

La configuración del conector de Acceso a VPC sin servidores se muestra en la pestaña Herramientas de redes.

gcloud

  1. Usa el siguiente comando para ver la configuración de tu servicio:

    gcloud run services describe SERVICE
  2. Usa el siguiente comando para ver la configuración de tu trabajo:

    gcloud run jobs describe JOB
  3. Ubica la configuración del conector de Acceso a VPC sin servidores en la configuración que se muestra.

Desconéctate de una red de VPC

Desconecta un servicio

Puedes desconectar un servicio de tu red de VPC mediante la consola de Google Cloud o Google Cloud CLI:

Console

  1. En la consola de Google Cloud ve a Cloud Run:

    Ir a Cloud Run

  2. Haz clic en Implementar contenedor y selecciona Servicio para configurar un servicio nuevo. Si quieres configurar un servicio existente, haz clic en el servicio y, luego, en implementar y editar la nueva revisión.

  3. Si configuras un servicio nuevo, completa la página de configuración del servicio inicial como desees y haz clic en Contenedores, volúmenes, Herramientas de redes y seguridad para expandir la página de configuración del servicio.

  4. Haz clic en la pestaña Herramientas de redes.

    imagen

    • En el campo Red, selecciona Ninguna para desconectar tu servicio de una red de VPC.
  5. Haz clic en Crear o Implementar.

gcloud

Para desconectar un servicio, usa el comando gcloud run services update con la siguiente marca:

gcloud run services update SERVICE --clear-vpc-connector
  • SERVICE por el nombre del servicio

Los conectores continúan generando cargos, incluso si no tienen tráfico y están desconectados. Para obtener detalles, consulta Precios. Si ya no necesitas el conector, asegúrate de borrarlo para evitar que se te siga facturando.

Desconecta un trabajo

Puedes desconectar un trabajo de tu red de VPC mediante la consola de Google Cloud o Google Cloud CLI:

Console

  1. En la consola de Google Cloud, ve a la página de trabajos de Cloud Run:

    Ir a Cloud Run

  2. Haz clic en Implementar contenedor y selecciona Trabajo para completar la página de configuración de trabajo inicial. Si quieres configurar un trabajo existente, selecciona el trabajo y, luego, haz clic en Editar.

  3. Haz clic en Contenedor, variables y secretos, conexiones y seguridad para expandir la página de propiedades del trabajo.

  4. Haz clic en la pestaña Conexiones.

    imagen

    • En el campo Red, selecciona Ninguno para desconectar tu trabajo de una red de VPC.
  5. Haz clic en Crear o Actualizar.

gcloud

Para desconectar un trabajo, usa el comando gcloud run jobs update con la siguiente marca:

--clear-vpc-connector

gcloud run jobs update JOB --clear-vpc-connector

Reemplaza JOB por el nombre de tu trabajo.

Los conectores continúan generando cargos, incluso si no tienen tráfico y están desconectados. Para obtener detalles, consulta Precios. Si ya no necesitas el conector, asegúrate de borrarlo para evitar que se te siga facturando.

Actualiza un conector

Puedes actualizar y supervisar los siguientes atributos de tu conector a través de la consola de Google Cloud, Google Cloud CLI o la API:

  • Tipo de máquina (instancia)
  • Cantidad mínima y máxima de instancias
  • Capacidad de procesamiento, cantidad de instancias y uso de CPU recientes

Actualizar tipo de máquina

Consola

  1. Dirígete a la página de descripción general de acceso a VPC sin servidores.

    Ir a Acceso a VPC sin servidores

  2. Selecciona el conector que quieres editar y haz clic en Editar.

  3. En la lista Tipo de instancia, selecciona el tipo de máquina (instancia) que prefieras. Para obtener información sobre los tipos de máquinas disponibles, consulta la documentación sobre Capacidad de procesamiento y escalamiento.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para actualizar el tipo de máquina del conector, ejecuta el siguiente comando en tu terminal:

    gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --machine-type=MACHINE_TYPE
    Reemplaza lo siguiente:

    • CONNECTOR_NAME: el nombre del conector
    • REGION: el nombre de la región del conector
    • MACHINE_TYPE: el tipo de máquina que prefieras. Para obtener información sobre los tipos de máquinas disponibles, consulta la documentación sobre Capacidad de procesamiento y escalamiento.

Disminuye la cantidad mínima y máxima de instancias

Para disminuir la cantidad mínima y máxima de instancias, debes hacer lo siguiente:

  1. Crea un conector nuevo con tus valores preferidos.
  2. Actualiza tu servicio o función para usar el conector nuevo.
  3. Borra el conector anterior cuando hayas movido su tráfico.

Para obtener más información, consulta Crea un conector de acceso a VPC sin servidores.

Aumenta la cantidad mínima y máxima de instancias

Consola

  1. Dirígete a la página de descripción general de acceso a VPC sin servidores.

    Ir a Acceso a VPC sin servidores

  2. Selecciona el conector que quieres editar y haz clic en Editar.

  3. En el campo Cantidad mínima de instancias, selecciona la cantidad mínima de instancias que prefieras.

    El valor más pequeño posible para este campo es el valor actual. El valor más alto posible para este campo es el valor actual en el campo Cantidad máxima de instancias menos 1. Por ejemplo, si el valor en el campo Cantidad máxima de instancias es 8, el valor más alto posible para el campo Cantidad mínima de instancias es 7.

  4. En el campo Cantidad máxima de instancias, selecciona la cantidad máxima de instancias que prefieras.

    El valor más pequeño posible para este campo es el valor actual. El valor más alto posible para este campo es 10.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para aumentar la cantidad mínima o máxima de instancias para el conector, ejecuta el siguiente comando en tu terminal:

    gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --min-instances=MIN_INSTANCES --max-instances=MAX_INSTANCES
    Reemplaza lo siguiente:

  • CONNECTOR_NAME: el nombre del conector
  • REGION: el nombre de la región del conector
  • MIN_INSTANCES: la cantidad mínima de instancias que prefieras.
    • El valor más pequeño posible para este campo es el valor actual de min_instances. Para buscar el valor actual, consulta Busca los valores de los atributos actuales.
    • El valor más alto posible para este campo es el valor max_instances actual menos 1, porque min_instances debe ser menor que max_instances. Por ejemplo, si max_instances es 8, el valor más alto posible para este campo es 7. Si el conector usa el valor predeterminado max-instances de 10, el valor más alto posible de este campo es 9. Para buscar el valor de max-instances, consulta Busca los valores de los atributos actuales.
  • MAX_INSTANCES:

    • El valor más pequeño posible para este campo es el valor actual de max_instances. Para buscar el valor actual, consulta Busca los valores de los atributos actuales.
    • El valor más alto posible para este campo es 10.

    Si solo deseas aumentar la cantidad mínima de instancias, pero no la máxima, debes especificar la cantidad máxima de instancias. Por el contrario, si solo deseas actualizar la cantidad máxima de instancias, pero no la mínima, debes especificar la cantidad mínima de instancias. Para mantener la cantidad mínima o máxima de instancias en el valor actual, especifica su valor actual. Para buscar el valor actual, consulta Busca los valores de los atributos actuales.

Busca los valores de los atributos actuales

Para buscar los valores de los atributos actuales de tu conector, ejecuta lo siguiente en tu terminal:

gcloud compute networks vpc-access connectors describe CONNECTOR_NAME --region=REGION --project=PROJECT
Reemplaza lo siguiente:

  • CONNECTOR_NAME: el nombre del conector
  • REGION: el nombre de la región del conector
  • PROJECT: el nombre de tu proyecto de Google Cloud

Supervisa el uso del conector

La supervisión del uso en el tiempo puede ayudarte a determinar cuándo ajustar la configuración de un conector. Por ejemplo, si el uso de CPU aumenta, puedes intentar aumentar la cantidad máxima de instancias para obtener mejores resultados. O si alcanzas el máximo de la capacidad de procesamiento, puedes decidir cambiar a un tipo de máquina más grande.

Para mostrar gráficos de la capacidad de procesamiento del conector, la cantidad de instancias y las métricas de uso de CPU con el tiempo a través de la consola de Google Cloud, haz lo siguiente:

  1. Dirígete a la página de descripción general de Acceso a VPC sin servidores.

    Ir a Acceso a VPC sin servidores

  2. Haz clic en el nombre del conector que quieres supervisar.

  3. Selecciona la cantidad de días que deseas mostrar entre 1 y 90 días.

  4. En el gráfico Capacidad de procesamiento, coloca el cursor sobre el gráfico para ver la capacidad de procesamiento reciente del conector.

  5. En el gráfico Cantidad de instancias, coloca el cursor sobre el gráfico para ver la cantidad de instancias que el conector usó recientemente.

  6. En el gráfico Uso de CPU, coloca el cursor sobre el gráfico para ver el uso de CPU reciente del conector. En el gráfico, se muestra el uso de CPU distribuido entre las instancias para los percentiles 50, 95 y 99.

Borra un conector

Antes de borrar un conector, asegúrate de que ningún servicio o trabajo siga conectado a él.

Para los usuarios de VPC compartida que configuraron conectores en el proyecto host de la VPC compartida (ya no se recomienda), puedes usar el comando gcloud compute networks vpc-access connectors describe para enumerar los proyectos, que son servicios o trabajos que usan un conector determinado.

Para borrar un conector, usa la consola de Google Cloud o la CLI de Google Cloud:

Consola

  1. Ve a la página de descripción general de Acceso a VPC sin servidores en la consola de Google Cloud:

    Ir a Acceso a VPC sin servidores

  2. Selecciona el conector que quieres borrar.

  3. Haz clic en Borrar.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Usa el siguiente comando de gcloud para borrar un conector:

    gcloud compute networks vpc-access connectors delete CONNECTOR_NAME --region=REGION
    

    Reemplaza lo siguiente:

    • CONNECTOR_NAME es el nombre del conector que quieres borrar.
    • REGION es la región donde se encuentra el conector.

Soluciona problemas

Permisos de las cuentas de servicio

Para realizar operaciones en el proyecto de Google Cloud, el servicio de Acceso a VPC sin servidores usa la cuenta de servicio del agente de servicio de Acceso a VPC sin servidores. La dirección de correo electrónico de esta cuenta de servicio tiene el siguiente formato:

service-PROJECT_NUMBER@gcp-sa-vpcaccess.iam.gserviceaccount.com

De forma predeterminada, esta cuenta de servicio tiene la función de agente de servicio de Acceso a VPC sin servidores (roles/vpcaccess.serviceAgent). Las operaciones del Acceso a VPC sin servidores pueden fallar si cambias los permisos de esta cuenta.

Rendimiento de red deficiente o uso alto de CPU inactiva

El uso de un solo conector para miles de instancias puede causar una degradación del rendimiento y un uso elevado de la CPU inactiva. Para solucionar este problema, fragmenta tus servicios entre varios conectores.

Errores

Error de que la cuenta de servicio necesita el rol de agente de servicio

Si usas la restricción de la política de la organización Restringir el uso de servicios del recurso para bloquear Cloud Deployment Manager (deploymentmanager.googleapis.com), es posible que veas el siguiente mensaje de error:

Serverless VPC Access service account (service-<PROJECT_NUMBER>@gcp-sa-vpcaccess.iam.gserviceaccount.com) needs Serverless VPC Access Service Agent role in the project.

Configura la política de la organización para quitar Deployment Manager de la lista de bloqueo o agregarla a la lista de entidades permitidas.

Error de creación del conector

Si la creación de un conector produce un error, prueba lo siguiente:

  • Especifica un rango de IP internas de RFC 1918 que no se superponga con ninguna reserva de dirección IP existente en la red de VPC.
  • Otorga al proyecto permiso para usar las imágenes de VM de Compute Engine del proyecto con el ID serverless-vpc-access-images. Para obtener más información sobre cómo actualizar las políticas de la organización según corresponda, consulta Configura restricciones de acceso a imágenes.

No se puede acceder a los recursos

Si especificaste un conector, pero aún no puedes acceder a los recursos de la red de VPC, asegúrate de que no haya reglas de firewall en la red de VPC que tengan una prioridad inferior a 1,000 que rechacen la entrada desde el rango de direcciones IP del conector.

Si configuras un conector en un proyecto de servicio de VPC compartida, asegúrate de que las reglas de firewall permitan la entrada de la infraestructura sin servidores al conector.

Error de conexión rechazada

Si recibes errores connection refused o connection timeout que degradan el rendimiento de la red, es posible que las conexiones crezcan sin límite en las invocaciones de la aplicación sin servidores. Para limitar la cantidad máxima de conexiones de cada instancia, usa una biblioteca cliente que admita grupos de conexiones. Para obtener ejemplos detallados sobre cómo usar los grupos de conexiones, consulta Administra conexiones de bases de datos.

Error de recurso no encontrado

Cuando borres una red de VPC o una regla de firewall, es posible que veas un mensaje similar al siguiente: The resource "aet-uscentral1-subnet--1-egrfw" was not found.

Para obtener información sobre este error y su solución, consulta Error de recurso no encontrado en la documentación de reglas de firewall de VPC.

Próximos pasos