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 Proteggere l'accesso ai dati e agli articoli 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 abilitato per il backup periodico o un contenitore. 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 È possibile 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. Lo screenshot seguente mostra l'integrazione di Active Directory (Controllo degli accessi in base al ruolo di Azure) usando il controllo di accesso (IAM) nel portale di Azure:

Access control (IAM) in the Azure portal - demonstrating database security.

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 nella portale di Azure devono avere Microsoft.DocumentDB/databaseAccounts/listKeys/* un'azione.

Nota

Le assegnazioni di ruolo personalizzate potrebbero non essere sempre visibili nella 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 RBAC, 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 RBAC 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 Azure Cosmos DB SDK. 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 da Azure Cosmos DB SDK 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 corretto e le credenziali di Microsoft Entra, 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.

Selezionare l'elenco prima di abilitare

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 portale di Azure) eseguono una di queste azioni di cui è necessario eseguire la migrazione per l'esecuzione tramite modelli arm, PowerShell, interfaccia della riga di comando di Azure, REST o libreria di gestione di Azure. Si noti che Gestione di Azure è disponibile in più lingue.

Impostare tramite il modello di Resource Manager

Per impostare questa proprietà usando un modello di Resource Manager, aggiornare il modello esistente o esportare un nuovo modello per la distribuzione corrente, quindi includere le "disableKeyBasedMetadataWriteAccess": true proprietà per le databaseAccounts risorse. 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ì come è o verrà reimpostata tutte le proprietà dell'account.

Impostare tramite l'interfaccia della riga di comando di Azure

Per abilitare l'uso dell'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 tramite PowerShell

Per abilitare l'uso di Azure PowerShell, usare il comando seguente:

Update-AzCosmosDBAccount -ResourceGroupName [ResourceGroupName] -Name [CosmosDBAccountName] -DisableKeyBasedMetadataWriteAccess true

Passaggi successivi