Руководство. Хранение и использование учетных данных 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

Прежде чем начать, вы получите учетные данные для существующей учетной записи.

  1. Перейдите на страницу портал Azure существующей учетной записи Azure Cosmos DB для NoSQL.

  2. На странице учетной записи Azure Cosmos DB для NoSQL выберите пункт меню навигации Ключи .

    Снимок экрана: страница учетной записи API SQL Azure Cosmos DB. Параметр Ключи выделен в меню навигации.

  3. Запишите значения полей URI и PRIMARY KEY. Эти значения будут использоваться далее в этом руководстве.

    Снимок экрана: страница

Создание ресурса Key Vault Azure

Сначала создайте новое хранилище ключей для хранения учетных данных API для NoSQL.

  1. Войдите на портал Azure.

  2. Выберите Создать ресурс > Безопасность > Key Vault.

  3. На странице Создание хранилища ключей введите следующие сведения:

    Параметр Описание
    Подписка Выберите подписку Azure, которую нужно использовать для этой учетной записи Azure Cosmos.
    Группа ресурсов Выберите группу ресурсов или Создать, затем введите уникальное имя для новой группы ресурсов.
    Имя хранилища ключей Введите глобально уникальное имя хранилища ключей.
    Регион Выберите географическое расположение для размещения учетной записи Azure Cosmos DB. Используйте ближайшее к пользователям расположение, чтобы предоставить им максимально быстрый доступ к данным.
    Ценовая категория Выберите Стандартная.
  4. Оставьте для остальных параметров значения по умолчанию.

  5. Выберите Review + create (Просмотреть и создать).

  6. Просмотрите предоставленные параметры и щелкните Создать. Создание учетной записи занимает несколько минут. Прежде чем продолжить, дождитесь, пока на странице портала появится сообщение Развертывание выполнено.

добавление ключей доступа Azure Cosmos DB в Key Vault;

Теперь сохраните учетные данные Azure Cosmos DB в виде секретов в хранилище ключей.

  1. Выберите Перейти к ресурсу, чтобы перейти на страницу ресурса Key Vault Azure.

  2. На странице ресурса Azure Key Vault выберите пункт меню навигации Секреты.

  3. В меню выберите Создать и импортировать .

    Снимок экрана: параметр

  4. На странице Создание секрета введите следующие сведения:

    Параметр Описание
    Параметры отправки Вручную
    имя; конечная точка cosmos
    Значение секрета Введите URI , скопированный ранее в этом руководстве.

    Снимок экрана: диалоговое окно создания секрета в портал Azure со сведениями о секрете URI.

  5. Выберите Создать , чтобы создать новый секрет cosmos-endpoint .

  6. Выберите Создать и импортировать в меню еще раз. На странице Создание секрета введите следующие сведения:

    Параметр Описание
    Параметры отправки Вручную
    имя; cosmos-readwrite-key
    Значение секрета Введите ПЕРВИЧНЫЙ КЛЮЧ , скопированный ранее в этом руководстве.

    Снимок экрана: диалоговое окно создания секрета в портал Azure с подробными сведениями о секрете PRIMARY KEY.

  7. Выберите Создать , чтобы создать новый секрет cosmos-readwrite-key .

  8. После создания секретов просмотрите их в списке секретов на странице Секреты .

    Снимок экрана: список секретов для хранилища ключей.

  9. Выберите каждый ключ, выберите последнюю версию и скопируйте идентификатор секрета. Вы будете использовать идентификатор для секретов 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.

    Снимок экрана: идентификатор секрета хранилища ключей с именем cosmos-readwrite-key.

Создание и регистрация веб-приложения Azure в azure Key Vault

В этом разделе описано, как создать веб-приложение Azure, развернуть пример приложения, а затем зарегистрировать управляемое удостоверение веб-приложения в Azure Key Vault.

  1. Создайте репозиторий GitHub с помощью шаблона cosmos-db-nosql-dotnet-sample-web-environment-variables.

  2. В портал Azure выберите Создать ресурс > Веб-приложение>.

  3. На странице Создание веб-приложения и вкладке Основные сведения введите следующие сведения:

    Параметр Описание
    Подписка Выберите подписку Azure, которую нужно использовать для этой учетной записи Azure Cosmos.
    Группа ресурсов Выберите группу ресурсов или Создать, затем введите уникальное имя для новой группы ресурсов.
    имя; Введите глобально уникальное имя веб-приложения.
    Опубликовать Выберите Код.
    Стек среды выполнения Выберите .NET 6 (LTS).
    Операционная система Выберите Windows.
    Регион Выберите географическое расположение для размещения учетной записи Azure Cosmos DB. Используйте ближайшее к пользователям расположение, чтобы предоставить им максимально быстрый доступ к данным.
  4. Оставьте для остальных параметров значения по умолчанию.

  5. Выберите Далее: развертывание.

  6. На вкладке Развертывание введите следующие сведения:

    Параметр Описание
    Непрерывное развертывание Нажмите кнопку Включить.
    Учетная запись GitHub Выберите Авторизовать. Следуйте инструкциям по авторизации учетной записи GitHub, чтобы предоставить Azure разрешение на чтение только что созданного репозитория GitHub.
    Организация Выберите организацию для нового репозитория GitHub.
    Репозиторий Выберите имя нового репозитория GitHub.
    Ветвь Выберите Main.
  7. Выберите Review + create (Просмотреть и создать).

  8. Просмотрите предоставленные параметры и щелкните Создать. Создание учетной записи занимает несколько минут. Прежде чем продолжить, дождитесь, пока на странице портала появится сообщение Развертывание выполнено.

  9. Возможно, потребуется подождать несколько дополнительных минут, пока веб-приложение будет изначально развернуто в веб-приложении. На странице ресурсов веб-приложения Azure нажмите кнопку Обзор , чтобы просмотреть состояние приложения по умолчанию.

    Снимок экрана: веб-приложение в состоянии по умолчанию без учетных данных.

  10. Выберите пункт меню Навигация по удостоверениям .

  11. На странице Удостоверение выберите Включено для управляемого удостоверения, назначаемого системой , а затем нажмите кнопку Сохранить.

    Снимок экрана: управляемое удостоверение, назначаемое системой, включается со страницы удостоверений.

Внедрение секретов azure Key Vault в качестве параметров веб-приложения Azure

Наконец, вставьте секреты, хранящиеся в хранилище ключей, в качестве параметров приложения в веб-приложении. Параметры приложения, в свою очередь, внедряют учетные данные в приложение во время выполнения без сохранения учетных данных в виде ясного текста.

  1. Вернитесь на страницу хранилища ключей в портал Azure. Выберите Политики доступа в меню навигации.

  2. На странице Политики доступа в меню выберите Создать .

    Снимок экрана: параметр

  3. На вкладке Разрешения на странице Создание политики доступа выберите параметр Получить в разделе Разрешения секрета . Выберите Далее.

    Снимок экрана: получение разрешений, включенных для разрешений секрета.

  4. На вкладке Субъект выберите имя веб-приложения, созданного ранее в этом руководстве. Выберите Далее.

    Снимок экрана: управляемое удостоверение веб-приложения, назначенное разрешению.

    Примечание

    На снимке экрана этого примера веб-приложение называется msdocs-dotnet-web.

  5. Нажмите кнопку Далее еще раз, чтобы пропустить вкладку Приложение . На вкладке Просмотр и создание просмотрите предоставленные параметры и нажмите кнопку Создать.

  6. Вернитесь на страницу веб-приложения в портал Azure. Выберите Конфигурация в меню навигации.

  7. На странице Конфигурация выберите Новый параметр приложения. В диалоговом окне Добавление и изменение параметра приложения введите следующие сведения:

    Параметр Описание
    имя; 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).

    Снимок экрана: диалоговое окно добавления и изменения параметров приложения с новым параметром приложения, ссылающимся на секрет хранилища ключей.

  8. Нажмите кнопку ОК , чтобы сохранить новый параметр приложения.

  9. Снова выберите Новый параметр приложения . В диалоговом окне Добавление и изменение параметра приложения введите следующие сведения и нажмите кнопку ОК.

    Параметр Описание
    имя; CREDENTIALS__KEY
    Key Получите идентификатор секретаcosmos-readwrite-key в хранилище ключей, созданного ранее в этом руководстве. Введите идентификатор в следующем формате: @Microsoft.KeyVault(SecretUri=<secret-identifier>).
  10. Вернитесь на страницу Конфигурация и нажмите кнопку Сохранить , чтобы обновить параметры веб-приложения.

    Снимок экрана: параметр

  11. Подождите несколько минут, пока веб-приложение перезапустится с новыми параметрами приложения. На этом этапе новые параметры приложения должны указывать, что они являются ссылкой на хранилище ключей.

    Снимок экрана: ссылка на хранилище ключей для двух параметров приложения в веб-приложении.

  12. Выберите Обзор в меню навигации. Нажмите кнопку Обзор , чтобы просмотреть приложение с заполненными учетными данными.

    Снимок экрана: веб-приложение с действительными учетными данными учетной записи Azure Cosmos DB для NoSQL.

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