Accéder à Azure Key Vault à partir d’Azure Cosmos DB à l’aide d’une identité managée

S’APPLIQUE À : NoSQL MongoDB Cassandra Gremlin Table

Azure Cosmos DB peut avoir besoin de lire des données secrètes/clés à partir d’Azure Key Vault. Par exemple, votre base de données Azure Cosmos peut nécessiter une clé gérée par le client stockée dans Azure Key Vault. Pour ce faire, Azure Cosmos DB doit être configuré avec une identité managée, puis une stratégie d’accès Key Vault Azure doit accorder l’accès à l’identité managée.

Prérequis

Vérification du prérequis

  1. Dans une fenêtre de terminal ou de commande, stockez les noms de votre ressource Azure Key Vault, compte de base de données et groupe de ressources Azure Cosmos en tant que variables d’interpréteur de commandes nommées keyVaultName, cosmosNameet 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"
    

    Notes

    Ces variables seront réutilisées dans les étapes ultérieures. Cet exemple suppose que votre nom de compte Azure Cosmos DB est msdocs-cosmos-app, votre nom de coffre de clés est msdocs-keyvault et votre nom de groupe de ressources est msdocs-cosmos-keyvault-identity.

Créer une identité managée affectée par le système dans Azure Cosmos DB

Tout d’abord, créez une identité managée affectée par le système pour le compte Azure Cosmos DB existant.

Important

Ce guide pratique suppose que vous utilisez une identité managée affectée par le système. La plupart des étapes sont similaires lors de l’utilisation d’une identité managée affectée par l’utilisateur.

  1. Exécutez az cosmosdb identity assign pour créer une identité managée affectée par le système.

    az cosmosdb identity assign \
        --resource-group $resourceGroupName \
        --name $cosmosName 
    
  2. Récupérez les métadonnées de l’identité managée affectée par le système à l’aide de az cosmosdb identity show, filtrez pour renvoyer la propriété principalId à l’aide du paramètre de requête et stocker le résultat dans une variable d’interpréteur de commandes nommée principal.

    principal=$(
        az cosmosdb identity show \
            --resource-group $resourceGroupName \
            --name $cosmosName \
            --query principalId \
            --output tsv
    )
    
    echo $principal
    

    Notes

    Cette variable sera réutilisée dans une étape ultérieure.

Créez une stratégie d’accès Azure Key Vault

Dans cette étape, créez une stratégie d’accès dans Azure Key Vault à l’aide de l’identité managée précédemment.

  1. Utilisez la commande az keyvault set-policy pour créer une stratégie d’accès dans Azure Key Vault qui donne l’autorisation d’identité managée Azure Cosmos DB pour accéder à Key Vault. Plus précisément, la stratégie utilise les paramètres d’autorisations de clé pour accorder des autorisations aux clés get, listet import.

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

Étapes suivantes