Delen via


Toegang tot Azure Key Vault vanuit Azure Cosmos DB met behulp van een beheerde identiteit

VAN TOEPASSING OP: NoSQL MongoDB Cassandra Gremlin Tafel

Azure Cosmos DB moet mogelijk geheime/sleutelgegevens lezen uit Azure Key Vault. Uw Azure Cosmos DB kan bijvoorbeeld een door de klant beheerde sleutel vereisen die is opgeslagen in Azure Key Vault. Hiervoor moet Azure Cosmos DB worden geconfigureerd met een beheerde identiteit. Vervolgens moet een toegangsbeleid voor Azure Key Vault de beheerde identiteit toegang verlenen.

Vereisten

Controle van vereisten

  1. Sla in een terminal- of opdrachtvenster de namen van uw Azure Key Vault-resource, het Azure Cosmos DB-account en de resourcegroep op als shellvariabelen met de naam keyVaultName, cosmosNameen 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"
    

    Notitie

    Deze variabelen worden in latere stappen opnieuw gebruikt. In dit voorbeeld wordt ervan uitgegaan dat uw Azure Cosmos DB-accountnaam ismsdocs-cosmos-app, dat uw sleutelkluisnaam is msdocs-keyvault en de naam van uw resourcegroep.msdocs-cosmos-keyvault-identity

Een door het systeem toegewezen beheerde identiteit maken in Azure Cosmos DB

Maak eerst een door het systeem toegewezen beheerde identiteit voor het bestaande Azure Cosmos DB-account.

Belangrijk

In deze instructiegids wordt ervan uitgegaan dat u een door het systeem toegewezen beheerde identiteit gebruikt. Veel van de stappen zijn vergelijkbaar bij het gebruik van een door de gebruiker toegewezen beheerde identiteit.

  1. Voer az cosmosdb identity assign deze opdracht uit om een nieuwe door het systeem toegewezen beheerde identiteit te maken.

    az cosmosdb identity assign \
        --resource-group $resourceGroupName \
        --name $cosmosName 
    
  2. Haal de metagegevens van de door het systeem toegewezen beheerde identiteit op met behulp az cosmosdb identity showvan, filter om alleen de principalId eigenschap te retourneren met behulp van de queryparameter en sla het resultaat op in een shellvariabele met de naam principal.

    principal=$(
        az cosmosdb identity show \
            --resource-group $resourceGroupName \
            --name $cosmosName \
            --query principalId \
            --output tsv
    )
    
    echo $principal
    

    Notitie

    Deze variabele wordt in een latere stap opnieuw gebruikt.

Een Azure Key Vault-toegangsbeleid maken

In deze stap maakt u een toegangsbeleid in Azure Key Vault met behulp van de eerder beheerde identiteit.

  1. Gebruik de az keyvault set-policy opdracht om een toegangsbeleid te maken in Azure Key Vault waarmee de beheerde Identiteit van Azure Cosmos DB toegang krijgt tot Key Vault. Het beleid gebruikt met name de parameters voor sleutelmachtigingen om machtigingen te verlenen aan get, listen import sleutels.

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

Volgende stappen

  • Als u door de klant beheerde sleutels in Azure Key Vault wilt gebruiken met uw Azure Cosmos DB-account, raadpleegt u Door de klant beheerde sleutels configureren
  • Als u Azure Key Vault wilt gebruiken om geheimen te beheren, raadpleegt u beveiligde referenties.