Доступ к Azure Key Vault из Azure Cosmos DB с помощью управляемого удостоверения

ОБЛАСТЬ ПРИМЕНЕНИЯ: API SQL API Cassandra API Gremlin API таблиц API Azure Cosmos DB для MongoDB

Azure Cosmos DB может потребоваться считывать данные секрета или ключа из Azure Key Vault. Например, для Azure Cosmos DB может потребоваться ключ, управляемый клиентом, хранящийся в Azure Key Vault. Для этого в Azure Cosmos DB необходимо настроить управляемое удостоверение. Затем политика доступа Azure Key Vault должна разрешить доступ к управляемому удостоверению.

Предварительные требования

Проверка предварительных условий

  1. В окне терминала или командной строки сохраните имена ресурса Azure Key Vault, учетной записи Azure Cosmos DB и группы ресурсов в виде переменных оболочки с именами keyVaultName, cosmosName и resourceGroupName.

    # Variable for function app name
    keyVaultName="msdocs-keyvault"
    
    # Variable for Cosmos DB account name
    cosmosName="msdocs-cosmos-app"
    
    # Variable for resource group name
    resourceGroupName="msdocs-cosmos-keyvault-identity"
    

    Примечание

    Эти переменные будут повторно использоваться на следующих шагах. В этом примере предполагается, что имя учетной записи Azure Cosmos DB — msdocs-cosmos-app, имя хранилища ключей — msdocs-keyvault, а имя группы ресурсов — msdocs-cosmos-keyvault-identity.

Создание управляемого удостоверения, назначаемого системой, в Azure Cosmos DB

Сначала создайте управляемое удостоверение, назначаемое системой, для существующей учетной записи Azure Cosmos DB.

Важно!

В этом практическом руководстве предполагается, что вы используете управляемое удостоверение, назначаемое системой. Многие шаги будут аналогичными при использовании управляемого удостоверения, назначаемого пользователем.

  1. Выполните az cosmosdb identity assign, чтобы создать управляемое удостоверение, назначаемое системой.

    az cosmosdb identity assign \
        --resource-group $resourceGroupName \
        --name $cosmosName 
    
  2. Получите метаданные управляемого удостоверения, назначаемого системой, с помощью az cosmosdb identity show, выполните фильтрацию, чтобы просто вернуть свойство principalId с помощью параметра query, и сохраните результат в переменной оболочки с именем principal.

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

    Примечание

    Эта переменная будет повторно использована на более позднем этапе.

Создание политики доступа Azure Key Vault

На этом шаге создайте политику доступа в Azure Key Vault с помощью управляемого удостоверения.

  1. Выполните az keyvault set-policy, чтобы создать политику доступа в Azure Key Vault, которая предоставляет управляемому удостоверению Azure Cosmos DB разрешение на доступ к Key Vault. В частности, политика будет использовать параметры key-permissions для предоставления разрешений для ключей get, list и import.

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

Дальнейшие действия