Accedi agli endpoint gRPC per Dataproc Metastore

Questa pagina spiega come concedere un account utente o un account di servizio Google Cloud accesso a un servizio Dataproc Metastore che utilizza l'endpoint gRPC del protocollo.

Informazioni sulla concessione dei ruoli dei metadati gRPC

Quando concedi a un account l'accesso ai tuoi metadati, tieni presente quanto segue: di base:

  • Il livello di accesso da fornire. Il livello di accesso concesso controlla quanti metadati può accedere un account. Ad esempio, puoi scegliere forniscono accesso a metadati archiviati in un database specifico, una tabella specifica oppure puoi fornire l'accesso all'intero progetto.
  • L'entità che richiede l'accesso. Puoi usare entità IAM (identità) per eseguire i tuoi job. Ad esempio, puoi eseguire job nel cluster Dataproc con account utente o di servizio (in genere il servizio VM Dataproc Google Cloud).

    Per ulteriori informazioni sugli account che puoi utilizzare con Dataproc Metastore, consulta Account servizio Dataproc.

A seconda dell'ambito di controllo richiesto, concedi all'entità uno dei seguenti ruoli IAM predefiniti:

  • Concedere l'accesso completo alle risorse dei metadati. Ruolo di proprietario dei metadati (roles/metastore.metadataOwner)
  • Per concedere l'accesso in lettura e scrittura ai metadati: ruolo Editor metadati roles/metastore.metadataEditor)
  • Per concedere l'accesso in lettura ai metadati: ruolo Visualizzatore metadati (roles/metastore.metadataViewer)

Prima di iniziare

  • Abilita Dataproc Metastore nel tuo progetto.
  • Crea un servizio Metastore che utilizzi il protocollo gRPC.
  • Comprendi i requisiti di rete specifici del tuo progetto.

    • Requisiti di gRPC e Virtual Private Cloud (VPC). Se utilizzi gRPC, non devi configurare un VPC condiviso o impostare reti aggiuntive configurazioni. Per impostazione predefinita, gli endpoint gRPC possono essere raggiunti da qualsiasi VPC.

    Tuttavia, c'è un'eccezione. Se il progetto utilizza un servizio VPC-SC perimetrale, gli endpoint gRPC sono raggiungibili solo da un VPC che appartiene ai progetti nel perimetro. Per ulteriori informazioni, vedi Servizio VPC Controlli con Dataproc Metastore.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per concedere a un'entità l'accesso ai metadati Dataproc Metastore, chiedi all'amministratore di concederti i seguenti ruoli IAM sul tuo progetto, rispettando al contempo il principio del privilegio minimo:

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per concedere a un'entità l'accesso ai metadati di Dataproc Metastore. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per concedere a un principale l'accesso ai metadati di Dataproc Metastore sono necessarie le seguenti autorizzazioni:

  • resourcemanager.projects.get
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.setIamPolicy

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Per ulteriori informazioni su ruoli e autorizzazioni specifici di Dataproc Metastore, consulta la panoramica di IAM di Dataproc Metastore.

Concedi a un account entità l'accesso ai metadati

Puoi concedere a un account principale l'accesso ai metadati a livello di progetto, di servizio, di database o di tabella.

Concedi l'accesso a livello di progetto

Per concedere l'accesso a tutti i metadati di Dataproc Metastore a livello di progetto, devi concedere un ruolo di metadati al tuo account principale.

Interfaccia a riga di comando gcloud

Per concedere i ruoli dei metadati a tutti i servizi Dataproc Metastore in un progetto specificato, esegui il seguente comando gcloud projects add-iam-policy-binding:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=PRINCIPAL \
    --role=METASTORE_ROLE

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto Google Cloud a cui vuoi concedere l'accesso ai metadati.
  • PRINCIPAL: il tipo e l'ID indirizzo email (indirizzo email) del principale.
    • Per gli account utente: user:EMAIL_ID
    • Per gli account di servizio: serviceAccount:EMAIL_ID
    • Per Google Gruppi: group:EMAIL_ID
    • Per altri tipi di principali: Concetti correlati all'identità
  • METASTORE_ROLE: uno dei seguenti ruoli, a seconda dell'ambito di accesso che vuoi concedere all'entità principale: roles/metastore.metadataViewer, roles/metastore.metadataEditor o roles/metastore.metadataOwner.

Concedi l'accesso a livello di servizio

Per concedere l'accesso a tutti i metadati di Dataproc Metastore a livello di servizio, devi concedere un ruolo di metadati al tuo account principale.

Interfaccia a riga di comando gcloud

Per concedere i ruoli dei metadati con la granularità di un singolo servizio Dataproc Metastore, esegui il seguente comando gcloud metastore services add-iam-policy-binding:

gcloud metastore services add-iam-policy-binding SERVICE_ID \
  --location=LOCATION \
  --member=PRINCIPAL \
  --role=METASTORE_ROLE

Sostituisci quanto segue:

  • SERVICE_ID: l'ID o l'identificatore completo per il servizio Dataproc Metastore.
  • LOCATION: la regione di Dataproc Metastore a cui stai concedendo l'accesso.
  • PRINCIPAL: il tipo e l'ID email (indirizzo email) dell'account principale:
    • Per gli account utente: user:EMAIL_ID
    • Per gli account di servizio: serviceAccount:EMAIL_ID
    • Per Google Gruppi: group:EMAIL_ID
    • Per altri tipi di entità: concetti relativi all'identità
  • METASTORE_ROLE: uno dei seguenti ruoli, a seconda dell'ambito di accesso che vuoi concedere all'entità principale: roles/metastore.metadataViewer, roles/metastore.metadataEditor o roles/metastore.metadataOwner.

Concedi l'accesso a livello di database

Per concedere l'accesso a tutti i metadati di Dataproc Metastore in un database specifico, devi aggiungere un ruolo di metadati al tuo account principale.

Interfaccia a riga di comando gcloud

Per concedere ruoli nei metadati alla granularità di un database specifico, esegui il persone che seguo gcloud metastore services databases add-iam-policy-binding :

gcloud metastore services databases add-iam-policy-binding DATABASE_ID \
  --project=PROJECT \
  --location=LOCATION \
  --service=SERVICE_ID \
  --member=PRINCIPAL \
  --role=METASTORE_ROLE

Sostituisci quanto segue:

  • DATABASE_ID: l'ID del database a cui stai concedendo l'accesso ai metadati. Puoi recuperare questo ID dallo schema del database.
  • PROJECT: l'ID progetto Google Cloud contenente il servizio Dataproc Metastore a cui stai concedendo l'accesso ai metadati.
  • LOCATION: la regione del servizio Dataproc Metastore a cui stai concedendo l'accesso.
  • SERVICE_ID: l'ID o l'identificatore completo per il servizio Dataproc Metastore.
  • PRINCIPAL: il tipo e l'ID email (indirizzo email) dell'account principale:
    • Per gli account utente: user:EMAIL_ID
    • Per gli account di servizio: serviceAccount:EMAIL_ID
    • Per Google Gruppi: group:EMAIL_ID
    • Per altri tipi di entità: concetti relativi all'identità
  • METASTORE_ROLE: uno dei seguenti ruoli, a seconda dell'ambito di accesso che vuoi concedere all'entità: roles/metastore.metadataViewer, roles/metastore.metadataEditor o roles/metastore.metadataOwner.

Concedi l'accesso a livello di tabella

Per concedere l'accesso a tutti i metadati Dataproc Metastore in una tabella specifica, devi concedere un ruolo di metadati all'account dell'entità.

Interfaccia a riga di comando gcloud

Per concedere i ruoli dei metadati alla granularità di una tabella, esegui questo comando gcloud metastore services databases tables add-iam-policy-binding:

gcloud metastore services databases tables add-iam-policy-binding TABLE_ID \
  --database=DATABASE_ID \
  --project=PROJECT \
  --location=LOCATION \
  --service=SERVICE_ID \
  --member=PRINCIPAL \
  --role=METASTORE_ROLE

Sostituisci quanto segue:

  • TABLE_ID: l'ID della tabella a cui stai concedendo l'accesso. Questo ID viene recuperato dallo schema del database.
  • DATABASE_ID: l'ID del database contenente la tabella a cui stai concedendo l'accesso ai metadati. Puoi recuperare questo ID dallo schema del database.
  • PROJECT: l'ID progetto Google Cloud contenente il servizio Dataproc Metastore a cui stai concedendo l'accesso ai metadati.
  • LOCATION: la regione del servizio Dataproc Metastore a cui stai concedendo l'accesso ai metadati.
  • SERVICE_ID: l'ID o l'identificatore completo del servizio Dataproc Metastore.
  • PRINCIPAL: il tipo e l'ID email (indirizzo email) dell'account principale:
    • Per gli account utente: user:EMAIL_ID
    • Per gli account di servizio: serviceAccount:EMAIL_ID
    • Per Google Gruppi: group:EMAIL_ID
  • METASTORE_ROLE: uno dei seguenti ruoli, a seconda dell'ambito di accesso che vuoi concedere all'entità: roles/metastore.metadataViewer, roles/metastore.metadataEditor o roles/metastore.metadataOwner.

Dopo aver concesso l'accesso ai metadati

Dopo aver concesso i ruoli richiesti agli account di servizio, puoi collegare Dataproc Metastore a un cluster Dataproc. Il cluster utilizza quindi il servizio Dataproc Metastore come metastore Hive.

Passaggi successivi