Gestisci l'accesso alle tue risorse con Identity and Access Management (IAM). IAM ti consente di concedere un accesso più granulare a determinate risorse Google Cloud e impedisce l'accesso indesiderato ad altre risorse. Questa pagina descrive le autorizzazioni e i ruoli IAM per Cloud Firestore. Per una descrizione dettagliata di IAM, consulta la documentazione di IAM.
Con IAM puoi adottare il principio di sicurezza del privilegio minimo e quindi concedere solo l'accesso necessario alle tue risorse.
IAM ti consente di controllare chi (utente) ha quale (ruolo) autorizzazione per quali risorse impostando le policy IAM.
Le policy IAM concedono uno o più ruoli a un utente, assegnandogli determinate autorizzazioni. Ad esempio, puoi concedere il ruolo datastore.indexAdmin a un utente, consentendogli di creare, modificare, eliminare, elencare o visualizzare gli indici.
Autorizzazioni e ruoli
Questa sezione riepiloga le autorizzazioni e i ruoli supportati da Cloud Firestore.
Autorizzazioni richieste per i metodi API
La tabella seguente elenca le autorizzazioni di cui il chiamante deve disporre per eseguire ciascuna azione:
| Metodo | Autorizzazioni obbligatorie | |
|---|---|---|
projects.databases.MongoDBCompatible |
||
ListDatabases |
datastore.databases.getMetadata |
|
ListIndexes |
datastore.schemas.list |
|
Find |
datastore.entities.getdatastore.entities.list |
|
Aggregate |
datastore.entities.getdatastore.entities.list |
|
GetMore |
Le stesse autorizzazioni richieste dalla chiamata che ha creato il cursore. |
|
ListCollections |
datastore.entities.list |
|
Count |
datastore.entities.list |
|
Distinct |
datastore.entities.getdatastore.entities.list |
|
CommitTransaction |
datastore.databases.get |
|
AbortTransaction |
datastore.databases.get |
|
EndSessions |
datastore.databases.get |
|
KillCursors |
datastore.databases.get |
|
Insert |
datastore.entities.create |
|
Update |
datastore.entities.getdatastore.entities.listdatastore.entities.updatedatastore.entities.create (solo per l'upsert) |
|
FindAndModify |
datastore.entities.getdatastore.entities.listdatastore.entities.update (solo per sostituzione o aggiornamento)datastore.entities.create (solo per l'upsert)datastore.entities.delete (solo per l'eliminazione) |
|
CreateCollection |
datastore.entities.create |
|
DropCollection |
datastore.schemas.delete |
|
projects.databases.indexes |
||
create |
datastore.schemas.create |
|
delete |
datastore.schemas.delete |
|
get |
datastore.schemas.get |
|
list |
datastore.schemas.list |
|
projects.databases |
||
create |
datastore.databases.create |
|
delete |
datastore.databases.delete |
|
get |
datastore.databases.getMetadata |
|
list |
datastore.databases.list |
|
patch |
datastore.databases.update |
|
| ripristina | datastore.backups.restoreDatabase |
|
clone |
datastore.databases.clone |
Clonare un database.
Se la richiesta
Se vuoi verificare se le associazioni dei tag sono state impostate correttamente elencandole, sono necessarie le seguenti autorizzazioni aggiuntive:
|
projects.locations |
||
get |
datastore.locations.get |
|
list |
datastore.locations.list |
|
projects.databases.backupschedules |
||
get |
datastore.backupSchedules.get |
|
list |
datastore.backupSchedules.list |
|
create |
datastore.backupSchedules.create |
|
update |
datastore.backupSchedules.update |
|
delete |
datastore.backupSchedules.delete |
|
projects.locations.backups |
||
get |
datastore.backups.get |
|
list |
datastore.backups.list |
|
delete |
datastore.backups.delete |
|
projects.databases.usercreds |
||
get |
datastore.userCreds.get |
|
list |
datastore.userCreds.list |
|
create |
datastore.userCreds.create |
|
enable |
datastore.userCreds.update |
|
disable |
datastore.userCreds.update |
|
resetPassword |
datastore.userCreds.update |
|
delete |
datastore.userCreds.delete |
|
Ruoli predefiniti
Con IAM, ogni metodo API in Cloud Firestore richiede che l'account che effettua la richiesta API disponga delle autorizzazioni appropriate per utilizzare la risorsa. Le autorizzazioni vengono concesse impostando policy che assegnano ruoli a un utente, un gruppo o un service account. Oltre ai ruoli di base, proprietario, editor e visualizzatore, puoi concedere i ruoli Cloud Firestore agli utenti del tuo progetto.
La tabella seguente elenca i ruoli IAM Cloud Firestore. Puoi concedere più ruoli a un utente, un gruppo o un service account.
| Ruolo | Autorizzazioni | Descrizione |
|---|---|---|
roles/datastore.owner |
appengine.applications.getdatastore.*resourcemanager.projects.getresourcemanager.projects.list |
Accesso completo a Cloud Firestore. |
roles/datastore.user |
appengine.applications.getdatastore.databases.getdatastore.databases.getMetadatadatastore.databases.listdatastore.entities.*datastore.schemas.listdatastore.namespaces.getdatastore.namespaces.listdatastore.statistics.getdatastore.statistics.listresourcemanager.projects.getresourcemanager.projects.list |
Accesso in lettura/scrittura ai dati in un database Cloud Firestore. Destinato a sviluppatori di applicazioni e service account. |
roles/datastore.viewer |
appengine.applications.getdatastore.databases.getdatastore.databases.getMetadatadatastore.databases.listdatastore.entities.getdatastore.entities.listdatastore.schemas.getdatastore.schemas.listdatastore.namespaces.getdatastore.namespaces.listdatastore.statistics.getdatastore.statistics.listresourcemanager.projects.getresourcemanager.projects.list |
Accesso in lettura a tutte le risorse Cloud Firestore. |
roles/datastore.indexAdmin |
appengine.applications.getdatastore.databases.getMetadatadatastore.schemas.*datastore.operations.listdatastore.operations.getresourcemanager.projects.getresourcemanager.projects.list |
Accesso completo per la gestione delle definizioni di indice. |
roles/datastore.backupSchedulesViewer |
datastore.backupSchedules.getdatastore.backupSchedules.list |
Accesso in lettura alle pianificazioni dei backup in un database Cloud Firestore. |
roles/datastore.backupSchedulesAdmin |
datastore.backupSchedules.getdatastore.backupSchedules.listdatastore.backupSchedules.createdatastore.backupSchedules.updatedatastore.backupSchedules.deletedatastore.databases.listdatastore.databases.getMetadata |
Accesso completo alle pianificazioni dei backup in un database Cloud Firestore. |
roles/datastore.backupsViewer |
datastore.backups.getdatastore.backups.list |
Accesso in lettura alle informazioni di backup in una località Cloud Firestore. |
roles/datastore.backupsAdmin |
datastore.backups.getdatastore.backups.listdatastore.backups.delete |
Accesso completo ai backup in una località Cloud Firestore. |
roles/datastore.restoreAdmin |
datastore.backups.getdatastore.backups.listdatastore.backups.restoreDatabasedatastore.databases.listdatastore.databases.createdatastore.databases.getMetadatadatastore.operations.listdatastore.operations.get |
Possibilità di ripristinare un backup Cloud Firestore in un nuovo database. Questo ruolo consente anche di creare nuovi database, non necessariamente tramite il ripristino da un backup. |
roles/datastore.cloneAdmin |
datastore.databases.clonedatastore.databases.listdatastore.databases.createdatastore.databases.getMetadatadatastore.operations.listdatastore.operations.get |
Possibilità di clonare un database Cloud Firestore in un nuovo database. Questo ruolo consente anche di creare nuovi database, non necessariamente tramite clonazione. |
roles/datastore.statisticsViewer |
resourcemanager.projects.getresourcemanager.projects.listdatastore.databases.getMetadatadatastore.insights.getdatastore.keyVisualizerScans.getdatastore.keyVisualizerScans.listdatastore.statistics.listdatastore.statistics.get |
Accesso in lettura a Insight, Statistiche e scansioni di Key Visualizer |
roles/datastore.userCredsViewer |
datastore.userCreds.getdatastore.userCreds.list |
Accesso in lettura alle credenziali utente in un database Cloud Firestore. |
roles/datastore.userCredsAdmin |
datastore.userCreds.getdatastore.userCreds.listdatastore.userCreds.createdatastore.userCreds.updatedatastore.userCreds.deletedatastore.databases.listdatastore.databases.getMetadata |
Accesso completo alle credenziali utente in un database Cloud Firestore. |
Ruoli personalizzati
Se i ruoli predefiniti non soddisfano i tuoi requisiti aziendali, puoi definire ruoli personalizzati con le autorizzazioni da te specificate:
Ruoli richiesti per creare e gestire i tag
Se un tag è rappresentato nelle azioni di creazione o ripristino, sono richiesti alcuni ruoli. Consulta Creazione e gestione dei tag per ulteriori dettagli sulla creazione di coppie chiave-valore dei tag prima di associarle alle risorse del database.
Sono richieste le seguenti autorizzazioni.
Visualizza tag
datastore.databases.listTagBindingsdatastore.databases.listEffectiveTags
Gestisci i tag sulle risorse
Per la risorsa di database a cui stai collegando il valore del tag è richiesta la seguente autorizzazione.
datastore.databases.createTagBinding
Autorizzazioni
La tabella seguente elenca le autorizzazioni supportate da Cloud Firestore.
| Nome autorizzazione database | Descrizione | |
|---|---|---|
datastore.databases.get |
Avviare o eseguire il rollback di una transazione. | |
datastore.databases.getMetadata |
Leggere i metadati da un database. | |
datastore.databases.list |
Elenca i database di un progetto. | |
datastore.databases.create |
Crea un database. | |
datastore.databases.update |
Aggiornare un database. | |
datastore.databases.delete |
Elimina un database. | |
datastore.databases.clone |
Clonare un database. | |
datastore.databases.createTagBinding |
Crea un'associazione di tag per un database. | |
datastore.databases.deleteTagBinding |
Elimina un'associazione di tag per un database. | |
datastore.databases.listTagBindings |
Elenca tutte le associazioni di tag per un database. | |
datastore.databases.listEffectiveTagBindings |
Elenca le associazioni di tag effettive per un database. | |
| Nome autorizzazione entità | Descrizione | |
datastore.entities.create |
Crea un documento. | |
datastore.entities.delete |
Elimina un documento. | |
datastore.entities.get |
Leggere un documento. | |
datastore.entities.list |
Elenca i nomi dei documenti in un progetto. ( datastore.entities.get è necessario per accedere ai dati del documento.) |
|
datastore.entities.update |
Aggiornare un documento. | |
| Nome autorizzazione indice | Descrizione | |
datastore.schemas.create |
Crea un indice. | |
datastore.schemas.delete |
Elimina un indice. | |
datastore.schemas.get |
Leggi i metadati da un indice. | |
datastore.schemas.list |
Elenca gli indici di un progetto. | |
datastore.schemas.update |
Aggiorna un indice. | |
| Nome autorizzazione operazione | Descrizione | |
datastore.operations.cancel |
Annulla un'operazione a lunga esecuzione. | |
datastore.operations.delete |
Elimina un'operazione a lunga esecuzione. | |
datastore.operations.get |
Recupera l'ultimo stato di un'operazione a lunga esecuzione. | |
datastore.operations.list |
Elenca operazioni a lunga esecuzione. | |
| Nome dell'autorizzazione per il progetto | Descrizione | |
resourcemanager.projects.get |
Sfoglia le risorse nel progetto. | |
resourcemanager.projects.list |
Elenca i progetti di proprietà. | |
| Nome dell'autorizzazione di accesso alla posizione | Descrizione | |
datastore.locations.get |
Ottieni i dettagli sulla località di un database. Obbligatorio per creare un nuovo database. | |
datastore.locations.list |
Elenca le località dei database disponibili. Obbligatorio per creare un nuovo database. | |
| Nome autorizzazione Key Visualizer | Descrizione | |
datastore.keyVisualizerScans.get |
Scopri i dettagli sulle scansioni di Key Visualizer. | |
datastore.keyVisualizerScans.list |
Elenca le scansioni di Key Visualizer disponibili. | |
| Nome autorizzazione per la pianificazione del backup | Descrizione | |
datastore.backupSchedules.get |
Visualizza i dettagli di una pianificazione dei backup. | |
datastore.backupSchedules.list |
Elenca le pianificazioni di backup disponibili. | |
datastore.backupSchedules.create |
Crea una pianificazione dei backup. | |
datastore.backupSchedules.update |
Aggiorna una pianificazione del backup. | |
datastore.backupSchedules.delete |
Elimina una pianificazione del backup. | |
| Nome autorizzazione di backup | Descrizione | |
datastore.backups.get |
Visualizza i dettagli di un backup. | |
datastore.backups.list |
Elenca i backup disponibili. | |
datastore.backups.delete |
Eliminare un backup. | |
datastore.backups.restoreDatabase |
Ripristina un database da un backup. | |
| Nome autorizzazione Insights | Descrizione | |
datastore.insights.get |
Ottieni insight su una risorsa | |
| Nome dell'autorizzazione per le credenziali utente | Descrizione | |
datastore.userCreds.get |
Visualizza i dettagli sulle credenziali utente. | |
datastore.userCreds.list |
Elenca le credenziali utente disponibili. | |
datastore.userCreds.create |
Crea credenziali utente. | |
datastore.userCreds.update |
Abilitare o disabilitare le credenziali utente o reimpostare la password di un utente. | |
datastore.userCreds.delete |
Elimina le credenziali utente. |
Latenza della modifica del ruolo
Cloud Firestore memorizza nella cache le autorizzazioni IAM per 5 minuti, quindi l'applicazione di una modifica del ruolo richiede fino a 5 minuti.
Gestione di IAM Cloud Firestore
Puoi ottenere e impostare le policy IAM utilizzando la console Google Cloud, l'API IAM o lo strumento a riga di comando gcloud. Per maggiori dettagli, consulta Concessione, modifica e revoca dell'accesso ai membri del progetto.
Configura le autorizzazioni di accesso condizionale
Puoi utilizzare le condizioni IAM per definire e applicare il controllo degli accessi condizionale.
Ad esempio, la seguente condizione assegna a un'entità il ruolo datastore.user fino a una data specificata:
{
"role": "roles/datastore.user",
"members": [
"user:travis@example.com"
],
"condition": {
"title": "Expires_December_1_2023",
"description": "Expires on December 1, 2023",
"expression":
"request.time < timestamp('2023-12-01T00:00:00.000Z')"
}
}
Per scoprire come definire le condizioni IAM per l'accesso temporaneo, consulta Configura l'accesso temporaneo.
Per scoprire come configurare le condizioni IAM per l'accesso a uno o più database, consulta Configura le condizioni di accesso al database.
Passaggi successivi
- Scopri di più su IAM.
- Concedi ruoli IAM.
- Scopri di più sull'autenticazione.