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

Verificação de pré-requisitos

  1. 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, cosmosNamee 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"
    

    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.

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

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

    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.

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

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

Próximos passos