Questa pagina spiega come concedere a un account utente Google Cloud 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, prendi in considerazione i seguenti concetti:
- Il livello di accesso da fornire. Il livello di accesso che concedi determina 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 o in una tabella specifica oppure puoi concedere l'accesso all'intero progetto.
L'entità che richiede l'accesso. Puoi utilizzare le entità (identità) IAM per eseguire i job. Ad esempio, puoi eseguire job del cluster Dataproc con account utente o account di servizio (in genere l'account di servizio VM Dataproc).
Per ulteriori informazioni sugli account che puoi utilizzare con Dataproc Metastore, consulta Account di 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/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 progetto.
- Crea un servizio di metastore che utilizza il protocollo gRPC.
Scopri i requisiti di rete specifici per il tuo progetto.
- Requisiti di gRPC e Virtual Private Cloud (VPC). Se utilizzi gRPC, non è necessario configurare un VPC condiviso o impostare configurazioni di rete aggiuntive. Per impostazione predefinita, gli endpoint gRPC possono essere raggiunti da qualsiasi VPC.
Tuttavia, c'è una sola eccezione. Se il tuo progetto utilizza un perimetro di servizio VPC-SC, gli endpoint gRPC possono essere raggiunti solo da un VPC appartenente ai progetti nel perimetro. Per ulteriori informazioni, 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 ruoli IAM seguenti per il tuo progetto, rispettando il principio del privilegio minimo:
-
Per concedere il controllo completo delle risorse Dataproc Metastore (
roles/metastore.editor
) -
Per concedere il controllo completo delle risorse Dataproc Metastore, incluso l'aggiornamento delle autorizzazioni IAM (
roles/metastore.admin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per concedere a un'entità l'accesso ai metadati di Dataproc Metastore. Per visualizzare le autorizzazioni necessarie, espandi la sezione Autorizzazioni richieste:
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 essere in grado di ottenere queste autorizzazioni con i ruoli personalizzati o altri ruoli predefiniti.
Per ulteriori informazioni su ruoli e autorizzazioni specifici di Dataproc Metastore, consulta Panoramica IAM di Dataproc Metastore.Concedere a un account principale l'accesso ai metadati
Puoi concedere a un account entità l'accesso ai metadati a livello di progetto, di servizio, di database o di tabella.
Concedere 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 all'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 questo 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 email (indirizzo email) dell'entità.- 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 ruoli seguenti, a seconda dell'ambito di accesso che vuoi concedere all'entità:roles/metastore.metadataViewer
,roles/metastore.metadataEditor
oroles/metastore.metadataOwner
.
Concedere 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 all'account principale.
Interfaccia a riga di comando gcloud
Per concedere ruoli nei metadati alla granularità di un singolo servizio metastore Dataproc, esegui questo 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 del 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 ruoli seguenti, a seconda dell'ambito di accesso che vuoi concedere all'entità:roles/metastore.metadataViewer
,roles/metastore.metadataEditor
oroles/metastore.metadataOwner
.
Concedi l'accesso a livello di database
Per concedere l'accesso a tutti i metadati Dataproc Metastore in un database specifico, devi aggiungere un ruolo metadati all'account principale.
Interfaccia a riga di comando gcloud
Per concedere i ruoli dei metadati con la granularità di un database specifico, esegui il seguente comando 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. Questo ID viene recuperato dallo schema del tuo database.PROJECT
: l'ID progetto Google Cloud che contiene 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 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
- Per altri tipi di entità: concetti relativi all'identità
METASTORE_ROLE
: uno dei ruoli seguenti, a seconda dell'ambito di accesso che vuoi concedere all'entità:roles/metastore.metadataViewer
,roles/metastore.metadataEditor
oroles/metastore.metadataOwner
.
Concedere 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 di metadati all'account principale.
Interfaccia a riga di comando gcloud
Per concedere i ruoli dei metadati con la 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 tuo database.DATABASE_ID
: l'ID del database che contiene la tabella a cui stai concedendo l'accesso ai metadati. Questo ID viene recuperato dallo schema del tuo database.PROJECT
: l'ID progetto Google Cloud che contiene il servizio Dataproc Metastore a cui stai concedendo l'accesso ai metadati.LOCATION
: la regione del servizio Dataproc Metastore per la quale 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 ruoli seguenti, a seconda dell'ambito di accesso che vuoi concedere all'entità:roles/metastore.metadataViewer
,roles/metastore.metadataEditor
oroles/metastore.metadataOwner
.
Dopo aver concesso l'accesso ai metadati
Dopo aver concesso i ruoli richiesti ai tuoi account di servizio, puoi connettere Dataproc Metastore a un cluster Dataproc. Il cluster utilizza quindi il servizio Dataproc Metastore come Hive Metastore.
Passaggi successivi
- Collega un cluster Dataproc
- Aggiornare ed eliminare Dataproc Metastore
- Importazione dei metadati in Dataproc Metastore