Accesso alle API da VM con indirizzi IP esterni

Un'istanza di una macchina virtuale (VM) con un indirizzo IP esterno assegnato interfaccia di rete possono connettersi alle API e ai servizi Google se i requisiti di rete descritti in soddisfano i requisiti di questa pagina. anche se la connessione viene effettuata dall'indirizzo IP esterno della VM di destinazione, il traffico rimane all'interno di Google Cloud e non viene inviato tramite tramite la rete internet pubblica.

Requisiti di rete

Devi soddisfare i seguenti requisiti per accedere alle API e ai servizi Google da una VM con un indirizzo IP esterno:

  • Se vuoi connetterti alle API e ai servizi Google utilizzando IPv6, devi soddisfare entrambi i requisiti:

Riepilogo delle opzioni di configurazione

La tabella seguente riassume i diversi modi in cui puoi configurare Accesso privato Google. Per informazioni più dettagliate sulla configurazione, consulta Configurazione di rete.

Opzione dominio Configurazione DNS Configurazione del routing Configurazione del firewall
Domini predefiniti Non è richiesta alcuna configurazione DNS speciale.

Assicurati che la tua rete VPC possa instradare il traffico agli intervalli di indirizzi IP che e vengono utilizzati dalle API e dai servizi Google.

  • Configurazione di base: conferma di avere route predefinite con hop successivo default-internet-gateway e una destinazione intervallo di 0.0.0.0/0 (per il traffico IPv4) e ::/0 (per IPv6 traffico, se necessario). Crea le route se non sono presenti.
  • Configurazione personalizzata: crea route per Intervalli di indirizzi IP utilizzati dalle API e dai servizi Google.

Assicurati che le regole firewall consentano il traffico in uscita verso Intervalli di indirizzi IP utilizzati dalle API e dai servizi Google.

La regola firewall di autorizzazione in uscita predefinita consente questo traffico, se non esiste una priorità più elevata che la blocca.

private.googleapis.com

Configura i record DNS in una zona DNS privata da inviare richieste ai seguenti indirizzi IP:

Per il traffico IPv4:

  • 199.36.153.8/30

Per il traffico IPv6:

  • 2600:2d00:0002:2000::/64

Assicurati che la rete VPC abbia route ai seguenti intervalli IP:

Per il traffico IPv4:

  • 199.36.153.8/30
  • 34.126.0.0/18

Per il traffico IPv6:

  • 2600:2d00:0002:2000::/64
  • 2001:4860:8040::/42

Assicurati che le regole firewall consentano il traffico in uscita verso i seguenti intervalli IP:

Per il traffico IPv4:

  • 199.36.153.8/30
  • 34.126.0.0/18

Per il traffico IPv6:

  • 2600:2d00:0002:2000::/64
  • 2001:4860:8040::/42
restricted.googleapis.com

Configura i record DNS per inviare richieste ai seguenti indirizzi IP:

Per il traffico IPv4:

  • 199.36.153.4/30

Per il traffico IPv6:

  • 2600:2d00:0002:1000::/64

Assicurati che la rete VPC abbia route ai seguenti intervalli IP:

Per il traffico IPv4:

  • 199.36.153.4/30
  • 34.126.0.0/18

Per il traffico IPv6:

  • 2600:2d00:0002:1000::/64
  • 2001:4860:8040::/42

Assicurati che le regole firewall consentano il traffico in uscita verso i seguenti intervalli IP:

Per il traffico IPv4:

  • 199.36.153.4/30
  • 34.126.0.0/18

Per il traffico IPv6:

  • 2600:2d00:0002:1000::/64
  • 2001:4860:8040::/42

Configurazione di rete

Questa sezione descrive i requisiti di rete di base che devi soddisfare per per una VM nella tua rete VPC per accedere alle API e ai servizi Google.

Opzioni dominio

Scegli il dominio che vuoi utilizzare per accedere alle API e ai servizi Google.

L'IP virtuale private.googleapis.com e restricted.googleapis.com (VIP) supportano solo i protocolli basati su HTTP su TCP (HTTP, HTTPS e HTTP/2). Tutti gli altri tra cui MQTT e ICMP, non sono supportati.

Intervalli di indirizzi IP e di dominio Servizi supportati Esempio di utilizzo

Domini predefiniti.

Tutti i nomi di dominio per le API e i servizi Google ad eccezione di private.googleapis.com e restricted.googleapis.com.

Vari intervalli di indirizzi IP: puoi determinare un insieme di intervalli IP contenenti gli indirizzi possibili utilizzati dai domini predefiniti con riferimento Indirizzi IP per predefiniti domini.

Abilita l'accesso API alla maggior parte delle API e dei servizi Google indipendentemente da se sono supportate dai Controlli di servizio VPC. Include l'accesso API a Google Maps, Google Ads e Google Cloud. Include le applicazioni web di Google Workspace come Gmail e Documenti Google, 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

2600:2d00:0002:2000::/64

Abilita l'accesso API alla maggior parte delle API e dei servizi Google indipendentemente da se sono supportate dai Controlli di servizio VPC. Include l'accesso API a Google Maps, Google Ads, Google Cloud e la maggior parte delle altre API di Google, tra cui l'elenco che segue. Non supporta Google Workspace per il web applicazioni come Gmail e Documenti Google. Non supporta nessuna siti web interattivi.

Nomi di dominio corrispondenti:

  • accounts.google.com (solo i percorsi necessari per l'autenticazione OAuth)
  • *.aiplatform-notebook.cloud.google.com
  • *.aiplatform-notebook.googleusercontent.com
  • appengine.google.com
  • *.appspot.com
  • *.backupdr.cloud.google.com
  • backupdr.cloud.google.com
  • *.backupdr.googleusercontent.com
  • backupdr.googleusercontent.com
  • *.cloudfunctions.net
  • *.cloudproxy.app
  • *.composer.cloud.google.com
  • *.composer.googleusercontent.com
  • *.datafusion.cloud.google.com
  • *.datafusion.googleusercontent.com
  • *.dataproc.cloud.google.com
  • dataproc.cloud.google.com
  • *.dataproc.googleusercontent.com
  • dataproc.googleusercontent.com
  • dl.google.com
  • gcr.io o *.gcr.io
  • *.googleapis.com
  • *.gstatic.com
  • *.kernels.googleusercontent.com
  • *.ltsapis.goog
  • *.notebooks.cloud.google.com
  • *.notebooks.googleusercontent.com
  • packages.cloud.google.com
  • pkg.dev o *.pkg.dev
  • pki.goog o *.pki.goog
  • *.run.app
  • source.developers.google.com
  • storage.cloud.google.com

Usa private.googleapis.com per accedere alle API e ai servizi Google utilizzando un set di indirizzi IP instradabili solo dall'interno di Google Cloud.

Scegli private.googleapis.com in queste circostanze:

  • Non utilizzi Controlli di servizio VPC.
  • Usi i Controlli di servizio VPC, ma devi anche accedere alle API di Google e servizi non supportati dai Controlli di servizio VPC.1

restricted.googleapis.com

199.36.153.4/30

2600:2d00:0002:1000::/64

Abilita l'accesso API a API di Google e supportati dai Controlli di servizio VPC.

Blocca l'accesso alle API e ai servizi Google che non supportano Controlli di servizio VPC. Non supporta le API Google Workspace o le applicazioni web di Google Workspace, come come Gmail e Documenti Google.

Usa restricted.googleapis.com per accedere alle API e ai servizi Google utilizzando un set di indirizzi IP instradabili solo dall'interno di Google Cloud.

Scegli restricted.googleapis.com quando solo richiedono l'accesso alle API e ai servizi Google che sono supportati Controlli di servizio VPC.

Il dominio restricted.googleapis.com non consente l'accesso alle API di Google e che non supportano Controlli di servizio VPC.1

1 Se devi limitare gli utenti solo alle API e ai servizi Google che supportano i Controlli di servizio VPC, restricted.googleapis.com, in quanto fornisce ulteriore mitigazione del rischio per i dati l'esfiltrazione dei dati. L'uso di restricted.googleapis.com nega l'accesso a API e servizi Google non supportati dai Controlli di servizio VPC. Consulta Impostazione di impostazioni private connettività nella documentazione Controlli di servizio VPC per ulteriori dettagli.

Supporto IPv6 per private.googleapis.com e restricted.googleapis.com

I seguenti intervalli di indirizzi IPv6 possono essere utilizzati per indirizzare il traffico da IPv6 alle API e ai servizi Google:

  • private.googleapis.com: 2600:2d00:0002:2000::/64
  • restricted.googleapis.com: 2600:2d00:0002:1000::/64

Valuta la possibilità di configurare gli indirizzi IPv6 se vuoi utilizzare il dominio private.googleapis.com o restricted.googleapis.com e hanno client che utilizzano indirizzi IPv6. I client IPv6 per cui sono configurati indirizzi IPv4 possono raggiungere le API e i servizi Google utilizzando gli indirizzi IPv4. Non tutti i servizi accettano traffico da client IPv6.

Configurazione DNS

Per la connettività alle API e ai servizi Google, puoi scegliere di inviare di pacchetti agli indirizzi IP associati a private.googleapis.com restricted.googleapis.com VIP. Per utilizzare un VIP, devi configurare il DNS in modo che le VM nei servizi di copertura della rete VPC, utilizzando gli indirizzi VIP anziché gli indirizzi IP pubblici.

Le sezioni seguenti descrivono come utilizzare le zone DNS per inviare pacchetti all'IP indirizzi IP associati al VIP scelto. Segui le istruzioni per tutti gli scenari che ti riguardano:

Quando configuri i record DNS per i VIP, utilizza solo gli indirizzi IP descritti nei passaggi successivi. Non combinare indirizzi da private.googleapis.com e restricted.googleapis.com VIP. Questo può possono causare errori intermittenti perché i servizi offerti sono diversi in base alla destinazione di un pacchetto.

Configura il DNS per googleapis.com

Crea una zona e dei record DNS per googleapis.com:

  1. Crea una zona DNS privata per googleapis.com. Prendi in considerazione la creazione di un zona privata di Cloud DNS che non ha uno scopo specifico.
  2. Nella zona googleapis.com, crea i seguenti record DNS privati per uno private.googleapis.com o restricted.googleapis.com, a seconda di quale che hai scelto di utilizzare.

    • Per private.googleapis.com:

      1. Crea un record A per private.googleapis.com che rimandi a seguenti indirizzi IP: 199.36.153.8, 199.36.153.9, 199.36.153.10, 199.36.153.11.

      2. Per connetterti alle API utilizzando indirizzi IPv6, configura anche un AAAA record per private.googleapis.com che punta a 2600:2d00:0002:2000::.

    • Per restricted.googleapis.com:

      1. Crea un record A per restricted.googleapis.com che rimandi a seguenti indirizzi IP: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7.

      2. Per connetterti alle API utilizzando indirizzi IPv6, crea anche un'AAAA record per restricted.googleapis.com che punta a 2600:2d00:0002:1000::.

    Per creare record DNS privati in Cloud DNS, consulta aggiungi un record.

  3. Nella zona googleapis.com, crea un record CNAME per *.googleapis.com che rimanda al dominio che hai configurato: private.googleapis.com oppure restricted.googleapis.com.

Configura il DNS per altri domini

Alcune API e alcuni servizi Google vengono forniti utilizzando nomi di dominio aggiuntivi, tra cui *.gcr.io, *.gstatic.com, *.pkg.dev, pki.goog e *.run.app. Fai riferimento alla tabella degli intervalli di indirizzi IP e domini in Opzioni di dominio per determinare se è possibile accedere ai servizi del dominio aggiuntivo utilizzando private.googleapis.com o restricted.googleapis.com. Quindi, per ciascuno dei domini aggiuntivi:

  1. Crea una zona DNS per DOMAIN (ad esempio, gcr.io). Se utilizzi Cloud DNS, assicurati che la zona si trovi nella zona nello stesso progetto della zona privata googleapis.com.

  2. In questa zona DNS, crea i seguenti record DNS privati per uno private.googleapis.com o restricted.googleapis.com, a seconda di quale che hai scelto di utilizzare.

    • Per private.googleapis.com:

      1. Crea un record A per DOMAIN che rimandi a quanto segue Indirizzi IP: 199.36.153.8, 199.36.153.9, 199.36.153.10, 199.36.153.11.

      2. Per connetterti alle API utilizzando indirizzi IPv6, crea anche un'AAAA record per DOMAIN che punta a 2600:2d00:0002:2000::.

    • Per restricted.googleapis.com:

      1. Crea un record A per DOMAIN che rimandi a quanto segue Indirizzi IP: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7.

      2. Per connetterti alle API utilizzando indirizzi IPv6, crea anche un'AAAA record per restricted.googleapis.com che punta a 2600:2d00:0002:1000::.

  3. Nella zona DOMAIN, crea un record CNAME per *.DOMAIN che punta a DOMAIN. Ad esempio, crea un record CNAME per *.gcr.io che rimandi a gcr.io.

Configura il DNS per i nomi di dominio personalizzati di Cloud Storage

Se utilizzi bucket Cloud Storage e invii richieste a un Nome di dominio personalizzato di Cloud Storage, configurazione dei record DNS per il nome di dominio Cloud Storage personalizzato verso cui puntare gli indirizzi IP per private.googleapis.com o restricted.googleapis.com sono non è sufficiente per consentire l'accesso ai bucket Cloud Storage.

Se vuoi inviare richieste a un nome di dominio personalizzato Cloud Storage, devi anche imposta l'intestazione Host della richiesta HTTP e l'SNI TLS su storage.googleapis.com Gli indirizzi IP per private.googleapis.com e restricted.googleapis.com non supportare nomi host Cloud Storage personalizzati nelle intestazioni host delle richieste HTTP e TLS SNI

Opzioni di routing

La rete VPC deve avere route appropriate i cui hop successivi vengono il gateway internet predefinito. Google Cloud non supporta il routing il traffico verso le API e i servizi Google attraverso altre istanze VM o . Nonostante siano chiamati gateway internet predefinito, i pacchetti inviati dalle VM della tua rete VPC alle API e ai servizi Google rimangono sulla rete di Google.

  • Se selezioni i domini predefiniti, le tue istanze VM si connettono alle API di Google e servizi usando un sottoinsieme dell'indirizzo IP esterno indirizzi IP. Questi indirizzi IP sono instradabili pubblicamente, rimane il percorso di una VM in una rete VPC a questi indirizzi all'interno della rete Google.

  • Google non pubblica su internet route verso nessuno degli indirizzi IP utilizzati dal private.googleapis.com o restricted.googleapis.com domini. Di conseguenza, questi domini sono accessibili solo dalle VM in una rete VPC oppure on-premise connessi a una rete VPC.

Se la tua rete VPC contiene un route il cui hop successivo è l'impostazione predefinita gateway internet, puoi usare la route per accedere alle API e ai servizi Google, senza dover creare route personalizzate. Consulta la sezione Percorsi con un valore predefinito route per i dettagli.

Se hai sostituito un percorso predefinito (destinazione 0.0.0.0/0 o ::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.

Se la tua rete VPC non ha una route predefinita IPv6, non usufruirà della connettività IPv6 alle API e ai servizi Google. Aggiungi una route predefinita IPv6 per consentire Connettività IPv6.

Routing con un percorso predefinito

Ogni rete VPC contiene una route predefinita IPv4 (0.0.0.0/0) quando viene creato. Se abiliti gli indirizzi IPv6 esterni su una subnet, a quel VPC viene aggiunta la route predefinita IPv6 generata dal sistema (::/0) in ogni rete.

Le route predefinite forniscono un percorso degli indirizzi IP per le seguenti destinazioni:

  • I domini predefiniti.

  • private.googleapis.com: 199.36.153.8/30 e 2600:2d00:0002:2000::/64.

  • restricted.googleapis.com: 199.36.153.4/30 e 2600:2d00:0002:1000::/64.

Per verificare la configurazione di una route predefinita in una data rete, segui questi passaggi indicazioni stradali.

Console

  1. Nella console Google Cloud, vai alla pagina Route.

    Vai a Routes

  2. Filtra l'elenco di route per visualizzare solo quelle della rete da esaminare.

  3. Cerca una route la cui destinazione è 0.0.0.0/0 per il traffico IPv4. ::/0 per il traffico IPv6 e il cui hop successivo è gateway internet predefinito.

gcloud

Usa il seguente comando gcloud, 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 Aggiunta di una route statica percorso.

Se devi creare una route IPv6 predefinita sostitutiva, consulta Aggiunta di una route IPv6 route predefinita.

Routing personalizzato

In alternativa a una route predefinita, puoi usare route statiche personalizzate, con una destinazione più specifica e ognuna che utilizza il gateway internet predefinito nell'hop successivo. Il numero di route necessarie e i relativi indirizzi IP di destinazione dipendono dal dominio che scegli.

Inoltre, ti consigliamo di aggiungere percorsi per 34.126.0.0/18 e 2001:4860:8040::/42. Per ulteriori informazioni, consulta il Riepilogo di opzioni di configurazione.

Per verificare la configurazione delle route personalizzate per le API e i servizi Google in un rete specifica, segui queste istruzioni.

Console

  1. Nella console Google Cloud, vai alla pagina Route.

    Vai a Routes

  2. Utilizza il campo di testo Filtra tabella per filtrare l'elenco delle route utilizzando i seguenti criteri, sostituendo NETWORK_NAME con il nome della tua rete VPC.

    • Rete: NETWORK_NAME
    • Tipo di hop successivo: default internet gateway
  3. Esamina la colonna Intervallo IP di destinazione per ogni route. Se scegli i domini predefiniti, verifica la presenza di diverse route statiche personalizzate, una ogni intervallo di indirizzi IP utilizzato dal dominio predefinito. Se hai scelto private.googleapis.com o restricted.googleapis.com, cerca per l'intervallo IP di quel dominio.

gcloud

Usa il seguente comando gcloud, 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 --format flag. Cerca nella colonna DEST_RANGE la destinazione di ogni percorso. Se hai scelto i domini predefiniti, verifica la presenza di diverse una per ogni intervallo di indirizzi IP usato per impostazione predefinita dominio. Se hai scelto private.googleapis.com o restricted.googleapis.com, cerca l'intervallo IP di quel dominio.

Se è necessario creare route, consulta Aggiunta di una route statica percorso.

Configurazione del firewall

La configurazione del firewall della rete VPC deve consentire l'accesso dalle VM agli indirizzi IP usati dalle API e dai servizi Google. Lo schema implicito La regola allow egress soddisfa questo requisito.

In alcune configurazioni 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 crea una regola firewall di autorizzazione in uscita la cui priorità è superiore a quella in uscita regola di negazione per ogni intervallo di indirizzi IP utilizzato dal dominio scelto per le API e i servizi Google.

Inoltre, ti consigliamo di includere 34.126.0.0/18 e 2001:4860:8040::/42 nella regola firewall di autorizzazione in uscita. Per ulteriori informazioni informazioni, consulta Riepilogo delle opzioni di configurazione.

Per creare regole firewall, consulta la sezione Creazione di un firewall. . Puoi limitare le VM a cui vengono applicate le regole firewall quando definisci il target di ogni regola di autorizzazione in uscita.

Indirizzi IP per i domini predefiniti

Questa sezione descrive come creare un elenco di intervalli di indirizzi IP di dominio predefiniti utilizzati API e servizi Google, come *.googleapis.com e *.gcr.io. Questi vengono allocati in modo dinamico e spesso, quindi non è possibile definire intervalli IP specifici per i singoli servizi o API. Per mantenere un elenco accurato, configura l'automazione per eseguire lo script ogni giorno. Per alternative alla gestione di un elenco di intervalli di indirizzi IP, valuta la possibilità di utilizzare private.googleapis.com VIP o Private Service Connect.

  • Google pubblica l'elenco completo degli intervalli IP che rende disponibili utenti su internet in goog.json.

  • Google pubblica inoltre un elenco di indirizzi IP esterni globali e a livello di regione disponibili per i clienti alle risorse Google Cloud cloud.json.

Gli indirizzi IP utilizzati dai domini predefiniti per le API e i servizi Google sono adatti all'interno dell'elenco di intervalli calcolato rimuovendo tutti gli intervalli in cloud.json da quelli di goog.json. Questi elenchi vengono aggiornati di frequente.

Puoi utilizzare il seguente script Python per creare un elenco di intervalli di indirizzi IP che includono quelli utilizzati dai domini predefiniti per le API e i servizi Google.

Per informazioni sull'esecuzione di questo script, consulta Come vengono eseguiti.

from __future__ import print_function

import json

try:
    from urllib import urlopen
except ImportError:
    from urllib.request import urlopen
    from urllib.error import HTTPError

import netaddr

IPRANGE_URLS = {
    "goog": "https://www.gstatic.com/ipranges/goog.json",
    "cloud": "https://www.gstatic.com/ipranges/cloud.json",
}


def read_url(url):
    try:
        return json.loads(urlopen(url).read())
    except (IOError, HTTPError):
        print("ERROR: Invalid HTTP response from %s" % url)
    except json.decoder.JSONDecodeError:
        print("ERROR: Could not parse HTTP response from %s" % url)


def get_data(link):
    data = read_url(link)
    if data:
        print("{} published: {}".format(link, data.get("creationTime")))
        cidrs = netaddr.IPSet()
        for e in data["prefixes"]:
            if "ipv4Prefix" in e:
                cidrs.add(e.get("ipv4Prefix"))
            if "ipv6Prefix" in e:
                cidrs.add(e.get("ipv6Prefix"))
        return cidrs


def main():
    cidrs = {group: get_data(link) for group, link in IPRANGE_URLS.items()}
    if len(cidrs) != 2:
        raise ValueError("ERROR: Could process data from Google")
    print("IP ranges for Google APIs and services default domains:")
    for ip in (cidrs["goog"] - cidrs["cloud"]).iter_cidrs():
        print(ip)


if __name__ == "__main__":
    main()