Questa pagina mostra la configurazione richiesta per esporre un servizio dell'ambiente flessibile di App Engine solo sul relativo indirizzo IP interno.
Per impostazione predefinita, i servizi di ambiente flessibili ricevono sia un indirizzo IP interno sia un indirizzo IP esterno temporaneo al momento del loro primo deployment. L'indirizzo IP esterno temporaneo consente al tuo servizio di inviare richieste ai servizi App Engine con domini personalizzati e risorse su Internet. Gli indirizzi IP esterni temporanei comportano dei 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 l'utilizzo del servizio solo all'indirizzo IP interno. Ciò non impedisce al servizio di ricevere richieste da Internet o dai servizi App Engine con domini personalizzati, poiché il nome di dominio completo del servizio è ancora visibile esternamente.
Limitazioni
La disattivazione degli indirizzi IP esterni temporanei presenta le seguenti limitazioni:
- SSH: il comando
gcloud app instances ssh
non supporta le istanze con modalità IP impostata suinternal
. - 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 Accesso privato Google: le istanze con modalità IP impostata su
internal
richiedono accesso privato Google sulla subnet di destinazione. - Reti precedenti: le reti precedenti non possono utilizzare l'accesso privato Google, pertanto non possono disattivare gli indirizzi IP esterni temporanei.
Prima di iniziare
Per eseguire il deployment di app di ambiente flessibili senza indirizzi IP esterni, devi abilitare l'accesso privato Google sulla subnet di destinazione.
- Per informazioni sull'accesso privato Google, consulta la Panoramica.
- Per istruzioni dettagliate sulla configurazione, consulta la pagina relativa all'attivazione dell'accesso privato Google.
Preparare la rete VPC condivisa
Se utilizzi una rete VPC condivisa, segui questi passaggi per preparare la tua rete VPC condivisa per ulteriori configurazioni.
Verifica che il percorso sia compatibile con l'accesso privato Google. In genere il percorso predefinito di una rete è compatibile con l'accesso privato Google. Per gli altri percorsi, verifica che il percorso sia configurato 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 istanza, non specificare nulla in questo campo. Se utilizzi i tag istanza, includiaef-instances
nell'elenco dei tag istanza.DEFAULT_INTERNET_GATEWAY
: il gateway Internet predefinito.
Per scoprire di più sulle route compatibili con l'accesso privato Google, consulta la documentazione sull'accesso privato Google sulle opzioni di routing.
Verifica di avere una regola firewall compatibile con l'{0}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 istanza, non specificare nulla in questo campo. Se utilizzi i tag istanza, includiaef-instances
nell'elenco dei tag istanza.
Per scoprire di più sulle regole firewall compatibili con l'accesso privato Google, consulta la documentazione dell'accesso privato Google sulla configurazione firewall.
Configura il servizio in modo che utilizzi solo l'indirizzo IP interno
Aggiorna l'interfaccia a riga di comando di Google Cloud. Questo garantisce che tu stia utilizzando una versione dell'interfaccia a riga di comando gcloud che supporta gli indirizzi IP privati per le app di ambiente flessibili.
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 alla sezionenetwork
:instance_ip_mode: internal
Se il file
app.yaml
non ha una sezionenetwork
, creane una e specifica la modalità IP dell'istanza aggiungendo le seguenti righe:network: instance_ip_mode: internal
Salva queste modifiche.
Esegui il deployment del servizio.
gcloud beta app deploy
Verifica la configurazione controllando la pagina Istanze di Google Cloud Console.
Scorri verso il basso fino alla tabella Istanze (sotto il grafico Riepilogo). Nella colonna IP VM, verifica che non sia stato elencato alcun indirizzo IP. Se non è presente un indirizzo IP in questa colonna, l'istanza non ha un indirizzo IP esterno. Anche se questo campo è vuoto, l'istanza ha ancora un indirizzo IP interno.
Inviare richieste esterne senza un indirizzo IP esterno
Se il servizio invia richieste a Internet, ma vuoi limitare l'utilizzo solo dell'indirizzo IP interno, puoi utilizzare Cloud NAT per creare un gateway. Il servizio può inviare richieste esterne attraverso il gateway Cloud NAT senza utilizzare gli indirizzi IP esterni temporanei predefiniti.
Segui i passaggi descritti nella sezione Configurare il servizio in modo che utilizzi solo l'indirizzo IP interno.
Segui i passaggi per configurare Cloud NAT.
Per scoprire di più su questo approccio, consulta la documentazione di Cloud Architecture Center su Deployment di Cloud NAT per il recupero.