Udostępnij za pośrednictwem


Uzyskiwanie dostępu do usługi Azure Key Vault z usługi Azure Cosmos DB przy użyciu tożsamości zarządzanej

DOTYCZY: NoSQL MongoDB Kasandra Gremlin Stół

Usługa Azure Cosmos DB może wymagać odczytu danych wpisów tajnych/kluczy z usługi Azure Key Vault. Na przykład usługa Azure Cosmos DB może wymagać klucza zarządzanego przez klienta przechowywanego w usłudze Azure Key Vault. W tym celu należy skonfigurować usługę Azure Cosmos DB przy użyciu tożsamości zarządzanej, a następnie zasady dostępu usługi Azure Key Vault powinny udzielić dostępu tożsamości zarządzanej.

Wymagania wstępne

Sprawdzanie wymagań wstępnych

  1. W oknie terminalu lub polecenia zapisz nazwy zasobu usługi Azure Key Vault, konta usługi Azure Cosmos DB i grupy zasobów jako zmienne powłoki o nazwach keyVaultName, cosmosNamei 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"
    

    Uwaga

    Te zmienne zostaną ponownie użyte w kolejnych krokach. W tym przykładzie założono, że nazwa konta usługi Azure Cosmos DB to , nazwa magazynu kluczy to msdocs-cosmos-appmsdocs-keyvault , a nazwa grupy zasobów to msdocs-cosmos-keyvault-identity.

Tworzenie tożsamości zarządzanej przypisanej przez system w usłudze Azure Cosmos DB

Najpierw utwórz tożsamość zarządzaną przypisaną przez system dla istniejącego konta usługi Azure Cosmos DB.

Ważne

W tym przewodniku z instrukcjami założono, że używasz tożsamości zarządzanej przypisanej przez system. Wiele kroków jest podobnych w przypadku korzystania z tożsamości zarządzanej przypisanej przez użytkownika.

  1. Uruchom polecenie az cosmosdb identity assign , aby utworzyć nową tożsamość zarządzaną przypisaną przez system.

    az cosmosdb identity assign \
        --resource-group $resourceGroupName \
        --name $cosmosName 
    
  2. Pobierz metadane tożsamości zarządzanej przypisanej przez system przy użyciu filtru az cosmosdb identity show, aby po prostu zwrócić principalId właściwość przy użyciu parametru zapytania i zapisać wynik w zmiennej powłoki o nazwie principal.

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

    Uwaga

    Ta zmienna zostanie ponownie użyta w późniejszym kroku.

Tworzenie zasad dostępu usługi Azure Key Vault

W tym kroku utwórz zasady dostępu w usłudze Azure Key Vault przy użyciu wcześniej zarządzanej tożsamości.

  1. az keyvault set-policy Użyj polecenia , aby utworzyć zasady dostępu w usłudze Azure Key Vault, które dają tożsamości zarządzanej usługi Azure Cosmos DB uprawnienie dostępu do usługi Key Vault. W szczególności zasady będą używać parametrów key-permissions w celu udzielenia uprawnień do get, listi import kluczy.

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

Następne kroki