Configurare servizi privati solo per uso interno

Questa pagina mostra la configurazione richiesta per esporre un servizio dell'ambiente flessibile di App Engine solo sul suo indirizzo IP interno.

Per impostazione predefinita, i servizi di ambiente flessibile ricevono sia un indirizzo IP interno sia un indirizzo IP esterno temporaneo al primo deployment. L'indirizzo IP esterno temporaneo consente al tuo servizio di inviare richieste ai servizi App Engine con domini e risorse personalizzati su internet. Gli indirizzi IP esterni temporanei comportano costi.

Se il tuo servizio non richiede un indirizzo IP esterno, puoi impedire al servizio di inviare richieste alle risorse su internet e ridurre i costi limitandone l'utilizzo solo al suo indirizzo IP interno. Ciò non impedisce al servizio di ricevere richieste da internet o dai servizi App Engine con domini personalizzati, perché il nome di dominio completo del servizio è ancora visibile esternamente.

Limitazioni

La disattivazione degli indirizzi IP esterni temporanei presenta le seguenti limitazioni:

  • Servizi con domini personalizzati: per inviare richieste ai servizi App Engine con domini personalizzati, devi configurare Cloud NAT.
  • Risorse esterne:per inviare richieste a risorse esterne, devi configurare Cloud NAT.
  • Dipendenza dall'accesso privato Google: le istanze con la modalità IP impostata su internal richiedono accesso privato Google sulla subnet di destinazione.
  • Reti legacy: le reti legacy non possono utilizzare accesso privato Google e, di conseguenza, non possono disattivare gli indirizzi IP esterni temporanei.

Prima di iniziare

Per eseguire il deployment di app per ambiente flessibile senza indirizzi IP esterni, devi attivare l'accesso privato Google nella sottorete di destinazione.

Prepara la rete VPC condiviso

Se utilizzi il VPC condiviso, segui questi passaggi per preparare la rete VPC condivisa per un'ulteriore configurazione.

  1. Verifica di avere un percorso compatibile con Accesso privato Google. In genere, la route predefinita di una rete è compatibile con l'accesso privato Google. Per le altre route, verifica che la route sia configurata come segue.

    Network: SHARED_VPC_NETWORK_NAME
    Destination IP address range: 0.0.0.0/0
    Instance tags: INSTANCE_TAGS
    Next hop: DEFAULT_INTERNET_GATEWAY
    

    Sostituisci quanto segue:

    • SHARED_VPC_NETWORK_NAME: il nome della rete VPC condiviso.
    • INSTANCE_TAGS: se non utilizzi tag di istanza, non specificare nulla in questo campo. Se utilizzi i tag istanza, include aef-instances nell'elenco dei tag istanza.
    • DEFAULT_INTERNET_GATEWAY: il gateway internet predefinito.

    Per scoprire di più sui percorsi compatibili per l'accesso privato Google, consulta la documentazione dell'accesso privato Google sulle opzioni di routing.

  2. Verifica di avere una regola firewall compatibile con Accesso privato Google. La regola firewall deve essere configurata come segue.

    Network: SHARED_VPC_NETWORK_NAME
    Destination IP address range: 0.0.0.0/0
    Destination filter: IP ranges
    Direction of traffic: Egress
    Attach on match: Allow
    Instance tags: INSTANCE_TAGS
    

    Sostituisci quanto segue:

    • SHARED_VPC_NETWORK_NAME: il nome della rete VPC condiviso.
    • INSTANCE_TAGS: se non utilizzi tag di istanza, non specificare nulla in questo campo. Se utilizzi i tag istanza, include aef-instances nell'elenco dei tag istanza.

    Per scoprire di più sulle regole firewall compatibili per Accesso privato Google, consulta la documentazione di Accesso privato Google sulla configurazione del firewall.

Configurare il servizio in modo che utilizzi solo il proprio indirizzo IP interno

  1. Aggiorna Google Cloud CLI. In questo modo ti assicuri di utilizzare una versione della gcloud CLI che supporta gli indirizzi IP privati per le app con ambiente flessibile.

    gcloud components update
  2. Nel file app.yaml, aggiungi il campo instance_ip_mode alla sezione network e impostalo su internal.

    • Se il file app.yaml contiene già una sezione network, aggiungi la seguente riga all'interno della sezione network:

      instance_ip_mode: internal

    • Se il file app.yaml non contiene una sezione network, creala e specifica la modalità IP dell'istanza aggiungendo le seguenti righe:

      network:
       instance_ip_mode: internal

    Salva queste modifiche.

  3. Esegui il deployment del servizio.

    gcloud beta app deploy
  4. Verifica la configurazione controllando la pagina Istanze della console Google Cloud.

    Vai a Istanze

    Scorri verso il basso fino alla tabella Istanze (sotto il grafico Riepilogo). Nella colonna IP esterno, verifica che non sia elencato alcun indirizzo IP. L'assenza di un indirizzo IP in questa colonna indica che l'istanza non ha un indirizzo IP esterno. Anche se questo campo è vuoto, l'istanza ha comunque un indirizzo IP interno.

Inviare richieste esterne senza un indirizzo IP esterno

Se il tuo servizio invia richieste a internet, ma vuoi limitarne l'utilizzo solo al suo indirizzo IP interno, puoi utilizzare Cloud NAT per creare un gateway. Il servizio può inviare richieste esterne tramite il gateway Cloud NAT senza utilizzare gli indirizzi IP esterni effimeri predefiniti.

  1. Segui i passaggi descritti nella sezione Configurare il servizio in modo che utilizzi solo il proprio indirizzo IP interno.

  2. Segui i passaggi per configurare Cloud NAT.

Per scoprire di più su questo approccio, consulta la documentazione del Cloud Architecture Center sul deployment di Cloud NAT per il recupero.