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 i cluster Dataproc in un altro progetto Google Cloud.

Scenario

Per impostazione predefinita, quando un'istanza Cloud Data Fusion viene lanciata in un progetto Google Cloud, esegue il deployment ed esegue le pipeline utilizzando i cluster Dataproc nello stesso progetto. Tuttavia, la tua organizzazione potrebbe chiederti di utilizzare i 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 (predefinite) e applicare i controlli di accesso appropriati.

Prima di iniziare

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

Ipotesi e ambito

Questo caso d'uso prevede i seguenti requisiti:

  • Un'istanza privata di Cloud Data Fusion. Per motivi di sicurezza, un'organizzazione potrebbe richiedere l'utilizzo di questo tipo di in esecuzione in un'istanza Compute Engine.
  • Origine e sink BigQuery.
  • Controllo dell'accesso con IAM, non con il controllo degli accessi basato sui ruoli (RBAC).

Soluzione

Questa soluzione confronta l'architettura di base con quella specifica del caso d'uso e configurazione.

Architettura

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

Architettura di riferimento

Questo diagramma mostra l'architettura di riferimento dei progetti:

Architettura del tenant, del cliente e del progetto Dataproc in Cloud Data Fusion.

Per la configurazione di riferimento, crea un'istanza Cloud Data Fusion privata ed esegui una pipeline senza ulteriori personalizzazioni:

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

Per ulteriori informazioni sui progetti tenant e clienti, consulta Networking:

Architettura dei casi d'uso

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

Architettura del tenant, del cliente e del progetto Dataproc in Cloud Data Fusion.

Configurazioni

Le seguenti sezioni mettono a confronto le configurazioni di riferimento con il caso d'uso configurazioni specifiche per l'utilizzo di cluster Dataproc un progetto diverso tramite il VPC predefinito del progetto tenant.

Nelle seguenti descrizioni dei casi d'uso, il progetto del cliente è il luogo in cui Viene eseguito l'istanza Cloud Data Fusion e viene eseguito il progetto Dataproc è dove 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 seguenti componenti:
  • La VPC predefinita, creata automaticamente.
  • Il deployment fisico dell'istanza Cloud Data Fusion.
Non è necessaria alcuna configurazione aggiuntiva per questo caso d'uso.

Progetto del cliente

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

VPC del cliente

Base di riferimento Caso d'uso

Dal tuo punto di vista (del cliente), il VPC del cliente è dove si trova Cloud Data Fusion dal punto di vista logico.


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

Vai a Reti VPC

Per questo caso d'uso non è necessaria alcuna configurazione aggiuntiva.

Sottorete Cloud Data Fusion

Base di riferimento Caso d'uso

Dal tuo punto di vista (del cliente), in questa sottorete si trova Cloud Data Fusion.


Concetto chiave:
la regione di questa subnet è la stessa come località dell'istanza Cloud Data Fusion nel tenant progetto.
Per questo caso d'uso non è necessaria alcuna configurazione aggiuntiva.

Subnet Dataproc

Base di riferimento Caso d'uso

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


Concetti principali:
  • Per questa configurazione di riferimento, Dataproc viene eseguito nella stessa subnet dell'istanza Cloud Data Fusion.
  • Cloud Data Fusion individua una subnet nella stessa regione di entrambe l'istanza e la subnet di Cloud Data Fusion. Se c'è solo uno in questa regione, le subnet sono le stesse.
  • La subnet Dataproc deve avere Accesso privato Google.

Questa è una nuova subnet in cui i cluster Dataproc viene avviato quando esegui una pipeline.


Concetti chiave:
  • Per questa nuova subnet, imposta l'accesso privato Google su Attivata.
  • La subnet Dataproc non deve essere necessariamente nella stessa località dell'istanza di Cloud Data Fusion.

Fonti e sink

Base di riferimento Caso d'uso

Le origini da cui vengono estratti i dati e gli sink in cui vengono caricati, come le origini e gli sink BigQuery.


Concetto chiave:
  • I job che recuperano e caricano i dati devono essere elaborati nella stessa posizione del set di dati, altrimenti si verifica un errore.
Le configurazioni di controllo dell'accesso specifiche per i casi d'uso in questa pagina riguardano Origini e sink BigQuery.

Cloud Storage

Base di riferimento Caso d'uso

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


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

Bucket temporanei utilizzati da origine e sink

Base di riferimento Caso d'uso

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


Concetti chiave:
  • Puoi definire questi bucket quando configuri l'origine e il sink proprietà del plug-in.
  • 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 paese l'ambito di attività.
  • 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, viene creato per te viene eliminato al termine della pipeline.
Per questo caso d'uso, il bucket può essere creato in qualsiasi progetto.

Bucket costituiti da origini o sink di dati per i plug-in

Base di riferimento Caso d'uso
I bucket dei clienti, che hai specificato nelle configurazioni per i plug-in, come il plug-in Cloud Storage e l'FTP per Plug-in di Cloud Storage. Non è necessaria alcuna configurazione aggiuntiva per questo caso d'uso.

IAM: Cloud Data Fusion API Service Agent

Base di riferimento Caso d'uso

Quando l'API Cloud Data Fusion è abilitata, Cloud Ruolo Agente di servizio API Data Fusion (roles/datafusion.serviceAgent) viene concesso automaticamente a Account di servizio Cloud Data Fusion, l'agente di servizio principale.


Concetti chiave:
  • Il ruolo contiene le autorizzazioni per i servizi nello stesso progetto di dell'istanza, ad esempio BigQuery Dataproc. Per tutti i servizi supportati, consulta i dettagli del ruolo.
  • L'account di servizio Cloud Data Fusion esegue queste operazioni:
    • Comunicazione del piano dati (progettazione ed esecuzione della pipeline) con in altri servizi (ad esempio, comunicare con Cloud Storage, BigQuery 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 Datastream Admin e Storage Admin nel progetto in cui si verifica il job. Questa pagina non tratta un caso d'uso di 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 seguenti ruoli nel progetto:

  • Ruolo Utente di rete Compute
  • Ruolo di Editor Dataproc

IAM: service account 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 riferimento, puoi modificare il valore predefinito a un altro account di servizio dello stesso progetto. Concedi i seguenti ruoli IAM al nuovo account di servizio:

  • Il ruolo Esecutore 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 di cluster Dataproc.
Concetti chiave:
  • All'account di servizio dell'agente API per il nuovo servizio deve essere concesso 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 venga utilizzata l'impostazione predefinita Account di servizio Compute Engine (PROJECT_NUMBER-compute@developer.gserviceaccount.com) del progetto Dataproc.


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

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

Concedi il ruolo Utente account di servizio a Cloud Data Fusion Account di servizio nell'account di servizio Compute Engine predefinito il progetto Dataproc. Questa azione deve essere eseguita nella progetto Dataproc.

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

  • Ruolo Visualizzatore oggetti Storage per recuperare le informazioni sul job della pipeline dal bucket Cloud Data Fusion Consumer.
  • il ruolo Runner di Cloud Data Fusion, pertanto Dataproc di un cluster può comunicare con Cloud Data Fusion in esecuzione.

API

Base di riferimento Caso d'uso
Quando attivi l'API Cloud Data Fusion, vengono attivate anche le seguenti API. Per ulteriori informazioni su queste API, vai alla API e dei servizi nel tuo progetto.

Vai ad API e servizi

  • API Cloud Scalabilità automatica
  • 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, il servizio seguente vengono aggiunti automaticamente al progetto:

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

Chiavi di crittografia

Base di riferimento Caso d'uso

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


Concetti principali:

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

  • La chiave deve essere regionale e creata nella stessa regione dell'istanza 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 è stato creato:
    • Account di servizio API Cloud Data Fusion
    • Service account Dataproc, ovvero 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 pipeline, ad esempio BigQuery o Cloud Storage, agli account di servizio deve essere anche concesso il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS:

  • Account di servizio BigQuery (bq-PROJECT_NUMBER@bigquery-encryption.iam.gserviceaccount.com)
  • 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 modifiche aggiuntive per questo caso d'uso.

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

  • Cloud Storage Service Agent (service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com)

A seconda dei servizi utilizzati nella 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)
  • Account di servizio Pub/Sub (service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com)
  • 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ò su cluster in un altro progetto.

Passaggi successivi