Configura i ruoli di condivisione di BigQuery

Questo documento descrive i ruoli Identity and Access Management (IAM) per BigQuery sharing (in precedenza Analytics Hub) e come concederli. 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 Analytics Hub (roles/analyticshub.admin) che puoi concedere per un Google Cloud progetto o uno scambio di dati. 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, i sottoscrittori e i visualizzatori.

Con questo ruolo, diventi un amministratore 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.

    Con questo ruolo, diventi un abbonato alla condivisione BigQuery.

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

    Con questo ruolo, diventi un visualizzatore della condivisione di BigQuery.

Ruolo Analytics Hub Subscription Owner

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

Con questo ruolo, diventi proprietario di una sottoscrizione di condivisione BigQuery.

Concedi ruoli IAM di condivisione BigQuery

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

  • Progetto. Se concedi un ruolo per un progetto, questo si applica a tutti gli scambi di dati e agli elenchi del progetto.
  • Scambio di dati. Se concedi un ruolo per uno scambio di dati, questo viene applicato a tutte le schede dello scambio.
  • Scheda. Se concedi un ruolo per una scheda, questo si applica solo a quella specifica scheda.

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 alle risorse Google Cloud , aggiungi un'associazione di ruoli condizionale.

  6. Salva le modifiche.

    Puoi eliminare e aggiornare gli amministratori del progetto utilizzando lo stesso pannello IAM.

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: il progetto, ad esempio my-project-1.
  • PRINCIPAL: un'identità valida a cui vuoi assegnare il ruolo. Ad esempio:

    • Indirizzo email dell'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 il 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 e poi uno dei seguenti ruoli Identity and Access Management (IAM):

    • 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 dello 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 ha esito positivo, 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 di scambio di dati utilizzando lo stesso pannello IAM.

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 e poi uno dei seguenti ruoli Identity and Access Management (IAM):

    • 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 ha esito positivo, 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 di elenco utilizzando lo stesso riquadro IAM.

Passaggi successivi