Configurazione dell'accesso privato Google
Per impostazione predefinita, quando una VM di Compute Engine è priva di un indirizzo IP esterno assegnato alla sua interfaccia di rete, può inviare pacchetti solo ad altre destinazioni di indirizzi IP interni. Puoi consentire a queste VM di connettersi al set di indirizzi IP esterni utilizzati dalle API e dei servizi Google attivando l'accesso privato Google sulla subnet utilizzata dall'interfaccia di rete della VM.
L'accesso privato Google consente anche l'accesso agli indirizzi IP esterni utilizzati da App Engine, inclusi i servizi di terze parti basati su App Engine.
Per visualizzare le API e i servizi idonei che puoi utilizzare con l'accesso privato Google, consulta la sezione Servizi supportati nella panoramica dell'accesso privato Google.
Consulta le Opzioni di accesso privato per i servizi per le informazioni in background sull'accesso privato Google e su altre opzioni di connettività privata offerte da Google Cloud.
Specifiche
Un'interfaccia VM può inviare pacchetti agli indirizzi IP esterni delle API e dei servizi Google utilizzando l'accesso privato Google se sono soddisfatte tutte queste condizioni:
L'interfaccia della VM è connessa a una subnet in cui è abilitato l'accesso privato Google.
La rete VPC che contiene la subnet soddisfa i requisiti di rete per le API e i servizi Google.
L'interfaccia della VM non ha un indirizzo IP esterno assegnato.
L'indirizzo IP di origine dei pacchetti inviati dalla VM corrisponde a uno dei seguenti indirizzi IP.
Se invii i pacchetti ai domini predefiniti:
- Indirizzo IPv4 interno principale dell'interfaccia della VM
- L'indirizzo IPv6 interno dell'interfaccia della VM
- Un indirizzo IPv4 interno da un intervallo IP alias
Se invii pacchetti ai domini
private.googleapis.com
orestricted.googleapis.com
:- Indirizzo IPv4 interno principale dell'interfaccia della VM
- Un indirizzo IPv4 interno da un intervallo IP alias
Una VM con un indirizzo IPv4 o IPv6 esterno assegnato alla propria interfaccia di rete non richiede l'accesso privato Google per connettersi alle API e ai servizi Google. Tuttavia, la rete VPC deve soddisfare i requisiti per l'accesso alle API e ai servizi Google.
Puoi annullare l'assegnazione di un indirizzo IPv4 esterno da un'istanza VM esistente, anche mentre è in esecuzione. Per ulteriori informazioni, consulta l'articolo Annullare l'assegnazione di un indirizzo IP esterno statico.
Puoi annullare l'assegnazione di un indirizzo IPv6 esterno da un'istanza VM esistente, anche mentre è in esecuzione. Per ulteriori informazioni, consulta Modificare il tipo di stack di una VM.
Requisiti di rete
L'accesso privato Google ha i seguenti requisiti:
Poiché l'accesso privato Google si abilita a livello di singola subnet, devi utilizzare una rete VPC. Le reti legacy non sono supportate perché non supportano le subnet.
L'accesso privato Google non abilita automaticamente alcuna API. Devi attivare separatamente le API di Google che devi utilizzare tramite la pagina API e servizi in Google Cloud Console.
Se vuoi connetterti ad API e servizi Google utilizzando IPv6, devi soddisfare entrambi i seguenti requisiti:
La tua VM deve essere configurata con un intervallo di indirizzi IPv6
/96
e il software in esecuzione sulla VM deve inviare pacchetti le cui origini corrispondono a uno di tali indirizzi IPv6 di tale intervallo.Devi inviare i pacchetti agli indirizzi IPv6 dei domini predefiniti.
Se utilizzi i nomi di dominio private.googleapis.com o restricted.googleapis.com, devi creare record DNS per indirizzare il traffico agli indirizzi IP associati a tali domini. Per ulteriori informazioni, consulta la pagina Configurazione della rete. Questi nomi di dominio offrono solo connettività IPv4.
La tua rete deve disporre di route appropriate per gli intervalli IP di destinazione utilizzati dalle API e dai servizi Google. Questi percorsi devono utilizzare l'hop successivo per il gateway Internet predefinito. Se utilizzi i nomi di dominio private.googleapis.com o restricted.googleapis.com, devi avere un solo percorso (per dominio). In caso contrario, dovrai creare più percorsi. Per informazioni dettagliate, vedi Opzioni di routing.
I firewall in uscita devono consentire il traffico negli intervalli di indirizzi IP utilizzati dalle API e dai servizi Google. La regola firewall di autorizzazione in uscita implicita soddisfa questo requisito. Per conoscere altri modi per soddisfare il requisito del firewall, consulta la sezione Configurazione firewall.
Autorizzazioni
I proprietari dei progetti, gli editor e le entità IAM con il ruolo Amministratore di rete possono creare o aggiornare subnet e assegnare indirizzi IP.
Per ulteriori informazioni sui ruoli, leggi la documentazione relativa ai ruoli IAM.
Logging
Cloud Logging acquisisce tutte le richieste API effettuate da istanze VM nelle subnet in cui è abilitato l'accesso privato Google. Le voci di log identificano l'origine della richiesta API come indirizzo IP interno dell'istanza chiamante.
Puoi configurare l'utilizzo giornaliero e i report mensili raggruppati da inviare a un bucket Cloud Storage. Per informazioni dettagliate, consulta la pagina Visualizzazione dei report di utilizzo.
Configurazione di rete
In questa sezione vengono descritti i requisiti di base della rete che devi soddisfare per consentire a una VM della tua rete VPC di accedere alle API e ai servizi Google.
Opzioni dominio
Devi prima scegliere il dominio su cui accedi alle API e ai servizi Google.
I VIP private.googleapis.com
e restricted.googleapis.com
supportano
solo i protocolli basati su HTTP su TCP (HTTP, HTTPS e HTTP/2). Tutti gli altri protocolli, inclusi MQTT e ICMP, non sono supportati.
Intervalli di indirizzi IP e dominio | Servizi supportati | Esempio di utilizzo |
---|---|---|
Domini predefiniti Tutti i nomi di dominio per API e servizi Google tranne private.googleapis.com e restricted.googleapis.com .Vari intervalli di indirizzi IP: puoi determinare un set di intervalli IP che contiene i possibili indirizzi utilizzati dai domini predefiniti facendo riferimento agli indirizzi IP per i domini predefiniti |
Abilita l'accesso API alla maggior parte delle API e dei servizi Google, indipendentemente dal fatto che siano supportati dai Controlli di servizio VPC. Include l'accesso API a Google Maps, Google Ads e Google Cloud. Include Google Workspace e altre applicazioni web. | I domini predefiniti vengono utilizzati quando non configuri i record DNS per
private.googleapis.com e
restricted.googleapis.com |
private.googleapis.com 199.36.153.8/30 |
Abilita l'accesso API alla maggior parte delle API e dei servizi Google, indipendentemente dal fatto che siano supportati dai Controlli di servizio VPC. Include l'accesso API a Maps, Google Ads, Google Cloud e alla maggior parte delle altre API Google, inclusi gli elenchi riportati di seguito. Non supporta le applicazioni web di Google Workspace. Non supporta siti web interattivi. Nomi di dominio corrispondenti:
|
Usa Scegli
|
restricted.googleapis.com 199.36.153.4/30 |
Abilita l'accesso API alle API e ai servizi Google supportati dai Controlli di servizio VPC. Blocca l'accesso alle API e ai servizi di Google che non supportano i controlli di servizio VPC. Non supporta le applicazioni web o le API Google Workspace. |
Usa Scegli |
Configurazione DNS
Per la connettività IPv4 alle API e ai servizi Google, puoi scegliere di inviare pacchetti agli indirizzi IP associati con private.googleapis.com
o restricted.googleapis.com
. Per farlo, devi configurare il DNS in modo che le VM
nella tua rete VPC risolvano le richieste a *.googleapis.com
e
a qualsiasi altro dominio a cui devi accedere. Ad esempio, se utilizzi Google Kubernetes Engine (GKE), devi anche configurare *.gcr.io
e *.pkg.dev
.
- Crea una zona DNS privata per
googleapis.com
. A questo scopo, valuta la possibilità di creare una zona privata Cloud DNS. Nella zona
googleapis.com
, crea uno dei seguenti recordA
, a seconda del dominio scelto:- Un record
A
perprivate.googleapis.com
che punta ai seguenti indirizzi IP:199.36.153.8
,199.36.153.9
,199.36.153.10
,199.36.153.11
- Un record
A
perrestricted.googleapis.com
che punta ai seguenti indirizzi IP:199.36.153.4
,199.36.153.5
,199.36.153.6
,199.36.153.7
Se utilizzi Cloud DNS, aggiungi i record alla zona privata
googleapis.com
.- Un record
Nella zona
googleapis.com
, crea un recordCNAME
per*.googleapis.com
che rimandi al recordA
creato nel passaggio precedente.
Alcuni servizi e API di Google vengono forniti utilizzando nomi di dominio aggiuntivi, tra cui *.gcr.io
, *.gstatic.com
, *.pkg.dev
e pki.goog
. Fai riferimento alla tabella degli intervalli di indirizzi IP e di dominio in Opzioni di dominio per determinare se è possibile accedere ai servizi aggiuntivi del dominio utilizzando private.googleapis.com
o restricted.googleapis.com
. Quindi, per ciascuno dei domini aggiuntivi:
- Crea una zona DNS per il dominio aggiuntivo (ad esempio
gcr.io
). Se utilizzi Cloud DNS, assicurati che questa zona si trovi nello stesso progetto della tua zona privatagoogleapis.com
. - In questa zona DNS:
- Crea un record
A
per il nome di dominio (zona), ad esempiogcr.io
. Punta questo recordA
agli stessi quattro indirizzi IP per il nome di dominio personalizzato che hai scelto (private.googleapis.com
orestricted.googleapis.com
). - Crea un record
CNAME
per tutti i possibili nomi host del dominio aggiuntivi utilizzando un asterisco e un punto seguito dal nome del dominio (zona), ad esempio*.gcr.io
. Posiziona questo recordCNAME
sul recordA
nella stessa zona. Ad esempio, posiziona*.gcr.io
sugcr.io
.
- Crea un record
Opzioni di routing
La tua rete VPC deve avere route appropriate i cui hop successivi costituiscono il gateway Internet predefinito. Google Cloud non supporta il routing del traffico verso le API e i servizi Google tramite altre istanze VM o hop successivi personalizzati. Nonostante il cosiddetto gateway Internet predefinito, i pacchetti inviati dalle VM nella tua rete VPC alle API e ai servizi Google rimangono all'interno della rete Google.
Se selezioni i domini predefiniti, le istanze VM si connettono alle API e ai servizi Google utilizzando un sottoinsieme di indirizzi IP esterni di Google. Questi indirizzi IP sono instradabili pubblicamente, ma il percorso da una VM in una rete VPC a tali indirizzi rimane all'interno della rete Google.
Google non pubblica route su Internet a nessuno degli indirizzi IP utilizzati dai domini
private.googleapis.com
orestricted.googleapis.com
. Di conseguenza, è possibile accedere a questi domini solo dalle VM in una rete VPC o dai sistemi on-premise collegati a una rete VPC.
Se la tua rete VPC contiene un route predefinito il cui hop successivo è il gateway Internet predefinito, puoi utilizzarlo per accedere alle API e ai servizi Google, senza dover creare route personalizzate. Per informazioni dettagliate, consulta la pagina relativa al routing con un percorso predefinito.
Se hai sostituito una route IPv4 predefinita (destinazione 0.0.0.0/0
) con una route personalizzata il cui hop successivo non è il gateway Internet predefinito, puoi soddisfare i requisiti di routing per le API e i servizi Google utilizzando il routing personalizzato.
Se hai sostituito una route IPv6 predefinita (destinazione ::/0
) con una route personalizzata il cui hop successivo non è il gateway Internet predefinito oppure se la tua rete VPC non ha una route predefinita IPv6, non avrai una connettività IPv6 alle API e ai servizi Google finché non sostituisci la route IPv6 predefinita.
Routing con un percorso predefinito
Al momento della creazione, ogni rete VPC contiene una route predefinita IPv4 (0.0.0.0/0
). Se abiliti indirizzi IPv6 esterni su una subnet, a quella rete viene aggiunta una route IPv6 generata dal sistema (::/0
).
La route predefinita IPv4 fornisce un percorso agli indirizzi IPv4 per i domini predefiniti, alla destinazione 199.36.153.8/30
per private.googleapis.com
e alla destinazione 199.36.153.4/30
per restricted.googleapis.com
.
La route predefinita IPv6 fornisce solo un percorso agli indirizzi IPv6 per i domini predefiniti. I domini private.googleapis.com
e restricted.googleapis.com
non sono accessibili con la connettività IPv6.
Per controllare la configurazione di una route predefinita in una determinata rete, segui queste istruzioni.
Console
- Vai alla pagina Route in Google Cloud Console.
Vai alla pagina Percorsi - Filtra l'elenco delle route per visualizzare solo quelle per la rete che devi controllare.
- Cerca una route la cui destinazione è
0.0.0.0/0
per il traffico IPv4 o::/0
per il traffico IPv6 e il cui hop successivo è gateway Internet predefinito.
gcloud
Utilizza il comando gcloud
seguente, sostituendo NETWORK_NAME
con
il nome della rete da ispezionare:
gcloud compute routes list \ --filter="default-internet-gateway NETWORK_NAME"
Se devi creare una route IPv4 predefinita sostitutiva, consulta Aggiungere un percorso statico.
Se devi creare una route IPv6 predefinita sostitutiva, consulta la sezione Aggiungere un percorso predefinito IPv6.
Routing personalizzato
In alternativa a una route predefinita per il traffico IPv4, puoi utilizzare route statiche personalizzate, ciascuna con una destinazione più specifica e ciascuna utilizzando l'hop successivo del gateway Internet predefinito. Il numero di route necessarie e i relativi indirizzi IP di destinazione dipendono dal dominio scelto.
Per verificare la configurazione delle route personalizzate per i servizi e le API di Google in una determinata rete, segui queste istruzioni.
Console
- Vai alla pagina Route in Google Cloud Console.
Vai alla pagina Percorsi - Utilizza il campo di testo Filtra tabella per filtrare l'elenco delle route utilizzando i seguenti criteri, sostituendo
NETWORK_NAME
con il nome della rete VPC.- Rete:
NETWORK_NAME
- Tipo di hop successivo:
default internet gateway
- Rete:
- Controlla la colonna Intervallo IP di destinazione per ogni percorso. Se hai scelto
i domini predefiniti, cerca diverse route statiche personalizzate, una per
ogni intervallo di indirizzi IP usato dal dominio predefinito. Se hai scelto
private.googleapis.com
orestricted.googleapis.com
, cerca l'intervallo IP di quel dominio.
gcloud
Utilizza il comando gcloud
seguente, sostituendo NETWORK_NAME
con
il nome della rete da ispezionare:
gcloud compute routes list \ --filter="default-internet-gateway NETWORK_NAME"
Le route sono elencate in formato tabella a meno che non personalizzi il comando con il flag --format
. Cerca nella colonna DEST_RANGE
la destinazione di ogni
percorso. Se hai scelto i domini predefiniti, cerca più route statiche personalizzate, una per ogni intervallo di indirizzi IP usato dal dominio predefinito. Se hai scelto private.googleapis.com
o
restricted.googleapis.com
, cerca l'intervallo IP di quel dominio.
Se devi creare percorsi, consulta la sezione Aggiungere un percorso statico.
Configurazione del firewall
La configurazione del firewall della tua rete VPC deve consentire l'accesso dalle VM agli indirizzi IP utilizzati dalle API e dai servizi Google. La regola allow egress
implicita soddisfa questo requisito.
In alcune configurazioni del firewall devi creare regole di autorizzazione in uscita specifiche.
Ad esempio, supponiamo che tu abbia creato una regola di negazione in uscita che blocca il traffico verso tutte le destinazioni (0.0.0.0
per IPv4 o ::/0
per IPv6). In questo caso, devi creare una regola firewall di autorizzazione in uscita la cui priorità sia superiore alla regola di negazione in uscita per ogni intervallo di indirizzi IP utilizzato dal dominio scelto per le API e i servizi Google.
Per creare regole firewall, consulta Creazione di regole firewall. Puoi limitare le VM a cui si applicano le regole firewall quando definisci il target di ogni regola di autorizzazione in uscita.
Indirizzi IP per i domini predefiniti
Segui questi passaggi per determinare gli intervalli di indirizzi IP utilizzati dai domini predefiniti, come *.googleapis.com
e *.gcr.io
.
Google pubblica l'elenco completo degli intervalli IP che mette a disposizione degli utenti su Internet in goog.json.
Google pubblica inoltre un elenco di intervalli di indirizzi IP esterni globali e a livello di area geografica disponibili per i clienti. Risorse Google Cloud in cloud.json.
Gli indirizzi IP utilizzati dai domini predefiniti per le API e i servizi Google si adattano all'elenco di intervalli calcolati rimuovendo tutti gli intervalli in cloud.json
da quelli in goog.json
. L'esempio seguente mostra come ottenere questo intervallo utilizzando Python.
Puoi utilizzare il seguente script Python per creare un elenco di intervalli di indirizzi IP che includano quelli utilizzati dai domini predefiniti per API e servizi Google.
Per informazioni sull'esecuzione di questo script, consulta la sezione Come eseguire.
Configurazione dell'accesso privato Google
Puoi attivare l'accesso privato Google dopo aver soddisfatto i requisiti di rete nella tua rete VPC.
Attivazione dell'accesso privato Google
Per attivare l'accesso privato Google:
Console
- Vai alla pagina Reti VPC in Google Cloud Console.
Vai alla pagina Reti VPC - Fai clic sul nome della rete che contiene la subnet per cui vuoi attivare l'accesso privato Google.
- Per una subnet esistente:
- Fai clic sul nome della subnet. Viene visualizzata la pagina Dettagli subnet.
- Fai clic su Modifica.
- Nella sezione Accesso privato Google, seleziona Attivato.
- Fai clic su Salva.
Per una nuova subnet:
- Fai clic su Aggiungi subnet.
- Inserisci un nome.
- Seleziona un'area geografica.
- In Tipo di stack IP, seleziona Solo IPv4 (stack singolo) o IPv4 e IPv6 (stack doppio).
Inserisci un intervallo IPv4. Questo è l'intervallo IPv4 principale della subnet.
Se selezioni un intervallo che non è un indirizzo RFC 1918, verifica che l'intervallo non sia in conflitto con una configurazione esistente. Per ulteriori informazioni, consulta la sezione Intervalli di subnet IPv4.
Se crei una subnet a doppio stack, seleziona un tipo di accesso IPv6: Interno o Esterno.
Se vuoi impostare il tipo di accesso su Interno, ma l'opzione Interno non è disponibile, verifica che sia stato assegnato un intervallo IPv6 interno sulla rete.
Effettua altre selezioni per la nuova subnet per soddisfare le tue esigenze. Ad esempio, potrebbe essere necessario creare intervalli IP di subnet secondari o abilitare i log di flusso VPC.
Seleziona On nella sezione Accesso privato Google.
Fai clic su Aggiungi.
gcloud
Per una subnet esistente:
Determina il nome e l'area geografica della subnet. Per elencare le subnet di una rete specifica, utilizza il comando seguente:
gcloud compute networks subnets list --filter=NETWORK_NAME
Esegui il comando seguente per abilitare l'accesso privato Google:
gcloud compute networks subnets update SUBNET_NAME \ --region=REGION \ --enable-private-ip-google-access
Verifica che l'accesso privato Google sia abilitato eseguendo questo comando:
gcloud compute networks subnets describe SUBNET_NAME \ --region=REGION \ --format="get(privateIpGoogleAccess)"
In tutti i comandi riportati sopra, sostituisci quanto segue con i valori validi:
SUBNET_NAME
: il nome della subnetREGION
: l'area geografica per la subnetNETWORK_NAME
: il nome della rete VPC che contiene la subnet
Quando crei una nuova subnet, utilizza il flag --enable-private-ip-google-access
per abilitare l'accesso privato Google:
gcloud compute networks subnets create SUBNET_NAME \ --region=REGION \ --network=NETWORK_NAME \ --range=PRIMARY_IP_RANGE \ [ --stack-type=STACK_TYPE ] \ [ --ipv6-access-type=IPv6_ACCESS_TYPE ] \ --enable-private-ip-google-access
Sostituisci i seguenti valori con valori validi:
SUBNET_NAME
: il nome della subnetREGION
: l'area geografica per la subnetNETWORK_NAME
: il nome della rete VPC che contiene la subnetPRIMARY_IP_RANGE
: intervallo di indirizzi IP principali della subnetSTACK_TYPE
è il tipo di stack per la subnet:IPV4_ONLY
oIPV4_IPV6
.IPv6_ACCESS_TYPE
è il tipo di accesso IPv6:EXTERNAL
oINTERNAL
. Specifica il tipo di accesso IPv6 solo se hai specificato anche--stack-type=IPV4_IPV6
.
Disattivazione dell'accesso privato Google
Segui questa procedura per disabilitare l'accesso privato Google per una subnet esistente:
Console
- Vai alla pagina Reti VPC in Google Cloud Console.
Vai alla pagina Reti VPC - Fai clic sul nome della rete che contiene la subnet per cui devi disattivare l'accesso privato Google.
- Fai clic sul nome di una subnet esistente. Viene visualizzata la pagina Dettagli subnet.
- Fai clic su Modifica.
- Nella sezione Accesso privato Google, seleziona Off.
- Fai clic su Salva.
gcloud
Determina il nome e l'area geografica della subnet. Per elencare le subnet di una rete specifica, utilizza il comando seguente:
gcloud compute networks subnets list \ --filter=NETWORK_NAME
Esegui il comando seguente per disabilitare l'accesso privato Google:
gcloud compute networks subnets update SUBNET_NAME \ --region=REGION \ --no-enable-private-ip-google-access
Esegui il comando seguente per verificare che l'accesso privato Google sia disattivato:
gcloud compute networks subnets describe SUBNET_NAME \ --region=REGION \ --format="get(privateIpGoogleAccess)"
In tutti i comandi riportati sopra, sostituisci quanto segue con i valori validi:
SUBNET_NAME
: il nome della subnetREGION
: l'area geografica per la subnetNETWORK_NAME
: il nome della rete VPC che contiene la subnet
Passaggi successivi
- Per configurare l'accesso privato Google per gli host on-premise, consulta Configurazione dell'accesso privato Google per gli host on-premise.