Compartir a través de


Recibe y responde a las notificaciones de Key Vault a través de Azure Event Grid

La integración de Azure Key Vault con Azure Event Grid permite la notificación de usuario cuando el estado de un secreto almacenado en un almacén de claves ha cambiado. Para obtener 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 a través de Event Grid y cómo responder a los cambios de estado a través de Azure Automation.

Prerrequisitos

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 (definido 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. A continuación, un webhook desencadena una ejecución de Automation de un script de PowerShell.

Diagrama de flujo HTTP POST

Creación de una cuenta de Automation

Cree una cuenta de Automation a través de Azure Portal:

  1. Vaya a portal.azure.com e inicie sesión en su suscripción.

  2. En el cuadro de búsqueda, escriba Cuentas de automatización.

  3. En la sección Servicios de la lista desplegable de la barra de búsqueda, seleccione Cuentas de Automation.

  4. Selecciona Agregar.

    Panel de Cuentas de Automatización

  5. Escriba la información necesaria en el panel Agregar cuenta de Automation y seleccione Crear.

Crear un runbook

Una vez que la cuenta de Automation esté lista, cree un runbook.

Creación de una interfaz de usuario de runbook

  1. Seleccione la cuenta de Automation que ha creado.

  2. Seleccione Runbooks en Automatización de procesos.

  3. Seleccione Crear un runbook.

  4. Asigne un nombre al runbook y seleccione PowerShell como tipo de runbook.

  5. Seleccione el runbook que creó y, a continuación, seleccione el botón Editar.

  6. 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." 
}

Publicación de la UI de un runbook

Creación de un webhook

Cree un webhook para desencadenar el runbook que acaba de crear.

  1. Seleccione Webhooks en la sección Recursos del runbook que ha publicado.

  2. Seleccione Agregar webhook.

    Botón Agregar webhook

  3. Seleccione Crear nuevo webhook.

  4. Asigne un nombre al webhook, establezca una fecha de expiración y copie la dirección URL.

    Importante

    No puede ver la dirección URL después de crearla. Asegúrese de guardar una copia en una ubicación segura donde pueda acceder a ella durante el resto de esta guía.

  5. Seleccione Parámetros y ejecute la configuración y, a continuación, seleccione Aceptar. No escriba ningún parámetro. El botón Crear se habilitará.

  6. Seleccione Aceptar y, a continuación, seleccione Crear.

    Creación de una nueva interfaz de usuario de webhook

Creación de una suscripción de Event Grid

Cree una suscripción de Event Grid a través de Azure Portal.

  1. Vaya al almacén de claves y seleccione la pestaña Eventos .

    Pestaña Eventos en Azure Portal

  2. Seleccione el botón Suscripción de eventos .

  3. Cree un nombre descriptivo para la suscripción.

  4. Elija Esquema de Event Grid.

  5. Recurso de tema debe ser el almacén de claves cuyos cambios de estado desea supervisar.

  6. En Filtrar a tipos de eventos, deje todas las opciones seleccionadas (9 seleccionadas).

  7. En Tipo de punto de conexión, seleccione Webhook.

  8. Elija Seleccionar un punto de conexión. En el nuevo panel de contexto, pegue la dirección URL del webhook del paso Crear un webhook en el campo Punto de conexión del suscriptor .

  9. Seleccione Confirmar selección en el panel de contexto.

  10. Selecciona Crear.

    Creación de una suscripción de eventos

Prueba y comprobación

Compruebe que la suscripción de Event Grid está configurada correctamente. 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.

Prueba de la configuración de la suscripción de Event Grid

Creación de un panel de secretos

  1. Dirígete al almacén de claves de tu portal de Azure.

  2. Cree un nuevo secreto. Con fines de prueba, establezca la fecha de expiración en el día siguiente.

  3. En la pestaña Eventos del almacén de claves, seleccione la suscripción de Event Grid que creó.

  4. En Métricas, compruebe si se capturó un evento. Se esperan dos eventos: SecretNewVersion y SecretNearExpiry. Estos eventos validan que Event Grid capturó correctamente el cambio de estado del secreto en el almacén de claves.

    Panel Métricas: comprobación de eventos capturados

  5. Vaya a su cuenta de Automation.

  6. Seleccione la pestaña Runbooks y, a continuación, seleccione el runbook que creó.

  7. Seleccione la pestaña Webhooks y confirme que la marca de tiempo de "última activación" esté dentro de los 60 segundos posteriores a la creación del nuevo 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ó.

    Pestaña Webhooks, marca de tiempo de Última vez que se desencadenó

  8. Vuelva al runbook y seleccione la pestaña Información general .

  9. 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.

    Lista de trabajos recientes de webhook

  10. Seleccione el trabajo reciente y examine la solicitud POST que se envió desde Event Grid al webhook. Revisa el JSON y asegúrate de que los parámetros de la bóveda de claves y el tipo de evento son correctos. Si el parámetro "tipo de evento" 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 realizó correctamente.

Solución de problemas

No se puede crear una suscripción de eventos

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.

Aprende más: