Conectarse a una red de VPC

Te recomendamos que uses la salida de VPC directa para enviar tráfico a una red de VPC sin necesidad de usar un conector.

Sin embargo, si no puedes usar la salida de VPC directa, puedes configurar un conector de acceso a VPC sin servidor. En esta página se explica cómo conectar un servicio o un trabajo de Cloud Run a tu red de VPC con un conector, lo que permite que el tráfico de salida de Cloud Run se dirija a instancias de máquina virtual de Compute Engine, instancias de Memorystore y cualquier otro recurso con una dirección IP interna.

Antes de empezar

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

  • Si utilizas una VPC compartida, consulta la documentación específica sobre la configuración de Acceso a VPC sin servidor para tu producto.

  • Si tienes una restricción de política de la organización que impide el uso de Cloud Deployment Manager, no podrás crear ni eliminar conectores de acceso a VPC sin servidor. Para crear o eliminar un conector, se necesita la función Deployment Manager.

  • Si has configurado una política de imágenes de confianza para tu proyecto, asegúrate de permitir el serverless-vpc-access-imagesproyecto en la política de la organización constraints/compute.trustedimageProjects.

    Requisitos de la subred del conector

  • Cada conector requiere su propia subred PRIVATE con un intervalo de direcciones IPv4 principales /28. Otros recursos, como máquinas virtuales, Private Service Connect o balanceadores de carga, no pueden usar esta subred. Una vez creado el conector, no se puede ampliar la subred. Debe seguir siendo un /28.

  • Para crear un conector en un proyecto de servicio que utilice una red de VPC compartida en un proyecto del host, un administrador de red de la red de VPC compartida debe crear manualmente la subred del conector antes de que puedas crear el conector.

  • Para determinar si un conector puede usar una subred creada manualmente, describe la subred:

    gcloud compute networks subnets describe SUBNET --region=REGION

    Sustituye SUBNET por el nombre de la subred y REGION por la región que contiene la subred.

    En el resultado, comprueba lo siguiente:

    • La subred es una subred normal. En Google Cloud CLI, esto significa que el valor de purpose es PRIVATE.
    • El intervalo de direcciones IPv4 principal de la subred, ipCidrRange, es un /28.
    .
  • Si necesitas crear un conector de acceso a VPC sin servidor en el mismo proyecto que contiene la red VPC que usa el conector, puedes crear manualmente la subred del conector antes de crear el conector o Google Cloud crear la subred del conector automáticamente.

    Cuando Google Cloud crea una subred para un conector, tenga en cuenta lo siguiente:

    • Las subredes creadas automáticamente para los conectores no se ven cuando listar subredes, independientemente de si usas la consola de Google Cloud, la CLI de Google Cloud o la API Compute Engine. Google Cloud

    • Las subredes creadas automáticamente para conectores no se pueden describir.

    • Las subredes creadas automáticamente se incluyen en la lista de subredes que se muestra cuando describe una red VPC.

Para obtener más información sobre las subredes, incluido cómo enumerar las que ya existen para determinar qué intervalos de direcciones IP se están usando, consulta el artículo Trabajar con subredes.

Limitaciones

No se admite el tráfico IPv6.

Crear conector

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

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

Si tu conector se encuentra en un proyecto de servicio y utiliza una red de VPC compartida, el conector y su red de VPC asociada estarán en proyectos diferentes. Cuando un conector y su red de VPC están en proyectos diferentes, un administrador de la 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 que ya exista.

Para obtener más información sobre los requisitos de las subredes, consulta los requisitos de las subredes de conectores.

Para obtener información sobre el rendimiento de los conectores, incluidos el tipo de máquina y el escalado, consulta Rendimiento y escalado.

Puedes crear un conector mediante la Google Cloud consola, la CLI de Google Cloud o Terraform.

Consola

  1. Ve a la página de resumen de Acceso a VPC sin servidor.

    Ir a Acceso a VPC sin servidor

  2. Haz clic en Crear conector.

  3. En el campo Nombre, introduzca un nombre para el conector que cumpla las convenciones de nomenclatura de Compute Engine, así como los requisitos adicionales de que el nombre debe tener menos de 21 caracteres y que los guiones (-) cuentan como dos caracteres.

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

    Si tu servicio o trabajo se encuentra 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 quieras adjuntar el conector.

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

    • Crear un conector con una subred: seleccione la subred en el campo Subred.

    • Crear un conector y una subred: selecciona Intervalo de IP personalizado en el campo Subred. A continuación, introduce la primera dirección de un /28CIDR que no esté en uso (por ejemplo, 10.8.0.0/28) para usarla como intervalo de direcciones IPv4 principal de una nueva subred que Google Cloud cree en la red de VPC del conector. Asegúrate de que el intervalo de IPs no entre en conflicto con ninguna ruta de la red de VPC del conector. El nombre de la nueva subred empieza por el prefijo "aet-".

  7. (Opcional) Para definir opciones de escalado y tener más control sobre el conector, haz clic en Mostrar ajustes de escalado para que se muestre el formulario de escalado.

    1. Define el número mínimo y máximo de instancias de tu conector o usa los valores predeterminados, que son 2 (mínimo) y 10 (máximo). El conector se amplía hasta el máximo especificado si el uso del tráfico lo requiere, pero no se reduce cuando el tráfico disminuye. Debes usar valores entre 2 y 10.
    2. En el menú Tipo de instancia, elige el tipo de máquina que se va a usar para el conector o usa el valor predeterminado e2-micro. Fíjate en la barra lateral de costes de la derecha cuando elijas el tipo de instancia, que muestra las estimaciones de ancho de banda y costes.
  8. Haz clic en Crear.

  9. Cuando el conector esté listo para usarse, aparecerá una marca de verificación de color verde junto a su nombre.

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 la API Acceso a VPC sin servidor esté habilitada en tu proyecto:

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

    Para obtener más información y argumentos opcionales, consulta la gcloudreferencia.

    • Crea un conector con una subred que ya tengas:

      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

      Haz los cambios siguientes:

      • CONNECTOR_NAME: un nombre para el conector que cumpla las convenciones de nomenclatura de Compute Engine y 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 tu conector que coincida con la región de tu servicio o trabajo sin servidor. Si tu servicio o trabajo es en us-central o europe-west, usa us-central1 o europe-west1.
      • SUBNET_NAME: el nombre de la subred.
      • HOST_PROJECT_ID: el ID del proyecto host de la VPC compartida. Si el conector y la subred ya creada se encuentran en el mismo proyecto, omite la marca --subnet-project.
      • MIN: número mínimo de instancias que se van a usar en el conector. Usa un número entero entre 2(el valor predeterminado) y 9.
      • MAX: número máximo de instancias que se van a usar en el conector. Usa un número entero entre 3 y 10 (el valor predeterminado). Si el conector se escala hasta el número máximo de instancias, no se vuelve a reducir.
      • MACHINE_TYPE: debe ser uno de los siguientes valores: f1-micro, e2-micro o e2-standard-4.
    • Crear un conector y una subred:

      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

      Haz los cambios siguientes:

      • CONNECTOR_NAME: un nombre para el conector que cumpla las convenciones de nomenclatura de Compute Engine y 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 tu conector que coincida con la región de tu servicio o trabajo sin servidor. Si tu servicio o trabajo es en us-central o europe-west, usa us-central1 o europe-west1.
      • VPC_NETWORK: el nombre de la red VPC a la que quieres adjuntar el conector. El conector y la red VPC deben estar en el mismo proyecto.
      • IP_RANGE: proporciona un CIDR /28 que no esté en uso (por ejemplo, 10.8.0.0/28) para usarlo como intervalo de direcciones IPv4 principal de una subred que Google Cloud cree en la red de VPC del conector. Asegúrate de que el intervalo de IPs no entre en conflicto con ninguna ruta de la red de VPC del conector. El nombre de la nueva subred empieza por el prefijo "aet-".
      • MIN: número mínimo de instancias que se van a usar en el conector. Usa un número entero entre 2(el valor predeterminado) y 9.
      • MAX: número máximo de instancias que se van a usar en el conector. Usa un número entero entre 3 y 10 (el valor predeterminado). Si el conector se escala hasta el número máximo de instancias, no se vuelve a reducir.
      • MACHINE_TYPE: debe ser uno de los siguientes valores: f1-micro, e2-micro o e2-standard-4.
  5. Verifica que el conector esté en el estado READY antes de usarlo:

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

    Haz los cambios siguientes:

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

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

  6. Terraform

    Puede usar un recurso de Terraform para habilitar la API 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 VPC y una subred, y, a continuación, crear el conector.

    module "test-vpc-module" {
      source       = "terraform-google-modules/network/google"
      version      = "~> 11.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    = "~> 11.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
      ]
    }

Configurar un entorno sin servidores para usar un conector

Después de crear un conector de Acceso a VPC sin servidor, configura tu entorno sin servidor para que lo use siguiendo las instrucciones correspondientes:

Configurar Cloud Run para usar un conector

Cuando creas un servicio o despliegas una revisión, puedes configurar el servicio para que use un conector mediante la consola de Google Cloud , la CLI de Google Cloud, un archivo YAML o un recurso de Terraform.

Consola

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

    Ir a Cloud Run

  2. Seleccione Servicios en el menú y haga clic en Implementar contenedor para configurar un nuevo servicio. Si vas a configurar un servicio que ya tienes, haz clic en él y, a continuación, en Editar y desplegar nueva revisión.

  3. Si vas a configurar un servicio nuevo, rellena la página de configuración inicial del servicio y, a continuación, haz clic en Contenedores, volúmenes, redes y seguridad para desplegar la página de configuración del servicio.

  4. Haz clic en la pestaña Conexiones.

    imagen

    • En el campo Conector de VPC, selecciona un conector que quieras usar o Ninguno para desconectar tu servicio de una red de VPC.
  5. Haz clic en Crear o en Implementar.

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 especificar un conector durante la implementación, usa la marca --vpc-connector:

    gcloud run deploy SERVICE --image IMAGE_URL --vpc-connector CONNECTOR_NAME
    • Sustituye SERVICE por el nombre de tu servicio.
    • Reemplazar IMAGE_URL.
    • Sustituye CONNECTOR_NAME por el nombre de tu conector. Si tu conector está en el proyecto host de una VPC compartida, debe ser el nombre completo, por ejemplo:
      projects/HOST_PROJECT_ID/locations/CONNECTOR_REGION/connectors/CONNECTOR_NAME
      donde HOST_PROJECT_ID es el ID del proyecto host, CONNECTOR_REGION es la región de tu conector y CONNECTOR_NAME es el nombre que le has dado al conector.

    Para adjuntar, actualizar o quitar un conector de un servicio, usa el comando gcloud run services update con una 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
    • Sustituye SERVICE por el nombre de tu servicio.
    • Sustituye CONNECTOR_NAME por el nombre de tu conector.
  3. YAML

    1. Si va a crear un servicio, puede saltarse este paso. Si va a actualizar un servicio, descargue su configuración YAML:

      gcloud run services describe SERVICE --format export > service.yaml
    2. Añada o actualice el atributo run.googleapis.com/vpc-access-connector en el atributo annotations, que a su vez se encuentra en el atributo spec de nivel superior:

      apiVersion: serving.knative.dev/v1
      kind: Service
      metadata:
        name: SERVICE
      spec:
        template:
          metadata:
            annotations:
              run.googleapis.com/vpc-access-connector: CONNECTOR_NAME
      • Sustituye SERVICE por el nombre de tu servicio de Cloud Run.
      • Sustituye CONNECTOR_NAME por el nombre de tu conector. Si tu conector está en el proyecto host de una VPC compartida, debe ser el nombre completo, por ejemplo:
        projects/HOST_PROJECT_ID/locations/CONNECTOR_REGION/connectors/CONNECTOR_NAME
        donde HOST_PROJECT_ID es el ID del proyecto host, CONNECTOR_REGION es la región de tu conector y CONNECTOR_NAME es el nombre que le has dado al conector.
    3. Sustituye el servicio por su nueva configuración con el siguiente comando:

      gcloud beta run services replace service.yaml

    Terraform

    Puedes usar un recurso de Terraform para crear un servicio y configurarlo de forma 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"
        }
      }
    }

Configurar funciones de Cloud Run para usar un conector

Puedes configurar una función para que use un conector desde la Google Cloud consola o la CLI de Google Cloud:

Consola

  1. Ve a la página de descripción general de Cloud Run Functions en laGoogle Cloud consola:

    Ir a Cloud Run Functions

  2. Haz clic en Crear función. También puedes hacer clic en una función para ir a su página de detalles y, a continuación, en Editar.

  3. Despliega la configuración avanzada haciendo clic en CONFIGURACIÓN DE TIEMPO DE EJECUCIÓN, COMPILACIÓN Y CONEXIONES.

  4. En la pestaña Conexiones de la configuración de salida, introduce el nombre del conector en el campo Conector de VPC.

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 comando gcloud functions deploy para desplegar la función y especifica la marca --vpc-connector:

    gcloud functions deploy FUNCTION_NAME \
    --vpc-connector CONNECTOR_NAME \
    FLAGS...
    

    donde:

    • FUNCTION_NAME es el nombre de tu función.
    • CONNECTOR_NAME es el nombre del conector. Si tu conector está en el proyecto host de una VPC compartida, debe ser el nombre completo, por ejemplo:
      projects/HOST_PROJECT_ID/locations/CONNECTOR_REGION/connectors/CONNECTOR_NAME
      donde HOST_PROJECT_ID es el ID del proyecto host, CONNECTOR_REGION es la región de tu conector y CONNECTOR_NAME es el nombre que le has dado al conector.
    • FLAGS... hace referencia a otras marcas que se transfieren durante la implementación de funciones.

Para tener más control sobre las solicitudes que se enrutan a través del conector, consulta Ajustes de salida.

.

Configurar App Engine para usar un conector

Python 2

  1. Dejar de usar el servicio de obtención de URLs de App Engine.

    De forma predeterminada, todas las solicitudes se enrutan a través del servicio de obtención de URLs. Esto provoca que las solicitudes a tu red de VPC fallen. Para inhabilitar este valor predeterminado, consulta Inhabilitar la obtención de URLs para que gestione todas las solicitudes salientes.

    Si es necesario, puedes seguir usando la biblioteca urlfetch directamente para solicitudes concretas, pero no es recomendable.

  2. Añade el campo Acceso a VPC sin servidor al archivo app.yaml:

    vpc_access_connector:
     name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
    

    Haz los cambios siguientes:

    • PROJECT_ID por el ID de tu proyecto. Google Cloud Si tu conector está en el proyecto host de una VPC compartida, debe ser el ID del proyecto host.
    • REGION con la región en la que se encuentra tu conector.
    • CONNECTOR_NAME con el nombre del conector.
  3. Despliega el servicio:

    gcloud app deploy

    Una vez que hayas desplegado el servicio, podrá enviar solicitudes a direcciones IP internas para acceder a los recursos de tu red de VPC.

Java 8

  1. Dejar de usar el servicio de obtención de URLs de App Engine. URLFetchService

  2. Añade el elemento de acceso a VPC sin servidor al archivo appengine-web.xml de tu servicio:

    <vpc-access-connector>
    <name>projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME</name>
    </vpc-access-connector>
    

    Haz los cambios siguientes:

    • PROJECT_ID por el ID de tu proyecto. Google Cloud Si tu conector está en el proyecto host de una VPC compartida, debe ser el ID del proyecto host.
    • REGION con la región en la que se encuentra tu conector.
    • CONNECTOR_NAME con el nombre del conector.
  3. Despliega el servicio:

    gcloud app deploy WEB-INF/appengine-web.xml

    Una vez que hayas desplegado el servicio, podrá enviar solicitudes a direcciones IP internas para acceder a los recursos de tu red de VPC.

Go 1.11

  1. Dejar de usar el servicio de obtención de URLs de App Engine.

    Acceso a VPC sin servidor no admite la obtención de URLs y las solicitudes realizadas mediante la obtención de URLs ignorarán la configuración de Acceso a VPC sin servidor. Establece conexiones salientes con sockets.

  2. Añade el campo Acceso a VPC sin servidor al archivo app.yaml:

    vpc_access_connector:
     name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
    

    Haz los cambios siguientes:

    • PROJECT_ID con el ID de tu proyecto Google Cloud
    • REGION con la región en la que se encuentra tu conector
    • CONNECTOR_NAME con el nombre del conector
  3. Despliega el servicio:

    gcloud app deploy

    Una vez que hayas desplegado el servicio, podrá enviar solicitudes a direcciones IP internas para acceder a los recursos de tu red de VPC.

Todos los demás tiempos de ejecución

  1. Añade el campo Acceso a VPC sin servidor al archivo app.yaml:

    vpc_access_connector:
     name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
    

    Haz los cambios siguientes:

    • PROJECT_ID por el ID de tu proyecto. Google Cloud Si tu conector está en el proyecto host de una VPC compartida, debe ser el ID del proyecto host.
    • REGION con la región en la que se encuentra tu conector.
    • CONNECTOR_NAME con el nombre del conector.
  2. Despliega el servicio:

    gcloud app deploy

    Una vez que hayas desplegado el servicio, podrá enviar solicitudes a direcciones IP internas para acceder a los recursos de tu red de VPC.

Configurar reglas de cortafuegos para conectores

Reglas de cortafuegos necesarias para los conectores de proyectos de servicio

Si creas un conector en una red VPC independiente o en el proyecto host de una red VPC compartida, Google Cloud crea todas las reglas de cortafuegos necesarias para que el conector funcione. Para obtener más información, consulta Reglas de cortafuegos 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 tiene como destino una red de VPC compartida en el proyecto del host, debes añadir reglas de cortafuegos para permitir el tráfico necesario para el funcionamiento del conector desde los siguientes intervalos:

La infraestructura de Google subyacente a Cloud Run, las funciones de Cloud Run y el entorno estándar de App Engine usa estos intervalos. Todas las solicitudes de estas direcciones IP proceden de la infraestructura de Google para asegurarse de que cada recurso sin servidor solo se comunica 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 llevar a cabo estos pasos, debes tener uno de los siguientes roles en el proyecto host:

Para una configuración básica, aplica las reglas para permitir que los recursos sin servidor de cualquier proyecto de servicio conectado a la red de VPC compartida envíen solicitudes a cualquier recurso de la red.

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

  1. Crea reglas de cortafuegos que permitan que las solicitudes de la infraestructura sin servidor de Google y las comprobaciones del estado lleguen a todos los conectores de la red. En estos comandos, los puertos UDP y TCP se usan como proxies y para las comprobaciones 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

    Sustituye VPC_NETWORK por el nombre de la red VPC a la que quieras conectar tu conector.

  2. Crea una regla de cortafuegos de entrada en tu red de VPC para permitir las solicitudes de los conectores que tengan como destino 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 da al conector acceso a todos los recursos de la red. Para limitar los recursos a los que puede acceder tu entorno sin servidor mediante el acceso a VPC sin servidor, consulta Restringir el acceso de la VM del conector a los recursos de la red de VPC.

Crear reglas de cortafuegos para conectores específicos

Si sigues el procedimiento que se describe en Reglas de cortafuegos obligatorias para los conectores de proyectos de servicio, se crearán reglas de cortafuegos que se aplicarán a todos los conectores, tanto a los actuales como a los que se creen en el futuro. Si no quieres que esto ocurra y, en su lugar, quieres crear reglas solo para conectores específicos, puedes acotar las reglas para que se apliquen únicamente a esos conectores.

Para limitar el ámbito 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 el segundo formato para limitar el ámbito de tus reglas de cortafuegos a un conector específico.
  • Intervalos de IP: úsalo solo para las reglas de salida, ya que no funciona con las reglas de entrada. Puedes usar el intervalo de IPs de la subred del conector para limitar el ámbito de tus reglas de cortafuegos a un solo conector de VPC.

Restringir 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 de su red de VPC de destino mediante reglas de cortafuegos de VPC o reglas de políticas de cortafuegos. Puedes aplicar estas restricciones mediante una de las siguientes estrategias:

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

En los siguientes ejemplos se ilustra cada estrategia.

Restringir el acceso mediante reglas de entrada

Elige etiquetas de red o intervalos CIDR para controlar el tráfico entrante a tu red de VPC.

Etiquetas de red

En los pasos siguientes 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 que tienes los permisos necesarios para insertar reglas de cortafuegos. Debes tener uno de los siguientes roles de Gestión de Identidades y Accesos (IAM):

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

    Crea una regla de cortafuegos de entrada con una prioridad inferior a 1000 en tu red de VPC para denegar la entrada desde la etiqueta de red del conector. De esta forma, se anula la regla de cortafuegos implícita que Acceso a VPC sin servidor crea en tu 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

    Haz los cambios siguientes:

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

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

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

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

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

        Sustituye:

        • REGION: la región del conector que quieras restringir
        • CONNECTOR_NAME: el nombre del conector que quieras restringir

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

    • VPC_NETWORK: 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 debería recibirlo.

    Usa las marcas allow y target-tags para crear una regla de cortafuegos de entrada dirigida al recurso de tu red de VPC al que quieres que acceda el conector de VPC. Asigne a esta regla una prioridad inferior a la de la regla que ha creado 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

    Haz los cambios siguientes:

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

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

    • VPC_CONNECTOR_NETWORK_TAG: la etiqueta de red del conector universal si quiere restringir el acceso a todos los conectores (incluidos los que cree en el futuro) o la etiqueta de red única si quiere restringir el acceso a un conector específico. Debe coincidir con la etiqueta de red que ha especificado en el paso anterior.

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

        Sustituye:

        • REGION: la región del conector que quieras restringir
        • CONNECTOR_NAME: el nombre del conector que quieras restringir

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

    • VPC_NETWORK: el nombre de tu red de VPC

    • RESOURCE_TAG: la etiqueta de red del recurso de VPC al que quieres que acceda tu conector de VPC

    • PRIORITY: un número entero inferior a la prioridad que hayas definido en el paso anterior. Por ejemplo, si has asignado la prioridad 990 a la regla que has creado en el paso anterior, prueba con 980.

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

Intervalo CIDR

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

  1. Asegúrate de que tienes los permisos necesarios para insertar reglas de cortafuegos. Debes tener uno de los siguientes roles de Gestión de Identidades y Accesos (IAM):

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

    Crea una regla de cortafuegos de entrada con una prioridad inferior a 1000 en tu red de VPC para denegar la entrada desde el intervalo CIDR del conector. De esta forma, se anula la regla de cortafuegos implícita que Acceso a VPC sin servidor crea en tu 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

    Haz los cambios siguientes:

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

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

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

    • VPC_CONNECTOR_CIDR_RANGE: el intervalo CIDR del conector cuyo acceso quieres restringir

    • VPC_NETWORK: 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 debería recibirlo.

    Usa las marcas allow y target-tags para crear una regla de cortafuegos de entrada dirigida al recurso de tu red de VPC al que quieres que acceda el conector de VPC. Asigne a esta regla una prioridad inferior a la de la regla que ha creado 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

    Haz los cambios siguientes:

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

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

    • VPC_CONNECTOR_CIDR_RANGE: el intervalo CIDR del conector cuyo acceso estás restringiendo

    • VPC_NETWORK: el nombre de tu red de VPC

    • RESOURCE_TAG: la etiqueta de red del recurso de VPC al que quieres que acceda tu conector de VPC

    • PRIORITY: un número entero inferior a la prioridad que hayas definido en el paso anterior. Por ejemplo, si has asignado la prioridad 990 a la regla que has creado en el paso anterior, prueba con 980.

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

Restringir el acceso mediante reglas de salida

En los siguientes pasos se muestra cómo crear reglas de salida para restringir el acceso a los conectores.

  1. Asegúrate de que tienes los permisos necesarios para insertar reglas de cortafuegos. Debes tener uno de los siguientes roles de Gestión de Identidades y Accesos (IAM):

  2. Deniega el tráfico de salida de tu conector.

    Crea una regla de cortafuegos de salida en tu conector de acceso a VPC sin servidor para evitar que envíe tráfico saliente a cualquier destino, excepto las respuestas establecidas.

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

    Haz los cambios siguientes:

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

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

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

    • VPC_CONNECTOR_NETWORK_TAG: la etiqueta de red del conector de VPC universal si quieres que la regla se aplique a todos los conectores de VPC que ya tengas y a los que crees en el futuro. O bien, la etiqueta de red única del conector de VPC si quieres controlar un conector específico.

    • VPC_NETWORK: 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 esté en el intervalo CIDR al que quieras que acceda tu conector.

    Usa las marcas allow y destination-ranges para crear una regla de cortafuegos que permita el tráfico de salida de tu conector a un intervalo de destino específico. Define el intervalo de destino como el intervalo CIDR del recurso de tu red de VPC al que quieras que pueda acceder tu conector. Asigne a esta regla una prioridad inferior a la de la regla que ha creado 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

    Haz los cambios siguientes:

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

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

    • RESOURCE_CIDR_RANGE: el intervalo CIDR del conector cuyo acceso quieres restringir

    • VPC_NETWORK: el nombre de tu red de VPC

    • VPC_CONNECTOR_NETWORK_TAG: la etiqueta de red del conector de VPC universal si quieres que la regla se aplique a todos los conectores de VPC que ya tengas y a los que crees en el futuro. O bien, la etiqueta de red única del conector de VPC si quieres controlar un conector específico. Si ha usado la etiqueta de red única en el paso anterior, use la etiqueta de red única.

    • PRIORITY: un número entero inferior a la prioridad que hayas definido en el paso anterior. Por ejemplo, si has asignado la prioridad 990 a la regla que has creado en el paso anterior, prueba con 980.

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

Actualizar un conector

Puede actualizar y monitorizar los siguientes atributos de su conector mediante la Google Cloud consola, la CLI de Google Cloud o la API:

  • Tipo de máquina (instancia)
  • Número mínimo y máximo de instancias
  • Rendimiento reciente, número de instancias y uso de CPU

Actualizar el tipo de máquina

Consola

  1. Ve a la página de resumen de Acceso a VPC sin servidor.

    Ir a Acceso a VPC sin servidor

  2. Selecciona el conector que quieras 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 rendimiento y escalado.

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 el terminal:

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

    • CONNECTOR_NAME: el nombre de tu conector
    • REGION: el nombre de la región de tu 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 rendimiento y escalado.

Reducir el número mínimo y máximo de instancias

Para reducir el número mínimo y máximo de instancias, debes hacer lo siguiente:

  1. Crea un conector con los valores que prefieras.
  2. Actualiza tu servicio o función para usar el nuevo conector.
  3. Elimina el conector antiguo cuando hayas migrado su tráfico.

Aumentar el número mínimo y máximo de instancias

Consola

  1. Ve a la página de resumen de Acceso a VPC sin servidor.

    Ir a Acceso a VPC sin servidor

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

  3. En el campo Instancias mínimas, selecciona el número mínimo de instancias que prefieras.

    El valor más pequeño posible de este campo es el valor actual. El valor más alto posible de este campo es el valor actual del campo Número máximo de instancias menos 1. Por ejemplo, si el valor del campo Máximo de instancias es 8, el valor más alto posible del campo Mínimo de instancias es 7.

  4. En el campo Número máximo de instancias, selecciona el número máximo de instancias que prefieras.

    El valor más pequeño posible de este campo es el valor actual. El valor máximo posible de 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 el número mínimo o máximo de instancias del 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
    Sustituye lo siguiente:

    • CONNECTOR_NAME: el nombre de tu conector
    • REGION: el nombre de la región de tu conector
    • MIN_INSTANCES: el número mínimo de instancias que prefieras.
      • El valor más pequeño posible de este campo es el valor actual de min_instances. Para ver el valor actual, consulte Buscar los valores de atributo actuales.
      • El valor más alto posible para este campo es el valor actual de max_instances menos 1, ya que min_instances debe ser inferior a max_instances. Por ejemplo, si max_instances es 8, el valor más alto posible de este campo es 7. Si tu conector usa el valor predeterminado max-instances de 10, el valor máximo posible de este campo es 9. Para encontrar el valor de max-instances, consulte Buscar los valores de atributo actuales.
    • MAX_INSTANCES:

      • El valor más pequeño posible de este campo es el valor actual de max_instances. Para ver el valor actual, consulte Buscar los valores de atributo actuales.
      • El valor máximo posible de este campo es 10.

      Si solo quiere aumentar el número mínimo de instancias, pero no el máximo, debe especificar el número máximo de instancias. Por el contrario, si solo quiere actualizar el número máximo de instancias, pero no el mínimo, debe especificar el número mínimo de instancias. Para mantener el número mínimo o máximo de instancias en su valor actual, especifica dicho valor. Para consultar su valor actual, consulte Buscar los valores de atributo actuales.

Buscar los valores de atributo actuales

Para encontrar los valores de atributo actuales de tu conector, ejecuta lo siguiente en tu terminal:

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

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

Monitorizar el uso de conectores

Monitorizar el uso a lo largo del tiempo puede ayudarte a determinar cuándo ajustar la configuración de un conector. Por ejemplo, si la utilización de la CPU aumenta de forma repentina, puede probar a aumentar el número máximo de instancias para obtener mejores resultados. O bien, si estás alcanzando el límite de rendimiento, puedes cambiar a un tipo de máquina más grande.

Para ver gráficos del rendimiento, el número de instancias y las métricas de utilización de CPU del conector a lo largo del tiempo mediante la consola, sigue estos pasos: Google Cloud

  1. Ve a la página de resumen de Acceso a VPC sin servidor.

    Ir a Acceso a VPC sin servidor

  2. Haz clic en el nombre del conector que quieras monitorizar.

  3. Seleccione el número de días que quiere mostrar (entre 1 y 90).

  4. En el gráfico Rendimiento, mantén el puntero sobre el gráfico para ver el rendimiento reciente del conector.

  5. En el gráfico Número de instancias, coloque el puntero sobre el gráfico para ver el número de instancias que ha usado recientemente el conector.

  6. En el gráfico Uso de la CPU, mantén el puntero sobre el gráfico para ver el uso reciente de la CPU del conector. El gráfico muestra el uso de la CPU distribuido entre las instancias de los percentiles 50, 95 y 99.

Eliminar un conector

Antes de eliminar un conector, debes quitarlo de los recursos sin servidor que aún lo utilicen. Si eliminas un conector antes de quitarlo de tus recursos sin servidor, no podrás eliminar la red de VPC más adelante.

Los usuarios de la VPC compartida que configuren conectores en el proyecto host de la VPC compartida pueden usar el comando gcloud compute networks vpc-access connectors describe para enumerar los proyectos en los que haya recursos sin servidor que usen un conector determinado.

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

Consola

  1. Ve a la página de resumen de Acceso a VPC sin servidor en laGoogle Cloud consola:

    Ir a Acceso a VPC sin servidor

  2. Selecciona el conector que quieras eliminar.

  3. Haz clic en Eliminar.

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 gcloud para eliminar un conector:

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

    Haz los cambios siguientes:

    • CONNECTOR_NAME con el nombre del conector que quieras eliminar
    • REGION por la región en la que se encuentra el conector

Gestionar restricciones personalizadas de proyectos

En esta sección se describe cómo crear restricciones personalizadas para los conectores de acceso a VPC sin servidor y cómo aplicarlas a nivel de proyecto. Para obtener información sobre las políticas de organización personalizadas, consulta el artículo Crear y gestionar políticas de organización personalizadas.

Google Cloud La política de organización te ofrece un control centralizado y programático sobre los recursos de tu organización. Como administrador de políticas de la organización, puedes definir una política de la organización, que es un conjunto de restricciones llamadas restricciones que se aplican a losGoogle Cloud recursos y a los elementos descendientes de esos recursos en la Google Cloud jerarquía de recursos. Puedes aplicar políticas de organización a nivel de organización, carpeta o proyecto.

La política de organización proporciona restricciones predefinidas para varios servicios deGoogle Cloud . Sin embargo, si quieres tener un control más granular y personalizable sobre los campos específicos que están restringidos en las políticas de tu organización, también puedes crear políticas de organización personalizadas.

Ventajas

Acceso a VPC sin servidor te permite escribir cualquier número de restricciones personalizadas usando la mayoría de los campos configurados por el usuario en la API Acceso a VPC sin servidor. Por ejemplo, puedes crear una restricción personalizada que especifique qué subredes puede usar un conector de acceso a VPC sin servidor.

Una vez aplicada, las solicitudes que infrinjan una política que aplique una restricción personalizada mostrarán un mensaje de error en la CLI de gcloud y en los registros de acceso a VPC sin servidor. El mensaje de error contiene el ID de la restricción y la descripción de la restricción personalizada infringida.

Herencia de políticas

De forma predeterminada, las políticas de organización se heredan de los descendientes de los recursos en los que apliques la política. Por ejemplo, si aplicas una política a una carpeta, Google Cloud se aplicará a todos los proyectos de la carpeta. Para obtener más información sobre este comportamiento y cómo cambiarlo, consulta las reglas de evaluación de la jerarquía.

Limitaciones

No se admite la especificación del tipo de máquina, el número mínimo de instancias ni el número máximo de instancias.

Antes de empezar

Asegúrate de que conoces el ID de tu organización.

Roles obligatorios

Para obtener los permisos que necesitas para gestionar las políticas de la organización, pide a tu administrador que te conceda el rol de gestión de identidades y accesos administrador de políticas de la organización (roles/orgpolicy.policyAdmin) en el recurso de la organización. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Crear una restricción personalizada

Una restricción personalizada se define en un archivo YAML mediante los recursos, los métodos, las condiciones y las acciones que admite el servicio en el que se aplica la política de la organización. Las condiciones de tus restricciones personalizadas se definen mediante el lenguaje de expresión común (CEL). Para obtener más información sobre cómo crear condiciones en restricciones personalizadas con CEL, consulta la sección sobre CEL del artículo Crear y gestionar restricciones personalizadas.

Para crear un archivo YAML para una restricción personalizada de Acceso a VPC sin servidor, consulta el siguiente ejemplo:

name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- vpcaccess.googleapis.com/Connector
methodTypes:
- CREATE
condition: "CONDITION"
actionType: ACTION
displayName: DISPLAY_NAME
description: DESCRIPTION

Haz los cambios siguientes:

  • ORGANIZATION_ID: el ID de tu organización, como 123456789.

  • CONSTRAINT_NAME: el nombre que quieras asignar a la nueva restricción personalizada. Una restricción personalizada debe empezar por custom. y solo puede incluir letras mayúsculas, letras minúsculas o números. Por ejemplo, custom.defaultNetworkConstraint. La longitud máxima de este campo es de 70 caracteres, sin contar el prefijo.

  • CONDITION: una condición CEL que se escribe en una representación de un recurso de servicio compatible. Este campo tiene una longitud máxima de 1000 caracteres. Por ejemplo, "resource.network == default".

  • ACTION: la acción que se debe llevar a cabo si se cumple la condición condition. Puede ser ALLOW o DENY.

  • DISPLAY_NAME: nombre descriptivo de la restricción. Este campo tiene una longitud máxima de 200 caracteres.

  • DESCRIPTION: descripción de la restricción que se muestra como mensaje de error cuando se infringe la política. Por ejemplo, "Require network to not be set to default." Este campo tiene una longitud máxima de 2000 caracteres.

Para obtener más información sobre cómo crear una restricción personalizada, consulta Definir restricciones personalizadas.

Configurar una restricción personalizada

Una vez que hayas creado el archivo YAML de una nueva restricción personalizada, debes configurarla para que esté disponible en las políticas de organización de tu organización. Para configurar una restricción personalizada, usa el comando gcloud org-policies set-custom-constraint:
gcloud org-policies set-custom-constraint CONSTRAINT_PATH
Sustituye CONSTRAINT_PATH por la ruta completa a tu archivo de restricciones personalizadas. Por ejemplo, /home/user/customconstraint.yaml. Una vez completado el proceso, las restricciones personalizadas estarán disponibles como políticas de organización en la lista de Google Cloud políticas de organización. Para verificar que la restricción personalizada existe, usa el comando gcloud org-policies list-custom-constraints:
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
Sustituye ORGANIZATION_ID por el ID del recurso de tu organización. Para obtener más información, consulta Ver políticas de la organización.

Aplicar una restricción personalizada

Para aplicar una restricción, crea una política de organización que haga referencia a ella y, a continuación, aplica esa política de organización a un Google Cloud recurso.

Consola

  1. En la Google Cloud consola, ve a la página Políticas de la organización.

    Ir a Políticas de organización

  2. En el selector de proyectos, elige el proyecto para el que quieras definir la política de organización.
  3. En la lista de la página Políticas de organización, selecciona la restricción para ver la página Detalles de la política correspondiente.
  4. Para configurar la política de la organización de este recurso, haz clic en Gestionar política.
  5. En la página Editar política, selecciona Anular política del recurso superior.
  6. Haz clic en Añadir regla.
  7. En la sección Aplicación, selecciona si quieres activar o desactivar la aplicación de esta política de la organización.
  8. Opcional: Para que la política de la organización dependa de una etiqueta, haz clic en Añadir condición. Ten en cuenta que, si añades una regla condicional a una política de organización, debes añadir al menos una regla incondicional o la política no se podrá guardar. Para obtener más información, consulta Configurar una política de organización con etiquetas.
  9. Haz clic en Probar cambios para simular el efecto de la política de la organización. La simulación de políticas no está disponible para las restricciones gestionadas antiguas. Para obtener más información, consulta el artículo Probar los cambios en las políticas de la organización con el simulador de políticas.
  10. Para finalizar y aplicar la política de organización, haz clic en Definir política. La política tarda hasta 15 minutos en aplicarse.

gcloud

Para crear una política de organización con reglas booleanas, crea un archivo YAML de política que haga referencia a la restricción:

      name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
      spec:
        rules:
        - enforce: true
    

Haz los cambios siguientes:

  • PROJECT_ID: el proyecto en el que quieras aplicar la restricción.
  • CONSTRAINT_NAME: el nombre que has definido para tu restricción personalizada. Por ejemplo, custom.defaultNetworkConstraint.

Para aplicar la política de la organización que contiene la restricción, ejecuta el siguiente comando:

    gcloud org-policies set-policy POLICY_PATH
    

Sustituye POLICY_PATH por la ruta completa al archivo YAML de la política de tu organización. La política tarda hasta 15 minutos en aplicarse.

Probar la restricción personalizada

Para probar el ejemplo que restringe la configuración de entrada, implementa un conector en el proyecto con la red configurada como default:

gcloud compute networks vpc-access connectors create org-policy-test \
    --project=PROJECT_ID \
    --region=REGION_ID \
    --network=default

El resultado es el siguiente:

Operation denied by custom org policies: ["customConstraints/custom.defaultNetworkConstraint": "Require network to not be set to default."]

Ejemplos de políticas de organización personalizadas para casos prácticos habituales

En la siguiente tabla se muestran ejemplos de restricciones personalizadas que pueden ser útiles con los conectores de Acceso a VPC sin servidor:

Descripción Sintaxis de las restricciones
Requerir que los conectores de acceso a VPC sin servidor solo puedan usar una red específica.
    name: organizations/ORGANIZATION_ID/customConstraints/custom.allowlistNetworks
    resourceTypes:
    - vpcaccess.googleapis.com/Connector
    methodTypes:
    - CREATE
    condition: "resource.network == 'allowlisted-network'"
    actionType: ALLOW
    displayName: allowlistNetworks
    description: Require connectors to use a specific network.
Descripción Sintaxis de las restricciones
Requerir que los conectores de acceso a VPC sin servidor solo tengan acceso a una subred específica.
    name: organizations/ORGANIZATION_ID/customConstraints/custom.restrictSubnetForProject
    resourceTypes:
    - vpcaccess.googleapis.com/Connector
    methodTypes:
    - CREATE
    condition: "resource.subnet.name == 'allocated-subnet'"
    actionType: ALLOW
    displayName: restrictSubnetForProject
    description: This project is only allowed to use the subnet "allocated-subnet".

Configurar el entorno de Cloud Run para que use Direct VPC en lugar de un conector

Puedes habilitar tu servicio de Cloud Run para que envíe tráfico de salida directamente a una red de VPC, lo que permite acceder a instancias de VM de Compute Engine, instancias de Memorystore y cualquier otro recurso con una dirección IP interna.

Configurar el servicio para usar la VPC directa

La salida directa de VPC permite que tu servicio de Cloud Run envíe tráfico a una red de VPC sin un conector de acceso a VPC sin servidor. Los costes de red se reducen a cero al igual que el propio servicio. También puedes añadir etiquetas de red directamente en las revisiones de servicios de Cloud Run para disfrutar de una seguridad de red más granular, como aplicar reglas de cortafuegos de VPC.

Puedes configurar la salida de VPC directa con un servicio mediante laGoogle Cloud consola, la CLI de Google Cloud, YAML o Terraform.

Consola

  1. Ir a Cloud Run

  2. Haga clic en Crear servicio si va a configurar un servicio nuevo que va a implementar. Si va a configurar y desplegar un servicio que ya tiene, haga clic en el servicio y, a continuación, en Editar y desplegar nueva revisión.

  3. Si vas a configurar un servicio nuevo, rellena la página de configuración inicial del servicio según sea necesario y, a continuación, haz clic en Contenedores, volúmenes, redes y seguridad para desplegar la página de configuración del servicio.

  4. Haz clic en la pestaña Redes.

  5. Haz clic en Conectarse a una VPC para el tráfico saliente.

  6. Haz clic en Enviar tráfico directamente a una VPC.

  7. En el campo Red, selecciona la red de VPC a la que quieras enviar tráfico.

  8. En el campo Subred, selecciona la subred de la que tu servicio recibe direcciones IP. Puedes desplegar varios servicios en la misma subred.

  9. Opcional: Introduce los nombres de las etiquetas de red que quieras asociar a tu servicio o servicios. Las etiquetas de red se especifican a nivel de revisión. Cada revisión de servicio puede tener etiquetas de red diferentes, como network-tag-2.

  10. En Enrutamiento del tráfico, seleccione una de las siguientes opciones:

    • Dirige solo las solicitudes a IP privadas a la VPC para enviar solo tráfico a direcciones internas a través de la red VPC.
    • Dirige todo el tráfico a la VPC para enviar todo el tráfico de salida a través de la red de VPC.
  11. Haz clic en Crear o en Implementar.

  12. Para verificar que tu servicio está en tu red VPC, haz clic en el servicio y, a continuación, en la pestaña Redes. La red y la subred se muestran en la tarjeta VPC.

    Ahora puedes enviar solicitudes desde tu servicio de Cloud Run a cualquier recurso de la red de VPC, tal como lo permitan tus reglas de firewall.

gcloud

Para desplegar un servicio de Cloud Run sin un conector desde la CLI de Google Cloud, sigue estos pasos:

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

    gcloud components update
  2. Asegúrate de que la API de Compute Engine esté habilitada en tu proyecto:

    gcloud services enable compute.googleapis.com
    
  3. Despliega tu servicio de Cloud Run con el siguiente comando:

    gcloud run deploy SERVICE_NAME \
    --image=IMAGE_URL \
    --network=NETWORK \
    --subnet=SUBNET \
    --network-tags=NETWORK_TAG_NAMES \
    --vpc-egress=EGRESS_SETTING \
    --region=REGION

    Sustituye:

    • SERVICE_NAME con el nombre de tu servicio de Cloud Run.
    • IMAGE_URL: una referencia a la imagen del contenedor, por ejemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Si usas Artifact Registry, el repositorio REPO_NAME ya debe estar creado. La URL sigue el formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • Opcional: NETWORK con el nombre de tu red de VPC. Especifica una red VPC o una subred, o ambas. Si solo especificas una red, la subred usará el mismo nombre que la red.
    • Opcional: SUBNET con el nombre de tu subred. La subred debe ser /26 o mayor. La salida de VPC directa admite los intervalos IPv4 RFC 1918, RFC 6598 y de clase E. Puedes desplegar o ejecutar varios servicios o trabajos en la misma subred, pero esta no se puede compartir con ningún conector.
    • Opcional: NETWORK_TAG_NAMES con los nombres separados por comas de las etiquetas de red que quieras asociar a un servicio. En el caso de los servicios, las etiquetas de red se especifican a nivel de revisión. Cada revisión de servicio puede tener etiquetas de red diferentes, como network-tag-2.
    • EGRESS_SETTING con un valor de ajuste de salida:
      • all-traffic: envía todo el tráfico saliente a través de la red VPC.
      • private-ranges-only: solo envía tráfico a direcciones internas a través de la red de VPC.
    • REGION con una región para tu servicio.
  4. Para verificar que tu servicio está en tu red de VPC, ejecuta el siguiente comando:

    gcloud run services describe SERVICE_NAME \
    --region=REGION

    Sustituye:

    • SERVICE_NAME con el nombre de tu servicio.
    • REGION con la región de tu servicio que has especificado en el paso anterior.

    La salida debe contener el nombre de tu red, subred y ajuste de salida. Por ejemplo:

    VPC access:
      Network:       default
      Subnet:        subnet
      Egress:        private-ranges-only
    

Ahora puedes enviar solicitudes desde tu servicio de Cloud Run a cualquier recurso de la red de VPC, tal como lo permitan tus reglas de firewall.

YAML

  1. Si va a crear un servicio, puede saltarse este paso. Si va a actualizar un servicio, descargue su configuración YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Actualice los siguientes atributos:

    apiVersion: serving.knative.dev/v1
      kind: Service
      metadata:
        name: SERVICE_NAME
        labels:
          cloud.googleapis.com/location: REGION
      spec:
        template:
          metadata:
            annotations:
              run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
              run.googleapis.com/vpc-access-egress: EGRESS_SETTING
          spec:
            containers:
            - image: IMAGE

    Sustituye:

    • SERVICE_NAME con el nombre de tu servicio de Cloud Run. Los nombres de los servicios deben tener 49 caracteres como máximo y ser únicos por región y proyecto.
    • REGION por la región de tu servicio de Cloud Run, que debe coincidir con la región de tu subred.
    • Opcional: NETWORK con el nombre de tu red de VPC. Especifica una red VPC o una subred, o ambas. Si solo especificas una red, la subred usará el mismo nombre que la red.
    • Opcional: SUBNET con el nombre de tu subred. La subred debe ser /26 o mayor. La salida de VPC directa admite los intervalos IPv4 RFC 1918, RFC 6598 y de clase E. Puedes desplegar o ejecutar varios servicios o trabajos en la misma subred, pero esta no se puede compartir con ningún conector.
    • Opcional: NETWORK_TAG_NAMES con los nombres de las etiquetas de red que quieras asociar a un servicio. En el caso de los servicios, las etiquetas de red se especifican a nivel de revisión. Cada revisión de servicio puede tener etiquetas de red diferentes, como network-tag-2.
    • EGRESS_SETTING con un valor de ajuste de salida:
      • all-traffic: envía todo el tráfico saliente a través de la red VPC.
      • private-ranges-only: solo envía tráfico a direcciones internas a través de la red de VPC.
    • IMAGE por la URL de la imagen de tu contenedor de servicio.

    También puedes especificar más configuración, como variables de entorno o límites de memoria.

  3. Crea o actualiza el servicio con el siguiente comando:

    gcloud run services replace service.yaml

Terraform

Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.

  1. Añade lo siguiente a tu archivo main.tf:

    /**
     * Copyright 2024 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *      http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    
    # Example configuration of a Cloud Run service with direct VPC
    
    resource "google_cloud_run_v2_service" "default" {
      name     = "cloudrun-service"
      location = "us-central1"
    
      deletion_protection = false # set to "true" in production
    
      template {
        containers {
          image = "us-docker.pkg.dev/cloudrun/container/hello"
        }
        vpc_access {
          network_interfaces {
            network    = "default"
            subnetwork = "default"
            tags       = ["tag1", "tag2", "tag3"]
          }
        }
      }
    }
    
.

Si quieres permitir el acceso al servicio sin autenticación, puedes hacerlo público.

Configurar un trabajo para usar una VPC directa

La salida directa de VPC permite que tu trabajo de Cloud Run envíe tráfico a una red de VPC sin un conector de acceso a VPC sin servidor. También puedes añadir etiquetas de red directamente a los trabajos de Cloud Run para disfrutar de una seguridad de red más granular, como aplicar reglas de cortafuegos de VPC.

Puedes configurar la salida de VPC directa con un trabajo mediante laGoogle Cloud consola, la CLI de Google Cloud o YAML.

Consola

  1. Ir a Cloud Run

  2. Si vas a configurar un nuevo trabajo, haz clic en la pestaña Trabajos y rellena la página de configuración inicial del trabajo según sea necesario. Si vas a configurar un trabajo que ya existe, haz clic en él y, a continuación, en Editar.

  3. Haz clic en Contenedor, Variables y secretos, Conexiones y Seguridad para desplegar la página de propiedades del trabajo.

  4. Haz clic en la pestaña Conexiones.

  5. Haz clic en Conectarse a una VPC para el tráfico saliente.

  6. Haz clic en Enviar tráfico directamente a una VPC.

  7. En el campo Red, selecciona la red de VPC a la que quieras enviar el tráfico.

  8. En el campo Subred, selecciona la subred de la que tu trabajo recibe direcciones IP. Puedes ejecutar varios trabajos en la misma subred.

  9. En Enrutamiento del tráfico, seleccione una de las siguientes opciones:

    • Dirige solo las solicitudes a IP privadas a la VPC para enviar solo tráfico a direcciones internas a través de la red VPC.
    • Dirige todo el tráfico a la VPC para enviar todo el tráfico de salida a través de la red de VPC.
  10. Opcional: Introduce los nombres de las etiquetas de red que quieras asociar a tu servicio o servicios. Las etiquetas de red se especifican a nivel de revisión. Cada revisión de servicio puede tener etiquetas de red diferentes, como network-tag-2.

  11. Opcional: Introduce los nombres de las etiquetas de red que quieras asociar a tu trabajo o trabajos. En el caso de las tareas, las etiquetas de red se especifican a nivel de ejecución. Cada ejecución de un trabajo puede tener etiquetas de red diferentes, como network-tag-2.

  12. Haz clic en Crear o en Actualizar.

  13. Para verificar que tu trabajo está en tu red de VPC, haz clic en el trabajo y, a continuación, en la pestaña Configuración. La red y la subred se muestran en la tarjeta VPC.

    Ahora puedes ejecutar tu trabajo de Cloud Run y enviar solicitudes desde el trabajo a cualquier recurso de la red de VPC, según lo permitan tus reglas de cortafuegos.

gcloud

Para crear un trabajo de Cloud Run sin un conector desde Google Cloud CLI, sigue estos pasos:

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

    gcloud components update
  2. Asegúrate de que la API de Compute Engine esté habilitada en tu proyecto:

    gcloud services enable compute.googleapis.com
    
  3. Crea un trabajo de Cloud Run con el siguiente comando:

    gcloud run jobs create JOB_NAME \
    --image=IMAGE_URL \
    --network=NETWORK \
    --subnet=SUBNET \
    --network-tags=NETWORK_TAG_NAMES \
    --vpc-egress=EGRESS_SETTING \
    --region=REGION

    Sustituye:

    • JOB_NAME con el nombre de tu trabajo de Cloud Run.
    • IMAGE_URL: una referencia a la imagen del contenedor, por ejemplo, us-docker.pkg.dev/cloudrun/container/job:latest
    • Opcional: NETWORK con el nombre de tu red de VPC. Especifica una red de VPC, una subred o ambas. Si solo especifica una red, la subred usará el mismo nombre que la red.
    • Opcional: SUBNET con el nombre de tu subred. La subred debe ser /26 o mayor. La salida de VPC directa admite los intervalos IPv4 RFC 1918, RFC 6598 y de clase E. Puedes desplegar o ejecutar varios servicios o trabajos en la misma subred, pero esta no se puede compartir con ningún conector.
    • Opcional: NETWORK_TAG_NAMES con los nombres de las etiquetas de red que quieras asociar a un trabajo. En el caso de los trabajos, las etiquetas de red se especifican a nivel de ejecución. Cada ejecución de un trabajo puede tener etiquetas de red diferentes, como network-tag-2.
    • EGRESS_SETTING con un valor de ajuste de salida:
      • all-traffic: envía todo el tráfico saliente a través de la red VPC.
      • private-ranges-only: solo envía tráfico a direcciones internas a través de la red de VPC.
    • REGION con una región para tu trabajo.
  4. Para verificar que el trabajo está en tu red de VPC, ejecuta el siguiente comando:

    gcloud run jobs describe JOB_NAME \
      --region=REGION
      

    Sustituye:

    • JOB_NAME con el nombre del trabajo.
    • REGION con la región de la tarea que has especificado en el paso anterior.

    El resultado debe contener el nombre de tu red y subred. Por ejemplo:

    VPC network:
      Network:       default
      Subnet:        default
    

Ahora puedes ejecutar tu trabajo de Cloud Run y enviar solicitudes desde el trabajo a cualquier recurso de la red de VPC, según lo permitan tus reglas de cortafuegos.

YAML

  1. Si vas a crear un trabajo, sáltate este paso. Si vas a actualizar una tarea, descarga su configuración YAML:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Actualice los siguientes atributos:

    apiVersion: run.googleapis.com/v1
      kind: Job
      metadata:
        name: JOB_NAME
        labels:
          cloud.googleapis.com/location: REGION
      spec:
        template:
          metadata:
            annotations:
              run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
              run.googleapis.com/vpc-access-egress: EGRESS_SETTING
          spec:
            containers:
            - image: IMAGE

    Sustituye:

    • JOB_NAME con el nombre de tu trabajo de Cloud Run. Los nombres de los trabajos deben tener 49 caracteres como máximo y ser únicos por región y proyecto.
    • REGION con la región de tu trabajo de Cloud Run, que debe coincidir con la región de tu subred.
    • Opcional: NETWORK con el nombre de tu red de VPC. Especifica una red VPC o una subred, o ambas. Si solo especificas una red, la subred usará el mismo nombre que la red.
    • Opcional: SUBNET con el nombre de tu subred. La subred debe ser /26 o mayor. La salida de VPC directa admite los intervalos IPv4 RFC 1918, RFC 6598 y de clase E. Puedes desplegar o ejecutar varios servicios o trabajos en la misma subred, pero esta no se puede compartir con ningún conector.
    • Opcional: NETWORK_TAG_NAMES con los nombres de las etiquetas de red que quieras asociar a un trabajo. En el caso de los trabajos, las etiquetas de red se especifican a nivel de ejecución. Cada ejecución de un trabajo puede tener etiquetas de red diferentes, como network-tag-2.
    • EGRESS_SETTING con un valor de ajuste de salida:
      • all-traffic: envía todo el tráfico saliente a través de la red VPC.
      • private-ranges-only: solo envía tráfico a direcciones internas a través de la red de VPC.
    • IMAGE con la URL de la imagen del contenedor de tu trabajo.
  3. Crea o actualiza el trabajo con el siguiente comando:

    gcloud run jobs replace job.yaml
.

Solución de problemas

Permisos de cuenta de servicio

Para realizar operaciones en tu proyecto de Google Cloud , Acceso a VPC sin servidor usa la cuenta de servicio Agente de servicios de Acceso a VPC sin servidor. La dirección de correo 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 el rol Agente de servicio de acceso a VPC sin servidor (roles/vpcaccess.serviceAgent). Las operaciones de acceso a VPC sin servidor pueden fallar si cambias los permisos de esta cuenta.

Rendimiento de red deficiente o uso elevado de la CPU inactiva

Usar un solo conector para miles de instancias puede provocar una degradación del rendimiento y un aumento del uso de la CPU en reposo. Para solucionar este problema, fragmenta tus servicios entre varios conectores.

Problemas con la MTU personalizada

Si tienes problemas con una MTU personalizada, asegúrate de usar el ajuste de MTU predeterminado de Cloud Run.

Errores

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

Si usas la restricción de política de organización Restrict Resource Service Usage 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.

Define la política de la organización para quitar Deployment Manager de la lista de denegación o añadirlo a la lista de permitidos.

Error al crear el conector

Si se produce un error al crear un conector, prueba lo siguiente:

  • Especifica un intervalo de IP internas RFC 1918 que no se solape con ninguna reserva de direcciones IP de la red de VPC.
  • Concede a tu proyecto permiso para usar imágenes de máquinas virtuales de Compute Engine del proyecto con el ID serverless-vpc-access-images. Para obtener más información sobre cómo actualizar la política de tu organización, consulta el artículo Definir restricciones de acceso a imágenes.

No se puede acceder a los recursos

Si has especificado un conector, pero sigues sin poder acceder a los recursos de tu red de VPC, asegúrate de que no haya reglas de cortafuegos en tu red de VPC con una prioridad inferior a 1000 que denieguen el acceso desde el intervalo de direcciones IP de tu conector.

Si configuras un conector en un proyecto de servicio de VPC compartida, asegúrate de que tus reglas de cortafuegos permitan la entrada desde tu infraestructura sin servidor 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 tus conexiones crezcan sin límite en las invocaciones de tu aplicación sin servidor. Para limitar el número máximo de conexiones que se usan por instancia, usa una biblioteca de cliente que admita grupos de conexiones. Para ver ejemplos detallados de cómo usar los grupos de conexiones, consulta Gestionar conexiones de bases de datos.

Error de recurso no encontrado

Cuando eliminas una red de VPC o una regla de cortafuegos, 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 el artículo Error "Resource not found" (Recurso no encontrado) en la documentación sobre reglas de cortafuegos de VPC.

Pasos siguientes