Access Azure Key Vault from Azure Cosmos DB usando uma identidade gerida
APLICA A: SQL API
Cassandra API API
API API
Table API
Azure Cosmos DB API para MongoDB
A Azure Cosmos DB pode precisar de ler dados secretos/chave do Azure Key Vault. Por exemplo, o seu Azure Cosmos DB pode necessitar de uma chave gerida pelo cliente armazenada no Cofre da Chave Azure. Para isso, o Azure Cosmos DB deve ser configurado com uma identidade gerida, e então uma política de acesso a Azure Key Vault deve conceder o acesso de identidade gerido.
Pré-requisitos
- Uma conta Azure com uma subscrição ativa. Crie uma conta gratuita.
- Uma conta Azure Cosmos DB API existente. Criar uma conta Azure Cosmos DB SQL API
- Um recurso Azure Key Vault existente. Crie um cofre-chave usando o Azure CLI
- Para executar os passos deste artigo, instale o CLI Azure e inscreva-se no Azure.
Verificação prévia
Numa janela de terminal ou comando, guarde os nomes do seu recurso Azure Key Vault, conta DB Azure Cosmos e grupo de recursos como variáveis de conchas denominadas
keyVaultName
cosmosName
, eresourceGroupName
.# Variable for function app name keyVaultName="msdocs-keyvault" # Variable for Cosmos DB account name cosmosName="msdocs-cosmos-app" # Variable for resource group name resourceGroupName="msdocs-cosmos-keyvault-identity"
Nota
Estas variáveis serão reutilizadas em etapas posteriores. Este exemplo pressupõe que o nome da sua conta DB Azure Cosmos é
msdocs-cosmos-app
, o nome do cofre chave émsdocs-keyvault
e o nome do seu grupo de recursos émsdocs-cosmos-keyvault-identity
.
Criar uma identidade gerida atribuída ao sistema em Azure Cosmos DB
Em primeiro lugar, crie uma identidade gerida atribuída ao sistema para a conta DB Azure Cosmos existente.
Importante
Este guia de como guiar pressupõe que está a usar uma identidade gerida atribuída pelo sistema. Muitos dos passos são semelhantes quando se utiliza uma identidade gerida atribuída pelo utilizador.
Corra
az cosmosdb identity assign
para criar uma nova identidade gerida pelo sistema.az cosmosdb identity assign \ --resource-group $resourceGroupName \ --name $cosmosName
Recupere os metadados da identidade gerida atribuída pelo sistema utilizando
az cosmosdb identity show
, filtre para apenas devolver aprincipalId
propriedade usando o parâmetro de consulta , e armazenar o resultado numa variável de concha denominadaprincipal
.principal=$( az cosmosdb identity show \ --resource-group $resourceGroupName \ --name $cosmosName \ --query principalId \ --output tsv ) echo $principal
Nota
Esta variável será reutilizada num passo posterior.
Criar uma política de acesso a cofre de chaves Azure
Neste passo, crie uma política de acesso no Azure Key Vault utilizando a identidade anteriormente gerida.
Use o
az keyvault set-policy
comando para criar uma política de acesso no Cofre de Chaves Azure que dá ao Azure Cosmos DB permissão de identidade gerida para aceder ao Key Vault. Especificamente, a política usará os parâmetros de permissões-chave para conceder permissões aget
,list
eimport
chaves.az keyvault set-policy \ --name $keyVaultName \ --object-id $principal \ --key-permissions get list import
Passos seguintes
- Para utilizar chaves geridas pelo cliente no Azure Key Vault com a sua conta Azure Cosmos, consulte as chaves geridas pelo cliente
- Para usar o Azure Key Vault para gerir segredos, consulte credenciais seguras.