Questa pagina illustra i requisiti e le opzioni di configurazione della rete del cluster Dataproc.
Requisiti di connettività di Dataproc
Il cluster Dataproc deve trovarsi in una rete VPC che soddisfi i requisiti di route e firewall per accedere in modo sicuro alle API di Google e ad altre risorse.
Requisiti del percorso
L'agente Dataproc in esecuzione sulle VM del cluster ha bisogno di una route per internet per accedere all'API di controllo Dataproc per ottenere gli stati dei job e dei report. Una volta create, le reti VPC contengono una route predefinita generata dal sistema per internet. L'eliminazione della route predefinita per internet non è consigliata. Utilizza invece i firewall per controllare l'accesso alla rete. Tieni presente che anche i cluster solo con IP interni necessitano di questa route predefinita per internet per accedere alle API di controllo di Dataproc e ad altri servizi Google, come Cloud Storage, ma il loro traffico non esce dai data center di Google.
Requisiti del firewall
Le macchine virtuali (VM) del cluster Dataproc devono essere in grado di comunicare tra loro utilizzando i protocolli ICMP, TCP (tutte le porte) e UDP (tutte le porte).
La regola firewall della rete VPC default
default-allow-internal
soddisfa i requisiti di connettività del cluster Dataproc
e consente l'ingresso dall'intervallo di origine 10.128.0.0/9
da
tutte le VM sulla rete VPC come segue:
Regola | Rete | Direzione | Priorità | Intervallo di origine | Protocolli:porte |
---|---|---|---|---|---|
default-allow-internal |
default |
In entrata | 65534 |
10.128.0.0/9 |
tcp:0-65535 ,udp:0-65535 ,icmp |
Se elimini la regola firewall
default-allow-internal
, il traffico in entrata sulla retedefault
viene bloccato dalla regola di immissione di rifiuto implicita.Se elimini la regola firewall
default-allow-internal
o non utilizzi la rete VPCdefault
, devi creare una regola personalizzata che soddisfi i requisiti di connettività di Dataproc e poi applicarla alla rete VPC del tuo cluster.
Best practice: crea una regola firewall di ingresso per la rete VPC del cluster che consenta la connettività in entrata solo tra le VM del cluster utilizzando un intervallo IP di origine o identificando le VM del cluster tramite tag di rete o account di servizio.
Creare una regola firewall in entrata
Se tu o l'amministratore di rete o della sicurezza create una regola del firewall in entrata da applicare alla rete VPC di un cluster Dataproc, deve avere le seguenti caratteristiche:
Il parametro sources specifica le sorgenti per i 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, ai tag di origine o agli account di servizio associati alle VM.
Il target della regola deve identificare le VM del cluster. La destinazione può essere costituita da tutte le VM nella rete VPC oppure puoi identificare le VM in base all'intervallo di indirizzi IP, al tag target o all'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 in esecuzione su più porte. La specifica di tutte le porte consente l'esecuzione dei servizi.
Diagnostica delle regole firewall VPC
Per controllare i pacchetti non elaborati dalle regole firewall con priorità più elevata, puoi creare due regole firewall di rifiuto con priorità bassa (65534). A differenza delle regole firewall implicite, puoi attivare il registro delle regole firewall su ciascuna di queste regole con priorità bassa:
Una regola di rifiuto in entrata (origini
0.0.0.0/0
, tutti i protocolli, tutti i target nella rete VPC)Una regola di rifiuto 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 dalle regole firewall con priorità più elevata e potenzialmente più specifiche. Queste due regole con priorità bassa sono in linea anche con le best practice di sicurezza grazie all'implementazione di una strategia di "drop dei pacchetti finali".
Esamina i log delle regole del firewall per queste regole per determinare se devi creare o modificare regole di priorità più elevata per consentire i pacchetti. Ad esempio, se i pacchetti inviati tra le VM del cluster Dataproc vengono eliminati, questo può indicare che le regole del firewall devono essere modificate.
Crea una rete VPC
Anziché utilizzare la rete VPC default
, puoi creare la tua 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à alle normative, il cluster, la sua rete VPC e i suoi bucket Cloud Storage devono essere contenuti nell'ambiente Assured Workloads.
Crea un cluster che utilizza la tua rete VPC
Console
Seleziona la tua rete nella sezione Configurazione di rete del 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 ciascuna subnet viene assegnato il nome della rete, quindi puoi passare 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 utilizzi una subnet della 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
all'interno 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, }, ...
Creare 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 è definito progetto di servizio.
Trova il numero del progetto del cluster Dataproc:
- Apri la pagina IAM e amministrazione Impostazioni nella console Google Cloud. Seleziona il progetto in cui creerai il cluster Dataproc. Copia l'ID progetto.
Un entità con il ruolo Amministratore VPC condivisa deve eseguire i seguenti passaggi. Per informazioni di contesto, consulta le istruzioni per la configurazione del VPC condiviso.
Assicurati che il progetto host 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 dei progetti per selezionare il nuovo progetto host.
Fai clic su Concedi l'accesso.
Compila il modulo Concedi l'accesso:
Aggiungi entità: inserisci l'account di servizio.
Assegna ruoli: inserisci "Rete Compute" nella casella del filtro, quindi seleziona il ruolo Utente rete Compute.
Fai clic su Salva.
Dopo che l'account di servizio ha il ruolo
Network User
per il progetto host, crea un cluster che utilizza la rete VPC condiviso.
Creare un cluster che utilizza una sottorete 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 è definito progetto di servizio.
Trova il numero del progetto del cluster Dataproc:
- Apri la pagina IAM e amministrazione Impostazioni nella console Google Cloud. Seleziona il progetto in cui creerai il cluster Dataproc. Copia l'ID progetto.
Un entità con il ruolo Amministratore VPC condivisa deve eseguire i seguenti passaggi. Per informazioni di contesto, consulta le istruzioni per la configurazione del VPC condiviso.
Assicurati che il progetto host 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.
Usa il selettore dei progetti per selezionare il progetto host.
Fai clic sulla rete che contiene la subnet che verrà utilizzata dal tuo cluster Dataproc.
Nella pagina Dettagli rete VPC, fai clic sulla casella di controllo accanto al nome della sottorete 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 accesso:
Aggiungi entità: inserisci l'account di servizio.
Assegna ruoli: inserisci "Rete Compute" nella casella del filtro, quindi seleziona il ruolo Utente rete Compute.
Fai clic su Salva.
Dopo che l'account di servizio ha il ruolo
Network User
per il progetto host, crea un cluster che utilizza la subnet VPC condiviso.
Creare un cluster Dataproc con solo indirizzi IP interni
Puoi creare un cluster Dataproc isolato dall'internet pubblico le cui istanze VM comunicano tramite una sottorete IP privata (alle VM del cluster non vengono assegnati indirizzi IP pubblici). Per farlo, la sottorete deve averel'accesso privato Google abilitato per consentire ai nodi del cluster di accedere alle API e ai servizi Google, comeCloud Storage, da indirizzi IP interni.
Console
Puoi creare un cluster Dataproc con accesso privato Google attivo 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 cluster.
L'opzioneInterfaccia a riga di comando gcloud
Puoi creare un cluster Dataproc con solo indirizzi IP interni utilizzando il comando gcloud dataproc clusters create
con il flag ‑‑no-address
.
Utilizza i flag ‑‑no-address e ‑‑network:
utilizza il flag ‑‑no-address
con il
‑‑network
per creare un cluster che utilizzerà
una subnet con lo stesso nome della rete nella regione
in cui viene creato il cluster.
gcloud dataproc clusters create CLUSTER_NAME \ --no-address \ --network NETWORK_NAME \ --region=REGION \ ... other args ...
Ad esempio, 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.
Utilizza i flag ‑‑no-address e ‑‑subnet:
utilizza il flag ‑‑no-address
con i 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 impostare il campo GceClusterConfig
internalIpOnly
su true
all'interno di una richiesta
clusters.create
per attivare 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 }, ...
Poiché per impostazione predefinita i cluster con solo IP interni non hanno accesso a internet, i job che scaricano le dipendenze da internet, ad esempio i job che scaricano i pacchetti delle dipendenze di Spark da Maven Central, non andranno a buon fine. Esistono diversi metodi per aggirare il problema:
Utilizza Cloud NAT per abilitare l'accesso del cluster a internet.
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 i componenti all'esterno del perimetro di Controlli di servizio VPC, crea un'immagine personalizzata Dataproc che preinstalla i componenti, quindi crea il cluster utilizzando l'immagine personalizzata.
Consulta la sezione Passaggi speciali per la protezione di Dataproc mediante i Controlli di servizio VPC.