Руководство. Хранение и использование учетных данных Azure Cosmos DB в Azure Key Vault
ПРИМЕНИМО К: Nosql Mongodb Кассандра Гремлин Таблица
Важно!
Для доступа к Azure Cosmos DB рекомендуется использовать управляемое удостоверение, назначаемое системой. Если и решение управляемого удостоверения, и решение на основе сертификатов не соответствуют вашим потребностям, используйте решение Azure Key Vault, описанное в этой статье.
Если в качестве базы данных используется Azure Cosmos DB, вы подключаетесь к базам данных, контейнерам и элементам с помощью пакета SDK, конечной точки API и первичного или вторичного ключа.
Не рекомендуется хранить URI конечной точки и конфиденциальные ключи чтения и записи непосредственно в коде приложения или файле конфигурации. В идеале эти данные считываются из переменных среды в узле. В Служба приложений Azure параметры приложения позволяют внедрять учетные данные среды выполнения для учетной записи Azure Cosmos DB без необходимости хранить эти учетные данные в небезопасном виде.
Azure Key Vault выполнять итерацию по этой рекомендации, позволяя безопасно хранить эти учетные данные, предоставляя таким службам, как Служба приложений Azure управляемый доступ к учетным данным. Служба приложений Azure безопасно считывает учетные данные из azure Key Vault и внедряет их в работающее приложение.
С помощью этой рекомендации разработчики могут хранить учетные данные для таких средств, как эмулятор Azure Cosmos DB или попробовать Azure Cosmos DB бесплатно во время разработки. Затем команда эксплуатации может убедиться, что во время выполнения будут внедрены правильные рабочие параметры.
В этом руководстве описано следующее:
- Создайте экземпляр Azure Key Vault
- Добавление учетных данных Azure Cosmos DB в качестве секретов в хранилище ключей
- Создание и регистрация ресурса Служба приложений Azure и предоставление разрешений на чтение ключа
- Внедрение секретов хранилища ключей в ресурс Служба приложений
Примечание
В этом руководстве и примере приложения используется учетная запись Azure Cosmos DB для NoSQL. Многие из этих же действий можно выполнить с помощью других API.
Предварительные требования
- Существующая учетная запись Azure Cosmos DB для NoSQL.
- Если у вас есть подписка Azure, создайте новую учетную запись.
- Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.
- Кроме того, вы можете попробовать Бесплатную службу Azure Cosmos DB перед фиксацией.
- Учетная запись GitHub.
Перед началом работы: Получение учетных данных Azure Cosmos DB
Прежде чем начать, вы получите учетные данные для существующей учетной записи.
Перейдите на страницу портал Azure существующей учетной записи Azure Cosmos DB для NoSQL.
На странице учетной записи Azure Cosmos DB для NoSQL выберите пункт меню навигации Ключи .
Запишите значения полей URI и PRIMARY KEY. Эти значения будут использоваться далее в этом руководстве.
Создание ресурса Key Vault Azure
Сначала создайте новое хранилище ключей для хранения учетных данных API для NoSQL.
Войдите на портал Azure.
Выберите Создать ресурс > Безопасность > Key Vault.
На странице Создание хранилища ключей введите следующие сведения:
Параметр Описание Подписка Выберите подписку Azure, которую нужно использовать для этой учетной записи Azure Cosmos. Группа ресурсов Выберите группу ресурсов или Создать, затем введите уникальное имя для новой группы ресурсов. Имя хранилища ключей Введите глобально уникальное имя хранилища ключей. Регион Выберите географическое расположение для размещения учетной записи Azure Cosmos DB. Используйте ближайшее к пользователям расположение, чтобы предоставить им максимально быстрый доступ к данным. Ценовая категория Выберите Стандартная. Оставьте для остальных параметров значения по умолчанию.
Выберите Review + create (Просмотреть и создать).
Просмотрите предоставленные параметры и щелкните Создать. Создание учетной записи занимает несколько минут. Прежде чем продолжить, дождитесь, пока на странице портала появится сообщение Развертывание выполнено.
добавление ключей доступа Azure Cosmos DB в Key Vault;
Теперь сохраните учетные данные Azure Cosmos DB в виде секретов в хранилище ключей.
Выберите Перейти к ресурсу, чтобы перейти на страницу ресурса Key Vault Azure.
На странице ресурса Azure Key Vault выберите пункт меню навигации Секреты.
В меню выберите Создать и импортировать .
На странице Создание секрета введите следующие сведения:
Параметр Описание Параметры отправки Вручную имя; конечная точка cosmos Значение секрета Введите URI , скопированный ранее в этом руководстве. Выберите Создать , чтобы создать новый секрет cosmos-endpoint .
Выберите Создать и импортировать в меню еще раз. На странице Создание секрета введите следующие сведения:
Параметр Описание Параметры отправки Вручную имя; cosmos-readwrite-key Значение секрета Введите ПЕРВИЧНЫЙ КЛЮЧ , скопированный ранее в этом руководстве. Выберите Создать , чтобы создать новый секрет cosmos-readwrite-key .
После создания секретов просмотрите их в списке секретов на странице Секреты .
Выберите каждый ключ, выберите последнюю версию и скопируйте идентификатор секрета. Вы будете использовать идентификатор для секретов cosmos-endpoint и cosmos-readwrite-key далее в этом руководстве.
Совет
Идентификатор секрета будет иметь следующий формат
https://<key-vault-name>.vault.azure.net/secrets/<secret-name>/<version-id>
. Например, если имя хранилища ключей — msdocs-key-vault, имя ключа — cosmos-readwrite-key, а версия — 83b995e363d94799ac6cf487ae0e12e; тогда идентификатор секрета будет иметь значениеhttps://msdocs-key-vault.vault.azure.net/secrets/cosmos-readwrite-key/83b995e363d947999ac6cf487ae0e12e
.
Создание и регистрация веб-приложения Azure в azure Key Vault
В этом разделе описано, как создать веб-приложение Azure, развернуть пример приложения, а затем зарегистрировать управляемое удостоверение веб-приложения в Azure Key Vault.
Создайте репозиторий GitHub с помощью шаблона cosmos-db-nosql-dotnet-sample-web-environment-variables.
В портал Azure выберите Создать ресурс > Веб-приложение>.
На странице Создание веб-приложения и вкладке Основные сведения введите следующие сведения:
Параметр Описание Подписка Выберите подписку Azure, которую нужно использовать для этой учетной записи Azure Cosmos. Группа ресурсов Выберите группу ресурсов или Создать, затем введите уникальное имя для новой группы ресурсов. имя; Введите глобально уникальное имя веб-приложения. Опубликовать Выберите Код. Стек среды выполнения Выберите .NET 6 (LTS). Операционная система Выберите Windows. Регион Выберите географическое расположение для размещения учетной записи Azure Cosmos DB. Используйте ближайшее к пользователям расположение, чтобы предоставить им максимально быстрый доступ к данным. Оставьте для остальных параметров значения по умолчанию.
Выберите Далее: развертывание.
На вкладке Развертывание введите следующие сведения:
Параметр Описание Непрерывное развертывание Нажмите кнопку Включить. Учетная запись GitHub Выберите Авторизовать. Следуйте инструкциям по авторизации учетной записи GitHub, чтобы предоставить Azure разрешение на чтение только что созданного репозитория GitHub. Организация Выберите организацию для нового репозитория GitHub. Репозиторий Выберите имя нового репозитория GitHub. Ветвь Выберите Main. Выберите Review + create (Просмотреть и создать).
Просмотрите предоставленные параметры и щелкните Создать. Создание учетной записи занимает несколько минут. Прежде чем продолжить, дождитесь, пока на странице портала появится сообщение Развертывание выполнено.
Возможно, потребуется подождать несколько дополнительных минут, пока веб-приложение будет изначально развернуто в веб-приложении. На странице ресурсов веб-приложения Azure нажмите кнопку Обзор , чтобы просмотреть состояние приложения по умолчанию.
Выберите пункт меню Навигация по удостоверениям .
На странице Удостоверение выберите Включено для управляемого удостоверения, назначаемого системой , а затем нажмите кнопку Сохранить.
Внедрение секретов azure Key Vault в качестве параметров веб-приложения Azure
Наконец, вставьте секреты, хранящиеся в хранилище ключей, в качестве параметров приложения в веб-приложении. Параметры приложения, в свою очередь, внедряют учетные данные в приложение во время выполнения без сохранения учетных данных в виде ясного текста.
Вернитесь на страницу хранилища ключей в портал Azure. Выберите Политики доступа в меню навигации.
На странице Политики доступа в меню выберите Создать .
На вкладке Разрешения на странице Создание политики доступа выберите параметр Получить в разделе Разрешения секрета . Выберите Далее.
На вкладке Субъект выберите имя веб-приложения, созданного ранее в этом руководстве. Выберите Далее.
Примечание
На снимке экрана этого примера веб-приложение называется msdocs-dotnet-web.
Нажмите кнопку Далее еще раз, чтобы пропустить вкладку Приложение . На вкладке Просмотр и создание просмотрите предоставленные параметры и нажмите кнопку Создать.
Вернитесь на страницу веб-приложения в портал Azure. Выберите Конфигурация в меню навигации.
На странице Конфигурация выберите Новый параметр приложения. В диалоговом окне Добавление и изменение параметра приложения введите следующие сведения:
Параметр Описание имя; CREDENTIALS__ENDPOINT
Key Получите идентификатор секретаcosmos-endpoint в хранилище ключей, созданном ранее в этом руководстве. Введите идентификатор в следующем формате: @Microsoft.KeyVault(SecretUri=<secret-identifier>)
.Совет
Убедитесь, что переменная среды имеет значение двойного подчеркивания (
__
) вместо одного подчеркивания. Двойное подчеркивание — это ключевой раздел, поддерживаемый .NET на всех платформах. Дополнительные сведения см. в разделе Конфигурация переменных среды.Примечание
Например, если идентификатор секрета —
https://msdocs-key-vault.vault.azure.net/secrets/cosmos-endpoint/69621c59ef5b4b7294b5def118921b07
, то ссылка будет иметь значение@Microsoft.KeyVault(SecretUri=https://msdocs-key-vault.vault.azure.net/secrets/cosmos-endpoint/69621c59ef5b4b7294b5def118921b07)
.Нажмите кнопку ОК , чтобы сохранить новый параметр приложения.
Снова выберите Новый параметр приложения . В диалоговом окне Добавление и изменение параметра приложения введите следующие сведения и нажмите кнопку ОК.
Параметр Описание имя; CREDENTIALS__KEY
Key Получите идентификатор секретаcosmos-readwrite-key в хранилище ключей, созданного ранее в этом руководстве. Введите идентификатор в следующем формате: @Microsoft.KeyVault(SecretUri=<secret-identifier>)
.Вернитесь на страницу Конфигурация и нажмите кнопку Сохранить , чтобы обновить параметры веб-приложения.
Подождите несколько минут, пока веб-приложение перезапустится с новыми параметрами приложения. На этом этапе новые параметры приложения должны указывать, что они являются ссылкой на хранилище ключей.
Выберите Обзор в меню навигации. Нажмите кнопку Обзор , чтобы просмотреть приложение с заполненными учетными данными.
Дальнейшие действия
- Сведения о настройке брандмауэра для Azure Cosmos DB см. в статье Поддержка брандмауэра для Azure Cosmos DB.
- Чтобы настроить конечную точку службы для виртуальной сети, перейдите к статье Безопасный доступ к учетной записи Azure Cosmos DB с использованием конечной точки службы для виртуальной сети Azure.