Acessar o Azure Key Vault do Azure Cosmos DB usando uma identidade gerenciada

APLICA-SE A: 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

Verificação de pré-requisitos

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

    # 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 seja msdocs-keyvault e o nome do grupo de recursos seja msdocs-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.

  1. Execute az cosmosdb identity assign para criar uma nova Identidade gerenciada atribuída pelo sistema.

    az cosmosdb identity assign \
        --resource-group $resourceGroupName \
        --name $cosmosName 
    
  2. Recupere os metadados da identidade gerenciada atribuída pelo sistema usando az cosmosdb identity show, filtre para retornar apenas a propriedade principalId usando o parâmetro de consulta e armazene o resultado em uma variável de shell nomeada como principal.

    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.

  1. 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 chaves get, list e import.

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

Próximas etapas