Configura i ruoli di condivisione di BigQuery

Questo documento descrive i ruoli Identity and Access Management (IAM) utilizzati per BigQuery sharing (in precedenza Analytics Hub) e come concederli agli utenti. Per ulteriori informazioni, vedi Ruoli e autorizzazioni di condivisione di BigQuery.

Ruoli IAM di condivisione di BigQuery

Le seguenti sezioni descrivono i ruoli di condivisione BigQuery predefiniti. Puoi assegnare questi ruoli agli utenti per eseguire varie attività sugli scambi e sulle schede di dati.

Ruolo Analytics Hub Admin

Per gestire gli scambi di dati, la condivisione BigQuery fornisce il ruolo Amministratore hub Analytics (roles/analyticshub.admin) che puoi concedere per un progetto o uno scambio di dati. Google Cloud Questo ruolo consente agli utenti di:

  • Crea, aggiorna ed elimina scambi di dati.
  • Crea, aggiorna, elimina e condividi schede.
  • Gestisci gli amministratori di BigQuery sharing, gli amministratori delle schede, i publisher, gli abbonati e i visualizzatori.

Gli utenti con questo ruolo sono chiamati amministratori della condivisione BigQuery.

Ruoli Publisher e Listing Admin di Analytics Hub

Per gestire le schede, la condivisione fornisce i seguenti ruoli predefiniti che puoi concedere per un progetto, uno scambio di dati o una scheda:

Ruoli Analytics Hub Subscriber e Analytics Hub Visualizzatore

Per visualizzare e abbonarti a schede e scambi di dati, la condivisione fornisce i seguenti ruoli predefiniti che puoi concedere per un progetto, uno scambio di dati o una scheda:

  • Ruolo Iscritto di Analytics Hub (roles/analyticshub.subscriber), che consente agli utenti di visualizzare e iscriversi agli elenchi.

    Gli utenti con questo ruolo sono chiamati abbonati alla condivisione BigQuery.

  • Ruolo Visualizzatore Analytics Hub (roles/analyticshub.viewer), che consente agli utenti di visualizzare le schede e le autorizzazioni dello scambio di dati.

    Gli utenti con questo ruolo vengono chiamati visualizzatori della condivisione BigQuery.

Ruolo Analytics Hub Subscription Owner

Per gestire gli abbonamenti, la condivisione fornisce il seguente ruolo predefinito che puoi concedere a livello di progetto:

Gli utenti con questo ruolo sono denominati proprietari dell'abbonamento di condivisione BigQuery.

Concedi ruoli IAM per la condivisione di BigQuery

A seconda delle tue esigenze, puoi concedere i ruoli IAM ai seguenti livelli della gerarchia delle risorse:

  • Progetto. Se concedi agli utenti un ruolo per un progetto, il ruolo viene applicato a tutti gli scambi di dati e gli elenchi contenuti nel progetto.

  • Scambio di dati. Se concedi agli utenti un ruolo per uno scambio di dati, il ruolo viene applicato a tutte le schede contenute nello scambio di dati.

  • Scheda. Se concedi agli utenti un ruolo per una scheda, questo viene applicato solo a quella scheda specifica.

Concedere il ruolo per un progetto

Se vuoi impostare criteri IAM su un progetto, devi disporre del ruolo Amministratore IAM progetto (roles/resourcemanager.projectIamAdmin) su quel progetto. Per concedere i ruoli Identity and Access Management di condivisione BigQuery predefiniti per un progetto, seleziona una delle seguenti opzioni.

Console

  1. Vai a IAM per il progetto.

    Vai a IAM

  2. Fai clic su Concedi l'accesso.

  3. Nel campo Nuove entità, inserisci l'indirizzo email dell'identità a cui vuoi concedere l'accesso. Ad esempio:

    • Email Account Google: test-user@gmail.com
    • Gruppo Google: admins@googlegroups.com
    • Service account: server@example.gserviceaccount.com
    • Dominio Google Workspace: example.com
  4. Nell'elenco Seleziona un ruolo, tieni il puntatore del mouse su Analytics Hub e seleziona uno dei seguenti ruoli:

    • Analytics Hub Admin
    • Analytics Hub Listing Admin
    • Analytics Hub Publisher
    • Analytics Hub Subscriber
    • Analytics Hub Subscription Owner
    • Analytics Hub Viewer
  5. (Facoltativo) Per controllare ulteriormente l'accesso dell'utente alle risorse Google Cloud , aggiungi l'associazione di ruoli condizionale.

  6. Salva le modifiche.

Puoi eliminare e aggiornare gli amministratori di un progetto tramite lo stesso pannello IAM, spiegato nei passaggi precedenti.

gcloud

Per concedere i ruoli a livello di progetto, utilizza il comando gcloud projects add-iam-policy-binding:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='PRINCIPAL' \
    --role='roles/analyticshub.admin'

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto, ad esempio my-project-1
  • PRINCIPAL: un'identità valida a cui vuoi assegnare il ruolo

    Ad esempio:

    • Email Account Google: user:user@gmail.com
    • Gruppo Google: group:admins@googlegroups.com
    • Service account: serviceAccount:server@example.gserviceaccount.com
    • Dominio Google Workspace: domain:example.com

API

  1. Leggi la policy esistente con il metodo getIamPolicy della risorsa. Per i progetti, utilizza il metodo projects.getIamPolicy.

    POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
    

    Sostituisci PROJECT_ID con l'ID progetto, ad esempio my-project-1.

  2. Per aggiungere le entità e i relativi ruoli associati, modifica la policy con un editor di testo. Utilizza il seguente formato per aggiungere membri:

    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com

    Ad esempio, per concedere il ruolo roles/analyticshub.admin a group:admins@example.com, aggiungi la seguente associazione alla policy:

    {
     "members": [
       "group:admins@example.com"
     ],
     "role":"roles/analyticshub.admin"
    }
    
  3. Scrivi la policy aggiornata utilizzando il metodo setIamPolicy.

    Ad esempio, per impostare una policy a livello di progetto, utilizza il metodo project.setIamPolicy. Nel corpo della richiesta, fornisci la policy IAM aggiornata del passaggio precedente.

    POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
    

    Sostituisci PROJECT_ID con l'ID progetto.

Concedere il ruolo per uno scambio di dati

Per concedere il ruolo per uno scambio di dati:

Console

  1. Nella console Google Cloud , vai alla pagina Condivisione (Analytics Hub).

    Vai a Condivisione (Analytics Hub)

  2. Fai clic sul nome dello scambio di dati per cui vuoi impostare le autorizzazioni.

  3. Vai alla scheda Dettagli.

  4. Fai clic su Imposta autorizzazioni.

  5. Per aggiungere entità, fai clic su Aggiungi entità.

  6. Nel campo Nuove entità, aggiungi gli ID email a cui vuoi concedere l'accesso. Puoi anche utilizzare allUsers per rendere una risorsa pubblica e accessibile a tutti su internet oppure allAuthenticatedUsers per renderla accessibile solo agli utenti Google che hanno eseguito l'accesso.

  7. Nel menu Seleziona un ruolo, seleziona Analytics Hub, quindi seleziona uno dei seguenti ruoli IAM (Identity and Access Management):

    • Analytics Hub Admin
    • Analytics Hub Listing Admin
    • Analytics Hub Publisher
    • Analytics Hub Subscriber
    • Analytics Hub Subscription Owner
    • Analytics Hub Viewer
  8. Fai clic su Salva.

API

  1. Leggi la policy esistente con il metodo getIamPolicy dell'elenco utilizzando il metodo projects.locations.dataExchanges.getIamPolicy:

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID:getIamPolicy
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto, ad esempio my-project-1.
    • LOCATION: la posizione per lo scambio di dati. Utilizza lettere minuscole.
    • DATAEXCHANGE_ID: l'ID piattaforma di scambio di dati.

    BigQuery sharing (in precedenza Analytics Hub) restituisce le norme attuali.

  2. Per aggiungere o rimuovere i membri e i relativi ruoli IAM (Identity and Access Management) associati, modifica la policy con un editor di testo. Utilizza il seguente formato per aggiungere membri:

    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com

    Ad esempio, per concedere il ruolo roles/analyticshub.subscriber a group:subscribers@example.com, aggiungi la seguente associazione alla policy:

    {
     "members": [
       "group:subscribers@example.com"
     ],
     "role":"roles/analyticshub.subscriber"
    }
    
  3. Scrivi la policy aggiornata utilizzando il metodo projects.locations.dataExchanges.setIamPolicy. Nel corpo della richiesta, fornisci la policy IAM aggiornata del passaggio precedente.

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID:setIamPolicy
    

    Nel corpo della richiesta, fornisci i dettagli della scheda. Se la richiesta va a buon fine, il corpo della risposta contiene i dettagli della scheda.

Quando concedi autorizzazioni a livello di risorsa, ad esempio su uno scambio di dati, devi utilizzare lettere minuscole per la parte relativa alla località del nome della risorsa. L'utilizzo di valori in maiuscolo o con combinazione di maiuscole e minuscole può causare errori Permission Denied.

  • Usa: projects/myproject/locations/us/dataExchanges/123
  • Evita: projects/myproject/locations/US/dataExchanges/123
  • Evita: projects/myproject/locations/Eu/dataExchanges/123

Puoi eliminare e aggiornare i ruoli per uno scambio di dati tramite lo stesso pannello IAM, come spiegato nei passaggi precedenti.

Concedere il ruolo per una scheda

Per concedere il ruolo per una scheda:

Console

  1. Nella console Google Cloud , vai alla pagina Condivisione (Analytics Hub).

    Vai a Condivisione (Analytics Hub)

  2. Fai clic sul nome dello scambio di dati contenente la scheda.

  3. Fai clic sulla scheda a cui vuoi aggiungere utenti.

  4. Fai clic su Imposta autorizzazioni.

  5. Per aggiungere entità, fai clic su Aggiungi entità.

  6. Nel campo Nuove entità, aggiungi gli ID email dell'identità a cui vuoi concedere l'accesso.

  7. Nel menu Seleziona un ruolo, seleziona Analytics Hub, quindi seleziona uno dei seguenti ruoli IAM (Identity and Access Management):

    • Analytics Hub Admin
    • Analytics Hub Listing Admin
    • Analytics Hub Publisher
    • Analytics Hub Subscriber
    • Analytics Hub Subscription Owner
    • Analytics Hub Viewer
  8. Fai clic su Salva.

API

  1. Leggi la policy esistente con il metodo getIamPolicy dell'elenco utilizzando il metodo projects.locations.dataExchanges.listings.getIamPolicy:

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID:getIamPolicy
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto, ad esempio my-project-1.
    • LOCATION: la posizione del data exchange che contiene la scheda. Utilizza lettere minuscole.
    • DATAEXCHANGE_ID: l'ID piattaforma di scambio di dati.
    • LISTING_ID: l'ID scheda.

    La condivisione restituisce la policy corrente.

  2. Per aggiungere o rimuovere i membri e i relativi ruoli IAM (Identity and Access Management) associati, modifica la policy con un editor di testo. Utilizza il seguente formato per aggiungere membri:

    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com

    Ad esempio, per concedere il ruolo roles/analyticshub.publisher a group:publishers@example.com, aggiungi la seguente associazione alla policy:

    {
     "members": [
       "group:publishers@example.com"
     ],
     "role":"roles/analyticshub.publisher"
    }
    
  3. Scrivi la policy aggiornata utilizzando il metodo projects.locations.dataExchanges.listings.setIamPolicy. Nel corpo della richiesta, fornisci la policy IAM aggiornata del passaggio precedente.

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING-ID:setIamPolicy
    

    Nel corpo della richiesta, fornisci i dettagli della scheda. Se la richiesta va a buon fine, il corpo della risposta contiene i dettagli della scheda.

Quando concedi autorizzazioni a livello di risorsa, ad esempio per una scheda, devi utilizzare lettere minuscole per la parte relativa alla località del nome della risorsa. L'utilizzo di valori in maiuscolo o con combinazione di maiuscole e minuscole può causare errori Permission Denied.

  • Usa: projects/myproject/locations/us/dataExchanges/123/listings/456
  • Evita: projects/myproject/locations/US/dataExchanges/123/listings/456
  • Evita: projects/myproject/locations/Eu/dataExchanges/123/listings/456

Puoi eliminare e aggiornare i ruoli per una scheda tramite lo stesso pannello IAM, spiegato nei passaggi precedenti.

Passaggi successivi