Configura Ambient Networking

Ambient Networking brinda una experiencia de redes de recursos simplificada integrada en Cloud Run. Proporciona a tus recursos un plano de datos completamente administrado para quitar la carga operativa de compilar y mantener proxies personalizados. También abstrae los conceptos de malla de servicios, por lo que obtienes funciones de redes avanzadas sin aprender ni configurar una malla.

Cuando habilitas Ambient Networking, el tráfico pasa sin cambios de forma predeterminada para que el tráfico HTTP y TCP existente siga funcionando. Habilitar las redes de ambiente por sí solas no cambia el comportamiento de tu recurso. Como base, las redes de Ambient Networking te permiten habilitar las capacidades que se describen en la siguiente sección.

Caso de uso

Ambient Networking es la base de las funciones de redes avanzadas en Cloud Run. Después de habilitar Ambient Networking, puedes optar por usar Agent Gateway en Cloud Run. Esta función rige el tráfico de agentes con políticas de acceso y seguridad que tu organización administra de forma centralizada.

Arquitectura

Ambient Networking ejecuta un contenedor sidecar de Envoy completamente administrado dentro de cada instancia de contenedor de tu recurso de Cloud Run, junto con el contenedor de tu aplicación. El archivo adicional intercepta el tráfico de red de la instancia y aplica la política de enrutamiento y seguridad que Cloud Run le distribuye.

Un contenedor sidecar de Ambient que se ejecuta junto con un contenedor de aplicación
  dentro de una instancia de contenedor de un recurso de Cloud Run, con
  tráfico que fluye desde el sidecar hacia otros recursos de
  Cloud Run.
El contenedor sidecar de Ambient intercepta el tráfico entre el contenedor de tu aplicación y los destinos a los que llama (haz clic para agrandar).

Permisos de Ambient Networking

Ambient Networking admite un alcance global y uno regional. El alcance determina si el sidecar se conecta a un plano de enrutamiento global o regional:

  • Regional (predeterminado): Cloud Run conecta el archivo de complemento a un plano de enrutamiento regional, lo que limita las políticas de enrutamiento y seguridad a los destinos dentro de la región de tu servicio. Este permiso admite los requisitos de residencia de datos (DRZ) para los datos en reposo, en uso y en tránsito. Si no especificas un permiso, Ambient Networking usa el permiso regional.
  • Global: Cloud Run conecta el archivo de complemento a un plano de enrutamiento global, lo que le permite enrutar el tráfico a destinos en cualquier región.

Cada característica que usa Ambient Networking requiere un alcance específico:

Función Alcance global Alcance regional
Agent Gateway en Cloud Run No compatible Admitido

Limitaciones

Se aplican las siguientes limitaciones a Ambient Networking:

  • No se admite el tráfico UDP. Ambient networking solo admite tráfico HTTP y TCP.
  • Las solicitudes entrantes no admiten HTTP/2 de extremo a extremo. Para obtener más detalles, consulta Problemas conocidos.
  • El permiso regional no admite redes de VPC que resuelvan *.googleapis.com en direcciones IP del Acceso privado a Google. Para obtener más detalles, consulta Problemas conocidos.
  • No se admite el entorno de ejecución de primera generación. Si no especificas un entorno de ejecución, Cloud Run usa la segunda generación.
  • Las instancias de contenedor tardan más en iniciarse. Para obtener más detalles, consulta Problemas conocidos.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Habilita las APIs de Cloud Run, Network Services y Traffic Director, si aún no están habilitadas.

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el permiso serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtenerlo a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.

    Habilitar las API

  7. Aumenta el límite de CPU del recurso de Cloud Run en 1 CPU virtual y su límite de memoria en 1 GiB. Si el nuevo límite de CPU no es un valor admitido, usa el siguiente valor admitido más alto. El sidecar de ambient comparte la CPU y la memoria de tu instancia de contenedor, por lo que este aumento garantiza que tu aplicación conserve los recursos que necesita.

  8. Lee la página de precios de Cloud Run para conocer el uso del sidecar de Ambient Networking. La facturación de las funciones de ambiente no se aplica de manera forzosa durante la versión preliminar.

Roles obligatorios

Para obtener los permisos que necesitas para configurar y, luego, implementar los servicios de Cloud Run, pídele a tu administrador que te otorgue los siguientes roles de IAM:

Si implementas un servicio o una función desde el código fuente, también debes tener roles adicionales otorgados en tu proyecto y en la cuenta de servicio de Cloud Build.

La identidad de servicio del recurso de Cloud Run también debe tener los siguientes roles:

  • Cliente de Traffic Director (roles/trafficdirector.client)
  • Agente de Cloud Trace (roles/cloudtrace.agent)

Para otorgar estos roles a la identidad de servicio, usa gcloud:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="serviceAccount:RUN_CLIENT_SA@PROJECT_ID.iam.gserviceaccount.com" \
    --role="roles/trafficdirector.client"

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="serviceAccount:RUN_CLIENT_SA@PROJECT_ID.iam.gserviceaccount.com" \
    --role="roles/cloudtrace.agent"

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • RUN_CLIENT_SA: Es el nombre de la cuenta de servicio adjunta a tu servicio de Cloud Run.

Si la identidad del servicio no tiene estos roles, el recurso de Cloud Run se implementa de todos modos, pero las funciones que usan Ambient Networking no funcionan.

Para obtener una lista de los roles y los permisos de IAM asociados con Cloud Run, consulta los roles de IAM de Cloud Run y los permisos de IAM de Cloud Run. Si tu servicio de Cloud Run interactúa con las APIs deGoogle Cloud , como las bibliotecas cliente de Cloud, consulta la guía de configuración de identidades del servicio. Para obtener más información sobre cómo otorgar roles, consulta los permisos de implementación y cómo administrar el acceso.

Configura Ambient Networking

Configura Ambient Networking con gcloud o un archivo YAML.

gcloud

  • Para habilitar Ambient Networking en un servicio nuevo, pasa la marca --ambient-networking y, de manera opcional, la marca --ambient-scope:

    gcloud beta run deploy SERVICE \
      --image=IMAGE_URL \
      --ambient-networking \
      --ambient-scope=SCOPE \
      --region=REGION
  • Para habilitar Ambient Networking en un servicio existente, pasa las mismas marcas al comando gcloud beta run services update, que implementa una revisión nueva con Ambient Networking habilitado:

    gcloud beta run services update SERVICE \
      --ambient-networking \
      --ambient-scope=SCOPE \
      --region=REGION
  • Para inhabilitar Ambient Networking, pasa la marca --no-ambient-networking:

    gcloud beta run services update SERVICE \
      --no-ambient-networking \
      --region=REGION

Reemplaza lo siguiente:

  • SERVICE: el nombre de tu servicio de Cloud Run.
  • IMAGE_URL: una referencia a la imagen de contenedor, por ejemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL sigue el formato de LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • SCOPE: Es el permiso de Ambient Networking, ya sea global o regional.
  • REGION: Es la región de tu servicio.

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 la anotación run.googleapis.com/ambient-networking y, de forma opcional, la anotación run.googleapis.com/ambient-scope:

    spec:
     template:
       metadata:
         annotations:
           run.googleapis.com/ambient-networking: 'true'
           run.googleapis.com/ambient-scope: SCOPE

    Reemplaza SCOPE por el permiso de Ambient Networking, ya sea global o regional. Para inhabilitar Ambient Networking, establece run.googleapis.com/ambient-networking en 'false' y quita la anotación run.googleapis.com/ambient-scope.

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

    gcloud run services replace service.yaml

    El comando gcloud run services replace usa el archivo service.yaml de forma predeterminada si está presente.

Consulta la configuración de Ambient Networking

Para ver la configuración de red actual de Ambient Networking de tu servicio de Cloud Run, sigue estos pasos:

Console

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

    Ir a Cloud Run

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

  3. Haz clic en la pestaña Redes.

  4. En la tarjeta Ambient Networking, consulta el parámetro de configuración Permiso.

gcloud

  1. Usa el siguiente comando:

    gcloud beta run services describe SERVICE \
       --region=REGION
  2. Busca las anotaciones run.googleapis.com/ambient-networking y run.googleapis.com/ambient-scope en la configuración que se muestra.

¿Qué sigue?