Questa pagina descrive i requisiti e le opzioni di configurazione di rete del cluster Dataproc.
Requisiti di connettività di Dataproc
Il cluster Dataproc deve trovarsi in una rete Virtual Private Cloud che soddisfi i requisiti di route e firewall per accedere in modo sicuro alle API di Google e ad altre risorse.
Requisiti di route
Per stabilire la comunicazione tra l'agente Dataproc in esecuzione sulle VM del cluster e l'API di controllo Dataproc, la rete VPC del cluster Dataproc deve avere una route al gateway internet. Questo è necessario anche per i cluster solo con IP interno.
Per impostazione predefinita, i cluster con versione immagine Dataproc 2.2 e successive eseguono il provisioning di VM con indirizzi solo IP interni. Dataproc abilita automaticamente l'accesso privato Google (PGA) nella subnet del cluster per consentire alle VM del cluster con indirizzi IP interni di raggiungere le API e i servizi Google utilizzando una route predefinita generata dal sistema al gateway internet predefinito.
Regola | Tipo | Intervallo IP di destinazione | Priorità | Limiti di ambito | Hop successivo |
---|---|---|---|---|---|
default-route-[id] |
Statica | 0.0.0.0/0 |
1000 |
- | Gateway Internet predefinito |
PGA garantisce che il traffico del cluster non attraversi la rete internet pubblica e non esca dai data center di Google (vedi il diagramma di esempio di PGA).
L'eliminazione della route predefinita al gateway internet non è consigliata. Se vuoi controllare l'accesso alla rete a internet, utilizza invece regole o policy firewall.
Se hai eliminato la route predefinita al gateway internet, devi aggiungere una route predefinita. L'intervallo IP di destinazione deve essere 0.0.0.0/0
, poiché gli intervalli IP per l'API Dataproc Control non sono statici.
Requisiti del firewall
La rete VPC del cluster Dataproc deve consentire esplicitamente il seguente traffico:
Traffico avviato dalle VM del cluster Dataproc all'API di controllo Dataproc e ad altre VM del cluster Dataproc. Questo traffico è consentito per impostazione predefinita dalla regola implicita allow-all in uscita della rete VPC. Se hai aggiunto regole firewall per il traffico in uscita con priorità più alta, crea una regola firewall per il traffico in uscita consentito.
Il traffico di risposta dall'API Dataproc Control alle VM del cluster Dataproc è consentito per impostazione predefinita, a causa della statefulness del firewall di rete VPC.
Traffico ricevuto dalle VM del cluster Dataproc da altre VM del cluster Dataproc. Per impostazione predefinita, questo traffico verrà negato dalla regola firewall implicita per negare tutto il traffico in entrata della rete VPC. Devi creare una regola firewall di autorizzazione in entrata.
- Utilizza i tag di rete per le VM del cluster Dataproc in modo da limitare l'applicabilità delle regole firewall richieste solo alle VM del cluster Dataproc. Se non utilizzi i tag di rete, puoi specificare le destinazioni in base al account di servizio utilizzato per le VM del cluster. Altrimenti, puoi configurare le regole firewall da applicare a tutte le VM nella rete VPC.
- Per una connettività e un accesso alla rete più sicuri, utilizza tag sicuri anziché tag di rete per definire origini e destinazioni delle regole firewall.
Crea una regola firewall di autorizzazione in entrata
Se tu o il tuo amministratore di rete o della sicurezza create una regola firewall in entrata da applicare a una rete VPC del cluster Dataproc, questa deve avere le seguenti caratteristiche:
Il parametro sources specifica le origini dei pacchetti. Tutte le VM del cluster Dataproc devono essere in grado di comunicare tra loro. Puoi identificare le VM nel cluster in base all'intervallo di indirizzi IP (l'intervallo principale della subnet del cluster Dataproc), ai tag di rete o ai service account associati alle VM.
I target della regola devono identificare le VM del cluster. I target possono essere tutte le VM nella rete VPC oppure puoi identificare le VM in base al tag di rete di destinazione o al account di servizio di destinazione.
La regola deve includere i seguenti protocolli e porte:
- TCP (tutte le porte, da 0 a 65535)
- UDP (tutte le porte, da 0 a 65535)
- ICMP
Dataproc utilizza servizi eseguiti su più porte. La specifica di tutte le porte consente ai servizi di essere eseguiti correttamente.
La priorità della regola deve essere superiore a quella di qualsiasi regola firewall di negazione in entrata che si applica alle stesse origini e agli stessi target.
Crea una regola firewall di autorizzazione in uscita
Se tu o il tuo amministratore di rete o della sicurezza create una regola firewall di uscita da applicare a una rete VPC del cluster Dataproc, questa deve avere le seguenti caratteristiche:
Il parametro destinations specifica le destinazioni dei pacchetti. Tutte le VM del cluster Dataproc devono essere in grado di avviare il traffico tra loro e con l'API di controllo Dataproc. Poiché gli indirizzi IP dell'API Control non sono statici, la destinazione deve essere specificata in base all'intervallo IP
0.0.0.0/0
.I target della regola devono identificare le VM del cluster. I target possono essere tutte le VM nella rete VPC oppure puoi identificare le VM in base al tag di rete di destinazione o al account di servizio di destinazione.
La regola deve includere i seguenti protocolli e porte:
- TCP (tutte le porte, da 0 a 65535)
- UDP (tutte le porte, da 0 a 65535)
- ICMP
Dataproc utilizza servizi eseguiti su più porte. La specifica di tutte le porte consente ai servizi di essere eseguiti correttamente.
La priorità della regola deve essere superiore a quella di qualsiasi regola firewall di negazione dell'uscita che si applica alle stesse destinazioni e agli stessi target.
Diagnosticare le regole firewall della rete VPC
Per controllare i pacchetti non elaborati da regole firewall con priorità più alta, puoi creare le due regole firewall di negazione a bassa priorità (65534) riportate di seguito. A differenza delle regole firewall implicite, puoi attivare la registrazione delle regole firewall su ciascuna di queste regole a bassa priorità:
Una regola di negazione del traffico in entrata (origini
0.0.0.0/0
, tutti i protocolli, tutte le destinazioni nella rete VPC)Una regola di negazione del traffico in uscita (destinazioni
0.0.0.0/0
, tutti i protocolli, tutti i target nella rete VPC)
Con queste regole a bassa priorità e il logging delle regole firewall, puoi registrare i pacchetti non elaborati da regole firewall con priorità più alta e potenzialmente più specifiche. Queste due regole a bassa priorità sono in linea con le best practice di sicurezza implementando una strategia di "eliminazione finale dei pacchetti".
Esamina i log delle regole firewall per queste regole per determinare se vuoi creare o modificare regole con priorità più alta per consentire i pacchetti. Ad esempio, se i pacchetti inviati tra le VM del cluster Dataproc vengono eliminati, questo può indicare che le regole firewall devono essere modificate.
Crea una rete VPC
Anziché utilizzare la rete VPC default
, puoi creare una rete VPC in modalità automatica o personalizzata. Quando crei il cluster, associ la tua rete al cluster.
Ambiente Assured Workloads:quando utilizzi un ambiente Assured Workloads per la conformità normativa, il cluster, la sua rete VPC e i suoi bucket Cloud Storage devono essere contenuti all'interno dell'ambiente Assured Workloads.
Crea un cluster che utilizza la tua rete VPC
Console
Seleziona la tua rete nella sezione di configurazione della rete nel riquadro Personalizza cluster. Dopo aver scelto la rete, il selettore Subnet mostra le subnet disponibili nella regione selezionata per il cluster.
Google Cloud CLI
Utilizza
gcloud dataproc clusters create
con il flag ‑‑network
o ‑‑subnet
per creare un cluster in una subnet della tua rete.
Se utilizzi il flag ‑‑network, il cluster utilizzerà una subnet con lo stesso nome della rete specificata nella regione in cui viene creato il cluster.
--network example
. Poiché le reti automatiche vengono create
con subnet in ogni regione, a ogni subnet viene assegnato il nome della rete, puoi
trasferire il nome della rete VPC in modalità automatica al flag ‑‑network
.
Il cluster utilizzerà la subnet VPC in modalità automatica nella
regione specificata con il flag ‑‑region.
gcloud dataproc clusters create CLUSTER_NAME \ --network NETWORK_NAME \ --region=REGION \ ... other args ...
--subnet example
. Puoi utilizzare il flag ‑‑subnet
per creare un cluster che utilizza una subnet di rete VPC in modalità automatica o personalizzata nella
regione del cluster. Specifica il percorso completo della risorsa della subnet.
gcloud dataproc clusters create CLUSTER_NAMEW \ --subnet projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \ --region=REGION \ ... other args ...
API REST
Puoi specificare il campo networkUri o subnetworkUri
GceClusterConfig
come parte di una richiesta clusters.create.
Esempio
POST /v1/projects/my-project-id/regions/us-central1/clusters/ { "projectId": "PROJECT_ID", "clusterName": CLUSTER_NAME, "config": { "configBucket": "", "gceClusterConfig": { "subnetworkUri": SUBNET_NAME, }, ...
Crea un cluster che utilizza una rete VPC in un altro progetto
Un cluster Dataproc può utilizzare una rete VPC condivisa definita in un progetto host. Il progetto in cui viene creato il cluster Dataproc è denominato progetto di servizio.
Trova il numero di progetto del cluster Dataproc:
- Apri la pagina IAM e amministrazione > Impostazioni nella consoleGoogle Cloud . Seleziona il progetto in cui creerai il cluster Dataproc. Copia l'ID progetto.
Un'entità con il ruolo Amministratore VPC condiviso deve eseguire i seguenti passaggi. Per informazioni di base, consulta le istruzioni per la configurazione del VPC condiviso.
Assicurati che il progetto host del VPC condiviso sia abilitato.
Collega il progetto con il cluster Dataproc al progetto host.
Configura l'account di servizio dell'agente di servizio Dataproc (
service-[project-number]@dataproc-accounts.iam.gserviceaccount.com
) in modo che disponga del ruolo Utente di rete per il progetto host:Apri la pagina IAM e amministrazione nella console Google Cloud .
Utilizza il selettore di progetti per selezionare il nuovo progetto host.
Fai clic su Concedi l'accesso.
Compila il modulo Concedi l'accesso:
Aggiungi entità: inserisci il account di servizio.
Assegna ruoli: inserisci "Compute Network" nella casella del filtro, quindi seleziona il ruolo Utente rete Compute.
Fai clic su Salva.
Dopo che il account di servizio ha il ruolo
Network User
per il progetto host, crea un cluster che utilizza la rete VPC condiviso.
Crea un cluster che utilizza una subnet VPC in un altro progetto
Un cluster Dataproc può utilizzare una subnet VPC condivisa definita in un progetto host. Il progetto in cui viene creato il cluster Dataproc è denominato progetto di servizio.
Trova il numero di progetto del cluster Dataproc:
- Apri la pagina IAM e amministrazione > Impostazioni nella consoleGoogle Cloud . Seleziona il progetto in cui creerai il cluster Dataproc. Copia l'ID progetto.
Un'entità con il ruolo Amministratore VPC condiviso deve eseguire i seguenti passaggi. Per informazioni di base, consulta le istruzioni per la configurazione del VPC condiviso.
Assicurati che il progetto host del VPC condiviso sia abilitato.
Collega il progetto con il cluster Dataproc al progetto host.
Configura l'account di servizio dell'agente di servizio Dataproc (
service-[project-number]@dataproc-accounts.iam.gserviceaccount.com
) in modo che disponga del ruolo Utente di rete per il progetto host:Apri la pagina Reti VPC nella console Google Cloud .
Utilizza il selettore dei progetti per selezionare il progetto host.
Fai clic sulla rete che contiene la subnet che utilizzerà il tuo cluster Dataproc.
Nella pagina Dettagli rete VPC, fai clic sulla casella di controllo accanto al nome della subnet che verrà utilizzata dal cluster.
Se il riquadro informazioni non è aperto, fai clic su Mostra riquadro informazioni.
Esegui i seguenti passaggi per ogni account di servizio:
Nel riquadro Informazioni, fai clic su Aggiungi entità.
Compila il modulo Concedi l'accesso:
Aggiungi entità: inserisci il account di servizio.
Assegna ruoli: inserisci "Compute Network" nella casella del filtro, quindi seleziona il ruolo Utente rete Compute.
Fai clic su Salva.
Dopo che il account di servizio ha il ruolo
Network User
per il progetto host, crea un cluster che utilizza la subnet VPC condiviso.
Crea un cluster solo con IP interni
Questa sezione si applica ai cluster con versione dell'immagine precedente a 2.2
. Le VM del cluster con indirizzi solo IP interni sono abilitate per impostazione predefinita quando crei cluster Dataproc con versioni immagine 2.2 e successive.
Puoi utilizzare la console Google Cloud , gcloud CLI o l'API Dataproc per creare un cluster solo con indirizzi IP interni. Tieni presente che Dataproc abilita automaticamente l'accesso privato Google nella subnet regionale del cluster quando è abilitato solo l'IP interno per consentire le connessioni ai servizi e alle API di Google.
Console
Puoi creare un cluster Dataproc con indirizzi IP interni solo dalla pagina Crea un cluster di Dataproc nella console Google Cloud . Fai clic su Solo IP interno nel riquadro Personalizza cluster per attivare questa funzionalità per il tuo cluster.
Interfaccia a riga di comando gcloud
Puoi creare un cluster con solo indirizzi IP interni
utilizzando il comando
gcloud dataproc clusters create
con il flag ‑‑no-address
.
gcloud dataproc clusters create CLUSTER_NAME \ --no-address \ --network NETWORK_NAME \ --region=REGION \ ... other args ...
Poiché le reti automatiche vengono create con subnet in ogni regione con lo stesso nome della rete automatica, puoi passare il nome della rete automatica a ‑‑network flag
per creare un cluster che utilizzerà la subnet automatica nella regione del cluster.
In alternativa, puoi utilizzare il flag ‑‑subnet
per creare un cluster che utilizzerà una subnet automatica o personalizzata nella regione in cui verrà creato il cluster. Passa il flag ‑‑subnet
il percorso completo della risorsa della subnet.
gcloud dataproc clusters create cluster-name \ --no-address \ --subnet projects/project-id/regions/region/subnetworks/subnetwork-name \ --region=region \ ... other args ...
API REST
Puoi utilizzare il campo
GceClusterConfig.internalIpOnly
nell'ambito di una richiesta
clusters.create
per creare un cluster che abiliti solo gli indirizzi IP interni.
Esempio:
POST /v1/projects/my-project-id/regions/us-central1/clusters/ { "projectId": "my-project-id", "clusterName": "example-cluster", "config": { "configBucket": "", "gceClusterConfig": { "subnetworkUri": "custom-subnet-1", "zoneUri": "us-central1-b", "internalIpOnly": true }, ...
Scaricare le dipendenze con cluster solo con IP interno
Per impostazione predefinita, i cluster solo con IP interni non hanno accesso a internet. Pertanto, i job che scaricano dipendenze da internet, ad esempio i job che scaricano pacchetti di dipendenze Spark da Maven Central, non andranno a buon fine. Esistono diverse soluzioni alternative per evitare il problema:
Utilizza Cloud NAT per consentire l'accesso a internet al cluster.
Crea un'immagine personalizzata che includa le dipendenze (ad esempio, i pacchetti di dipendenze Spark in
/usr/lib/spark/jars/
).Carica le dipendenze in un bucket Cloud Storage, quindi utilizza un'azione di inizializzazione per scaricarle dal bucket durante la creazione del cluster.
Reti Dataproc e Controlli di servizio VPC
Con Controlli di servizio VPC, gli amministratori possono definire un perimetro di sicurezza intorno alle risorse dei servizi gestiti da Google per controllare le comunicazioni con quei servizi.
Tieni presente le seguenti limitazioni e strategie quando utilizzi le reti Controlli di servizio VPC con i cluster Dataproc:
Per installare componenti al di fuori del perimetro Controlli di servizio VPC, crea un'immagine personalizzata Dataproc che preinstalli i componenti, quindi crea il cluster utilizzando l'immagine personalizzata.
Consulta Passaggi speciali di Dataproc per la protezione tramite i Controlli di servizio VPC.
Passaggi successivi
- Per risolvere i problemi relativi alla creazione del cluster Dataproc, consulta Risolvere i problemi relativi alla creazione del cluster.