Questa pagina descrive come utilizzare le impostazioni di traffico in entrata per limitare l'accesso alla rete al tuo servizio Cloud Run.
A livello di rete, l'endpoint di un servizio Cloud Run è raggiungibile dai seguenti percorsi di ingresso di rete:
- URL
run.app
predefiniti, che puoi disattivare - Qualsiasi mappatura dominio configurata
- Qualsiasi bilanciatore del carico delle applicazioni esterno o bilanciatore del carico delle applicazioni interno configurato
Tutti i percorsi di ingresso di rete sono soggetti all'impostazione di ingresso del servizio. I percorsi di traffico in entrata e l'impostazione di traffico in entrata predefiniti consentono a qualsiasi risorsa su internet di raggiungere il tuo servizio 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 comunque alle richieste che raggiungono gli endpoint di servizio 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 della VM del connettore alle risorse VPC.
Impostazioni di ingresso 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 all'URL run.app o ai domini personalizzati. |
Bilanciamento del carico 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 limitazioni. 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.app
predefinito o un dominio personalizzato configurato in Cloud Run.Per le richieste provenienti da istanze VM Compute Engine, non è necessaria alcuna ulteriore configurazione per le macchine che dispongono di indirizzi IP esterni o che utilizzano Cloud NAT. In caso contrario, consulta Ricevere richieste dalle reti VPC.
Quando chiami da Cloud Run o App Engine a un servizio Cloud Run impostato su "Interno" o "Bilanciamento del carico interno e Cloud", 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
Puoi impostare l'ingresso utilizzando la console Google Cloud , Google Cloud CLI, YAML o Terraform.
Console
Nella console Google Cloud , vai alla pagina Cloud Run:
Se stai configurando un nuovo servizio, seleziona Servizi dal menu e fai clic su Deploy 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 e poi sulla scheda Networking.
Seleziona il traffico in entrata che vuoi consentire:
Fai clic su Crea o Salva.
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
INGRESS
con una delle impostazioni di ingresso disponibili:all
internal
internal-and-cloud-load-balancing
SERVICE
con il nome del servizio- IMAGE_URL con un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la formaLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
Se stai modificando un ingresso del servizio esistente:
gcloud run services update SERVICE --ingress INGRESS
Sostituisci
INGRESS
con una delle impostazioni di ingresso disponibili:all
internal
internal-and-cloud-load-balancing
SERVICE
con il nome del servizio
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: annotations: run.googleapis.com/ingress: INGRESS name: SERVICE spec: template: metadata: name: REVISION
Sostituisci
- SERVICE con il nome del tuo Cloud Run
- INGRESS con una delle
impostazioni di ingresso disponibili:
all
internal
internal-and-cloud-load-balancing
- REVISION con 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:Disattivare l'URL predefinito
Disattiva gli URL run.app
predefiniti di un servizio Cloud Run per consentire solo il traffico proveniente dagli altri percorsi di traffico in entrata del servizio: Cloud Load Balancing e qualsiasi mappatura di dominio configurata.
Per disattivare l'URL predefinito, segui questi passaggi utilizzando Google Cloud CLI, YAML o Terraform.
Riga di comando
Per disattivare l'URL
run.app
per un servizio, esegui il comandogcloud beta run services update
con il flag--no-default-url
oppure passa il flag--no-default-url
al comandogcloud run deploy
:gcloud beta run services update SERVICE_NAME --no-default-url
dove SERVICE_NAME è 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 run.googleapis.com/launch-stage: BETA name: SERVICE spec: template: metadata: name: REVISION
Sostituisci
- SERVICE con il nome del tuo servizio Cloud Run.
- REVISION con 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
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"
launch_stage = "BETA"
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
.
I seguenti servizi Google Cloud utilizzano l'URL run.app
predefinito
per richiamare Cloud Run. La disattivazione dell'URL run.app
predefinito impedisce
il corretto funzionamento di questi servizi:
- L'
cloudfunctions.net
URL dell'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
- Monitor sintetici e controlli di uptime
- Workflows
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.