Questa pagina descrive come utilizzare le impostazioni di traffico in entrata per limitare l'accesso alla rete ai tuoi servizi e alle tue istanzeCloud Run.
A livello di rete, l'endpointo dell'istanza di un servizio Cloud Run è raggiungibile dai seguenti percorsi di ingresso di rete:
- URL
run.apppredefiniti, che puoi disattivare - Qualsiasi mapping di domini configurato
- Qualsiasi bilanciatore del carico delle applicazioni esterno o interno configurato
Tutti i percorsi di ingresso di rete sono soggetti all'impostazione di ingresso della risorsa. I percorsi di traffico in entrata e l'impostazione di traffico in entrata predefiniti consentono a qualsiasi risorsa su internet di raggiungere la risorsa Cloud Run. Puoi utilizzare un vincolo personalizzato per limitare le impostazioni di ingresso per la tua organizzazione o per un insieme di progetti. L'autenticazione IAM si applica ancora alle richieste che raggiungono il servizio o gli endpoint dell'istanza da uno qualsiasi dei percorsi di ingresso di rete precedenti. Per un approccio a più livelli alla gestione dell'accesso, utilizza sia le impostazioni di ingresso di rete sia l'autenticazione IAM.
Utilizza i tag di rete per limitare l'accesso a VM del connettore alle risorse VPC.
Impostazioni di traffico in entrata di rete disponibili
Sono disponibili le seguenti impostazioni:
| Impostazione | Descrizione |
|---|---|
| Interno |
Livello massimo di restrizioni. Consente le richieste dalle seguenti origini:
run.app.
Le richieste provenienti da altre origini, inclusa internet, non possono raggiungere il tuo
servizio o la tua istanza all'run.app URL
o ai domini personalizzati. |
| Interno e Cloud Load Balancing | Questa impostazione consente le richieste dalle seguenti risorse:
Nota: per abilitare questa impostazione in gcloud CLI, utilizza internal-and-cloud-load-balancing.
Per attivare questa impostazione nella console Google Cloud , seleziona
Interno > Consenti il traffico da bilanciatori del carico delle applicazioni esterni.
|
| Tutti |
Livello minimo di restrizioni. Consente tutte le richieste, incluse quelle provenienti direttamente da internet all'URL run.app.
|
Accedere ai servizi interni
Si applicano le seguenti considerazioni aggiuntive:
Quando accedi ai servizi interni, chiamali come faresti normalmente utilizzando il loro URL, ovvero l'URL
run.apppredefinito o un dominio personalizzato configurato in Cloud Run.Per le richieste provenienti da istanze VM di Compute Engine, non è necessaria alcuna ulteriore configurazione per le macchine che hanno indirizzi IP esterni o che utilizzano Cloud NAT. In caso contrario, consulta la sezione Ricevere richieste dalle reti VPC.
Quando chiami da Cloud Run o App Engine a un servizio Cloud Run impostato su "Interno" o "Interno e Cloud Load Balancing", il traffico deve essere instradato tramite una rete VPC considerata interna. Consulta Ricevere richieste da altri servizi Cloud Run o App Engine.
Le richieste provenienti da risorse all'interno di reti VPC nello stesso progetto sono "interne" anche se la risorsa da cui provengono ha un indirizzo IP esterno.
Le richieste provenienti da risorse on-premise connesse alla rete VPC utilizzando Cloud VPN e Cloud Interconnect sono "interne".
Imposta l'ingresso
Le sezioni seguenti mostrano come impostare l'ingresso per i servizi e le istanzeCloud Run.
Imposta l'ingresso per i servizi Cloud Run
Puoi impostare l'accesso in entrata per un servizio Cloud Run utilizzando la consoleGoogle Cloud , Google Cloud CLI, YAML o Terraform.
Console
Nella console Google Cloud , vai alla pagina Servizi di Cloud Run:
Se stai configurando un nuovo servizio, fai clic su Esegui il deployment del container per visualizzare il modulo Crea servizio. Compila la pagina delle impostazioni iniziali del servizio.
Se stai configurando un servizio esistente, fai clic sul servizio, quindi sulla scheda Networking.
Seleziona il traffico in entrata che vuoi consentire.
Fai clic su Crea per un nuovo servizio. Fai clic su Visualizza differenze e fai di nuovo il deployment, quindi su Esegui il deployment delle modifiche per un servizio esistente.
gcloud
Se stai eseguendo il deployment di un nuovo servizio, esegui il deployment del servizio con il flag
--ingress:gcloud run deploy SERVICE \ --image IMAGE_URL \ --ingress INGRESS
Sostituisci quanto segue:
SERVICE: il nome del servizio.IMAGE_URL: un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.INGRESS: una delle impostazioni di Ingress disponibili:allinternalinternal-and-cloud-load-balancing
Se stai modificando un ingresso del servizio esistente:
gcloud run services update SERVICE \ --ingress INGRESS
Sostituisci quanto segue:
SERVICE: il nome del servizioINGRESS: una delle impostazioni di Ingress disponibili:allinternalinternal-and-cloud-load-balancing
YAML
Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
gcloud run services describe SERVICE --format export > service.yaml
Aggiorna l'annotazione
run.googleapis.com/ingress::apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/ingress: INGRESS spec: template: metadata: name: REVISION
Sostituisci quanto segue:
SERVICE: il nome del servizio Cloud Run.INGRESS: una delle impostazioni di Ingress disponibili:allinternalinternal-and-cloud-load-balancing
REVISION: un nuovo nome di revisione o eliminalo (se presente). Se fornisci un nuovo nome di revisione, questo deve soddisfare i seguenti criteri:- Inizia con
SERVICE- - Contiene solo lettere minuscole, numeri e
- - Non termina con
- - Non supera i 63 caratteri
- Inizia con
Sostituisci il servizio con la sua nuova configurazione utilizzando il seguente comando:
gcloud run services replace service.yaml
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Aggiungi quanto segue a una risorsagoogle_cloud_run_v2_service nella configurazione Terraform:Imposta il traffico in entrata per le istanze Cloud Run
Puoi impostare l'ingresso per un'istanza Cloud Run utilizzando Google Cloud CLI o YAML:
gcloud
Se stai creando una nuova istanza, esegui il deployment con il flag
--ingress:gcloud beta run instances deploy INSTANCE \ --image IMAGE_URL \ --ingress INGRESS
Sostituisci quanto segue:
INSTANCE: il nome dell'istanza.IMAGE_URL: un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest.INGRESS: una delle impostazioni di Ingress disponibili:allinternalinternal-and-cloud-load-balancing
Se stai modificando l'ingresso di un'istanza esistente:
gcloud beta run instances update INSTANCE \ --ingress INGRESS
Sostituisci quanto segue:
INSTANCE: il nome dell'istanza.INGRESS: una delle impostazioni di Ingress disponibili:allinternalinternal-and-cloud-load-balancing
YAML
Se stai creando una nuova istanza, ignora questo passaggio. Se stai aggiornando un'istanza esistente, scarica la relativa configurazione YAML:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Aggiorna l'annotazione
run.googleapis.com/ingress::apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/ingress: INGRESS run.googleapis.com/launch-stage: BETA spec: containers: - name: CONTAINER_NAME image: IMAGE_URL
Sostituisci quanto segue:
INSTANCE: il nome dell'istanza Cloud Run.INGRESS: una delle impostazioni di Ingress disponibili:allinternalinternal-and-cloud-load-balancing
CONTAINER_NAME: il nome del contenitore.IMAGE_URL: un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest.
Crea o aggiorna l'istanza utilizzando il seguente comando:
gcloud beta run instances replace instance.yaml
Disattivare l'URL predefinito
Prima di disattivare l'URL predefinito, tieni presente che i seguenti
Google Cloud servizi o
istanze utilizzano l'URL
run.apppredefinito per richiamare
Cloud Run. Se disattivi l'URL run.app predefinito, questi servizi o questa istanza non funzioneranno come previsto:
- L'URL
cloudfunctions.netdell'API Cloud Functions v2 basata sul servizio Cloud Run. - Cloud Scheduler
- Cloud Service Mesh
- Cloud Tasks
- Dialogflow CX
- Eventarc
- Firebase App Hosting
- Firebase Hosting
- Pub/Sub
- Monitoraggi sintetici e controlli di uptime
- Workflows
Consulta le sezioni seguenti per scoprire come disattivare l'URL predefinito per i servizi e le istanzedi Cloud Run.
Disattiva l'URL predefinito per i servizi Cloud Run
Disattiva l'URL run.app
predefinito di un servizio Cloud Run o
di un'istanza per consentire solo il traffico proveniente dagli altri percorsi di traffico in entrata del servizio: Cloud Load Balancing e qualsiasi mapping di dominio configurato.
Per disattivare l'URL predefinito, segui questi passaggi utilizzando la console Google Cloud , Google Cloud CLI, YAML o Terraform.
Console
Nella console Google Cloud , vai alla pagina Servizi di Cloud Run:
Fai clic su un servizio esistente.
Seleziona la scheda Networking.
Nella scheda Endpoint, deseleziona Attiva in URL dell'endpoint HTTPS predefinito.
Fai clic su Visualizza differenze e fai di nuovo il deployment, poi su Esegui il deployment delle modifiche.
Per ripristinare l'URL predefinito, seleziona Attiva.
gcloud
Per un servizio esistente, esegui il comando
gcloud run services updatecon il flag--no-default-url, ad esempio:gcloud run services update SERVICE_NAME --no-default-url
Per un nuovo servizio, esegui il comando
gcloud run deploycon il flag--no-default-url, ad esempio:gcloud run deploy SERVICE_NAME --no-default-url
Sostituisci
SERVICE_NAMEcon il nome del tuo servizio Cloud Run.Nell'output, l'URL viene visualizzato come
None.
Per ripristinare l'URL predefinito, utilizza il flag --default-url.
YAML
Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
gcloud run services describe SERVICE --format export > service.yaml
Per disattivare l'URL
run.app, utilizza l'annotazionerun.googleapis.com/default-url-disabled:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/default-url-disabled: true name: SERVICE spec: template: metadata: name: REVISION
Sostituisci quanto segue:
SERVICE: il nome del servizio Cloud Run.REVISION: un nuovo nome di revisione o eliminalo (se presente). Se fornisci un nuovo nome di revisione, questo deve soddisfare i seguenti criteri:- Inizia con
SERVICE- - Contiene solo lettere minuscole, numeri e
- - Non termina con
- - Non supera i 63 caratteri
- Inizia con
Crea o aggiorna il servizio utilizzando il seguente comando:
gcloud run services replace service.yaml
Il comando
gcloud run services replaceutilizza per impostazione predefinita il fileservice.yaml, se presente.
Per ripristinare l'URL predefinito, rimuovi l'annotazione
run.googleapis.com/default-url-disabled.
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Aggiungi quanto segue a una risorsagoogle_cloud_run_v2_service nella configurazione Terraform: resource "google_cloud_run_v2_service" "disable_default_url_service" {
name = "cloudrun-service"
location = "europe-west1"
default_uri_disabled = true
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/hello"
}
annotations = {
"run.googleapis.com/ingress" = "all" # "all" or "internal-only"
}
}
}
Verifica che le righe launch_stage e default_uri_disabled siano presenti nel file main.tf. La risorsa google_cloud_run_v2_service precedente
specifica un servizio Cloud Run con l'URL predefinito disabilitato in
anteprima.
Per ripristinare l'URL predefinito, rimuovi gli argomenti default_uri_disabled e
launch_stage.
Disattiva l'URL predefinito per le istanze Cloud Run
Disattiva l'URL run.app
predefinito di un'istanza Cloud Run per consentire solo il traffico
proveniente dagli altri percorsi di traffico in entrata dell'istanza: Cloud Load Balancing e qualsiasi
mapping di dominio configurato.
gcloud
Per un'istanza esistente, esegui il comando
gcloud beta run instances updatecon il flag--no-default-url, ad esempio:gcloud beta run instances update INSTANCE --no-default-url
Per una nuova istanza, esegui il comando
gcloud beta run instances deploycon il flag--no-default-url, ad esempio:gcloud beta run instances deploy INSTANCE \ --image IMAGE_URL \ --no-default-url
Sostituisci
INSTANCEcon il nome dell'istanza Cloud Run.Nell'output, l'URL viene visualizzato come
None.
Per ripristinare l'URL predefinito, utilizza il flag --default-url.
YAML
Se stai creando una nuova istanza, ignora questo passaggio. Se stai aggiornando un'istanza esistente, scarica la relativa configurazione YAML:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Per disattivare l'URL predefinito, imposta l'annotazione
run.googleapis.com/default-url-disabledsu'true':apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/default-url-disabled: 'true' run.googleapis.com/launch-stage: BETA spec: containers: - name: CONTAINER_NAME image: IMAGE_URL
Sostituisci quanto segue:
INSTANCE: il nome dell'istanza Cloud Run.CONTAINER_NAME: il nome del contenitore.IMAGE_URL: un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest.
Crea o aggiorna l'istanza utilizzando il seguente comando:
gcloud beta run instances replace instance.yaml
Per ripristinare l'URL predefinito, imposta l'annotazione run.googleapis.com/default-url-disabled su false o rimuovila.
Passaggi successivi
- Scopri di più sulle impostazioni di uscita.
- Configura un bilanciatore del carico delle applicazioni interno per Cloud Run.
- Configura un bilanciatore del carico delle applicazioni esterno con Cloud Run.
- Configura i metodi di autenticazione IAM per accedere ai servizi o alle istanze.