Controllo degli accessi in base al ruolo di Azure in Azure Cosmos DB
SI APPLICA A: NoSQL
MongoDB
Cassandra
Gremlin
Tabella
Nota
Questo articolo descrive il controllo degli accessi in base al ruolo per le operazioni del piano di gestione in Azure Cosmos DB. Se si usano operazioni del piano dati, i dati vengono protetti usando chiavi primarie, token di risorse o il controllo degli accessi in base al ruolo di Azure Cosmos DB.
Per altre informazioni sul controllo degli accessi in base al ruolo applicato alle operazioni del piano dati nell'API per NoSQL, vedere gli articoli Proteggere l'accesso ai dati e Controllo degli accessi in base al ruolo di Azure Cosmos DB. Per l'API Azure Cosmos DB per MongoDB, vedere Controllo degli accessi in base al ruolo del piano dati nell'API per MongoDB.
Azure Cosmos DB offre il controllo degli accessi in base al ruolo di Azure predefinito per scenari di gestione comuni in Azure Cosmos DB. Un utente che ha un profilo in Microsoft Entra ID può assegnare questi ruoli di Azure a utenti, gruppi, entità servizio o identità gestite per concedere o negare l'accesso alle risorse e alle operazioni sulle risorse di Azure Cosmos DB. Le assegnazioni di ruolo hanno come ambito solo l'accesso al piano di controllo, che include l'accesso ad account, database, contenitori e offerte (velocità effettiva) di Azure Cosmos DB.
Ruoli predefiniti
Di seguito sono riportati i ruoli predefiniti supportati da Azure Cosmos DB:
Ruolo predefinito | Descrizione |
---|---|
Collaboratore account DocumentDB | È in grado di gestire account Azure Cosmos DB. |
Ruolo Lettore dell'account Cosmos DB | Può leggere i dati degli account Azure Cosmos DB. |
CosmosBackupOperator | Può inviare una richiesta di ripristino nel portale di Azure per un database o un contenitore periodico abilitato per il backup. Può modificare l'intervallo di backup e la conservazione nel portale di Azure. Non è possibile accedere a dati o usare Esplora dati. |
CosmosRestoreOperator | Può eseguire un'azione di ripristino per un account Azure Cosmos DB con la modalità di backup continuo. |
Operatore di Cosmos DB | Può effettuare il provisioning di account, database e contenitori di Azure Cosmos DB. Non è possibile accedere a dati o usare Esplora dati. |
Gestione delle identità e degli accessi (IAM)
Il riquadro Controllo di accesso (IAM) nel portale di Azure viene usato per configurare il controllo degli accessi in base al ruolo di Azure nelle risorse di Azure Cosmos DB. I ruoli vengono applicati a utenti, gruppi, entità servizio e identità gestite in Active Directory. È possibile usare ruoli predefiniti o ruoli personalizzati per singoli utenti e gruppi. La schermata seguente mostra l'integrazione di Active Directory (controllo degli accessi in base al ruolo di Azure) tramite il controllo di accesso (IAM) nel portale di Azure:
Ruoli personalizzati
Oltre ai ruoli predefiniti, gli utenti possono anche creare ruoli personalizzati in Azure e applicare questi ruoli alle entità servizio in tutte le sottoscrizioni all'interno del tenant di Active Directory. I ruoli personalizzati consentono agli utenti di creare definizioni del ruolo di Azure con un set personalizzato di operazioni del provider di risorse. Per informazioni sulle operazioni disponibili per la creazione di ruoli personalizzati per Azure Cosmos DB, vedere Operazioni del provider di risorse di Azure Cosmos DB
Suggerimento
I ruoli personalizzati che devono accedere ai dati archiviati in Azure Cosmos DB o usare Esplora dati nel portale di Azure devono avere un'azione Microsoft.DocumentDB/databaseAccounts/listKeys/*
.
Nota
Le assegnazioni di ruoli personalizzati potrebbero non essere sempre visibili nel portale di Azure.
Avviso
Le chiavi dell'account non vengono ruotate o revocate automaticamente dopo le modifiche del controllo degli accessi in base al ruolo di gestione. Queste chiavi consentono l'accesso alle operazioni del piano dati. Quando si rimuove l'accesso alle chiavi da un utente, è consigliabile ruotare anche le chiavi. Per il piano dati di controllo degli accessi in base al ruolo, il back-end di Cosmos DB rifiuterà le richieste quando i ruoli/attestazioni non corrispondono più. Se un utente richiede l'accesso temporaneo alle operazioni del piano dati, è consigliabile usare il piano dati Controllo degli accessi in base al ruolo di Azure Cosmos DB.
Impedire le modifiche dagli SDK Azure Cosmos DB
Il provider di risorse di Azure Cosmos DB può essere bloccato per impedire modifiche alle risorse da un client che si connette usando le chiavi dell'account, ovvero le applicazioni che si connettono tramite l'SDK di Azure Cosmos DB. Questa funzionalità può essere utile per gli utenti che desiderano livelli più elevati di controllo e governance per gli ambienti di produzione. La prevenzione delle modifiche apportate all'SDK consente anche funzionalità come blocchi delle risorse e log di diagnostica per le operazioni del piano di controllo. Ai client che si connettono dall'SDK di Azure Cosmos DB verrà impedito di modificare qualsiasi proprietà per gli account, i database, i contenitori e la velocità effettiva di Azure Cosmos DB. Le operazioni che coinvolgono la lettura e la scrittura di dati nei contenitori Azure Cosmos DB stessi non sono interessate.
Quando questa funzionalità è abilitata, le modifiche a qualsiasi risorsa possono essere apportate solo da un utente con il ruolo di Azure e le credenziali di Microsoft Entra corretti, incluse le identità del servizio gestito.
Avviso
L'abilitazione di questa funzionalità può avere un impatto sull'applicazione. Assicurarsi di comprendere l'impatto prima di abilitarlo.
Elenco di controllo prima dell'abilitazione
Questa impostazione impedirà le modifiche apportate a qualsiasi risorsa di Azure Cosmos DB da qualsiasi client che si connette tramite chiavi dell'account, tra cui qualsiasi SDK di Azure Cosmos DB, qualsiasi strumento che si connetta tramite chiavi dell'account. Per evitare problemi o errori dalle applicazioni dopo aver abilitato questa funzionalità, verificare se le applicazioni eseguono una delle azioni seguenti prima di abilitare questa funzionalità, tra cui:
Creazione ed eliminazione di risorse figlio, ad esempio database e contenitori. Sono incluse le risorse per altre API, ad esempio Cassandra, MongoDB, Gremlin e risorse di tabella.
Lettura o aggiornamento della velocità effettiva nelle risorse a livello di database o contenitore.
Modifica delle proprietà dei contenitori, tra cui criteri di indice, TTL e chiavi univoche.
Modifica di stored procedure, trigger o funzioni definite dall'utente.
Se le applicazioni (o gli utenti tramite il portale di Azure) eseguono una di queste azioni di cui è necessario eseguire la migrazione per l'esecuzione tramite modelli di Azure Resource Manager, PowerShell, interfaccia della riga di comando di Azure, REST o libreria digestione di Azure. Si noti che Gestione di Azure è disponibile in più lingue.
Impostare il protocollo tramite il modello di Azure Resource Manager
Per impostare questa proprietà usando un modello di Azure Resource Manager, aggiornare il modello esistente o esportare un nuovo modello per la distribuzione corrente, quindi includere "disableKeyBasedMetadataWriteAccess": true
tra le proprietà per le risorse databaseAccounts
. Di seguito è riportato un esempio di base di un modello di Azure Resource Manager con questa impostazione di proprietà.
{
{
"type": "Microsoft.DocumentDB/databaseAccounts",
"name": "[variables('accountName')]",
"apiVersion": "2020-04-01",
"location": "[parameters('location')]",
"kind": "GlobalDocumentDB",
"properties": {
"consistencyPolicy": "[variables('consistencyPolicy')[parameters('defaultConsistencyLevel')]]",
"locations": "[variables('locations')]",
"databaseAccountOfferType": "Standard",
"disableKeyBasedMetadataWriteAccess": true
}
}
}
Importante
Assicurarsi di includere le altre proprietà per l'account e le risorse figlio durante la ridistribuzione con questa proprietà. Non distribuire questo modello così com'è poiché, in caso contrario, verranno reimpostate tutte le proprietà dell'account.
Impostare il protocollo tramite l'interfaccia della riga di comando di Azure
Per abilitare il protocollo tramite l'interfaccia della riga di comando di Azure, usare il comando seguente:
az cosmosdb update --name [CosmosDBAccountName] --resource-group [ResourceGroupName] --disable-key-based-metadata-write-access true
Impostare il protocollo tramite PowerShell
Per abilitare il protocollo tramite Azure PowerShell, usare il comando seguente:
Update-AzCosmosDBAccount -ResourceGroupName [ResourceGroupName] -Name [CosmosDBAccountName] -DisableKeyBasedMetadataWriteAccess true
Passaggi successivi
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per