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.
- Per saperne di più sull'accesso privato Google, consulta la Panoramica.
- Per istruzioni dettagliate sulla configurazione, consulta Attivare l'accesso privato Google.
Prepara la rete VPC condiviso
Se utilizzi un VPC condiviso, segui questi passaggi per preparare la tua rete VPC condivisa per l'ulteriore configurazione.
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, includiaef-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.
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, includiaef-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
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
Nel file
app.yaml
, aggiungi il campoinstance_ip_mode
alla sezionenetwork
e impostalo suinternal
.Se il file
app.yaml
ha già una sezionenetwork
, aggiungi la seguente riga all'interno della sezionenetwork
:instance_ip_mode: internal
Se il file
app.yaml
non ha una sezionenetwork
, crea la sezione e specifica la modalità IP dell'istanza aggiungendo le righe seguenti:network: instance_ip_mode: internal
Salva queste modifiche.
Eseguire il deployment del servizio.
gcloud beta app deploy
Verifica la configurazione controllando la pagina Istanze della console Google Cloud.
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.
Segui i passaggi nella sezione Configurare il servizio in modo che utilizzi solo l'indirizzo IP interno.
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.