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 e il controllo dell'accesso. Puoi impostare i criteri IAM sulle risorse per controllare chi ha un determinato accesso a quali 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 è l'elemento padre delle viste autorizzate, mentre un cluster è l'elemento padre dei suoi backup. Tu puoi configurare il 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 hai accesso a livello di progetto, hanno accesso a istanze, cluster, tabelle e viste autorizzate per il progetto. Se ti viene concesso l'accesso a una vista autorizzata, non hai automaticamente accesso alle risorse di livello superiore considerate padre della vista autorizzata, come la tabella e l'istanza. Questo comportamento è chiamata ereditarietà dei criteri.
Per saperne di più sulla gerarchia IAM, consulta ereditarietà dei criteri IAM.
Ecco alcuni esempi di utilizzo del controllo dell'accesso a livello di progetto:
- Consenti a un utente di leggere, ma non scrivere, qualsiasi tabella all'interno del progetto.
- Consenti a un utente di leggere e scrivere in qualsiasi tabella all'interno del progetto, ma non e gestire le istanze.
- Consentire a un utente di leggere e scrivere in qualsiasi tabella all'interno del progetto e gestire le istanze.
Di seguito sono riportati 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 di un progetto con più istanze.
- Consenti a un utente di gestire una sola istanza in un progetto con più istanze.
Ecco alcuni esempi di utilizzo del controllo dell'accesso a livello di tabella:
- Consentire 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.
Ecco alcuni esempi di utilizzo del controllo dell'accesso a livello di backup:
- Impedire a un utente di eliminare un backup.
- Impedire a un utente di eseguire il ripristino dal backup.
Esempi di utilizzo del controllo dell'accesso a livello di vista autorizzata includono: le seguenti:
- Consente a un utente di leggere una visualizzazione autorizzata, ma non di modificarla.
- Consenti a un utente di visualizzare i dati solo da una delle più viste autorizzate di un .
Per una descrizione dettagliata di IAM e delle sue funzionalità, consulta la Guida per gli sviluppatori di IAM. In particolare, consulta Concessione, modifica e revoca dell'accesso.
In Bigtable, non puoi concedere l'accesso ai seguenti tipi di principal:
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 Ruoli Bigtable nella console Google Cloud finché non abiliti la tramite Google Cloud CLI o tramite l'API Compute Engine.
Autorizzazioni
Questa sezione riepiloga le autorizzazioni supportate da Bigtable.
Le autorizzazioni consentono agli utenti di eseguire azioni specifiche sulle risorse Bigtable. Ad esempio, l'autorizzazione bigtable.instances.list
consente
per elencare tutte le istanze Bigtable
all'interno di un progetto. Tu
non concedino autorizzazioni direttamente agli utenti, ma assegni a ogni utente
ruolo predefinito o ruolo personalizzato, che concede uno o
altre autorizzazioni.
Le seguenti tabelle elencano le autorizzazioni IAM associate a Bigtable:
Nome autorizzazione profilo app | Descrizione |
---|---|
bigtable.appProfiles.create |
Crea un profilo dell'app Bigtable. |
bigtable.appProfiles.delete |
Elimina un profilo 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 per un profilo dell'app Bigtable. |
Nome autorizzazione backup | Descrizione |
---|---|
bigtable.backups.create |
Crea un backup di Bigtable. |
bigtable.backups.delete |
Eliminare un backup di Bigtable. |
bigtable.backups.get |
Informazioni su un backup di 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 |
Leggere da un backup Bigtable. |
bigtable.backups.setIamPolicy |
Aggiorna gli ACL di backup. |
bigtable.backups.update |
Modifica la scadenza di un backup di Bigtable. |
Nome dell'autorizzazione del cluster | Descrizione |
---|---|
bigtable.clusters.create |
Creare un cluster Bigtable. |
bigtable.clusters.delete |
Elimina un cluster Bigtable. |
bigtable.clusters.get |
Ottieni 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 Hot tablets | Descrizione |
---|---|
bigtable.hotTablets.list |
Elenca i 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 |
Elimina un'istanza Bigtable. |
bigtable.instances.deleteTagBinding |
Eliminare un tag. |
bigtable.instances.get |
Visualizza le informazioni su un'istanza Bigtable. |
bigtable.instances.getIamPolicy |
Legge 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 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 di un'istanza Bigtable. |
Nome dell'autorizzazione Key Visualizer | Descrizione |
---|---|
bigtable.keyvisualizer.get |
Ottieni informazioni di Key Visualizer su una tabella, inclusi i metadati su pattern di accesso e distribuzioni chiave di riga. |
bigtable.keyvisualizer.list |
Elenca le informazioni di Key Visualizer disponibili per una tabella. |
Nome autorizzazione di accesso alla posizione | Descrizione |
---|---|
bigtable.locations.list |
Elenca le località Bigtable. |
Nome 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 |
Modificare le righe all'interno di una tabella o troncarla. |
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 |
Recupera una tabella eliminata. |
bigtable.tables.update |
Aggiorna le impostazioni di una tabella, incluse le famiglie di colonne e le relative impostazioni individuali. |
Nome autorizzazione di accesso alla posizione | Descrizione |
---|---|
bigtable.locations.list |
Elenca le località Bigtable. |
nome autorizzazione visualizzazione autorizzata | Descrizione |
---|---|
bigtable.authorizedViews.create |
Crea una vista autorizzata. |
bigtable.authorizedViews.delete |
Eliminare 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 |
Recupera un esempio delle chiavi di riga utilizzate in una vista autorizzata. |
bigtable.authorizedViews.setIamPolicy |
Aggiorna i criteri di controllo dell'accesso per una vista autorizzata. |
bigtable.authorizedViews.update |
Aggiorna le impostazioni per una vista autorizzata. |
Ruoli predefiniti
Ciascun ruolo predefinito è un pacchetto di una o più autorizzazioni. Per
Ad esempio, roles/bigtable.reader
fornisce accesso di sola lettura alle informazioni
nonché istanze, cluster, tabelle e famiglie di colonne Bigtable
dei dati contenuti nelle tabelle. Puoi assegnare ruoli a utenti o gruppi,
per eseguire azioni sulle risorse del tuo 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 sono adatti ai 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 necessarie per un'attività e un utente tenta di eseguire l'attività, la console Google Cloud non funzionerà in modo corretto.
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, più:
|
Gestisci configurazione di replica |
Autorizzazioni di accesso di base, più:
|
Eliminare un'istanza o un cluster |
Autorizzazioni di accesso di base, oltre a:
|
Monitora un'istanza visualizzando grafici |
Autorizzazioni di accesso di base, più:
|
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 Console Google Cloud, l'API IAM o Google Cloud CLI. Consulta Concessione, modifica e revoca dell'accesso per informazioni dettagliate istruzioni.
Una volta 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:
- Bigtable Viewer (consigliato)
- Bigtable Reader
- Bigtable User
- Bigtable Administrator
Scegli un ruolo a livello di progetto che non disponga di più autorizzazioni dell'utente effettivo in tutte le istanze, le tabelle, i backup o le viste 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 una di queste ruoli a livello di progetto in modo da poter recuperare informazioni sulle istanze di cluster, tabelle o backup per conto dell'utente.
Concessione di ruoli IAM a livello di istanza
A livello di istanza, puoi concedere qualsiasi valore predefinito di Bigtable ruoli a un account utente o di servizio. Puoi anche concedere qualsiasi ruolo personalizzato che hai definito.
Per concedere un ruolo predefinito o personalizzato a un account utente o di servizio nella 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 oppure l'account di servizio che vuoi aggiungere, poi fai clic sull'indirizzo email dell'utente l'account di servizio.
Fai clic sull'elenco a discesa Seleziona un ruolo, quindi fai clic su Bigtable per selezionare un ruolo predefinito o Personalizzato per seleziona 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 nella a livello di tabella:
Console
Vai alla pagina delle istanze Bigtable nel 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 oppure l'account di servizio che vuoi aggiungere, poi fai clic sull'indirizzo email dell'utente l'account di servizio.
Fai clic sull'elenco a discesa Seleziona un ruolo, quindi fai clic su Bigtable per selezionare un ruolo predefinito o Personalizzato per seleziona 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 specificato a livello di tabella.
gcloud
Se non conosci l'ID istanza, utilizza 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.
Usa 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 a qualsiasi ruoli 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 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.
Concessione di ruoli IAM autorizzati a livello di vista
A livello di vista autorizzata, puoi concedere a un utente o a un account di servizio uno dei ruoli predefiniti di Bigtable. Puoi anche assegnare 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, esegui quanto segue:
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: da utilizzare 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 delle risorse: Utilizzalo per configurare l'accesso condizionale in base a nome, tipo di risorsa o attributi del servizio di risorse. 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 Panoramica delle condizioni.
Passaggi successivi
Scopri di più su IAM.