Controllo dell'accesso con IAM

Questa pagina descrive le opzioni di controllo dell'accesso disponibili in Cloud Bigtable.

Panoramica

Bigtable utilizza Identity and Access Management (IAM) per il controllo degli accessi.

Per Bigtable, puoi configurare il controllo dell'accesso a livello di progetto, istanza e tabella. Ecco alcuni esempi di utilizzo del controllo dell'accesso a livello di progetto:

  • Consenti a un utente di leggere, ma non di scrivere, in nessuna tabella all'interno del progetto.
  • Consenti a un utente di leggere e scrivere su qualsiasi tabella all'interno del progetto, ma non di gestire le istanze.
  • Consenti a un utente di leggere e scrivere su qualsiasi tabella all'interno del progetto e di gestire le istanze.

Ecco alcuni esempi di utilizzo del controllo dell'accesso a livello di istanza:

  • Consenti a un utente di leggere da qualsiasi tabella in una sola istanza in un progetto che ha più istanze.
  • Consenti a un utente di gestire solo un'istanza in un progetto che ha più istanze.

Ecco alcuni esempi di utilizzo del controllo dell'accesso a livello di tabella:

  • Consenti a un utente di scrivere in una tabella, ma non di leggere la tabella.
  • Consenti a un utente di leggere da una tabella, ma non di scrivere nella tabella.

Per una descrizione dettagliata di IAM e delle sue funzionalità, consulta la IAM per gli sviluppatori. In particolare, consulta la pagina Concedere, modificare e revocare l'accesso.

In Bigtable, non puoi concedere l'accesso ai seguenti tipi di entità:

Per gli elenchi delle autorizzazioni e dei ruoli supportati da Bigtable, consulta le sezioni seguenti.

Abilitazione dell'API Bigtable

Per visualizzare e assegnare i ruoli IAM di Bigtable, devi abilitare l'API Bigtable per il tuo progetto. Non potrai visualizzare i ruoli Bigtable in Google Cloud Console finché non abiliti l'API.

Abilita l'API

Autorizzazioni

Questa sezione riepiloga le autorizzazioni supportate da Bigtable.

Le autorizzazioni consentono agli utenti di eseguire azioni specifiche sulle risorse Bigtable. Ad esempio, le autorizzazioni bigtable.instances.list consentono agli utenti di elencare tutte le istanze Bigtable all'interno di un progetto. Non devi concedere direttamente le autorizzazioni agli utenti, ma assegna a ciascun utente un ruolo predefinito o un ruolo personalizzato, che concede una o più autorizzazioni.

Le seguenti tabelle elencano le autorizzazioni IAM associate a Bigtable:

Nome autorizzazione profilo app Descrizione
bigtable.appProfiles.create Creare un profilo per l'app Bigtable.
bigtable.appProfiles.delete Elimina un profilo dell'app Bigtable.
bigtable.appProfiles.get Ottenere informazioni sul profilo di un'app Bigtable.
bigtable.appProfiles.list Elenca i profili delle app Bigtable di un'istanza.
bigtable.appProfiles.update Aggiorna le impostazioni di un profilo dell'app Bigtable.
Nome autorizzazione backup Descrizione
bigtable.backups.create Crea un backup Bigtable.
bigtable.backups.delete Eliminare un backup Bigtable.
bigtable.backups.get Effettuare un backup di Bigtable.
bigtable.backups.getIamPolicy Leggi gli elenchi di controllo dell'accesso (ACL) di backup. Restituito come criteri IAM.
bigtable.backups.list Elenca backup di Bigtable.
bigtable.backups.restore Ripristina da un backup Bigtable.
bigtable.backups.testIamPermissions Recupera le autorizzazioni del chiamante su un backup specificato.
bigtable.backups.update Modifica la scadenza di un backup Bigtable.
Nome autorizzazione cluster Descrizione
bigtable.clusters.create Creare un cluster Bigtable.
bigtable.clusters.delete Eliminare un cluster Bigtable.
bigtable.clusters.get Ottenere informazioni sui cluster Bigtable.
bigtable.clusters.list Elenca i cluster Bigtable di un'istanza.
bigtable.clusters.update Aggiorna le impostazioni per un cluster Bigtable.
Nome autorizzazione per i tablet attivi Descrizione
bigtable.hotTablets.list Elencare gli tablet attivi per un cluster.
Nome autorizzazione istanza Descrizione
bigtable.instances.create Creare un'istanza Bigtable.
bigtable.instances.createTagBinding Crea un tag.
bigtable.instances.delete Eliminare un'istanza Bigtable.
bigtable.instances.deleteTagBinding Elimina un tag.
bigtable.instances.get Ottieni informazioni su un'istanza Bigtable.
bigtable.instances.getIamPolicy Lettura degli elenchi di controllo di accesso (ACL) delle istanze. Restituito come criteri IAM.
bigtable.instances.list Elenca le istanze Bigtable di un progetto.
bigtable.instances.listEffectiveTagBindings Elenca tutti i tag attivi per un'istanza.
bigtable.instances.listTagBindings Elenca i tag di un'istanza.
bigtable.instances.ping Inviare richieste di priming del canale.
bigtable.instances.setIamPolicy Aggiorna gli ACL.
bigtable.instances.update Aggiorna le impostazioni per un'istanza Bigtable.
Nome autorizzazione Key Visualizer Descrizione
bigtable.keyvisualizer.get Recupera le informazioni di Key Visualizer relative a una tabella, inclusi i metadati sui pattern di accesso e sulle distribuzioni delle chiavi di riga.
bigtable.keyvisualizer.list Elenca le informazioni disponibili su Key Visualizer per una tabella.
Nome autorizzazione posizione Descrizione
bigtable.locations.list Elenca posizioni Bigtable.
Nome autorizzazione tabella Descrizione
bigtable.tables.checkConsistency Controlla se una tabella replicata è aggiornata.
bigtable.tables.create Creare una tabella.
bigtable.tables.delete Eliminare una tabella.
bigtable.tables.generateConsistencyToken Genera un token per verificare se una tabella replicata è aggiornata.
bigtable.tables.get Ottieni informazioni su una tabella, incluse le famiglie di colonne e le singole impostazioni.
bigtable.tables.getIamPolicy Leggi gli ACL della tabella. Restituito come criteri IAM.
bigtable.tables.list Elenca tabelle in un'istanza.
bigtable.tables.mutateRows Modifica le righe all'interno di una tabella oppure troncala.
bigtable.tables.readRows Leggere le righe di una tabella.
bigtable.tables.sampleRowKeys Visualizza un esempio delle chiavi di riga utilizzate in una tabella.
bigtable.tables.setIamPolicy Aggiorna gli ACL della tabella.
bigtable.tables.undelete Ripristinare una tabella eliminata.
bigtable.tables.update Aggiorna le impostazioni di una tabella, includendo le famiglie di colonne e le impostazioni individuali.

Ruoli predefiniti

Ogni ruolo predefinito è un gruppo di una o più autorizzazioni. Ad esempio, roles/bigtable.reader fornisce accesso in sola lettura alle informazioni su istanze di Bigtable, cluster, tabelle e famiglie di colonne, nonché sui dati contenuti nelle tabelle. Assegna ruoli a utenti o gruppi, per consentire loro di eseguire azioni sulle risorse nel progetto.

La tabella riportata di seguito elenca i ruoli predefiniti per Bigtable, incluso un elenco delle autorizzazioni associate a ciascun ruolo:

Ruolo Autorizzazioni

(roles/bigtable.admin)

Amministrare tutte le istanze Bigtable all'interno di un progetto, inclusi i dati archiviati all'interno delle tabelle. Può creare nuove istanze. Destinato agli amministratori di progetto.

Risorse di livello più basso a cui puoi assegnare questo ruolo:

  • Tabella

bigtable.*

  • bigtable.appProfiles.create
  • bigtable.appProfiles.delete
  • bigtable.appProfiles.get
  • bigtable.appProfiles.list
  • bigtable.appProfiles.update
  • bigtable.backups.create
  • bigtable.backups.delete
  • bigtable.backups.get
  • bigtable.backups.getIamPolicy
  • bigtable.backups.list
  • bigtable.backups.read
  • bigtable.backups.restore
  • bigtable.backups.setIamPolicy
  • bigtable.backups.update
  • bigtable.clusters.create
  • bigtable.clusters.delete
  • bigtable.clusters.get
  • bigtable.clusters.list
  • bigtable.clusters.update
  • bigtable.hotTablets.list
  • bigtable.instances.create
  • bigtable.instances.createTagBinding
  • bigtable.instances.delete
  • bigtable.instances.deleteTagBinding
  • bigtable.instances.get
  • bigtable.istanze.getIamPolicy
  • bigtable.instances.list
  • bigtable.instances.listEffectiveTag
  • bigtable.instances.listTagBindings
  • bigtable.instances.ping
  • bigtable.istanze.setIamPolicy
  • bigtable.instances.update
  • bigtable.keyvisualizer.get
  • bigtable.keyvisualizer.list
  • bigtable.locations.list
  • bigtable.tabelle.checkCoerenza
  • bigtable.tables.create
  • bigtable.tables.delete
  • bigtable.tabelle.generateConsistencyToken
  • bigtable.tables.get
  • bigtable.tables.getIamPolicy
  • bigtable.tables.list
  • bigtable.tables.mutateRows
  • bigtable.tables.readRows
  • bigtable.tables.sampleRowKeys
  • bigtable.tables.setIamPolicy
  • bigtable.tables.undelete
  • bigtable.tables.update

monitoraggio.metricDescriptors.get

monitoraggio.metricascripts.list

monitoring.timeSeries.*

  • Monitoring.timeSeries.create
  • Monitoring.timeSeries.list

resourcemanager.projects.get

(roles/bigtable.reader)

Fornisce l'accesso di sola lettura ai dati archiviati nelle tabelle Bigtable. Destinato a data scientist, generatori di dashboard e altri scenari di analisi dei dati.

Risorse di livello più basso a cui puoi assegnare questo ruolo:

  • Tabella

bigtable.appProfiles.get

bigtable.appProfiles.list

bigtable.backups.get

bigtable.backups.list

bigtable.clusters.get

bigtable.clusters.list

bigtable.hotTablets.list

bigtable.instances.get

bigtable.instances.list

bigtable.instances.ping

bigtable.keyvisualizer.*

  • bigtable.keyvisualizer.get
  • bigtable.keyvisualizer.list

bigtable.locations.list

bigtable.tabelle.checkCoerenza

bigtable.tabelle.generateConsistencyToken

bigtable.tables.get

bigtable.tables.list

bigtable.tables.readRows

bigtable.tables.sampleRowKeys

monitoraggio.metricDescriptors.get

monitoraggio.metricascripts.list

monitoring.timeSeries.*

  • Monitoring.timeSeries.create
  • Monitoring.timeSeries.list

resourcemanager.projects.get

(roles/bigtable.user)

Fornisce l'accesso in lettura/scrittura ai dati archiviati all'interno delle tabelle Bigtable. Destinati agli sviluppatori di applicazioni o agli account di servizio.

Risorse di livello più basso a cui puoi assegnare questo ruolo:

  • Tabella

bigtable.appProfiles.get

bigtable.appProfiles.list

bigtable.backups.get

bigtable.backups.list

bigtable.clusters.get

bigtable.clusters.list

bigtable.hotTablets.list

bigtable.instances.get

bigtable.instances.list

bigtable.instances.ping

bigtable.keyvisualizer.*

  • bigtable.keyvisualizer.get
  • bigtable.keyvisualizer.list

bigtable.locations.list

bigtable.tabelle.checkCoerenza

bigtable.tabelle.generateConsistencyToken

bigtable.tables.get

bigtable.tables.list

bigtable.tables.mutateRows

bigtable.tables.readRows

bigtable.tables.sampleRowKeys

monitoraggio.metricDescriptors.get

monitoraggio.metricascripts.list

monitoring.timeSeries.*

  • Monitoring.timeSeries.create
  • Monitoring.timeSeries.list

resourcemanager.projects.get

(roles/bigtable.viewer)

Non fornisce accesso ai dati. Si tratta di un insieme minimo di autorizzazioni per accedere alla console Google Cloud per Bigtable.

Risorse di livello più basso a cui puoi assegnare questo ruolo:

  • Tabella

bigtable.appProfiles.get

bigtable.appProfiles.list

bigtable.backups.get

bigtable.backups.list

bigtable.clusters.get

bigtable.clusters.list

bigtable.hotTablets.list

bigtable.instances.get

bigtable.instances.list

bigtable.instances.listEffectiveTag

bigtable.instances.listTagBindings

bigtable.locations.list

bigtable.tabelle.checkCoerenza

bigtable.tabelle.generateConsistencyToken

bigtable.tables.get

bigtable.tables.list

monitoraggio.metricDescriptors.get

monitoraggio.metricascripts.list

Monitoring.timeSeries.list

resourcemanager.projects.get

Ruoli personalizzati

Se i ruoli predefiniti per Bigtable non soddisfano i tuoi requisiti aziendali, puoi definire i tuoi ruoli personalizzati con le autorizzazioni specificate.

Se il tuo ruolo personalizzato deve supportare l'accesso alla console Google Cloud, devi identificare le attività che gli utenti eseguiranno, quindi assicurarti che il ruolo personalizzato disponga delle autorizzazioni richieste per ogni attività, come mostrato nella tabella seguente. Se un ruolo personalizzato non dispone di tutte le autorizzazioni necessarie per un'attività e un utente tenta di eseguirla, Google Cloud Console non funzionerà correttamente.

Attività di Google Cloud Console Autorizzazioni obbligatorie
Accesso di base a Google Cloud Console
  • bigtable.appProfiles.get
  • bigtable.appProfiles.list
  • bigtable.clusters.get
  • bigtable.clusters.list
  • bigtable.instances.get
  • bigtable.instances.list
  • bigtable.locations.list
  • resourcemanager.projects.get
Crea un'istanza o un cluster

Autorizzazioni di accesso di base, più:

  • bigtable.clusters.create
  • bigtable.instances.create
Modifica un'istanza o un cluster

Autorizzazioni di accesso di base, più:

  • bigtable.clusters.update
  • bigtable.instances.update
Gestisci la configurazione di replica

Autorizzazioni di accesso di base, più:

  • bigtable.appProfiles.create
  • bigtable.appProfiles.delete
  • bigtable.appProfiles.update
Elimina un'istanza o un cluster

Autorizzazioni di accesso di base, più:

  • bigtable.clusters.delete
  • bigtable.instances.delete
Monitora un'istanza visualizzando i grafici

Autorizzazioni di accesso di base, più:

  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.timeSeries.list

Gestione IAM a livello di progetto

A livello di progetto, puoi concedere, modificare e revocare i ruoli IAM utilizzando Google Cloud Console, l'API IAM o Google Cloud CLI. Per istruzioni dettagliate, consulta la pagina Concedere, modificare e revocare l'accesso.

Gestione IAM a livello di istanza

Questa sezione spiega come gestire i ruoli IAM di Bigtable a livello di istanza.

Prima di iniziare

Prima di impostare i ruoli IAM a livello di istanza per un utente, assicurati che l'utente disponga di almeno uno dei seguenti ruoli IAM a livello di progetto:

  • Visualizzatore Bigtable (consigliato)
  • Lettore Bigtable
  • Utente Bigtable
  • Amministratore Bigtable

Scegli un ruolo a livello di progetto che non disponga di più autorizzazioni di quelle effettivamente richieste dall'utente in tutte le istanze del progetto. Per questo motivo, devi concedere il ruolo Visualizzatore Bigtable in quasi tutti i casi.

Se l'utente non ha almeno uno di questi ruoli a livello di progetto, non avrà accesso a Bigtable tramite la console Google Cloud. Google Cloud Console richiede uno di questi ruoli a livello di progetto per poter recuperare informazioni sulle istanze e sui cluster per conto dell'utente.

Concessione di ruoli IAM a livello di istanza

A livello di istanza, puoi concedere qualsiasi ruolo predefinito di Bigtable a un account utente o di servizio. Puoi anche concedere qualsiasi ruolo personalizzato definito da te.

Per concedere un ruolo predefinito o personalizzato a un account utente o di servizio a livello di istanza:

Console

  1. Vai alla pagina Istanze Bigtable in Google Cloud Console.

    Vai alla pagina Istanze

  2. Seleziona le caselle accanto alle istanze di cui vuoi gestire i ruoli. Viene visualizzato un riquadro informativo.

  3. Nel riquadro delle informazioni, fai clic su Autorizzazioni.

  4. In Aggiungi entità, inizia a digitare l'indirizzo email dell'account utente o di servizio che vuoi aggiungere, quindi fai clic sull'indirizzo email dell'account utente o di servizio.

  5. Fai clic sull'elenco a discesa Seleziona un ruolo, quindi fai clic su Bigtable per selezionare un ruolo predefinito o Personalizzato per selezionare un ruolo personalizzato.

  6. Fai clic sul nome di ogni ruolo che vuoi assegnare.

  7. Fai clic su Aggiungi. All'account utente o a servizio vengono assegnati i ruoli specificati a livello di istanza.

gcloud

  1. Se non conosci l'ID istanza, utilizza il comando bigtable instances list per visualizzare un elenco delle istanze del progetto:

    gcloud bigtable instances list
    
  2. Utilizza il comando bigtable instances set-iam-policy:

    gcloud bigtable instances set-iam-policy INSTANCE_ID POLICY_FILE
    

    Fornisci le seguenti informazioni:

    • INSTANCE_ID: l'identificatore permanente per l'istanza.
    • POLICY_FILE: percorso a un file JSON o YAML locale contenente un criterio IAM valido.

Gestione IAM a livello di tabella

Questa sezione spiega come gestire i ruoli IAM di Bigtable a livello di tabella.

Prima di iniziare

Prima di impostare i ruoli IAM a livello di tabella per un utente, assicurati che l'utente disponga di almeno uno dei seguenti ruoli IAM a livello di progetto:

  • Visualizzatore Bigtable (consigliato)
  • Lettore Bigtable
  • Utente Bigtable
  • Amministratore Bigtable

Scegli un ruolo a livello di progetto con più autorizzazioni di cui l'utente abbia effettivamente bisogno. Per questo motivo, devi concedere il ruolo Visualizzatore Bigtable in quasi tutti i casi.

Se l'utente non ha almeno uno di questi ruoli a livello di progetto, non ha accesso a Bigtable tramite la console Google Cloud. Google Cloud Console richiede uno di questi ruoli a livello di progetto per poter recuperare informazioni su istanze, cluster e tabelle.

Concessione di ruoli IAM a livello di tabella

A livello di tabella, puoi concedere qualsiasi ruolo predefinito di Bigtable a un account utente o di servizio. Puoi anche concedere qualsiasi ruolo personalizzato definito da te.

Per concedere un ruolo predefinito o personalizzato a un account utente o di servizio a livello di tabella:

Console

  1. Vai alla pagina Istanze Bigtable in Google Cloud Console.

    Vai alla pagina Istanze

  2. Fai clic sul nome dell'istanza che contiene la tabella di cui stai impostando IAM.

  3. Seleziona Tabelle nel riquadro di navigazione a sinistra.

  4. Seleziona le caselle accanto alle tabelle di cui vuoi gestire i ruoli. Viene visualizzato un riquadro informativo.

  5. Nel riquadro delle informazioni, fai clic su Autorizzazioni.

  6. In Aggiungi entità, inizia a digitare l'indirizzo email dell'account utente o di servizio che vuoi aggiungere, quindi fai clic sull'indirizzo email dell'account utente o di servizio.

  7. Fai clic sull'elenco a discesa Seleziona un ruolo, quindi fai clic su Bigtable per selezionare un ruolo predefinito o Personalizzato per selezionare un ruolo personalizzato.

  8. Fai clic sul nome di ogni ruolo che vuoi assegnare.

  9. Fai clic su Aggiungi. All'account utente o di servizio vengono concessi i ruoli specificati a livello di tabella.

gcloud

  1. Se non conosci l'ID istanza, utilizza il comando bigtable instances list per visualizzare un elenco delle istanze del progetto:

    gcloud bigtable instances list
    
  2. Se non conosci gli ID cluster dell'istanza, utilizza il comando bigtable clusters list per visualizzare un elenco di cluster nell'istanza:

    gcloud bigtable clusters list --instances=INSTANCE_ID
    
  3. Utilizza il comando bigtable instances tables set-iam-policy:

    gcloud bigtable instances tables set-iam-policy TABLE_ID \
        --instance=INSTANCE_ID POLICY_FILE
    

    Fornisci le seguenti informazioni:

    • INSTANCE_ID: l'identificatore permanente per l'istanza.
    • POLICY_FILE: percorso a un file JSON o YAML locale contenente un criterio IAM valido.

Condizioni IAM

Le condizioni IAM consentono di definire e applicare forzatamente il controllo dell'accesso condizionale basato su attributi per alcune risorse Google Cloud, incluse le risorse Bigtable.

In Bigtable, puoi applicare l'accesso condizionale in base ai seguenti attributi:

  • Attributi di data/ora: utilizza per impostare l'accesso temporaneo (pianificato), in scadenza o a durata limitata alle risorse Bigtable. Ad esempio, puoi consentire a un utente di accedere a una tabella fino a una data specificata.
  • Attributi della risorsa: da utilizzare per configurare l'accesso condizionale in base al nome, al tipo o agli attributi del servizio della risorsa. In Bigtable puoi utilizzare attributi di istanze, cluster e tabelle per configurare l'accesso condizionale. Ad esempio, puoi consentire a un utente di gestire le tabelle solo nelle tabelle che iniziano con un prefisso specifico oppure di accedere solo a una tabella specifica.

Per ulteriori informazioni sulle condizioni IAM, consulta la panoramica delle condizioni.

Passaggi successivi

Scopri di più su IAM.