Controllo dell'accesso a Bigtable con IAM
Questa pagina descrive le opzioni di controllo dell'accesso disponibili in Bigtable .
Panoramica
Bigtable utilizza Identity and Access Management (IAM) per controllo dell'accesso.
Per Bigtable, puoi configurare il controllo dell'accesso a livello di progetto, istanza, tabella e vista autorizzata. Ecco alcuni esempi di utilizzo controllo dell'accesso a livello di progetto:
- Consenti a un utente di leggere, ma non scrivere, su qualsiasi tabella all'interno del progetto.
- Consenti a un utente di leggere e scrivere in qualsiasi tabella all'interno del progetto, ma non di gestire le istanze.
- Consenti a un utente di leggere e scrivere in qualsiasi tabella all'interno del progetto e di gestire le istanze.
Ecco alcuni esempi di utilizzo controllo dell'accesso a livello di istanza:
- Consente a un utente di leggere da qualsiasi tabella solo in un'istanza di un progetto con più istanze.
- Consente a un utente di gestire una sola istanza in un progetto con più istanze.
Ecco alcuni esempi di utilizzo controllo dell'accesso#39;accesso a livello di tabella:
- Consente a un utente di scrivere in una tabella, ma non di leggere dalla tabella.
- Consente a un utente di leggere da una tabella ma non di scrivere nella tabella.
Ecco alcuni esempi di utilizzo controllo dell'accesso dell'accesso a livello di backup:
- Impedisci a un utente di eliminare un backup.
- Impedisci a un utente di eseguire il ripristino dal backup.
Ecco alcuni esempi di utilizzo controllo dell'accesso#39;accesso a livello di vista autorizzata:
- Consenti a un utente di leggere una vista autorizzata, ma non di modificarla.
- Consente a un utente di visualizzare i dati solo da una delle diverse 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 la sezione Concessione, modifica e revoca dell'accesso.
In Bigtable, non puoi concedere l'accesso ai seguenti tipi di entità:
Per gli elenchi delle autorizzazioni e dei ruoli supportati da Bigtable, vedi le sezioni seguenti.
Abilitazione dell'API Bigtable
Per visualizzare e assegnare ruoli IAM di Bigtable, devi abilitare l'API Bigtable per il tuo progetto. Non potrai visualizzare i ruoli di Bigtable nella console Google Cloud finché non abiliti l'API.
Autorizzazioni
Questa sezione riassume 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 concedi le autorizzazioni direttamente agli utenti, ma assegnerai a ogni 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 app Bigtable. |
bigtable.appProfiles.delete |
Elimina un profilo dell'app Bigtable. |
bigtable.appProfiles.get |
Recuperare informazioni sul profilo di un'app Bigtable. |
bigtable.appProfiles.list |
Elenca i profili dell'app Bigtable di un'istanza. |
bigtable.appProfiles.update |
Aggiorna le impostazioni per un profilo dell'app Bigtable. |
Nome autorizzazione backup | Descrizione |
---|---|
bigtable.backups.create |
Creare un backup di Bigtable. |
bigtable.backups.delete |
Elimina un backup di Bigtable. |
bigtable.backups.get |
Recupera le informazioni su un backup di Bigtable. |
bigtable.backups.getIamPolicy |
Leggere gli elenchi di controllo dell'accesso (ACL) di un backup. Restituiti come criteri IAM. |
bigtable.backups.list |
Elenca i backup di Bigtable. |
bigtable.backups.restore |
Ripristina da un backup di Bigtable. |
bigtable.backups.testIamPermissions |
Ottieni le autorizzazioni del chiamante su un backup specificato. |
bigtable.backups.read |
Lettura da un backup di Bigtable. |
bigtable.backups.setIamPolicy |
Aggiorna gli ACL di backup. |
bigtable.backups.update |
Modifica la scadenza di un backup di Bigtable. |
Nome autorizzazione cluster | Descrizione |
---|---|
bigtable.clusters.create |
Creare un cluster Bigtable. |
bigtable.clusters.delete |
Eliminare un cluster Bigtable. |
bigtable.clusters.get |
Recuperare informazioni su un cluster Bigtable. |
bigtable.clusters.list |
Elenca i cluster Bigtable di un'istanza. |
bigtable.clusters.update |
Aggiorna le impostazioni per un cluster Bigtable. |
Nome autorizzazione tablet caldi | Descrizione |
---|---|
bigtable.hotTablets.list |
Elenca i tablet caldi 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 |
Recuperare informazioni su un'istanza Bigtable. |
bigtable.instances.getIamPolicy |
Elenchi di controllo dell'accesso (ACL) delle istanze di lettura. Restituiti 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 |
Invia 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 su una tabella, inclusi i metadati sui pattern di accesso e sulle distribuzioni chiave di riga. |
bigtable.keyvisualizer.list |
Elenca le informazioni disponibili su Key Visualizer per una tabella. |
Nome autorizzazione posizione | Descrizione |
---|---|
bigtable.locations.list |
Elenca le località di Bigtable. |
Nome autorizzazione tabella | Descrizione |
---|---|
bigtable.tables.checkConsistency |
Controllare 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 relative impostazioni individuali. |
bigtable.tables.getIamPolicy |
Leggi gli ACL delle tabelle. Restituiti 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 |
Leggere le righe di una tabella. Sono incluse informazioni sulla tabella, come famiglie di colonne e relative impostazioni individuali. |
bigtable.tables.sampleRowKeys |
Recupera un esempio di chiavi di riga utilizzate in una tabella. |
bigtable.tables.setIamPolicy |
Aggiorna gli 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 posizione | Descrizione |
---|---|
bigtable.locations.list |
Elenca le località di Bigtable. |
nome autorizzazione visualizzazione autorizzata | Descrizione |
---|---|
bigtable.authorizedViews.create |
Crea una vista autorizzata. |
bigtable.authorizedViews.delete |
Eliminare una vista autorizzata |
bigtable.authorizedViews.get |
Recuperare informazioni su una vista autorizzata. |
bigtable.authorizedViews.getIamPolicy |
Controllo dell'accesso in visualizzazione per una vista autorizzata. Restituiti come criteri IAM. |
bigtable.authorizedViews.list |
Elenca le visualizzazioni autorizzate in una tabella. |
bigtable.authorizedViews.mutateRows |
Modificare le righe all'interno di una visualizzazione autorizzata. |
bigtable.authorizedViews.readRows |
Legge le righe da una visualizzazione autorizzata. |
bigtable.authorizedViews.sampleRowKeys |
Recupera un esempio di 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. Ad esempio, roles/bigtable.reader
fornisce l'accesso di sola lettura alle informazioni su istanze, cluster, tabelle e famiglie di colonne Bigtable, nonché sui dati contenuti all'interno delle tabelle. Puoi assegnare ruoli a utenti o gruppi
per consentire loro di eseguire azioni sulle risorse del progetto.
La seguente tabella 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 requisiti aziendali, puoi definire ruoli personalizzati con le autorizzazioni da te 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 cerca di eseguire questa attività, la console Google Cloud non funzionerà correttamente.
Attività della console Google Cloud | Autorizzazioni obbligatorie |
---|---|
Accesso di base alla console Google Cloud |
|
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 della 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ù:
|
Creare e aggiornare una tabella |
Autorizzazioni di accesso di base, più:
|
Ripristino di un backup |
Autorizzazioni di accesso di base, più:
|
Gestione IAM
Questa sezione spiega come gestire i ruoli IAM e le relative autorizzazioni 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 Concessione, modifica e revoca dell'accesso.
Dopo aver creato un progetto, puoi concedere i ruoli IAM a livello di progetto agli utenti in base ai livelli di accesso specifici.
Ruoli obbligatori
Prima di impostare i ruoli IAM a livello di istanza, di tabella, di backup o di visualizzazione autorizzata 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 abbia più autorizzazioni di quelle necessarie all'utente per tutte le istanze, le tabelle, i backup o le visualizzazioni autorizzate 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. 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.
Concessione dei 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 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 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'account utente o di servizio che vuoi aggiungere e poi fai clic sull'indirizzo email dell'account utente o di servizio.
Fai clic sull'elenco a discesa Seleziona un ruolo e poi su Bigtable per selezionare un ruolo predefinito o su Personalizzato per selezionarne uno 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 tuo progetto:gcloud bigtable instances list
Usa 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.
Concessione dei 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 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 Istanze Bigtable nella console Google Cloud.
Fai clic sul nome dell'istanza che contiene la tabella di cui stai impostando IAM.
Seleziona Tables 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 e poi fai clic sull'indirizzo email dell'account utente o di servizio.
Fai clic sull'elenco a discesa Seleziona un ruolo e poi su Bigtable per selezionare un ruolo predefinito o su Personalizzato per selezionarne uno 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 tuo 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.
Concessione dei ruoli IAM a livello di backup
A livello di backup, puoi concedere qualsiasi ruolo predefinito di Bigtable 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 a livello di backup:
gcloud
Se non conosci l'ID istanza, utilizza il comando
bigtable instances list
per visualizzare un elenco delle istanze del tuo progetto:gcloud bigtable instances list
Se non conosci gli ID di backup di 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.
Usa 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 dei ruoli IAM autorizzati a livello di vista
A livello di vista autorizzata, puoi concedere qualsiasi ruolo predefinito di Bigtable 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 a livello di vista autorizzata, esegui questo comando:
gcloud
Se non conosci l'ID istanza, utilizza il comando
bigtable instances list
per visualizzare un elenco delle istanze del tuo 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
Usa 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 vistaPOLICY_FILE
: percorso di 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 data/ora: utilizzali per impostare un accesso temporaneo (in scadenza), pianificato o di 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: consentono di configurare l'accesso condizionale in base al nome, al tipo o agli attributi di servizio della risorsa. In Bigtable, puoi utilizzare 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 nelle tabelle che iniziano con un prefisso specifico o 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.