Поделиться через


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Снимок экрана: диалоговое окно

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

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

    Параметр Description
    Параметры отправки Вручную
    Имя cosmos-readwrite-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, а версия, если 83b95e363d9999ac6cf4887ae0e12e; то будет идентификатор 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. На вкладке "Создание веб-приложения" и "Основы" введите следующие сведения:

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

  5. Нажмите кнопку "Далее": развертывание.

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

    Параметр Description
    Непрерывное развертывание Выберите Включить.
    Учетная запись 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. На странице "Конфигурация" выберите "Создать приложение". В диалоговом окне "Добавление и изменение параметра приложения" введите следующие сведения:

    Параметр Description
    Имя CREDENTIALS__ENDPOINT
    Ключ Получите идентификаторсекрета для секрета 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. Снова нажмите кнопку "Создать приложение ". В диалоговом окне "Добавление и изменение параметра приложения" введите следующие сведения и нажмите кнопку "ОК".

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

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

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

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

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

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

Следующие шаги