Condividi tramite


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

Controllo dei prerequisiti

  1. 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 e resourceGroupName.

    # 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 sia msdocs-keyvault e il nome del gruppo di risorse sia msdocs-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.

  1. Eseguire az cosmosdb identity assign per creare una nuova identità gestita assegnata dal sistema.

    az cosmosdb identity assign \
        --resource-group $resourceGroupName \
        --name $cosmosName 
    
  2. 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 denominata principal.

    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.

  1. 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 chiavi get, list e import.

    az keyvault set-policy \
        --name $keyVaultName \
        --object-id $principal \
        --key-permissions get list import
    

Passaggi successivi