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

Verificação prévia

  1. 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 keyVaultNamecosmosName, e resourceGroupName.

    # 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.

  1. Corra az cosmosdb identity assign para criar uma nova identidade gerida pelo sistema.

    az cosmosdb identity assign \
        --resource-group $resourceGroupName \
        --name $cosmosName 
    
  2. Recupere os metadados da identidade gerida atribuída pelo sistema utilizando az cosmosdb identity show, filtre para apenas devolver a principalId propriedade usando o parâmetro de consulta , e armazenar o resultado numa variável de concha denominada principal.

    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.

  1. 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 a get, liste import chaves.

    az keyvault set-policy \
        --name $keyVaultName \
        --object-id $principal \
        --key-permissions get list import
    

Passos seguintes