Acessar o Azure Key Vault do Azure Cosmos DB usando uma identidade gerenciada
APLICA-SE AO: NoSQL MongoDB Cassandra Gremlin Table
O Azure Cosmos DB pode precisar fazer a leitura de dados secretos/chave do Azure Key Vault. Por exemplo, o Azure Cosmos DB pode exigir uma chave gerenciada pelo cliente armazenada no Azure Key Vault. Para fazer isso, o Azure Cosmos BD deve ser configurado com uma identidade gerenciada e, em seguida, uma política de acesso do Azure Key Vault deve conceder o acesso à identidade gerenciada.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Uma conta da API do Azure Cosmos DB para NoSQL. Criar uma conta da API do Azure Cosmos DB para NoSQL
- Um recurso existente do Azure Key Vault. Criar um cofre de chaves usando a CLI do Azure
- Para executar as etapas deste artigo, instale a CLI do Azure e Entre no Azure.
Verificação de pré-requisitos
Em um terminal ou janela de comando, armazene os nomes do recurso do Azure Key Vault, a conta do Azure Cosmos DB e o grupo de recursos como variáveis de shell nomeados de
keyVaultName
,cosmosName
eresourceGroupName
.# 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"
Observação
Essas variáveis serão utilizadas novamente em etapas posteriores. Este exemplo considera que o nome da conta do Azure Cosmos DB seja
msdocs-cosmos-app
, o nome do cofre de chaves sejamsdocs-keyvault
e o nome do grupo de recursos sejamsdocs-cosmos-keyvault-identity
.
Criar uma identidade gerenciada atribuída pelo sistema no Azure Cosmos BD
Primeiro, crie uma identidade gerenciada atribuída pelo sistema para a conta existente do Azure Cosmos DB.
Importante
Este guia de instruções considera que você esteja usando uma identidade gerenciada atribuída pelo sistema. Muitas das etapas são semelhantes ao usar uma identidade gerenciada atribuída pelo usuário.
Execute
az cosmosdb identity assign
para criar uma nova Identidade gerenciada atribuída pelo sistema.az cosmosdb identity assign \ --resource-group $resourceGroupName \ --name $cosmosName
Recupere os metadados da identidade gerenciada atribuída pelo sistema usando
az cosmosdb identity show
, filtre para retornar apenas a propriedadeprincipalId
usando o parâmetro de consulta e armazene o resultado em uma variável de shell nomeada comoprincipal
.principal=$( az cosmosdb identity show \ --resource-group $resourceGroupName \ --name $cosmosName \ --query principalId \ --output tsv ) echo $principal
Observação
Essa variável será usada novamente em uma etapa posterior.
Criar uma política de acesso do Azure Key Vault
Nesta etapa, crie uma política de acesso no Azure Key Vault usando a identidade gerenciada anteriormente.
Use o comando
az keyvault set-policy
para criar uma política de acesso no Azure Key Vault que fornece ao Azure Cosmos DB permissão de identidade gerenciada para acessar o Key Vault. Especificamente, a política usará os parâmetros de permissões de chave para conceder permissões para as chavesget
,list
eimport
.az keyvault set-policy \ --name $keyVaultName \ --object-id $principal \ --key-permissions get list import
Próximas etapas
- Para usar chaves gerenciadas pelo cliente no Azure Key Vault com sua conta do Azure Cosmos DB, consulte configurar chaves gerenciadas pelo cliente
- Para usar o Azure Key Vault para gerenciar segredos, consulte credenciais seguras.