Controllo dell'accesso a Bigtable con IAM
Questa pagina descrive le opzioni di controllo dell'accesso in Bigtable.
Panoramica
Bigtable utilizza Identity and Access Management (IAM) per controllo dell'accesso. Imposti i criteri IAM sulle risorse per controllare chi ha quale accesso alle risorse.
Le risorse Bigtable sono organizzate in una gerarchia. Un progetto Google Cloud è il progetto principale di un'istanza Bigtable, che è il progetto principale dei relativi cluster e tabelle. Una tabella è la tabella principale delle relative visualizzazioni autorizzate, mentre un cluster è la tabella principale dei relativi backup. Puoi configurare controllo dell'accesso a ogni livello.
Se disponi delle autorizzazioni a un livello, disponi automaticamente delle autorizzazioni al di sotto di quel livello. Ad esempio, se disponi dell'accesso a livello di progetto, hai accesso alle istanze, ai cluster, alle tabelle e alle viste autorizzate nel progetto. Se ti viene concesso l'accesso a una vista autorizzata, non hai automaticamente accesso alle risorse di livello superiore che sono i parenti della vista autorizzata, come la tabella e l'istanza. Questo comportamento è chiamato eredità dei criteri.
Per ulteriori informazioni sulla gerarchia IAM, consulta Eredità dei criteri IAM.
Ecco alcuni esempi di utilizzo controllo dell'accesso a livello di progetto:
- Consente a un utente di leggere, ma non scrivere, in qualsiasi tabella del progetto.
- Consenti a un utente di leggere e scrivere in qualsiasi tabella all'interno del progetto, ma non di gestire le istanze.
- Consente a un utente di leggere e scrivere in qualsiasi tabella del progetto e di gestire le istanze.
Di seguito sono riportati alcuni esempi di utilizzo controllo dell'accesso dell'accesso a livello di istanza:
- Consenti a un utente di leggere da qualsiasi tabella in una sola istanza di un progetto con più istanze.
- Consenti a un utente di gestire una sola istanza in un progetto con più istanze.
Di seguito sono riportati alcuni esempi di utilizzo controllo dell'accesso dell'accesso a livello di tabella:
- Consenti a un utente di scrivere in una tabella, ma non di leggerla.
- Consentire a un utente di leggere da una tabella, ma non di scrivere al suo interno.
Di seguito sono riportati alcuni esempi di utilizzo controllo dell'accesso dell'accesso a livello di backup:
- Impedire a un utente di eliminare un backup.
- Impedire a un utente di eseguire il ripristino dal backup.
Di seguito sono riportati alcuni esempi di utilizzo controllo dell'accesso dell'accesso a livello di vista autorizzata:
- Consente a un utente di leggere una visualizzazione autorizzata, ma non di modificarla.
- Consenti a un utente di visualizzare i dati di una sola delle più visualizzazioni autorizzate di una tabella.
Per una descrizione dettagliata di IAM e delle sue funzionalità, consulta la Guida per gli sviluppatori di IAM. In particolare, consulta Assegnazione, modifica e revoca dell'accesso.
In Bigtable, non puoi concedere l'accesso ai seguenti tipi di agenti:
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 attivare l'API Bigtable per il tuo progetto. Non potrai visualizzare i ruoli Bigtable nella console Google Cloud finché non avrai attivato 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 assegni direttamente le autorizzazioni agli utenti, ma assegni a ciascun utente un ruolo predefinito o un ruolo personalizzato che concede una o più autorizzazioni.
Le tabelle riportate di seguito elencano le autorizzazioni IAM associate a Bigtable:
Nome dell'autorizzazione del profilo dell'app | Descrizione |
---|---|
bigtable.appProfiles.create |
Crea un profilo dell'app Bigtable. |
bigtable.appProfiles.delete |
Elimina un profilo dell'app Bigtable. |
bigtable.appProfiles.get |
Visualizza le informazioni su un profilo dell'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 per i backup | Descrizione |
---|---|
bigtable.backups.create |
Crea un backup di Bigtable. |
bigtable.backups.delete |
Elimina un backup di Bigtable. |
bigtable.backups.get |
Visualizza le informazioni su un backup Bigtable. |
bigtable.backups.getIamPolicy |
Leggi gli elenchi di controllo dell'accesso (ACL) di un backup. Restituito come criteri IAM. |
bigtable.backups.list |
Elenca i backup di Bigtable. |
bigtable.backups.restore |
Ripristina da un backup di Bigtable. |
bigtable.backups.testIamPermissions |
Ottenere le autorizzazioni dell'utente che ha effettuato la chiamata su un backup specificato. |
bigtable.backups.read |
Leggi da un backup di Bigtable. |
bigtable.backups.setIamPolicy |
Aggiorna le ACL di backup. |
bigtable.backups.update |
Modifica la scadenza di un backup di Bigtable. |
Nome dell'autorizzazione del cluster | Descrizione |
---|---|
bigtable.clusters.create |
Crea un cluster Bigtable. |
bigtable.clusters.delete |
Elimina un cluster Bigtable. |
bigtable.clusters.get |
Visualizza le informazioni su un cluster Bigtable. |
bigtable.clusters.list |
Elenca i cluster Bigtable di un'istanza. |
bigtable.clusters.update |
Aggiorna le impostazioni di un cluster Bigtable. |
Nome dell'autorizzazione per i tablet caldi | Descrizione |
---|---|
bigtable.hotTablets.list |
Elenca i tablet caldi per un cluster. |
Nome autorizzazione istanza | Descrizione |
---|---|
bigtable.instances.create |
Crea un'istanza Bigtable. |
bigtable.instances.createTagBinding |
Crea un tag. |
bigtable.instances.delete |
Elimina un'istanza Bigtable. |
bigtable.instances.deleteTagBinding |
Eliminare un tag. |
bigtable.instances.get |
Visualizza le informazioni su un'istanza Bigtable. |
bigtable.instances.getIamPolicy |
Leggi gli elenchi di controllo dell'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 in vigore 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 di un'istanza Bigtable. |
Nome dell'autorizzazione Key Visualizer | Descrizione |
---|---|
bigtable.keyvisualizer.get |
Visualizza le informazioni di Key Visualizer su una tabella, inclusi i metadati relativi ai pattern di accesso e alle distribuzioni chiave di riga. |
bigtable.keyvisualizer.list |
Elenca le informazioni di Key Visualizer disponibili per una tabella. |
Nome dell'autorizzazione di accesso alla posizione | Descrizione |
---|---|
bigtable.locations.list |
Elenca le località Bigtable. |
Nome dell'autorizzazione tabella | Descrizione |
---|---|
bigtable.tables.checkConsistency |
Controlla se una tabella replicata è aggiornata. |
bigtable.tables.create |
Creare una tabella. |
bigtable.tables.delete |
Elimina una tabella. |
bigtable.tables.generateConsistencyToken |
Genera un token per verificare se una tabella replicata è aggiornata. |
bigtable.tables.get |
Visualizza le informazioni su una tabella, incluse le famiglie di colonne e le relative impostazioni individuali. |
bigtable.tables.getIamPolicy |
Leggere gli ACL delle tabelle. Restituito come criteri IAM. |
bigtable.tables.list |
Elenca le tabelle in un'istanza. |
bigtable.tables.mutateRows |
Modifica le righe all'interno di una tabella o tronca la tabella. |
bigtable.tables.readRows |
Legge le righe di una tabella. Sono incluse informazioni sulla tabella, ad esempio le famiglie di colonne e le relative impostazioni. |
bigtable.tables.sampleRowKeys |
Ottieni un esempio delle chiavi di riga utilizzate in una tabella. |
bigtable.tables.setIamPolicy |
Aggiorna le ACL delle tabelle. |
bigtable.tables.undelete |
Ripristinare una tabella eliminata. |
bigtable.tables.update |
Aggiorna le impostazioni di una tabella, incluse le famiglie di colonne e le relative impostazioni individuali. |
Nome dell'autorizzazione di accesso alla posizione | Descrizione |
---|---|
bigtable.locations.list |
Elenca le località Bigtable. |
nome dell'autorizzazione di visualizzazione autorizzata | Descrizione |
---|---|
bigtable.authorizedViews.create |
Crea una vista autorizzata. |
bigtable.authorizedViews.delete |
Elimina una vista autorizzata. |
bigtable.authorizedViews.get |
Visualizza le informazioni su una visualizzazione autorizzata. |
bigtable.authorizedViews.getIamPolicy |
Visualizza il controllo dell'accesso per una vista autorizzata. Restituito come criteri IAM. |
bigtable.authorizedViews.list |
Elenca le viste autorizzate in una tabella. |
bigtable.authorizedViews.mutateRows |
Modificare le righe all'interno di una vista autorizzata. |
bigtable.authorizedViews.readRows |
Leggi le righe da una vista autorizzata. |
bigtable.authorizedViews.sampleRowKeys |
Ottieni un esempio delle chiavi di riga utilizzate in una visualizzazione autorizzata. |
bigtable.authorizedViews.setIamPolicy |
Aggiorna i criteri di controllo dell'accesso per una visualizzazione autorizzata. |
bigtable.authorizedViews.update |
Aggiorna le impostazioni per una vista autorizzata. |
Ruoli predefiniti
Ogni ruolo predefinito è un insieme di una o più autorizzazioni. Ad esempio, roles/bigtable.reader
fornisce l'accesso di sola lettura alle informazioni su istanze, cluster, tabelle e famiglie di colonne Bigtable, nonché ai dati contenuti nelle tabelle. Assegna i ruoli a utenti o gruppi,
che possono eseguire azioni sulle risorse del progetto.
La tabella seguente elenca i ruoli predefiniti per Bigtable, incluso un elenco delle autorizzazioni associate a ciascun ruolo:
Role | Permissions |
---|---|
Bigtable Administrator( Administers all Bigtable instances within a project, including the data stored within tables. Can create new instances. Intended for project administrators. Lowest-level resources where you can grant this role:
|
|
Bigtable Reader( Provides read-only access to the data stored within Bigtable tables. Intended for data scientists, dashboard generators, and other data-analysis scenarios. Lowest-level resources where you can grant this role:
|
|
Bigtable User( Provides read-write access to the data stored within Bigtable tables. Intended for application developers or service accounts. Lowest-level resources where you can grant this role:
|
|
Bigtable Viewer( Provides no data access. Intended as a minimal set of permissions to access the Google Cloud console for Bigtable. Lowest-level resources where you can grant this role:
|
|
Ruoli personalizzati
Se i ruoli predefiniti per Bigtable non soddisfano i tuoi requisiti aziendali, puoi definire i tuoi ruoli personalizzati con le autorizzazioni da te specificate.
Se il 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 richieste per un'attività e un utente tenta di eseguirla, la Console Google Cloud non funzionerà correttamente.
Attività della console Google Cloud | Autorizzazioni obbligatorie |
---|---|
Accesso di base alla console Google Cloud |
|
Creare un'istanza o un cluster |
Autorizzazioni di accesso di base, oltre a:
|
Modificare un'istanza o un cluster |
Autorizzazioni di accesso di base, oltre a:
|
Gestire la configurazione della replica |
Autorizzazioni di accesso di base, oltre a:
|
Eliminare un'istanza o un cluster |
Autorizzazioni di accesso di base, oltre a:
|
Monitora un'istanza visualizzando i grafici |
Autorizzazioni di accesso di base, oltre a:
|
Creare e aggiornare una tabella |
Autorizzazioni di accesso di base, oltre a:
|
Ripristina un backup |
Autorizzazioni di accesso di base, oltre a:
|
Gestione IAM
Questa sezione spiega come gestire i ruoli IAM e le autorizzazioni correlate a livello di progetto, istanza, tabella e backup.
Gestione IAM a livello di progetto
A livello di progetto, puoi concedere, modificare e revocare i ruoli IAM utilizzando la console Google Cloud, l'API IAM o Google Cloud CLI. Per istruzioni dettagliate, consulta Concedere, modificare e revocare l'accesso.
Dopo aver creato un progetto, puoi concedere agli utenti i ruoli IAM a livello di progetto in base ai livelli di accesso specifici.
Ruoli obbligatori
Prima di impostare i ruoli IAM a livello di istanza, a livello di tabella, a livello di backup o a livello di visualizzazione autorizzati per un utente, assicurati che l'utente disponga di almeno uno dei seguenti ruoli IAM a livello di progetto:
- Visualizzatore Bigtable (consigliato)
- Bigtable Reader
- Bigtable User
- Bigtable Administrator
Scegli un ruolo a livello di progetto che non abbia più autorizzazioni di quelle di cui l'utente ha effettivamente bisogno in tutte le istanze, le tabelle, i backup o le visualizzazioni autorizzate del progetto. Per questo motivo, dovresti concedere il ruolo Visualizzatore Bigtable quasi sempre.
Se l'utente non dispone di almeno uno di questi ruoli a livello di progetto, non avrà accesso a Bigtable tramite la console Google Cloud. La console Google Cloud richiede uno di questi ruoli a livello di progetto per poter recuperare informazioni su istanze, cluster, tabelle o backup per conto dell'utente.
Concedere ruoli IAM a livello di istanza
A livello di istanza, puoi concedere a un utente o a un account di servizio uno dei ruoli predefinite di Bigtable. Puoi anche concedere qualsiasi ruolo personalizzato che hai definito.
Per concedere un ruolo predefinito o personalizzato a un account utente o di servizio a livello di istanza:
Console
Vai alla pagina delle istanze Bigtable nella console Google Cloud.
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'utente o dell'account di servizio che vuoi aggiungere, quindi fai clic sull'indirizzo email dell'utente o dell'account di servizio.
Fai clic sull'elenco a discesa Seleziona un ruolo, quindi su Bigtable per selezionare un ruolo predefinito o su 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 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 quanto segue:
- INSTANCE_ID: l'identificatore permanente dell'istanza.
- POLICY_FILE: percorso di un file JSON o YAML locale contenente un criterio IAM valido.
Concedere ruoli IAM a livello di tabella
A livello di tabella, puoi concedere a un utente o a un account di servizio uno dei ruoli predefiniti di Bigtable. Puoi anche concedere qualsiasi ruolo personalizzato che hai definito.
Per concedere un ruolo predefinito o personalizzato a un account utente o di servizio a livello di tabella:
Console
Vai alla pagina delle istanze Bigtable nella console Google Cloud.
Fai clic sul nome dell'istanza contenente la tabella di cui stai impostando l'IAM.
Seleziona Tables (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'utente o dell'account di servizio che vuoi aggiungere, quindi fai clic sull'indirizzo email dell'utente o dell'account di servizio.
Fai clic sull'elenco a discesa Seleziona un ruolo, quindi su Bigtable per selezionare un ruolo predefinito o su 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 tabella dell'istanza, utilizza il comando
bigtable instances tables list
per visualizzare un elenco delle tabelle nell'istanza.gcloud bigtable instances tables list --instances=INSTANCE_ID
Fornisci quanto segue:
- INSTANCE_ID: l'identificatore permanente dell'istanza.
Utilizza il comando
bigtable instances tables set-iam-policy
:gcloud bigtable instances tables set-iam-policy \TABLE_ID \ --instance=INSTANCE_ID \ POLICY_FILE
Fornisci quanto segue:
- TABLE_ID: l'identificatore permanente della tabella.
- INSTANCE_ID: l'identificatore permanente dell'istanza.
- POLICY_FILE: percorso di un file JSON o YAML locale contenente un criterio IAM valido.
Concedere ruoli IAM a livello di backup
A livello di backup, puoi concedere a un utente o a un account di servizio uno dei ruoli predefinite di Bigtable. Puoi anche concedere qualsiasi ruolo personalizzato che hai definito.
Per concedere un ruolo predefinito o personalizzato a un account utente o di servizio a livello di backup:
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 backup in un'istanza, utilizza il comando
bigtable instances backups list
per visualizzare un elenco dei backup nell'istanza.gcloud bigtable backups list --instances=INSTANCE_ID
Fornisci quanto segue:
- INSTANCE_ID: l'identificatore permanente dell'istanza.
Utilizza il comando
gcloud bigtable backups set-iam-policy
:gcloud bigtable backups set-iam-policy BACKUP_ID \ --instance=INSTANCE_ID \ --cluster=CLUSTER_ID \ POLICY_FILE
Fornisci quanto segue:
- BACKUP_ID: l'identificatore permanente del backup.
- INSTANCE_ID: l'identificatore permanente dell'istanza.
TABLE_ID
: l'identificatore permanente della tabellaPOLICY_FILE
: percorso di un file JSON o YAML locale contenente un criterio IAM valido.
Concedere ruoli IAM a livello di vista autorizzata
A livello di vista autorizzata, puoi concedere a un utente o a un account di servizio uno dei ruoli predefiniti di Bigtable. Puoi anche concedere qualsiasi ruolo personalizzato che hai definito.
Per concedere un ruolo predefinito o personalizzato a un utente o a un account di servizio a livello di vista autorizzata, procedi nel seguente modo:
Console
Apri l'elenco delle istanze Bigtable nella console Google Cloud.
Fai clic sull'istanza contenente la vista autorizzata.
Nel riquadro di navigazione, fai clic su Bigtable Studio.
Nell'esploratore, espandi la tabella e Visualizzazioni autorizzate.
Accanto alla visualizzazione autorizzata che vuoi modificare, fai clic sul menu di azioni more_vert e poi su Concede accesso.
Aggiungi almeno un'entità e seleziona il ruolo a cui deve essere assegnata l'entità o il gruppo di entità.
(Facoltativo) Per concedere l'accesso per altri ruoli, fai clic su Aggiungi un altro ruolo e inserisci l'entità e il ruolo per ogni ruolo aggiuntivo.
Fai clic su Salva.
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 tabella dell'istanza, utilizza il comando
bigtable instances tables list
per visualizzare un elenco delle tabelle nell'istanza.gcloud bigtable instances tables list --instances=INSTANCE_ID
Se non conosci l'ID vista, utilizza il comando
bigtable authorized-views list
per visualizzare un elenco di tutte le viste autorizzate della tabella.gcloud bigtable instances tables authorized-views list \ --instance=INSTANCE_ID \ --table=TABLE_ID
Utilizza il comando
bigtable authorized-views set-iam-policy
:gcloud bigtable authorized-views set-iam-policy TABLE_ID \ AUTHORIZED_VIEW_ID --instance=INSTANCE_ID POLICY_FILE
Fornisci quanto segue:
INSTANCE_ID
: l'identificatore permanente dell'istanza.TABLE_ID
: l'identificatore permanente della tabellaAUTHORIZED_VIEW_ID
: l'identificatore permanente della visualizzazionePOLICY_FILE
: percorso di un file JSON o YAML locale contenente un criterio IAM valido.
Condizioni IAM
Le condizioni IAM ti consentono di definire e applicare forzatamente il controllo dell'accesso condizionale basato su attributi per alcune risorse Google Cloud, tra cui le risorse Bigtable.
In Bigtable, puoi applicare l'accesso condizionale in base ai seguenti attributi:
- Attributi data/ora: vengono utilizzati per impostare l'accesso temporaneo (in scadenza), pianificato o con 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 gli attributi di istanze, cluster, tabelle, backup e viste autorizzate per configurare l'accesso condizionale. Ad esempio, puoi consentire a un utente di gestire le tabelle solo se iniziano con un prefisso specifico oppure puoi consentire a un utente 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.