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.
- Per scoprire 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 il VPC condiviso, segui questi passaggi per preparare la rete VPC condivisa per un'ulteriore configurazione.
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 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 rete VPC condiviso.INSTANCE_TAGS
: se non utilizzi tag di istanza, non specificare nulla in questo campo. Se utilizzi i tag istanza, includeaef-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.
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, includeaef-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
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
Nel file
app.yaml
, aggiungi il campoinstance_ip_mode
alla sezionenetwork
e impostalo suinternal
.Se il file
app.yaml
contiene già una sezionenetwork
, aggiungi la seguente riga all'interno della sezionenetwork
:instance_ip_mode: internal
Se il file
app.yaml
non contiene una sezionenetwork
, creala 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 della console Google Cloud.
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.
Segui i passaggi descritti nella sezione Configurare il servizio in modo che utilizzi solo il proprio indirizzo IP interno.
Segui i passaggi per configurare Cloud NAT.
Per saperne di più su questo approccio, consulta la documentazione del Cloud Architecture Center sul deployment di Cloud NAT per il recupero.