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
- Compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Un compte d’API pour NoSQL Azure Cosmos DB existant. Créer un compte d’API pour NoSQL Azure Cosmos DB
- Ressource Azure Key Vault existante. Créer un coffre de clés à l’aide de l’interface de ligne de commande Azure
- Pour exécuter la procédure indiquée dans cet article, installez Azure CLI et ouvrez une session sur Azure.
Vérification du prérequis
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
,cosmosName
etresourceGroupName
.# 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 estmsdocs-keyvault
et votre nom de groupe de ressources estmsdocs-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.
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
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éeprincipal
.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.
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ésget
,list
etimport
.az keyvault set-policy \ --name $keyVaultName \ --object-id $principal \ --key-permissions get list import
Étapes suivantes
- Pour utiliser des clés gérées par le client dans Azure Key Vault avec votre compte Azure Cosmos DB, consultez configurer des clés gérées par le client
- Pour utiliser Azure Key Vault pour gérer les secrets, consultez les informations d’identification sécurisées.