Accedere ad Azure Key Vault da Azure Cosmos DB usando un'identità gestita
SI APPLICA A: NoSQL MongoDB Cassandra Gremlin Tabella
Azure Cosmos DB potrebbe dover leggere i dati dei segreti o delle chiavi da Azure Key Vault. Ad esempio, Azure Cosmos DB potrebbe richiedere una chiave gestita dal cliente archiviata in Azure Key Vault. A tale scopo, Azure Cosmos DB deve essere configurato con un'identità gestita e quindi i criteri di accesso di Azure Key Vault devono concedere l'accesso all'identità gestita.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Un'API di Azure Cosmos DB per l'account NoSQL. Creare un'API di Azure Cosmos DB per l'account NoSQL
- Una risorsa di Azure Key Vault esistente. Creare un insieme di credenziali delle chiavi usando l'interfaccia della riga di comando di Azure
- Per eseguire i passaggi illustrati in questo articolo, installare l'interfaccia della riga di comando di Azure e accedere ad Azure.
Controllo dei prerequisiti
In un terminale o in una finestra di comando archiviare i nomi della risorsa di Azure Key Vault, dell'account Azure Cosmos DB e del gruppo di risorse come variabili della shell denominate
keyVaultName
,cosmosName
eresourceGroupName
.# Variable for function app name keyVaultName="msdocs-keyvault" # Variable for Azure Cosmos DB account name cosmosName="msdocs-cosmos-app" # Variable for resource group name resourceGroupName="msdocs-cosmos-keyvault-identity"
Nota
Queste variabili verranno riutilizzate nei passaggi successivi. Questo esempio presuppone che il nome dell'account Azure Cosmos DB sia
msdocs-cosmos-app
, il nome dell'insieme di credenziali delle chiavi siamsdocs-keyvault
e il nome del gruppo di risorse siamsdocs-cosmos-keyvault-identity
.
Creare un'identità gestita assegnata dal sistema in Azure Cosmos DB
Creare prima di tutto un'identità gestita assegnata dal sistema per l'account Azure Cosmos DB esistente.
Importante
Questa guida pratica presuppone l'uso di un'identità gestita assegnata dal sistema. Molti dei passaggi sono simili quando si usa un'identità gestita assegnata dall'utente.
Eseguire
az cosmosdb identity assign
per creare una nuova identità gestita assegnata dal sistema.az cosmosdb identity assign \ --resource-group $resourceGroupName \ --name $cosmosName
Recuperare i metadati dell'identità gestita assegnata dal sistema usando
az cosmosdb identity show
, filtrare per restituire solo la proprietàprincipalId
usando il parametro query e archiviare il risultato in una variabile della shell denominataprincipal
.principal=$( az cosmosdb identity show \ --resource-group $resourceGroupName \ --name $cosmosName \ --query principalId \ --output tsv ) echo $principal
Nota
Questa variabile verrà riutilizzata in un passaggio successivo.
Creare un criterio di accesso di Azure Key Vault
In questo passaggio creare un criterio di accesso in Azure Key Vault usando l'identità gestita in precedenza.
Usare il comando
az keyvault set-policy
per creare un criterio di accesso in Azure Key Vault che concede all'identità gestita di Azure Cosmos DB l'autorizzazione per accedere a Key Vault. In particolare, i criteri useranno i parametri key-permissions per concedere le autorizzazioni alle chiaviget
,list
eimport
.az keyvault set-policy \ --name $keyVaultName \ --object-id $principal \ --key-permissions get list import
Passaggi successivi
- Per usare le chiavi gestite dal cliente in Azure Key Vault con l'account Azure Cosmos DB, vedere Configurare le chiavi gestite dal cliente
- Per usare Azure Key Vault per gestire i segreti, vedere Credenziali sicure.