Caso d'uso: controllo dell'accesso per un cluster Dataproc in un altro progetto

Questa pagina descrive la gestione del controllo dell'accesso quando esegui il deployment e l'esecuzione di una pipeline che utilizza cluster Dataproc in un altro progetto Google Cloud.

Scenario

Per impostazione predefinita, quando un'istanza di Cloud Data Fusion viene avviata in un progetto Google Cloud, esegue il deployment e le pipeline utilizzando i cluster Dataproc all'interno dello stesso progetto. Tuttavia, la tua organizzazione potrebbe richiedere l'utilizzo dei cluster in un altro progetto. Per questo caso d'uso, devi gestire l'accesso tra i progetti. La pagina seguente descrive come modificare le configurazioni di base di riferimento (predefinita) e applicare i controlli di accesso appropriati.

Prima di iniziare

Per comprendere le soluzioni in questo caso d'uso, è necessario il seguente contesto:

Presupposti e ambito

Questo caso d'uso prevede i seguenti requisiti:

  • Un'istanza di Cloud Data Fusion privata. Per motivi di sicurezza, un'organizzazione può richiedere l'utilizzo di questo tipo di istanza.
  • Un'origine e un sink BigQuery.
  • Controllo dell'accesso con IAM, non con controllo dell'accesso basato sui ruoli (RBAC).

Soluzione

Questa soluzione mette a confronto l'architettura e la configurazione specifiche per i casi d'uso e di base.

Architettura

I seguenti diagrammi confrontano l'architettura del progetto per la creazione di un'istanza di Cloud Data Fusion e l'esecuzione di pipeline quando utilizzi i cluster nello stesso progetto (base di riferimento) e in un progetto diverso tramite il VPC del progetto tenant.

Architettura di riferimento

Questo diagramma mostra l'architettura di base dei progetti:

Architettura di progetti tenant, clienti e Dataproc in Cloud Data Fusion.

Per la configurazione di base, crei un'istanza di Cloud Data Fusion privata ed esegui una pipeline senza personalizzazioni aggiuntive:

  • Utilizzi uno dei profili di computing integrati
  • L'origine e il sink si trovano nello stesso progetto dell'istanza
  • Non sono stati concessi ruoli aggiuntivi a nessuno degli account di servizio

Per maggiori informazioni sui progetti tenant e dei clienti, consulta Networking.

Architettura del caso d'uso

Questo diagramma mostra l'architettura del progetto quando utilizzi i cluster in un altro progetto:

Architettura di progetti tenant, clienti e Dataproc in Cloud Data Fusion.

Configurazioni

Le seguenti sezioni confrontano le configurazioni di base con le configurazioni specifiche dei casi d'uso per l'utilizzo di cluster Dataproc in un progetto diverso tramite il VPC del progetto tenant predefinito.

Nelle seguenti descrizioni dei casi d'uso, il progetto del cliente è il luogo in cui viene eseguita l'istanza di Cloud Data Fusion e il progetto Dataproc è il luogo in cui viene avviato il cluster Dataproc.

VPC e istanza del progetto tenant

Base di riferimento Caso d'uso
Nel diagramma dell'architettura di riferimento precedente, il progetto tenant contiene i componenti seguenti:
  • Il VPC predefinito, creato automaticamente.
  • Il deployment fisico dell'istanza Cloud Data Fusion.
Non è necessaria alcuna configurazione aggiuntiva per questo caso d'uso.

Progetto cliente

Base di riferimento Caso d'uso
Nel tuo progetto Google Cloud esegui il deployment e l'esecuzione delle pipeline. Per impostazione predefinita, i cluster Dataproc vengono avviati in questo progetto quando esegui le pipeline. In questo caso d'uso, gestisci due progetti. In questa pagina, il progetto del cliente si riferisce a dove viene eseguita l'istanza di Cloud Data Fusion.
Il progetto Dataproc si riferisce al luogo di avvio dei cluster Dataproc.

VPC cliente

Base di riferimento Caso d'uso

Dal punto di vista del cliente, il VPC del cliente è la posizione logica di Cloud Data Fusion.


Concetto chiave:
puoi trovare i dettagli del VPC cliente nella pagina Reti VPC del tuo progetto.

Vai a Reti VPC

Non è necessaria alcuna configurazione aggiuntiva per questo caso d'uso.

Subnet Cloud Data Fusion

Base di riferimento Caso d'uso

Dal punto di vista del cliente, questa subnet è la posizione logica di Cloud Data Fusion.


Concetto chiave:
la regione di questa subnet corrisponde alla località dell'istanza Cloud Data Fusion nel progetto tenant.
Non è necessaria alcuna configurazione aggiuntiva per questo caso d'uso.

Subnet Dataproc

Base di riferimento Caso d'uso

La subnet in cui vengono avviati i cluster Dataproc quando esegui una pipeline.


Concetti più importanti:
  • Per questa configurazione di base, Dataproc viene eseguito nella stessa subnet dell'istanza di Cloud Data Fusion.
  • Cloud Data Fusion individua una subnet nella stessa regione sia dell'istanza che della subnet di Cloud Data Fusion. Se in questa regione è presente una sola subnet, le subnet sono le stesse.
  • La subnet Dataproc deve avere accesso privato Google.

Questa è una nuova subnet in cui vengono avviati i cluster Dataproc quando esegui una pipeline.


Concetti più importanti:
  • Per questa nuova subnet, imposta Accesso privato Google su On.
  • La subnet Dataproc non deve trovarsi nella stessa località dell'istanza di Cloud Data Fusion.

Origini e sink

Base di riferimento Caso d'uso

Le origini da cui vengono estratti i dati e i sink in cui vengono caricati i dati, ad esempio origini e sink BigQuery.


Concetto chiave:
  • I job che recuperano e caricano i dati devono essere elaborati nella stessa posizione del set di dati, altrimenti potrebbero verificarsi errori.
Le configurazioni controllo dell'accesso dell'accesso specifiche per i casi d'uso in questa pagina si riferiscono alle origini e ai sink BigQuery.

Cloud Storage

Base di riferimento Caso d'uso

Il bucket di archiviazione nel progetto del cliente che aiuta a trasferire i file tra Cloud Data Fusion e Dataproc.


Concetti più importanti:
  • Puoi specificare questo bucket tramite l'interfaccia web di Cloud Data Fusion nelle impostazioni di Profilo Compute per i cluster temporanei.
  • Per le pipeline in modalità batch e in tempo reale o i job di replica: se non specifichi un bucket nel profilo di computing, Cloud Data Fusion crea un bucket nello stesso progetto dell'istanza a questo scopo.
  • Anche per i cluster Dataproc statici, in questa configurazione di base il bucket viene creato da Cloud Data Fusion e differisce dai bucket temporanei e di gestione temporanea di Dataproc.
  • L'agente di servizio API Cloud Data Fusion dispone delle autorizzazioni integrate per creare questo bucket nel progetto contenente l'istanza di Cloud Data Fusion.
Non è necessaria alcuna configurazione aggiuntiva per questo caso d'uso.

Bucket temporanei utilizzati da origine e sink

Base di riferimento Caso d'uso

I bucket temporanei creati dai plug-in per le origini e i sink, come i job di caricamento avviati dal plug-in sink di BigQuery.


Concetti più importanti:
  • Puoi definire questi bucket quando configuri le proprietà del plug-in source e sink.
  • Se non definisci un bucket, ne viene creato uno nello stesso progetto in cui viene eseguito Dataproc.
  • Se il set di dati è multiregionale, il bucket viene creato nello stesso ambito.
  • Se definisci un bucket nella configurazione del plug-in, la regione del bucket deve corrispondere a quella del set di dati.
  • Se non definisci un bucket nelle configurazioni dei plug-in, quello che viene creato per te viene eliminato al termine della pipeline.
Per questo caso d'uso, il bucket può essere creato in qualsiasi progetto.

Bucket che sono origini o sink di dati per i plug-in

Base di riferimento Caso d'uso
Bucket cliente, che specifichi nelle configurazioni per i plug-in, come il plug-in Cloud Storage e il plug-in da FTP a Cloud Storage. Non è necessaria alcuna configurazione aggiuntiva per questo caso d'uso.

IAM: agente di servizio API Cloud Data Fusion

Base di riferimento Caso d'uso

Quando l'API Cloud Data Fusion è abilitata, il ruolo Agente di servizio API Cloud Data Fusion (roles/datafusion.serviceAgent) viene concesso automaticamente all' account di servizio Cloud Data Fusion, l'agente di servizio principale.


Concetti più importanti:
  • Il ruolo contiene le autorizzazioni per i servizi nello stesso progetto dell'istanza, come BigQuery e Dataproc. Per tutti i servizi supportati, consulta i dettagli del ruolo.
  • L'account di servizio Cloud Data Fusion:
    • Comunicazione del piano dati (progettazione ed esecuzione della pipeline) con altri servizi (ad esempio, comunicando con Cloud Storage, BigQuery e Datastream in fase di progettazione).
    • Esegue il provisioning dei cluster Dataproc.
  • Se esegui la replica da un'origine Oracle, a questo account di servizio devono essere assegnati anche i ruoli Amministratore Datastream e Amministratore Storage nel progetto in cui si verifica il job. Questa pagina non riguarda un caso d'uso della replica.

Per questo caso d'uso, concedi il ruolo Agente di servizio API Cloud Data Fusion all'account di servizio nel progetto Dataproc. Quindi concedi i ruoli seguenti nel progetto:

  • Ruolo Utente di rete Compute
  • Ruolo Editor Dataproc

IAM: account di servizio Dataproc

Base di riferimento Caso d'uso

L'account di servizio utilizzato per eseguire la pipeline come job all'interno del cluster Dataproc. Per impostazione predefinita, è l'account di servizio Compute Engine.


(Facoltativo) Nella configurazione di base puoi sostituire l'account di servizio predefinito con un altro account di servizio dello stesso progetto. Concedi i seguenti ruoli IAM al nuovo account di servizio:

  • Il ruolo Esecutore di Cloud Data Fusion. Questo ruolo consente a Dataproc di comunicare con l'API Cloud Data Fusion.
  • Il ruolo Worker Dataproc. Questo ruolo consente l'esecuzione dei job su cluster Dataproc.
Concetti più importanti:
  • È necessario concedere all'account di servizio dell'agente API per il nuovo servizio il ruolo Utente account di servizio nell'account di servizio Dataproc in modo che l'agente API di servizio possa utilizzarlo per avviare i cluster Dataproc.

Questo esempio di caso d'uso presuppone che utilizzi l'account di servizio Compute Engine predefinito (PROJECT_NUMBER-compute@developer.gserviceaccount.com) del progetto Dataproc.


Concedi i ruoli seguenti all'account di servizio Compute Engine predefinito nel progetto Dataproc.

  • Ruolo Worker Dataproc
  • Il ruolo Amministratore Storage (o, come minimo, l'autorizzazione "storage.buckets.create") per consentire a Dataproc di creare bucket temporanei per BigQuery.
  • Ruolo Utente job BigQuery. Questo ruolo consente a Dataproc di creare job di caricamento. I job vengono creati nel progetto Dataproc per impostazione predefinita.
  • Ruolo Editor set di dati BigQuery. Questo ruolo consente a Dataproc di creare set di dati durante il caricamento dei dati.

Concedi il ruolo Utente account di servizio all'account di servizio Cloud Data Fusion nell'account di servizio Compute Engine predefinito del progetto Dataproc. Questa azione deve essere eseguita nel progetto Dataproc.

Aggiungi l'account di servizio Compute Engine predefinito del progetto Dataproc al progetto Cloud Data Fusion. Concedi anche i ruoli seguenti:

  • Ruolo Visualizzatore oggetti Storage per recuperare gli artefatti relativi ai job di pipeline dal bucket consumer di Cloud Data Fusion.
  • Ruolo di esecutore di Cloud Data Fusion, per consentire al cluster Dataproc di comunicare con Cloud Data Fusion in esecuzione.

API

Base di riferimento Caso d'uso
Quando abiliti l'API Cloud Data Fusion, vengono abilitate anche le seguenti API. Per ulteriori informazioni su queste API, vai alla pagina API e servizi del progetto.

Vai ad API e servizi

  • API Cloud Autoscaling
  • API Dataproc
  • API Cloud Dataproc Control
  • API del cloud DNS
  • API Cloud OS Login
  • API Pub/Sub
  • API Compute Engine
  • API Container Filesystem
  • API Container Registry
  • API Service Account Credentials
  • API Identity and Access Management
  • API Google Kubernetes Engine

Quando abiliti l'API Cloud Data Fusion, i seguenti account di servizio vengono aggiunti automaticamente al progetto:

  • Agente di servizio API di Google
  • Agente di servizio Compute Engine
  • Agente di servizio Kubernetes Engine
  • Agente di servizio Google Container Registry
  • Agente di servizio Google Cloud Dataproc
  • Agente di servizio Cloud KMS
  • Account di servizio Cloud Pub/Sub
Per questo caso d'uso, abilita le API seguenti nel progetto che contiene il progetto Dataproc:
  • API Compute Engine
  • API Dataproc (probabilmente già abilitata in questo progetto). L'API Dataproc Control viene abilitata automaticamente quando abiliti l'API Dataproc.
  • l'API Resource Manager.

Chiavi di crittografia

Base di riferimento Caso d'uso

Nella configurazione di base, le chiavi di crittografia possono essere gestite da Google o CMEK


Concetti più importanti:

Se utilizzi CMEK, la configurazione di base richiede quanto segue:

  • La chiave deve essere a livello di regione, creata nella stessa regione dell'istanza di Cloud Data Fusion.
  • Concedi il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS ai seguenti account di servizio a livello di chiave (non nella pagina IAM della console Google Cloud) nel progetto in cui viene creato:
    • Account di servizio API Cloud Data Fusion
    • Account di servizio Dataproc, che è l'agente di servizio Compute Engine (service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com) per impostazione predefinita
    • Agente di servizio Google Cloud Dataproc (service-PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com)
    • Agente di servizio Cloud Storage (service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com)

A seconda dei servizi utilizzati nella tua pipeline, come BigQuery o Cloud Storage, agli account di servizio deve essere concesso anche il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS:

  • L'account di servizio BigQuery (bq-PROJECT_NUMBER@bigquery-encryption.iam.gserviceaccount.com)
  • L'account di servizio Pub/Sub (service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com)
  • L'account di servizio Spanner (service-PROJECT_NUMBER@gcp-sa-spanner.iam.gserviceaccount.com)

Se non utilizzi CMEK, non sono necessarie ulteriori modifiche per questo caso d'uso.

Se utilizzi CMEK, devi fornire il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS al seguente account di servizio a livello di chiave nel progetto in cui è stato creato:

  • Agente di servizio Cloud Storage (service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com)

A seconda dei servizi utilizzati nella tua pipeline, come BigQuery o Cloud Storage, anche ad altri account di servizio deve essere concesso il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS a livello di chiave. Ad esempio:

  • L'account di servizio BigQuery (bq-PROJECT_NUMBER@bigquery-encryption.iam.gserviceaccount.com)
  • L'account di servizio Pub/Sub (service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com)
  • L'account di servizio Spanner (service-PROJECT_NUMBER@gcp-sa-spanner.iam.gserviceaccount.com)

Dopo aver effettuato queste configurazioni specifiche per i casi d'uso, la pipeline di dati può essere eseguita sui cluster in un altro progetto.

Passaggi successivi