Aceder ao Azure Key Vault a partir do Azure Cosmos DB com uma identidade gerida

APLICA-SE A: NoSQL MongoDB Cassandra Gremlin Tabela

O Azure Cosmos DB poderá ter de ler dados secretos/chave do Azure Key Vault. Por exemplo, o Azure Cosmos DB pode exigir uma chave gerida pelo cliente armazenada no Azure Key Vault. Para tal, o Azure Cosmos DB deve ser configurado com uma identidade gerida e, em seguida, uma política de acesso Key Vault do Azure deve conceder acesso à identidade gerida.

Pré-requisitos

Verificação de pré-requisitos

  1. Numa janela de terminal ou comando, armazene os nomes do recurso do Azure Key Vault, da conta do Azure Cosmos DB e do grupo de recursos como variáveis de shell com o nome 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

    Estas variáveis serão reutilizadas em passos posteriores. Este exemplo pressupõe que o nome da conta do Azure Cosmos DB é msdocs-cosmos-app, o nome do cofre de chaves é msdocs-keyvault e o nome do grupo de recursos é msdocs-cosmos-keyvault-identity.

Criar uma identidade gerida atribuída pelo sistema no Azure Cosmos DB

Primeiro, crie uma identidade gerida atribuída pelo sistema para a conta existente do Azure Cosmos DB.

Importante

Este guia de procedimentos pressupõe que está a utilizar uma identidade gerida atribuída pelo sistema. Muitos dos passos são semelhantes ao utilizar uma identidade gerida atribuída pelo utilizador.

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

    az cosmosdb identity assign \
        --resource-group $resourceGroupName \
        --name $cosmosName 
    
  2. Obtenha os metadados da identidade az cosmosdb identity showgerida atribuída pelo sistema com o , filtre para devolver a principalId propriedade com o parâmetro de consulta e armazene o resultado numa variável de shell com o nome 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 Key Vault do Azure

Neste passo, crie uma política de acesso no Azure Key Vault com a identidade gerida anteriormente.

  1. Utilize o az keyvault set-policy comando para criar uma política de acesso no Azure Key Vault que dá permissão de identidade gerida do Azure Cosmos DB para aceder a Key Vault. Especificamente, a política utilizará os parâmetros de permissões de 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