Использование управляемых общедоступных сертификатов с Azure Key Vault и веб-приложениями
Использование PaaS (платформа как услуга) вместо традиционных виртуальных машин с IIS стало обычной практикой. Однако в этом новом мире есть и другие проблемы, чем раньше. Типичный шаблон проектирования использует ваш код, работающий в Azure Web Apps, и TLS/SSL, извлекаемые и поддерживаемые Azure Key Vault. В Azure Web Apps доступны и другие методы, такие как экспорт сертификата (общедоступного или частного) самостоятельно, использование Службы приложений для управления сертификатом и т. д. Интеграция Key Vault более элегантна по нескольким причинам: во-первых, мы можем разделить компоненты; во-вторых, мы можем уменьшить уязвимость, применяя ограниченные разрешения для управления сертификатами на уровне Key Vault, и нам не нужно беспокоиться о конфигурации веб-приложения. Еще одна ключевая особенность — способность Key Vault автоматически обновлять сертификат, что значительно снижает эксплуатационные расходы.
Новый развивающийся шаблон использует конфигурацию приложений Azure, которая выступает в качестве прокси-сервера между приложением и Azure Key Vault. Однако эта служба делает больше, она позволяет передавать динамические настройки приложениям, и эта служба имеет интеграцию с Key Vault для поддержки секретов. Мы расскажем об этой услуге более подробно в следующей статье на TechGenix.
На прошлой неделе я столкнулся с инцидентом, когда веб-приложения не синхронизировались после попытки обновить сертификаты. Заказчик делал это годами. После перехода на Azure вам помогут знания по устранению неполадок, связанные с виртуальными машинами и IIS, но вам нужно лучше понять интеграцию между службами Azure, чтобы решить проблему.
Общие сведения об ошибке рассинхронизации Key Vault
Клиент столкнулся с этой ошибкой при попытке синхронизации: « ».
Первым шагом для устранения проблемы является проверка параметров TLS/SSL рассматриваемого веб-приложения. Войдите на портал Azure, найдите нужное веб-приложение, затем щелкните Параметры TLS/SSL (элемент 1), а в новой колонке справа щелкните Сертификаты закрытого ключа (.pfx) (элемент 2)..
Будут перечислены все сертификаты, настроенные в текущем веб-приложении (в нашем случае мы видим состояние работоспособности желтым цветом, что означает предупреждение). Чтобы получить дополнительную информацию, нажмите на нее (элемент 3).
Мы можем запустить синхронизацию в новом блейде, нажав кнопку Sync (элемент 4). Веб-приложение перезапускает автоматически синхронизирует ваши сертификаты в течение 24 часов.
Лезвие также необходимо для устранения неполадок. Чтобы понять, какой Key Vault использует веб-приложение, проверьте значение поля URL-адрес ресурса Key Vault (пункт 5), секретное имя указано в поле ниже, и, что не менее важно, мы можем проверить текущий статус синхронизация. В нашем случае это дает OperationNonPermittedOnKeyVault (это означает, что разрешения требуют некоторой настройки).
Настройка политик доступа
Одним из элементов, в котором администратор облака должен убедиться, является то, что разрешения, назначенные для Azure Key Vault, правильно настроены и могут поддерживать встроенную интеграцию с веб-приложением.
Службе приложений Microsoft Azure как платформе присвоен следующий идентификатор bfa0a7c-a6b6-4736-8310-5855508787cd. Примечание. Если вы находитесь в другом облаке Azure (например, правительстве или Китае), проверьте правильность удостоверения, применимого к вашему облаку.
Войдите на портал Azure, найдите определенное Key Vault в области поиска или перечислите их все, просмотрев колонку Key Vaults. Выберите нужное хранилище ключей, нажмите «Политики доступа». Отобразится список всех существующих политик, и они будут разделены между обычными пользователями и приложениями. Имейте в виду, что у нас может быть несколько страниц в зависимости от размера вашей среды.
Нажмите ссылку «Добавить политику доступа». В новой колонке выберите «Получить разрешение» в области «Секретные разрешения» (элемент 1) и нажмите «Не выбрано» (элемент 2). В новой колонке введите идентификатор приложения, связанный со службой приложений Microsoft Azure (элемент 3), и нажмите «Выбрать» (элемент 4).
Чтобы завершить добавление этого нового субъекта-службы, нажмите «Добавить» (элемент 5) и нажмите «Сохранить» в следующей колонке, которая будет отображаться.
Окончательный результат после нажатия кнопки «Сохранить» будет показан на изображении ниже (пункт 2).
Некоторые заметки с поля
После настройки политик доступа в хранилище вы можете вернуться в веб-приложение и выполнить синхронизацию, нажав кнопку «Синхронизировать» в веб-приложении. Если вы получите эту ошибку — « » — не беспокойтесь. Это может быть тайм-аут, чтобы получить ответ. Скорее всего, вы увидите в сертификате зеленый статус, означающий, что синхронизация прошла успешно.
Сертификаты Key Vault и веб-приложений: теперь вы знаете, как устранить неполадки
В этой статье описаны действия, необходимые администратору облака для выполнения первоначальных действий по устранению неполадок при возникновении проблем с синхронизацией сертификатов между Azure Key Vault и Azure Web Apps.
Это не один размер подходит всем, но он дает вам некоторую видимость и возможности исправить аналогичные проблемы в вашей среде, прежде чем отправлять заявку в Microsoft.
Если вы используете IaC (инфраструктура как код) — а я надеюсь, что так и есть — убедитесь, что вы добавили эту запись политики доступа в свой код, чтобы избежать проблем в процессе обновления вашего сертификата.