Accedere agli endpoint gRPC per Dataproc Metastore

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

Informazioni sulla concessione dei ruoli dei metadati gRPC

Quando concedi a un account l'accesso ai tuoi metadati, tieni conto dei seguenti concetti:

  • Il livello di accesso da fornire. Il livello di accesso che concedi controlla la quantità di metadati a cui un account può accedere. Ad esempio, puoi scegliere di fornire l'accesso ai metadati archiviati in un database specifico, in una tabella specifica o puoi fornire l'accesso all'intero progetto.
  • L'entità che richiede l'accesso. Utilizzi le entità IAM (identità) per eseguire i job. Ad esempio, puoi eseguire i job dei cluster Managed Service for Apache Spark con account utente o service account (in genere il service account della VM Dataproc account).

    Per saperne di più sugli account che puoi utilizzare con Dataproc Metastore, consulta Service account Dataproc.

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

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

Prima di iniziare

  • Abilita Dataproc Metastore nel tuo progetto.
  • Crea un servizio metastore che utilizza il protocollo gRPC.
  • Comprendi networking requirements specific to your project.

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

    Tuttavia, esiste un'eccezione. Se il tuo progetto utilizza un perimetro di servizio VPC-SC, gli endpoint gRPC sono raggiungibili solo da un VPC appartenente ai progetti nel perimetro. Per saperne di più, consulta Controlli di servizio VPC con Dataproc Metastore.

Ruoli obbligatori

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

Per saperne di più sulla concessione dei ruoli, consulta Gestisci 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 quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per concedere a un'entità 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 saperne di più sui ruoli e sulle autorizzazioni specifici di Dataproc Metastore, consulta Panoramica di IAM di Dataproc Metastore.

Concedi a un account principale l'accesso ai metadati

Puoi concedere a un'entità principale l'accesso ai metadati a livello di progetto, servizio, database o 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 dei metadati al tuo account principale.

gcloud CLI

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

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto a cui vuoi concedere l'accesso ai metadati. Google Cloud
  • PRINCIPAL: il tipo e l'ID email (indirizzo email) dell'entità.
    • Per gli account utente: user:EMAIL_ID
    • Per i service account: serviceAccount:EMAIL_ID
    • Per i Gruppi Google: group:EMAIL_ID
    • Per altri tipi di entità: Identificatori delle entità
  • METASTORE_ROLE\`: One of the following roles, depending on the scope of access that you want to grant the principal:roles/metastore.metadataViewer,roles/metastore.metadataEditor, orroles/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 dei metadati al tuo account principale.

gcloud CLI

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

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 del tuo 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 i service account: serviceAccount:EMAIL_ID
    • Per i Gruppi Google: group:EMAIL_ID
    • Per altri tipi di entità: Identificatori delle entità
  • 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 database

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

gcloud CLI

Per concedere i ruoli dei metadati con la granularità di un database specifico, esegui il seguente gcloud metastore services databases add-iam-policy-binding comando:

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 che contiene il servizio Dataproc Metastore a cui stai concedendo l'accesso ai metadati. Google Cloud
  • LOCATION: la regione del servizio Dataproc Metastore a cui stai concedendo l'accesso ai metadati.
  • SERVICE_ID: l'ID o l'identificatore completo del tuo servizio Dataproc Metastore.
  • PRINCIPAL: il tipo e l'ID email (indirizzo email) dell'account principale:
    • Per gli account utente: user:EMAIL_ID
    • Per i service account: serviceAccount:EMAIL_ID
    • Per i Gruppi Google: group:EMAIL_ID
    • Per altri tipi di entità: Identificatori delle entità
  • 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 di Dataproc Metastore in una tabella specifica, devi concedere un ruolo dei metadati alla tua entità principale.

gcloud CLI

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

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. Puoi recuperare questo ID dallo schema del database.
  • DATABASE_ID: l'ID del database che contiene la tabella a cui stai concedendo l'accesso ai metadati. Puoi recuperare questo ID dallo schema del database.
  • PROJECT: l'ID progetto che contiene il servizio Dataproc Metastore a cui stai concedendo l'accesso ai metadati. Google Cloud
  • LOCATION: la regione del servizio Dataproc Metastore a cui stai concedendo l'accesso ai metadati.
  • SERVICE_ID: l'ID o l'identificatore completo del tuo servizio Dataproc Metastore.
  • PRINCIPAL: il tipo e l'ID email (indirizzo email) dell'account principale:
    • Per gli account utente: user:EMAIL_ID
    • Per i service account: serviceAccount:EMAIL_ID
    • Per i Gruppi Google: 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.metadataEditororoles/metastore.metadataOwner.

Dopo aver concesso l'accesso ai metadati

Dopo aver concesso i ruoli richiesti ai service account, puoi collegare Dataproc Metastore a un cluster Managed Service for Apache Spark. Il cluster utilizza quindi il servizio Dataproc Metastore come metastore Hive.

Passaggi successivi