Доступ к 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 должна разрешить доступ к управляемому удостоверению.
Предварительные требования
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно.
- Существующая учетная запись API Azure Cosmos DB SQL (Core). Создание учетной записи API SQL в Azure Cosmos DB
- Существующий ресурс Azure Key Vault. Создание хранилища ключей с помощью Azure CLI
- Чтобы выполнить описанные в этой статье действия, установите Azure CLI и войдите в Azure.
Проверка предварительных условий
В окне терминала или командной строки сохраните имена ресурса 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.
Важно!
В этом практическом руководстве предполагается, что вы используете управляемое удостоверение, назначаемое системой. Многие шаги будут аналогичными при использовании управляемого удостоверения, назначаемого пользователем.
Выполните
az cosmosdb identity assign
, чтобы создать управляемое удостоверение, назначаемое системой.az cosmosdb identity assign \ --resource-group $resourceGroupName \ --name $cosmosName
Получите метаданные управляемого удостоверения, назначаемого системой, с помощью
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 с помощью управляемого удостоверения.
Выполните
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
Дальнейшие действия
- Чтобы использовать ключи, управляемые клиентом, в Azure Key Vault с вашей учетной записью Azure Cosmos DB, см. раздел Настройка ключей, управляемых клиентом.
- Чтобы использовать Azure Key Vault для управления секретами, см. статью Безопасные учетные данные.