Recepción de notificaciones del almacén de claves y respuesta con Azure Event Grid
La integración de Azure Key Vault en Azure Event Grid permite a los usuarios recibir una notificación cuando cambia el estado de un secreto almacenado en el almacén de claves. Para información general sobre esta característica, consulte Supervisión de Key Vault con Event Grid.
En esta guía se describe cómo recibir notificaciones de Key Vault mediante Event Grid, y cómo responder a los cambios de estado con Azure Automation.
Prerrequisitos
- Suscripción a Azure. Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
- Un almacén de claves en la suscripción de Azure. Puede crear rápidamente un almacén de claves si sigue los pasos descritos en Establecimiento y recuperación de un secreto desde Azure Key Vault mediante la CLI de Azure.
Conceptos
Event Grid es un servicio de eventos para la nube. Al seguir los pasos de esta guía, se suscribirá a los eventos de Key Vault y enrutará los eventos a Automation. Cuando uno de los secretos del almacén de claves está a punto de expirar (se define como 30 días antes de la fecha de expiración), Event Grid recibe una notificación del cambio de estado y realiza una solicitud HTTP POST al punto de conexión. Después, un webhook desencadena una ejecución de Automation de un script de PowerShell.
Creación de una cuenta de Automation
Cree una cuenta de Automation mediante Azure Portal:
Vaya a portal.azure.com e inicie sesión en la suscripción.
En el cuadro de búsqueda, escriba Cuentas de Automation.
En la sección Servicios de la lista desplegable de la barra de búsqueda, seleccione Cuentas de Automation.
Seleccione Agregar.
Escriba la información necesaria en el panel Agregar cuenta de Automation y, a continuación, seleccione Crear.
Crear un runbook
Una vez que la cuenta de Automation esté lista, cree un runbook.
Seleccione la cuenta de Automation que ha creado.
Seleccione Runbooks en Automatización de procesos.
Seleccione Crear un runbook.
Asigne un nombre al runbook y seleccione PowerShell como tipo del runbook.
Seleccione el runbook que ha creado y seleccione el botón Editar.
Escriba el código siguiente (con fines de prueba) y seleccione el botón Publicar. Esta acción devuelve el resultado de la solicitud POST recibida.
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."
}
Creación de un webhook
Cree un webhook para desencadenar el runbook que acaba de crear.
Seleccione Webhooks en la sección Recursos del runbook que ha publicado.
Seleccione Agregar Webhook.
Seleccione Crear nuevo Webhook.
Asígnele un nombre al webhook, establezca una fecha de expiración y copie la dirección URL.
Importante
Una vez que se cree, no podrá ver la dirección URL. Asegúrese de guardar una copia en una ubicación segura a la que pueda acceder durante el resto de esta guía.
Seleccione Configuración de ejecución y parámetros y seleccione Aceptar. No escriba ningún parámetro. Se habilitará el botón Crear.
Seleccione Aceptar y después Crear.
Creación de una suscripción de Event Grid
Cree una suscripción de Event Grid con Azure Portal.
Vaya al almacén de claves y seleccione la pestaña Eventos.
Seleccione el botón Suscripción a eventos.
Cree un nombre descriptivo para la suscripción.
Elija Esquema de Event Grid.
Recurso de tema debe ser el almacén de claves cuyos cambios de estado desea supervisar.
En Filtro para tipos de evento, deje seleccionadas todas las opciones (9 seleccionadas).
En Tipo de punto de conexión, seleccione Webhook.
Elija Seleccionar un punto de conexión. En el panel del nuevo contexto, pegue la dirección URL del webhook del paso Creación de un webhook en el campo Punto de conexión de suscriptor.
Seleccione Confirmar selección en el panel de contexto.
Seleccione Crear.
Prueba y comprobación
Verifique que la suscripción a Event Grid esté correctamente configurada. En esta prueba se supone que se ha suscrito a la notificación "Secret New Version Created" (Nueva versión del secreto creada) en Creación de una suscripción de Event Grid y que tiene los permisos necesarios para crear una versión de un secreto en un almacén de claves.
Vaya al almacén de claves en Azure Portal.
Cree un secreto. Para fines de prueba, establezca la fecha de caducidad para el día siguiente.
En la pestaña Eventos del almacén de claves, seleccione la suscripción a Event Grid que creó.
En Métricas, consulte si se capturó un evento. Se esperan dos: SecretNewVersion y SecretNearExpiry. Estos eventos validan que Event Grid capturó correctamente el cambio de estado del secreto en el almacén de claves.
Vaya a su cuenta de Automation.
Seleccione la pestaña Runbooks y seleccione el runbook que creó.
Seleccione la pestaña Webhooks y confirme que la marca de tiempo "Última vez que se desencadenó" se encuentra en un plazo de 60 segundos a partir del momento de la creación del secreto. Este resultado confirma que Event Grid realizó una solicitud POST en el webhook con los detalles del evento de cambio de estado en el almacén de claves, y que el webhook se desencadenó.
Vuelva al runbook y seleccione la pestaña Información general.
Examine la lista Trabajos recientes. Debería ver que se ha creado un trabajo y que el estado es completado. Esto confirma que el webhook desencadenó el runbook para iniciar la ejecución de su script.
Seleccione el trabajo reciente y examine la solicitud POST que se envió desde Event Grid al webhook. Examine el archivo JSON y asegúrese de que los parámetros para el almacén de claves y el tipo de evento son correctos. Si el parámetro "event type" del objeto JSON coincide con el evento que se produjo en el almacén de claves (en este ejemplo, Microsoft.KeyVault.SecretNearExpiry), la prueba se completó correctamente.
Solución de problemas
No puede crear la suscripción a un evento
Vuelva a registrar Event Grid y el proveedor del almacén de claves en los proveedores de recursos de la suscripción a Azure. Consulte Tipos y proveedores de recursos de Azure.
Pasos siguientes
Felicidades. Si ha seguido correctamente todos estos pasos, ya está listo para responder mediante programación a los cambios de estado de los secretos almacenados en el almacén de claves.
Si ha usado un sistema basado en sondeo para buscar cambios de estado en los secretos de los almacenes de claves, puede empezar a usar esta característica de notificación. También puede reemplazar el script de prueba del runbook con código para renovar los secretos mediante programación cuando están a punto de expirar.
Más información:
- Introducción: Supervisión de Key Vault con Azure Event Grid
- Procedimientos: Recibir un correo electrónico al cambiar un secreto del almacén de claves
- Esquema de eventos Azure Event Grid para Azure Key Vault
- Introducción a Azure Key Vault
- Introducción a Azure Event Grid
- Información general sobre Azure Automation