Aceder ao Azure Key Vault a partir do Azure Cosmos DB utilizando uma identidade gerida
APLICA-SE A: NoSQL MongoDB Cassandra Gremlin Tabela
O Azure Cosmos DB pode precisar ler dados secretos/chave do Cofre de Chaves do Azure. Por exemplo, seu Azure Cosmos DB pode exigir uma chave gerenciada pelo cliente armazenada no Cofre de Chaves do Azure. Para fazer isso, o Azure Cosmos DB deve ser configurado com uma identidade gerenciada e, em seguida, uma política de acesso ao Cofre da Chave do Azure deve conceder acesso à identidade gerenciada.
Pré-requisitos
- Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.
- Uma conta existente da API do Azure Cosmos DB para NoSQL. Criar uma API do Azure Cosmos DB para conta NoSQL
- Um recurso existente do Azure Key Vault. Criar um cofre de chaves usando a CLI do Azure
- Para executar as etapas neste 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 seu recurso do Cofre da Chave do Azure, da conta do Azure Cosmos DB e do grupo de recursos como variáveis de shell denominadas
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"
Nota
Essas variáveis serão reutilizadas em etapas posteriores. Este exemplo pressupõe que o nome da conta do Azure Cosmos DB é
msdocs-cosmos-app
, o nome do cofre da chave émsdocs-keyvault
e o nome do grupo de recursos émsdocs-cosmos-keyvault-identity
.
Criar uma identidade gerenciada atribuída ao sistema no Azure Cosmos DB
Primeiro, crie uma identidade gerenciada atribuída ao sistema para a conta existente do Azure Cosmos DB.
Importante
Este guia de instruções pressupõe que você esteja usando uma identidade gerenciada atribuída ao 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 ao sistema.az cosmosdb identity assign \ --resource-group $resourceGroupName \ --name $cosmosName
Recupere os metadados da identidade gerenciada atribuída ao sistema usando
az cosmosdb identity show
, filter para apenas retornar aprincipalId
propriedade usando o parâmetro query e armazene o resultado em uma variável de shell chamadaprincipal
.principal=$( az cosmosdb identity show \ --resource-group $resourceGroupName \ --name $cosmosName \ --query principalId \ --output tsv ) echo $principal
Nota
Esta variável será reutilizada numa fase posterior.
Criar uma política de acesso ao Cofre da Chave do Azure
Nesta etapa, crie uma política de acesso no Cofre da Chave do Azure usando a identidade gerenciada anteriormente.
Use o
az keyvault set-policy
comando para criar uma política de acesso no Cofre de Chaves do Azure que conceda permissão de identidade gerenciada do Azure Cosmos DB para acessar o Cofre de Chaves. Especificamente, a política usará os parâmetros key-permissions para conceder permissões aget
,list
eimport
chaves.az keyvault set-policy \ --name $keyVaultName \ --object-id $principal \ --key-permissions get list import
Próximos passos
- Para usar chaves gerenciadas pelo cliente no Cofre de Chaves do Azure com sua conta do Azure Cosmos DB, consulte Configurar chaves gerenciadas pelo cliente
- Para usar o Cofre da Chave do Azure para gerenciar segredos, consulte Credenciais seguras.