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.
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 |
---|---|
Amministratore Bigtable( 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:
|
bigtable.*
monitoraggio. monitoraggio. monitoring.timeSeries.*
resourcemanager.projects.get |
Lettore Bigtable( 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:
|
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.locations.list bigtable. bigtable. bigtable.tables.get bigtable.tables.list bigtable.tables.readRows bigtable.tables.sampleRowKeys monitoraggio. monitoraggio. monitoring.timeSeries.*
resourcemanager.projects.get |
Utente Bigtable( 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:
|
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.locations.list bigtable. bigtable. bigtable.tables.get bigtable.tables.list bigtable.tables.mutateRows bigtable.tables.readRows bigtable.tables.sampleRowKeys monitoraggio. monitoraggio. monitoring.timeSeries.*
resourcemanager.projects.get |
Visualizzatore Bigtable( 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:
|
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. bigtable. bigtable.locations.list bigtable. bigtable. bigtable.tables.get bigtable.tables.list monitoraggio. monitoraggio. 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 |
|
Crea un'istanza o un cluster |
Autorizzazioni di accesso di base, più:
|
Modifica un'istanza o un cluster |
Autorizzazioni di accesso di base, più:
|
Gestisci la configurazione di replica |
Autorizzazioni di accesso di base, più:
|
Elimina un'istanza o un cluster |
Autorizzazioni di accesso di base, più:
|
Monitora un'istanza visualizzando i grafici |
Autorizzazioni di accesso di base, più:
|
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
Vai alla pagina Istanze Bigtable in Google Cloud Console.
Seleziona le caselle accanto alle istanze di cui vuoi gestire i ruoli. Viene visualizzato un riquadro informativo.
Nel riquadro delle informazioni, fai clic su Autorizzazioni.
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.
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.
Fai clic sul nome di ogni ruolo che vuoi assegnare.
Fai clic su Aggiungi. All'account utente o a servizio vengono assegnati i ruoli specificati a livello di istanza.
gcloud
Se non conosci l'ID istanza, utilizza il comando
bigtable instances list
per visualizzare un elenco delle istanze del progetto:gcloud bigtable instances list
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
Vai alla pagina Istanze Bigtable in Google Cloud Console.
Fai clic sul nome dell'istanza che contiene la tabella di cui stai impostando IAM.
Seleziona Tabelle nel riquadro di navigazione a sinistra.
Seleziona le caselle accanto alle tabelle di cui vuoi gestire i ruoli. Viene visualizzato un riquadro informativo.
Nel riquadro delle informazioni, fai clic su Autorizzazioni.
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.
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.
Fai clic sul nome di ogni ruolo che vuoi assegnare.
Fai clic su Aggiungi. All'account utente o di servizio vengono concessi i ruoli specificati a livello di tabella.
gcloud
Se non conosci l'ID istanza, utilizza il comando
bigtable instances list
per visualizzare un elenco delle istanze del progetto:gcloud bigtable instances list
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
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.