Configura servizi privati solo per uso interno

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

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

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

Limitazioni

La disabilitazione 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 alle risorse esterne, devi configurare Cloud NAT.
  • Dipendenza dell'accesso privato Google: le istanze con la modalità IP impostata su internal richiedono l'accesso privato Google sulla subnet di destinazione.
  • Reti legacy: le reti legacy non possono utilizzare l'accesso privato Google e, pertanto, non possono disabilitare gli indirizzi IP esterni temporanei.

Prima di iniziare

Per eseguire il deployment di app in ambiente flessibile senza indirizzi IP esterni, devi abilitare l'accesso privato Google sulla subnet di destinazione.

Prepara la rete VPC condiviso

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

  1. Verifica di avere una route compatibile con l'accesso privato Google. In genere la route predefinita di una rete è compatibile con l'accesso privato Google. Per altre route, conferma 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 tua rete VPC condiviso.
    • INSTANCE_TAGS: se non utilizzi tag di istanza, non specificare nulla in questo campo. Se utilizzi i tag di istanza, includi aef-instances nell'elenco dei tag di istanza.
    • DEFAULT_INTERNET_GATEWAY: il gateway internet predefinito.

    Per scoprire di più sulle route compatibili per l'accesso privato Google, consulta la documentazione relativa all'accesso privato Google sulle opzioni di routing.

  2. Verifica di avere una regola firewall compatibile con l'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 tua rete VPC condiviso.
    • INSTANCE_TAGS: se non utilizzi tag di istanza, non specificare nulla in questo campo. Se utilizzi i tag di istanza, includi aef-instances nell'elenco dei tag di istanza.

    Per ulteriori informazioni sulle regole firewall compatibili per l'accesso privato Google, consulta la documentazione sull'accesso privato Google sulla configurazione del firewall.

Configura il servizio in modo che utilizzi solo l'indirizzo IP interno

  1. Aggiorna Google Cloud CLI. Ciò garantisce di utilizzare una versione di gcloud CLI che supporti gli indirizzi IP privati per le app in 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 ha già una sezione network, aggiungi la seguente riga all'interno della sezione network:

      instance_ip_mode: internal
      

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

      network:
       instance_ip_mode: internal
      

    Salva queste modifiche.

  3. Eseguire 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 VM, verifica che non siano elencati indirizzi 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 ancora un indirizzo IP interno.

Invia richieste esterne senza un indirizzo IP esterno

Se il tuo servizio invia richieste a internet, ma vuoi limitare l'utilizzo del solo 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 temporanei predefiniti.

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

  2. Segui i passaggi per configurare Cloud NAT.

Per ulteriori informazioni su questo approccio, consulta la documentazione di Cloud Architecture Center relativa al deployment di Cloud NAT per il recupero.