Zugreifen auf Azure Key Vault in Azure Cosmos DB mithilfe einer verwalteten Identität

GILT FÜR: NoSQL MongoDB Cassandra Gremlin Tabelle

Azure Cosmos DB muss möglicherweise Geheimnisse/Schlüsseldaten aus Azure Key Vault lesen. Azure Cosmos DB kann z. B. einen in Azure Key Vault gespeicherten kundenseitig verwalteten Schlüssel benötigen. Dazu muss Azure Cosmos DB mit einer verwalteten Identität konfiguriert werden. Danach muss eine Azure Key Vault-Zugriffsrichtlinie der verwalteten Identität Zugriff gewähren.

Voraussetzungen

Prüfen der Voraussetzungen

  1. Speichern Sie in einem Terminal- oder Befehlsfenster die Namen für die Azure Key Vault-Ressource, das Azure Cosmos DB-Konto und die Ressourcengruppe als Shellvariablen namens keyVaultName, cosmosName und 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"
    

    Hinweis

    Diese Variablen werden in späteren Schritten verwendet. In diesem Beispiel wird davon ausgegangen, dass Ihr Azure Cosmos DB-Kontoname msdocs-cosmos-app ist, ihr Ressourcengruppename msdocs-keyvault ist und Ihr Ressourcengruppenname msdocs-cosmos-keyvault-identity lautet.

Erstellen einer systemseitig zugewiesenen verwalteten Identität in Azure Cosmos DB

Erstellen Sie zunächst eine systemseitig zugewiesene verwaltete Identität für das vorhandene Azure Cosmos DB-Konto.

Wichtig

In dieser Anleitung wird davon ausgegangen, dass Sie eine systemseitig zugewiesene verwaltete Identität verwenden. Viele der Schritte sind ähnlich, wenn Sie eine benutzerseitig zugewiesene verwaltete Identität verwenden.

  1. Führen Sie az cosmosdb identity assign aus, um eine systemseitig zugewiesene verwaltete Identität zu erstellen.

    az cosmosdb identity assign \
        --resource-group $resourceGroupName \
        --name $cosmosName 
    
  2. Rufen Sie die Metadaten der systemseitig zugewiesenen verwalteten Identität mithilfe von az cosmosdb identity show ab, filtern Sie die Daten mithilfe des query-Parameters so, dass nur die principalId-Eigenschaft zurückgegeben wird, und speichern Sie das Ergebnis in einer Shellvariable namens principal.

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

    Hinweis

    Diese Variable wird in einem späteren Schritt verwendet.

Erstellen einer Azure Key Vault-Zugriffsrichtlinie

In diesem Schritt erstellen Sie eine Zugriffsrichtlinie in Azure Key Vault unter Verwendung der zuvor erstellten verwalteten Identität.

  1. Verwenden Sie den az keyvault set-policy-Befehl, um eine Zugriffsrichtlinie in Azure Key Vault zu erstellen, die der verwalteten Identität für Azure Cosmos DB Zugriffsberechtigung auf Key Vault gewährt. Insbesondere verwendet die Richtlinie die key-permissions-Parameter, um Berechtigungen für die Schlüssel get, list und import zu gewähren.

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

Nächste Schritte