Acceso a Azure Key Vault desde Azure Cosmos DB mediante una identidad administrada
SE APLICA A: NoSQL MongoDB Cassandra Gremlin Table
Es posible que Azure Cosmos DB tenga que leer datos de secretos y claves desde Azure Key Vault. Por ejemplo, es posible que la instancia de Azure Cosmos DB necesite una clave administrada por el cliente almacenada en Azure Key Vault. Para ello, Azure Cosmos DB se debe configurar con una identidad administrada y, después, una directiva de acceso de Azure Key Vault debe conceder acceso a la identidad administrada.
Prerrequisitos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Una cuenta existente de la API para NoSQL de Azure Cosmos DB. Creación de una cuenta de la API para NoSQL de Azure Cosmos DB
- Un recurso existente de Azure Key Vault. Creación de un almacén de claves mediante la CLI de Azure
- Para seguir los pasos de este artículo, instale la CLI de Azure e inicie sesión en Azure.
Comprobación de requisitos previos
En una ventana de terminal o comando, almacene los nombres del recurso de Azure Key Vault, la cuenta de Azure Cosmos DB y el grupo de recursos como variables de shell denominadas
keyVaultName
,cosmosName
yresourceGroupName
.# 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:
Estas variables se volverán a usar en pasos posteriores. En este ejemplo se supone que el nombre de la cuenta de Azure Cosmos DB es
msdocs-cosmos-app
, el nombre del almacén de claves esmsdocs-keyvault
y el nombre del grupo de recursos esmsdocs-cosmos-keyvault-identity
.
Creación de una identidad administrada asignada por el sistema en Azure Cosmos DB
En primer lugar, cree una identidad administrada asignada por el sistema para la cuenta existente de Azure Cosmos DB.
Importante
En esta guía paso a paso se supone que usa una identidad administrada asignada por el sistema. Muchos de los pasos son similares a los del uso de una identidad administrada asignada por el usuario.
Ejecute
az cosmosdb identity assign
para crear una identidad administrada asignada por el sistema.az cosmosdb identity assign \ --resource-group $resourceGroupName \ --name $cosmosName
Recupere los metadatos de la identidad administrada asignada por el sistema mediante
az cosmosdb identity show
, filtre para devolver simplemente la propiedadprincipalId
mediante el parámetro query y almacene el resultado en una variable de shell denominadaprincipal
.principal=$( az cosmosdb identity show \ --resource-group $resourceGroupName \ --name $cosmosName \ --query principalId \ --output tsv ) echo $principal
Nota:
Esta variable se volverá a usar en un paso posterior.
Creación de una directiva de acceso de Azure Key Vault
En este paso, creará una directiva de acceso en Azure Key Vault mediante la identidad administrada anteriormente.
Use el comando
az keyvault set-policy
para crear una directiva de acceso en Azure Key Vault que proporcione permiso a la identidad administrada de Azure Cosmos DB para acceder a Key Vault. En concreto, la directiva usará los parámetros key-permissions para conceder permisos a las clavesget
,list
yimport
.az keyvault set-policy \ --name $keyVaultName \ --object-id $principal \ --key-permissions get list import
Pasos siguientes
- Para usar claves administradas por el cliente en Azure Key Vault con la cuenta de Azure Cosmos DB, vea Configuración de claves administradas por el cliente.
- A fin de usar Azure Key Vault para administrar secretos, vea Credenciales seguras.