En esta página, se describe cómo usar la configuración de entrada para restringir el acceso de red a tu servicio de Cloud Run. De forma predeterminada, cualquier recurso de Internet puede acceder a tu servicio Cloud Run (completamente administrado) en su URL run.app
o en un dominio personalizado configurado en Cloud Run. Puedes cambiar este valor predeterminado si especificas una configuración diferente para la entrada. Todas las rutas de acceso de entrada, incluida la URL predeterminada run.app
, están sujetas al parámetro de configuración de entrada.
La entrada se configura a nivel de servicio.
La configuración de entrada y los métodos de autenticación de IAM son dos formas de administrar el acceso a un servicio. Son independientes entre sí. Para adoptar un enfoque en capas a fin de administrar el acceso, usa ambos.
Opciones de configuración de entrada disponibles
Podrás configurar los siguientes parámetros:
Configuración | Descripción |
---|---|
Interno |
Más restrictivo. Permite solicitudes de las siguientes fuentes:
run.app . Las solicitudes de otras fuentes, incluido Internet, no pueden llegar a tu servicio en la URL run.app ni en dominios personalizados.Las solicitudes a Cloud Run desde Cloud Run, Cloud Functions o App Engine deben ir a la red de VPC para que se consideren internas. Para enrutar solicitudes a la red de VPC, usa la salida de VPC directa o un conector de Acceso a VPC sin servidores y habilita el Acceso privado a Google en la subred asociada con la salida de VPC directa o el conector. No hay asistencia para multiusuarios, es decir, múltiples dominios de confianza dentro del mismo proyecto. |
Balanceo de cargas interno y en la nube | Permite solicitudes de los siguientes recursos:
|
Todas |
Menos restrictivo. Permite todas las solicitudes, incluidas las solicitudes directas desde Internet a la URL run.app .
|
Accede a servicios internos
Se aplican las siguientes consideraciones adicionales:
Cuando accedes a los servicios internos, llámalos como lo harías con sus URL públicas, ya sea la URL
run.app
predeterminada o un dominio personalizado configurado en Cloud Run.Para las solicitudes de instancias de VM de Compute Engine, no se requiere ninguna configuración adicional para las máquinas que tienen direcciones IP públicas o que usan Cloud NAT. De lo contrario, consulta Recibe solicitudes de redes de VPC.
Para solicitudes de otros servicios de Cloud Run o de Cloud Functions en el mismo proyecto, conecta el servicio o la función a una red de VPC y enruta todo el tráfico de salida a través del conector, como se describe en VPC con conectores. Ten en cuenta que se sigue aplicando el permiso de invocador de IAM.
Las solicitudes de recursos dentro de una red de VPC en el mismo proyecto se clasifican como "internas" incluso si el recurso desde el que se originan tiene una dirección IP pública.
Las solicitudes de recursos en un proyecto diferente, pero dentro del mismo perímetro de Controles del servicio de VPC, solo pueden llamar a un servicio interno si configuras la API de Cloud Run Admin como un servicio restringido en el perímetro de servicio.
Para obtener información sobre cuándo se reconoce el tráfico de VPC compartida como “interno”, consulta Consideraciones especiales para la VPC compartida.
Las solicitudes de recursos locales conectados a la red de VPC mediante Cloud VPN y Cloud Interconnect se consideran “internas”.
Para las solicitudes de Cloud Scheduler, Cloud Tasks, Eventarc, Pub/Sub, BigQuery y flujos de trabajo a un servicio interno, se aplican las siguientes consideraciones:
- Debes usar la URL
run.app
predeterminada de Cloud Run para ese servicio, no cualquier dominio personalizado. - El trabajo, la tarea, la suscripción de Pub/Sub, el evento, el flujo de trabajo o la función remota de BigQuery debe estar en el mismo proyecto o perímetro de Controles del servicio de VPC que el servicio de Cloud Run.
- Debes usar la URL
Puedes llamar a servicios internos desde fuentes de tráfico fuera de la red de VPC mediante Cloud Scheduler, Cloud Tasks, Pub/Sub, Eventarc, Workflows o Eventarc desde el mismo proyecto o perímetro de Controles del servicio de VPC.
Configura la entrada
Puedes configurar la entrada con cualquiera de los métodos admitidos en las siguientes pestañas:
Consola
Si quieres configurar un servicio nuevo, haz clic en Crear servicio y completa la página de configuración del servicio inicial como desees.
Si quieres configurar un servicio existente, haz clic en el servicio y, luego, en la pestaña Herramientas de redes.
Selecciona el tráfico de entrada que deseas permitir:
Haz clic en Crear o Guardar.
Línea de comandos
Si implementas un servicio nuevo, impleméntalo con la marca
--ingress
:gcloud run deploy SERVICE --image IMAGE_URL --ingress INGRESS
Reemplaza los siguientes elementos:
INGRESS
por una de las configuraciones de entrada disponiblesall
internal
internal-and-cloud-load-balancing
SERVICE
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 formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Si cambias una entrada de servicio existente:
gcloud run services update SERVICE --ingress INGRESS
Reemplaza los siguientes elementos:
INGRESS
por una de las configuraciones de entrada disponiblesall
internal
internal-and-cloud-load-balancing
SERVICE
el nombre de tu servicio
YAML
Puedes descargar y ver las configuraciones del servicio existente mediante el comando gcloud run services describe --format export
, que genera resultados limpios en formato YAML.
Luego, puedes modificar los campos que se describen a continuación y subir el YAML modificado mediante el comando gcloud run services replace
.
Asegúrate de modificar los campos tal como se indica en la documentación.
Para ver y descargar la configuración:
gcloud run services describe SERVICE --format export > service.yaml
Actualiza la anotación
run.googleapis.com/ingress:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/ingress: INGRESS name: SERVICE spec: template: metadata: name: REVISION
Reemplazar
- SERVICE por el nombre del trabajo de Cloud Run.
- INGRESS por una de las configuraciones de entrada disponibles
all
internal
internal-and-cloud-load-balancing
- 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
- Comienza con
Reemplaza el servicio por la configuración nueva mediante el siguiente comando:
gcloud run services replace service.yaml
Terraform
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Agrega lo siguiente a tu archivo main.tf
:
¿Qué sigue?
- Más información sobre la configuración de salida
- Configura un balanceador de cargas de aplicaciones interno para Cloud Run
- Configura un balanceador de cargas de aplicaciones externo con Cloud Run
- Configura los métodos de autenticación de IAM para acceder a los servicios