In questa pagina vengono illustrati i requisiti e le opzioni di configurazione della rete dei cluster Dataproc.
Requisiti di connettività di Dataproc
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
default-allow-internal
della rete VPC default
soddisfa i requisiti di connettività dei cluster Dataproc
e consente il traffico in entrata 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 nella retedefault
viene bloccato dalla regola di negazione in entrata implicita.Se elimini la regola firewall
default-allow-internal
o non utilizzi la rete VPCdefault
, devi creare una regola che soddisfi i requisiti di connettività di Dataproc e poi applicarla alla rete VPC del tuo cluster.
Best practice: crea una regola firewall in entrata 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 per tag di rete o account di servizio.
Crea una regola firewall in entrata
Se tu o l'amministratore della rete o della sicurezza create una regola firewall in entrata da applicare alla rete VPC di un cluster Dataproc, questa deve avere le seguenti caratteristiche:
Il parametro sources specifica le origini dei pacchetti. Tutte le VM dei cluster Dataproc devono poter 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 tutte le VM nella rete VPC oppure puoi identificare le VM in base a intervallo di indirizzi IP, tag di destinazione o 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 una corretta esecuzione dei servizi.
Esegui la diagnostica delle regole firewall VPC
Per controllare i pacchetti non elaborati da regole firewall con priorità più alta, puoi creare due regole firewall di negazione a bassa priorità (65534). A differenza delle regole firewall implicite, puoi abilitare il logging delle regole firewall per ognuna di queste regole a bassa priorità:
Una regola di negazione in entrata (origini
0.0.0.0/0
, tutti i protocolli, tutti i target nella rete VPC)Una regola di negazione in uscita (destinazioni
0.0.0.0/0
, tutti i protocolli, tutti i target nella rete VPC)
Con questo logging delle regole a bassa priorità e delle regole firewall, puoi registrare i pacchetti non elaborati con regole firewall a priorità più elevata e potenzialmente più specifiche. Inoltre, queste due regole a bassa priorità sono in linea con le best practice di sicurezza implementando una strategia di "ritiro pacchetti finali".
Esamina i log delle regole firewall per queste regole al fine di determinare se devi creare o modificare regole con priorità più elevata per consentire i pacchetti. Ad esempio, l'eliminazione dei pacchetti inviati tra le VM del cluster Dataproc può indicare che è necessario modificare le regole del firewall.
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à normativa, il cluster, la relativa rete VPC e i relativi bucket Cloud Storage devono essere contenuti all'interno dell'ambiente Assured Workloads.
Crea un cluster che utilizza la tua rete VPC
Google Cloud CLI
Utilizza gcloud dataproc clusters create
con il flag ‑‑network
o ‑‑subnet
per creare un cluster in una subnet nella 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 e a ogni subnet viene assegnato il nome della rete, puoi
passare il nome di 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 delle risorse 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 subnetUri
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, }, ...
Console
Seleziona la tua rete nella sezione Configurazione di rete nel riquadro Personalizza cluster. Dopo aver scelto la rete, il selettore Subnet mostra le subnet disponibili nella regione selezionata per il cluster.
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 è definito progetto di servizio.
Trova il numero di progetto del cluster Dataproc:
- Apri la pagina Impostazioni IAM e amministrazione nella console Google 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 configurare il VPC condiviso.
Assicurati che il progetto host del VPC condiviso sia abilitato.
Collega il progetto con il cluster Dataproc al progetto host.
Segui le istruzioni in questo passaggio secondario per configurare entrambi i seguenti account di servizio con il ruolo Utente di rete per il progetto host:
- Account di servizio dell'agente di servizio Dataproc:
service-[project-number]@dataproc-accounts.iam.gserviceaccount.com
- Account di servizio API di Google:
[project-number]@cloudservices.gserviceaccount.com
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. Ripeti questi passaggi per aggiungere entrambi gli account di servizio:
Aggiungi entità: inserisci l'account di servizio.
Assegna ruoli: inserisci "Rete Compute" nella casella del filtro, quindi seleziona il ruolo Utente di rete Compute.
Fai clic su Salva.
- Account di servizio dell'agente di servizio Dataproc:
Quando entrambi gli account di servizio hanno il ruolo
Network User
per il progetto host, crea un cluster che utilizzi la rete VPC condivisa.
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 è definito progetto di servizio.
Trova il numero di progetto del cluster Dataproc:
- Apri la pagina Impostazioni IAM e amministrazione nella console Google 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 configurare il VPC condiviso.
Assicurati che il progetto host del VPC condiviso sia abilitato.
Collega il progetto con il cluster Dataproc al progetto host.
Segui le istruzioni in questo passaggio per configurare entrambi i seguenti account di servizio con il ruolo Utente di rete per il progetto host:
- Account di servizio dell'agente di servizio Dataproc:
service-[project-number]@dataproc-accounts.iam.gserviceaccount.com
- Account di servizio API di Google:
[project-number]@cloudservices.gserviceaccount.com
Apri la pagina Reti VPC nella console Google Cloud.
Utilizza il selettore di progetti per selezionare il progetto host.
Fai clic sulla rete che contiene la subnet utilizzata dal 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 delle informazioni non è aperto, fai clic su Mostra riquadro informazioni.
Segui questi passaggi per ogni account di servizio:
Nel riquadro informazioni, fai clic su Aggiungi entità.
Compila il modulo per la concessione dell'accesso:
Aggiungi entità: inserisci l'account di servizio.
Assegna ruoli: inserisci "Rete Compute" nella casella del filtro, quindi seleziona il ruolo Utente di rete Compute.
Fai clic su Salva.
- Account di servizio dell'agente di servizio Dataproc:
Quando entrambi gli account di servizio hanno il ruolo
Network User
per il progetto host, crea un cluster che utilizzi la subnet VPC condivisa.
Crea un cluster Dataproc solo con indirizzi IP interni
Puoi creare un cluster Dataproc isolato dalla rete internet pubblica le cui istanze VM comunicano su una subnet IP privata (alle VM del cluster non sono assegnati indirizzi IP pubblici). Per farlo, la subnet deve avere l'accesso privato Google abilitato per consentire ai nodi cluster di accedere alle API e ai servizi Google, ad esempio Cloud Storage, dagli IP interni.
Interfaccia a riga di comando gcloud
Puoi creare un cluster Dataproc solo con indirizzi IP interni utilizzando il comando gcloud dataproc clusters create
con il flag ‑‑no-address
.
Usa i flag ‐‐no-address e ‐‐network:
Usa il flag ‑‑no-address
con il flag
‑‑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:
Usa 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
l'intero percorso 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
come parte di una richiesta
clusters.create
per abilitare 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 }, ...
Console
Puoi creare un cluster Dataproc con accesso privato Google abilitato dalla pagina Crea un cluster di Dataproc nella console Google Cloud. Fai clic su Solo IP interno nel riquadro Personalizza cluster per abilitare questa funzionalità per il cluster.
Poiché, per impostazione predefinita, i cluster solo IP interno non hanno accesso a internet, i job che scaricano le dipendenze da internet, ad esempio quelli che scaricano i pacchetti di dipendenze Spark da Maven Central, avranno esito negativo. Esistono diverse soluzioni per evitare 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 scaricare le dipendenze 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.
Quando utilizzi le reti Controlli di servizio VPC con i cluster Dataproc, tieni presente le seguenti limitazioni e strategie:
Per installare componenti all'esterno del perimetro dei Controlli di servizio VPC, crea un'immagine personalizzata Dataproc che preinstalli i componenti, quindi crea il cluster utilizzando l'immagine personalizzata.
Consulta la procedura speciale di Dataproc per la protezione tramite i Controlli di servizio VPC.