Limita traffico in entrata per Cloud Run

In questa pagina viene descritto come utilizzare le impostazioni di traffico in entrata per limitare l'accesso di rete a il servizio Cloud Run. A livello di rete, per impostazione predefinita, risorsa su internet sia in grado di raggiungere l'ambiente Cloud Run sull'URL run.app predefinito o su un dominio personalizzato configurato in Cloud Run. Tutti i percorsi in entrata, incluso l'URL run.app predefinito, sono soggetti alle norme in entrata. Il traffico in entrata è impostato a livello di servizio.

Puoi modificare queste impostazioni predefinite specificando un'impostazione di traffico in entrata diversa oppure disattivando l'URL run.app.

Impostazioni di Ingress e IAM I metodi di autenticazione sono due modi per gestire l'accesso a un servizio. Sono indipendenti tra loro. Per un approccio a più livelli alla gestione dell'accesso, utilizza entrambi.

Impostazioni di traffico in entrata disponibili

Sono disponibili le seguenti impostazioni:

Impostazione Descrizione
Interno Livello più restrittivo. Consente richieste dalle seguenti origini:
  • Bilanciatore del carico delle applicazioni interno, incluse le richieste da Reti VPC condiviso quando instradate tramite bilanciatore del carico delle applicazioni interno
  • Risorse consentite da qualsiasi Perimetro dei Controlli di servizio VPC che contiene il tuo Cloud Run completamente gestito di Google Cloud. Cloud Run deve essere configurato come servizio limitato.
  • che si trovano nello stesso progetto del tuo Servizio Cloud Run
  • Ingresso VPC condiviso: la rete VPC condivisa che la revisione è configurata per inviare il traffico. Per informazioni su se il traffico VPC condiviso viene riconosciuto come "interno", consulta Considerazioni speciali per il VPC condiviso.
  • I seguenti prodotti Google Cloud, se si trovano nella stessa progetto o perimetro Controlli di servizio VPC come Cloud Run e se utilizzano l'URL run.app predefinito e non un dominio personalizzato:
  • Bilanciatore del carico delle applicazioni interno, incluse le richieste dal VPC condiviso quando instradate tramite il bilanciatore del carico delle applicazioni interno.
  • Richieste consentite dai Controlli di servizio VPC.

Le richieste provenienti da queste origini rimangono nella rete Google, anche se accedi al tuo servizio all'URL run.app. Richieste da altre fonti, inclusa internet, non riescono a raggiungere il tuo servizio all'indirizzo l'URL run.app o i domini personalizzati.

Per richieste da Cloud Scheduler, Cloud Tasks, Eventarc, Pub/Sub, BigQuery e Workflows in un devi utilizzare il servizio predefinito run.app di Cloud Run l'URL del servizio. Non puoi utilizzare un dominio personalizzato.
Interno e Cloud Load Balancing Questa impostazione consente le richieste dalle seguenti risorse:
  • Risorse consentite dalla più restrittiva "interno" impostazione
  • Application Load Balancer esterno
Utilizza questa impostazione per:
  • Accetta le richieste da internet tramite il bilanciatore del carico delle applicazioni esterno. Non sono consentite richieste dirette all'URL run.app da internet.
  • Assicurarsi che le richieste da internet siano soggette a le funzionalità esterne del bilanciatore del carico delle applicazioni, Identity-Aware Proxy Google Cloud Armor e Cloud CDN.

Nota: per abilitare questa impostazione in gcloud CLI, utilizza internal-and-cloud-load-balancing. Per abilitare 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 direttamente da Internet all'URL run.app.

Accesso ai servizi interni

Si applicano le seguenti considerazioni aggiuntive:

  • Quando accedi ai servizi interni, chiamali come faresti normalmente i loro URL pubblici, l'URL run.app predefinito o dominio personalizzato configurato in Cloud Run.

  • Per le richieste dalle istanze VM di Compute Engine, non sono necessarie ulteriori configurazioni per le macchine con indirizzi IP esterni o che utilizzano Cloud NAT. Altrimenti, consulta Richieste di ricezione da reti VPC.

  • Quando chiami da Cloud Run, App Engine o Cloud Functions su un servizio Cloud Run impostato su "Interno" o "Interno e Cloud Load Balancing", il traffico deve essere instradato attraverso un VPC considerata interna. Consulta Ricevi richieste da altri servizi Cloud Run, App Engine e Cloud Functions.

  • Richieste da risorse all'interno di reti VPC nello stesso progetto sono "interni" anche se la risorsa da cui provengono ha un indirizzo IP esterno .

  • Richieste da risorse on-premise connesse alla rete VPC tramite Cloud VPN e Cloud Interconnect sono "interni".

Imposta traffico in entrata

Puoi impostare il traffico in entrata utilizzando uno dei metodi supportati nelle schede:

Console

  1. Vai a Cloud Run

  2. Se stai configurando un nuovo servizio, fai clic su Crea servizio e compila la pagina iniziale delle impostazioni del servizio, se preferisci.

  3. Se stai configurando un servizio esistente, fai clic sul servizio e quindi fai clic sulla scheda Networking.

  4. Seleziona il traffico in entrata che vuoi consentire:

    immagine

  5. Fai clic su Crea o Salva.

gcloud

  1. Se esegui 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 uno dei impostazioni di Ingress disponibili:
      • all
      • internal
      • internal-and-cloud-load-balancing
    • SERVICE con il nome del tuo servizio
    • IMAGE_URL con un riferimento all'immagine container, per ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già creati. L'URL ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
  2. Se stai modificando un servizio in entrata esistente:

    gcloud run services update SERVICE --ingress INGRESS

    Sostituisci

YAML

  1. 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
  2. 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 uno dei impostazioni di Ingress disponibili:
      • all
      • internal
      • internal-and-cloud-load-balancing
    • REVISION con un nuovo nome di revisione o eliminala (se presente). Se fornisci un nuovo nome per la revisione, deve soddisfare i seguenti criteri:
      • Inizia con SERVICE-
      • Contiene solo lettere minuscole, numeri e -
      • Non termina con -
      • Non deve superare i 63 caratteri
  3. Sostituisci il servizio con la 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 al tuo file main.tf:

resource "google_cloud_run_v2_service" "default" {
  provider = google-beta
  name     = "ingress-service"
  location = "us-central1"

  # For valid annotation values and descriptions, see
  # https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service#ingress
  ingress = "INGRESS_TRAFFIC_INTERNAL_ONLY"

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello" #public image for your service
    }
  }
}

Disattiva l'URL predefinito

Disabilita l'URL run.app predefinito per Cloud Run per impedire l'accesso a qualsiasi servizio tranne che tramite Cloud Load Balancing che gestisci. In questo modo tutto il traffico in entrata viene sottoposto ai criteri di sicurezza che per la configurazione sui bilanciatori del carico.

La disattivazione dell'URL run.app impedisce ai seguenti servizi Google Cloud dal richiamo dei servizi Cloud Run:

Riga di comando

  • Per disattivare l'URL run.app per un servizio, esegui gcloud beta run deploy con il flag --no-default-url:

    gcloud beta run deploy SERVICE_NAME --no-default-url
    

    dove SERVICE_NAME è il nome di Cloud Run completamente gestito di Google Cloud.

Nell'output, l'URL viene visualizzato come None.

YAML

  1. 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
  2. Per disabilitare l'URL run.app, esegui il deployment del servizio con Annotazione 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 eliminala (se presente). Se fornisci un nuovo nome per la revisione, deve soddisfare i seguenti criteri:
      • Inizia con SERVICE-
      • Contiene solo lettere minuscole, numeri e -
      • Non termina con -
      • Non deve superare i 63 caratteri
  3. Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:

    gcloud run services replace service.yaml

Passaggi successivi