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 Google Cloud progetto, esegue il deployment ed esegue le pipeline utilizzando i cluster Dataproc all'interno dello stesso progetto. Tuttavia, la tua organizzazione potrebbe richiedere l'utilizzo di 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 presenta i seguenti requisiti:

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

Soluzione

Questa soluzione confronta l'architettura e la configurazione di riferimento e specifiche per i casi d'uso.

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 saperne di più 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 del tenant, del cliente e del progetto Dataproc in Cloud Data Fusion.

Configurazioni

Le sezioni seguenti confrontano le configurazioni di riferimento con le configurazioni specifiche del caso d'uso per l'utilizzo dei 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 Cloud Data Fusion e il progetto Dataproc è il luogo in cui viene lanciato 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.
Per questo caso d'uso non è necessaria alcuna configurazione aggiuntiva.

Progetto del cliente

Base di riferimento Caso d'uso
Il Google Cloud progetto è il luogo in cui esegui il deployment ed esegui le 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 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.


Apprendimento chiave:
la regione di questa sottorete corrisponde alla posizione dell'istanza Cloud Data Fusion nel progetto del tenant.
Per questo caso d'uso non è necessaria alcuna configurazione aggiuntiva.

Subnet Dataproc

Base di riferimento Caso d'uso

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


Concetti chiave:
  • Per questa configurazione di riferimento, Dataproc viene eseguito nella stessa subnet dell'istanza Cloud Data Fusion.
  • Cloud Data Fusion individua una sottorete nella stessa regione dell'istanza e della sottorete di Cloud Data Fusion. Se in questa regione è presente una sola subnet, le subnet sono uguali.
  • La subnet Dataproc deve avere accesso privato Google.

Si tratta di una nuova subnet in cui vengono avviati i cluster Dataproc quando esegui una pipeline.


Concetti chiave:
  • Per questa nuova subnet, imposta l'accesso privato Google su On.
  • La subnet Dataproc non deve trovarsi nella stessa posizione dell'istanza Cloud Data Fusion.

Origini 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 sono destinate alle origini e alle destinazioni 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 configurazione di riferimento, il bucket viene creato da Cloud Data Fusion e è diverso dai 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 dall'origine e dal 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 le proprietà del plug-in di origine e di destinazione.
  • 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 del plug-in, quello 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 destinazioni di dati per i plug-in

Base di riferimento Caso d'uso
Bucket dei clienti, specificati nelle configurazioni dei plug-in, come il plug-in Cloud Storage e il plug-in FTP to Cloud Storage. Per questo caso d'uso non è necessaria alcuna configurazione aggiuntiva.

IAM: Cloud Data Fusion API Service Agent

Base di riferimento Caso d'uso

Quando l'API Cloud Data Fusion è attivata, 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 chiave:
  • Il ruolo contiene le autorizzazioni per i servizi nello stesso progetto dell'istanza, ad esempio BigQuery e Dataproc. Per tutti i servizi supportati, consulta i dettagli del ruolo.
  • L'account di servizio Cloud Data Fusion esegue le seguenti operazioni:
    • Comunicazione del piano dati (progettazione ed esecuzione della pipeline) con altri servizi (ad esempio, comunicazione con Cloud Storage, BigQuery e Datastream in fase di progettazione).
    • Esegui la 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 archiviazione 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 Dataproc Editor

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 cambiare 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 Cloud Data Fusion. Questo ruolo consente a Dataproc di comunicare con l'API Cloud Data Fusion.
  • Il ruolo Dataproc Worker. Questo ruolo consente l'esecuzione dei job su 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 tu utilizzi l'account di servizio Compute Engine predefinito (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 di creare job di caricamento. Per impostazione predefinita, i job vengono creati nel progetto Dataproc.
  • 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 seguenti ruoli:

  • Il ruolo Visualizzatore oggetti Storage per recuperare gli elementi correlati ai job della pipeline dal bucket consumer Cloud Data Fusion.
  • Il ruolo Esecutore Cloud Data Fusion, in modo che il cluster Dataproc possa comunicare con Cloud Data Fusion durante l'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 pagina API e servizi del tuo 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 attivi l'API Cloud Data Fusion, i seguenti account di servizio vengono aggiunti automaticamente al tuo 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
  • API Dataproc (probabilmente già abilitata in questo progetto). L'API Dataproc Control viene attivata automaticamente quando attivi l'API Dataproc.
  • 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 chiave:

Se utilizzi CMEK, la configurazione di riferimento 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 dell'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)
    • 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, 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 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)
  • 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 apportato queste configurazioni specifiche per i casi d'uso, la pipeline di dati può iniziare a essere eseguita sui cluster di un altro progetto.

Passaggi successivi