Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Интеграция Azure Key Vault с Azure Event Grid позволяет получать уведомления пользователей при изменении состояния секрета, хранящегося в хранилище ключей. Общие сведения об этой функции см. в разделе "Мониторинг Key Vault" с помощью сетки событий.
В этом руководстве описывается, как получать уведомления Key Vault через сетку событий и как реагировать на изменения состояния с помощью службы автоматизации Azure.
Предпосылки
- Подписка Azure. Если у вас нет подписки на Azure, создайте бесплатную учетную запись перед началом.
- Хранилище ключей в подписке Azure. Вы можете быстро создать хранилище ключей, выполнив действия, описанные в разделе "Настройка" и получение секрета из Azure Key Vault с помощью Azure CLI.
Концепции
Сетка событий — это служба событий для облака. Выполнив действия, описанные в этом руководстве, вы подпишитесь на события для Key Vault и перенаправите события в службу автоматизации. Когда один из секретов в хранилище ключей истекает (определяется как 30 дней до окончания срока действия), сетка событий уведомляется об изменении состояния и делает HTTP POST в конечную точку. Затем веб-перехватчик запускает выполнение скрипта PowerShell службы автоматизации.
Создание учетной записи службы автоматизации
Создайте учетную запись службы автоматизации с помощью портала Azure:
Перейдите к portal.azure.com и войдите в подписку.
В поле поиска введите учетные записи службы автоматизации.
В разделе "Службы " раскрывающегося списка на панели поиска выберите учетные записи службы автоматизации.
Выберите Добавить.
Введите необходимые сведения в области "Добавить учетную запись службы автоматизации" и нажмите кнопку "Создать".
Создание модуля Runbook
После готовности учетной записи службы автоматизации создайте модуль Runbook.
Выберите созданную учетную запись службы автоматизации.
Выберите Runbooks в разделе Автоматизация процессов.
Нажмите кнопку Создать Runbook.
Назовите модуль Runbook и выберите PowerShell в качестве типа runbook.
Выберите созданный модуль Runbook и нажмите кнопку "Изменить ".
Введите следующий код (для тестирования) и нажмите кнопку "Опубликовать ". Это действие возвращает результат полученного запроса POST.
param
(
[Parameter (Mandatory = $false)]
[object] $WebhookData
)
#If runbook was called from Webhook, WebhookData will not be null.
if ($WebhookData) {
#rotate secret:
#generate new secret version in key vault
#update db/service with generated secret
#Write-Output "WebhookData <$WebhookData>"
Write-Output $WebhookData.RequestBody
}
else
{
# Error
write-Error "No input data found."
}
Создание вебхука
Создайте вебхук для запуска недавно созданного рабочего блокнота.
Выберите веб-перехватчики из раздела "Ресурсы " опубликованного модуля Runbook.
Выберите Добавить веб-перехватчик.
Выберите Создать новый вебхук.
Присвойте веб-перехватчику имя, задайте дату окончания срока действия и скопируйте URL-адрес.
Это важно
Вы не можете просмотреть URL-адрес после его создания. Сохраните копию в безопасном расположении, где вы можете получить доступ к ней на оставшуюся часть этого руководства.
Выберите параметры и параметров запуска , а затем нажмите кнопку "ОК". Не вводите параметры. Кнопка "Создать " будет включена.
Нажмите кнопку "ОК " и нажмите кнопку "Создать".
Создать подписку на Event Grid
Создайте подписку сетки событий на портале Azure.
Перейдите в хранилище ключей и перейдите на вкладку "События ".
Нажмите кнопку "Подписка на события ".
Создайте описательное имя подписки.
Выберите схему сетки событий.
Ресурс раздела должен быть хранилищем ключей, которое необходимо отслеживать для изменений состояния.
Для фильтрации по типам событий оставьте все выбранные параметры (9).
Для типа конечной точки выберите Веб-перехватчик.
Выберите Выбрать конечную точку. В новой области контекста вставьте URL-адрес веб-перехватчика из шага "Создать веб-перехватчик " в поле "Конечная точка подписчика ".
Выберите "Подтвердить выбор" в области контекста.
Выберите Создать.
Тестирование и проверка
Убедитесь, что подписка сетки событий настроена правильно. В этом тесте предполагается, что вы подписаны на уведомление "Секрет создания новой версии" в подписке "Создание сетки событий" и что у вас есть необходимые разрешения для создания новой версии секрета в хранилище ключей.
Переход в хранилище ключей на портале Azure.
Создайте новый секрет. В целях тестирования задайте срок действия на следующий день.
На вкладке "События " в хранилище ключей выберите созданную подписку сетки событий.
В разделе "Метрики" проверьте, было ли записано событие. Ожидается два события: SecretNewVersion и SecretNearExpiry. Эти события подтверждают, что Event Grid успешно зафиксировал изменение статуса секретного ключа в вашем хранилище ключей.
Перейдите в учетную запись службы автоматизации.
Выберите вкладку Runbooks и выберите созданный модуль Runbook.
Перейдите на вкладку "Веб-перехватчики " и убедитесь, что метка времени последнего триггера находится в течение 60 секунд после создания нового секрета. Этот результат подтверждает, что сетка событий сделала post в веб-перехватчик с сведениями о событии изменения состояния в хранилище ключей и что веб-перехватчик был активирован.
Вернитесь в модуль Runbook и перейдите на вкладку "Обзор ".
Просмотрите список последних заданий . Вы должны увидеть, что задание было создано и что состояние завершено. Это подтверждает, что веб-перехватчик активировал модуль Runbook, чтобы начать выполнение скрипта.
Выберите недавнее задание и просмотрите запрос POST, отправленный из Event Grid в веб-перехватчик. Проверьте JSON и убедитесь, что параметры для вашего хранилища ключей и типа события правильные. Если параметр "тип события" в объекте JSON соответствует событию, которое произошло в хранилище ключей (в этом примере Microsoft.KeyVault.SecretNearExpiry), тест выполнен успешно.
Устранение неполадок
Невозможно создать подписку на события
Перерегистрируйте Event Grid и провайдера Azure Key Vault в поставщиках ресурсов вашей подписки Azure. Ознакомьтесь с разделом Поставщики и типы ресурсов Azure.
Дальнейшие шаги
Поздравляю! Если вы правильно выполнили все эти действия, теперь вы готовы программно реагировать на изменения состояния секретов, хранящихся в хранилище ключей.
Если вы использовали систему на основе опроса для поиска изменений состояния секретов в хранилищах ключей, вы можете начать использовать эту функцию уведомления. Вы также можете заменить тестовый скрипт в модуле Runbook кодом для программного продления секретов при истечении срока действия.
Подробнее: