Share via


Ricevere e rispondere alle notifiche di Key Vault con Griglia di eventi di Azure

L'integrazione di Azure Key Vault con Griglia di eventi di Azure consente agli utenti di ricevere notifiche quando lo stato di un segreto archiviato in un insieme di credenziali delle chiavi è cambiato. Per una panoramica di questa funzionalità, vedere Monitoraggio di Key Vault con Griglia di eventi di Azure.

Questa guida illustra come ricevere notifiche di Key Vault tramite Griglia di eventi e come rispondere alle modifiche dello stato tramite Automazione di Azure.

Prerequisiti

Concetti

Griglia di eventi è un servizio di gestione degli eventi per il cloud. Seguendo le procedure di questa guida, si sottoscriveranno eventi per Key Vault e li si indirizzeranno ad Automazione di Azure. Quando uno dei segreti nell'istanza di Key Vault sta per scadere (vale a dire 30 giorni prima della data di scadenza), Griglia di eventi riceve una notifica della modifica dello stato e invia un POST HTTP all'endpoint. Un webhook attiva quindi un'esecuzione di Automazione di Azure di uno script di PowerShell.

HTTP POST flowchart

Creare un account di Automazione

Creare un account di Automazione nel portale di Azure:

  1. Passare a portal.azure.com e accedere alla sottoscrizione.

  2. Nella casella di ricerca digitare Account di Automazione.

  3. Nella sezione Servizi dell'elenco a discesa nella barra di ricerca selezionare Account di Automazione.

  4. Selezionare Aggiungi.

    Automation accounts pane

  5. Immettere le informazioni necessarie nel riquadro Aggiungi account di Automazione e quindi selezionare Crea.

Creare un runbook

Quando l'account di Automazione è pronto, creare un runbook.

Create a runbook UI

  1. Selezionare l'account di Automazione creato.

  2. In Automazione processi selezionare Runbook.

  3. Selezionare Crea un runbook.

  4. Assegnare un nome al runbook e selezionare PowerShell come tipo di runbook.

  5. Selezionare il runbook creato e quindi selezionare il pulsante Modifica.

  6. Immettere il codice seguente (a scopo di test) e selezionare il pulsante Pubblica. Questa azione restituisce il risultato della richiesta POST ricevuta.

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

Publish runbook UI

Creare un webhook

Creare un webhook per attivare il runbook appena creato.

  1. Selezionare Webhook nella sezione Risorse del runbook pubblicato.

  2. Selezionare Aggiungi webhook.

    Add Webhook button

  3. Selezionare Crea un nuovo webhook.

  4. Assegnare un nome al webhook, impostare una data di scadenza e copiare l'URL.

    Importante

    Non è possibile visualizzare l'URL dopo averlo creato. Assicurarsi di salvarne una copia in una posizione sicura a cui sia possibile accedere per il resto di questa guida.

  5. Selezionare Parametri e impostazioni di esecuzione e scegliere OK. Non immettere parametri. Verrà abilitato il pulsante Crea.

  6. Scegliere OK, quindi Crea.

    Create new Webhook UI

Creare una sottoscrizione di Griglia di eventi

Creare una sottoscrizione di Griglia di eventi tramite il portale di Azure.

  1. Passare all'insieme di credenziali delle chiavi e selezionare la scheda Eventi.

    Events tab in Azure portal

  2. Selezionare il pulsante Sottoscrizione di eventi.

  3. Creare un nome descrittivo per la sottoscrizione.

  4. Scegliere Schema griglia di eventi.

  5. Risorsa argomento deve essere l'insieme di credenziali delle chiavi di cui si vogliono monitorare le modifiche dello stato.

  6. Per Filtra per tipi di evento lasciare tutte le opzioni selezionate (9 selezionati).

  7. Per Tipo di endpoint: selezionare Webhook.

  8. Scegliere Seleziona endpoint. Nel nuovo riquadro del contesto incollare l'URL del webhook dal passaggio Creare un webhook nel campo Endpoint sottoscrittore.

  9. Selezionare Conferma selezione nel riquadro del contesto.

  10. Seleziona Crea.

    Create event subscription

Test e verifica

Verificare che la sottoscrizione di Griglia di eventi sia configurata correttamente. Questo test presuppone che sia stata sottoscritta la notifica di "creazione di una nuova versione di un segreto" in Creare una sottoscrizione di Griglia di eventi e che si abbiano le autorizzazioni necessarie per creare una nuova versione di un segreto in un insieme di credenziali delle chiavi.

Test config of Event Grid subscription

Create-a-secret pane

  1. Passare all'insieme di credenziali delle chiavi nel portale di Azure.

  2. Creare un nuovo segreto. Ai fini del test, impostare la data di scadenza sul giorno successivo.

  3. Nella scheda Eventi dell'insieme di credenziali delle chiavi selezionare la sottoscrizione di Griglia di eventi creata.

  4. In Metriche verificare se è stato acquisito un evento. Sono previsti due eventi: SecretNewVersion e SecretNearExpiry. Questi eventi verificano che Griglia di eventi abbia acquisito correttamente la modifica dello stato del segreto nell'insieme di credenziali delle chiavi.

    Metrics pane: check for captured events

  5. Passare all'account di Automazione.

  6. Selezionare la scheda Runbook e quindi il runbook creato.

  7. Selezionare la scheda Webhook e verificare che il timestamp "Ultima attivazione" sia entro 60 secondi dalla creazione del nuovo segreto. Questo risultato conferma che Griglia di eventi ha inviato un POST al webhook con i dettagli dell'evento relativi alla modifica dello stato nell'insieme di credenziali delle chiavi e che il webhook è stato attivato.

    Webhooks tab, Last Triggered time stamp

  8. Tornare al runbook e selezionare la scheda Panoramica.

  9. Esaminare l'elenco Processi recenti. Si dovrebbe vedere che è stato creato un processo e che lo stato è Completato. Questo conferma che il webhook ha attivato il runbook per avviare l'esecuzione dello script.

    Webhook Recent Jobs list

  10. Selezionare il processo recente ed esaminare la richiesta POST inviata da Griglia di eventi al webhook. Esaminare il JSON e verificare che i parametri dell'insieme di credenziali delle chiavi e del tipo di evento siano corretti. Se il parametro del "tipo di evento" nell'oggetto JSON corrisponde all'evento che si è verificato nell'insieme di credenziali delle chiavi (in questo esempio Microsoft.KeyVault.SecretNearExpiry), il test è riuscito.

Risoluzione dei problemi

Non è possibile creare una sottoscrizione di evento

Registrare di nuovo il provider dell'insieme di credenziali delle chiavi e Griglia di eventi nei provider di risorse della sottoscrizione di Azure. Vedere Provider e tipi di risorse di Azure.

Passaggi successivi

Complimenti. Se sono stati eseguiti correttamente tutti questi passaggi, è ora possibile rispondere a livello di codice alle modifiche dello stato dei segreti archiviati nell'insieme di credenziali delle chiavi.

Se si usa un sistema basato su polling per cercare le modifiche dello stato dei segreti negli insiemi di credenziali delle chiavi, è ora possibile iniziare a usare questa funzionalità di notifica. È anche possibile sostituire lo script di test nel runbook con codice che imposti il rinnovo dei segreti a livello di programmazione quando stanno per scadere.

Altre informazioni: