Receber notificações do cofre de chaves e responder a elas com a Grade de Eventos do Azure

A integração do Azure Key Vault com a Grade de Eventos do Azure permite que o usuário seja notificado quando o status de um segredo armazenado em um cofre de chaves é alterado. Para obter uma visão geral deste recurso, confira Monitoramento do Key Vault com a Grade de Eventos.

Esse guia descreve como receber notificações de Key Vault por meio da Grade de Eventos do Azure e como responder a alterações de status pela Automação do Azure.

Pré-requisitos

Conceitos

A Grade de Eventos é um serviço de eventos para a nuvem. Ao seguir as etapas neste guia, você assinará eventos para o cofre de chaves e roteará eventos para a Automação. Quando um dos segredos no cofre de chaves está prestes a expirar (definido como 30 dias antes da data de validade), a Grade de Eventos é notificada sobre a alteração de status e faz um HTTP POST para o ponto de extremidade. Um web hook dispara então uma execução do script de um PowerShell da Automação.

Fluxograma HTTP POST

Criar uma conta de Automação

Crie uma conta da Automação por meio do portal do Azure.

  1. Acesse portal.azure.com e faça logon em sua assinatura.

  2. Na caixa de pesquisa, digite Contas de Automação.

  3. Na seção Serviços do menu suspenso da barra de pesquisa, selecione Contas de Automação.

  4. Selecione Adicionar.

    Painel de Contas de Automação

  5. Insira as informações necessárias na folha Adicionar Conta de Automação e selecione Criar.

Criar um runbook

Depois que sua conta da Automação estiver pronta, crie um runbook.

Criar uma interface do usuário de runbook

  1. Selecione a conta de Automação que você criou.

  2. Selecione Runbook, em Automação de Processo.

  3. Selecione Criar um runbook.

  4. Atribua um nome ao runbook e selecione PowerShell como o tipo do runbook.

  5. Clique no runbook que você criou e selecione o botão Editar.

  6. Insira o código a seguir (para fins de teste) e selecione o botão Publicar. Essa ação retornará o resultado da solicitação POST recebida.

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

Publicar interface do usuário do runbook

Criar um webhook

Crie um webhook para disparar o runbook recém-criado.

  1. Selecione Webhooks na seção de Recursos do runbook que você publicou.

  2. Selecione Adicionar webhook.

    Botão Adicionar webhook

  3. Selecione Criar novo Webhook.

  4. Nomeie o webhook, defina uma data de validade e copie a URL.

    Importante

    Você não pode exibir a URL depois de criá-la. Lembre-se de salvar uma cópia em uma localização segura, em que você possa acessá-la no restante deste guia.

  5. Selecione Parâmetros e configurações de execução e selecione OK. Não insira nenhum parâmetro. O botão Criar estará habilitado.

  6. Selecione OK e, então, selecione Criar.

    Interface do usuário de Criar novo Webhook

Criar uma assinatura na Grade de Eventos

Crie uma assinatura de Grade de Eventos por meio do portal do Azure.

  1. Vá para o cofre de chaves e selecione a guia Eventos.

    Guia Eventos no portal do Azure

  2. Clique no botão Assinatura de evento.

  3. Crie um nome descritivo para a assinatura.

  4. Escolha Esquema da Grade de Eventos.

  5. O Recurso de Tópico deve ser o cofre de chaves cujas alterações de status você deseja monitorar.

  6. Para Filtrar para Tipos de Evento, deixe todas as opções selecionadas (9 selecionados).

  7. Para Tipo de Ponto de Extremidade, selecione Webhook.

  8. Escolha Selecionar um ponto de extremidade. No novo painel de contexto, cole a URL do webhook da etapa Criar um webhook no campo Ponto de Extremidade do Assinante.

  9. Selecione Confirmar Seleção no painel de contexto.

  10. Selecione Criar.

    Criar assinatura de evento

Testar e verificar

Verifique se a sua assinatura da Grade de Eventos está definida adequadamente. Esse teste pressupõe que você assinou a notificação "Nova Versão Secreta Criada" em Criar uma assinatura de Grade de Eventos e que você tem as permissões necessárias para criar uma nova versão de um segredo em um cofre de chaves.

Testar a configuração da assinatura de Grade de Eventos

Painel de criar um segredo

  1. Vá para o seu cofre de chaves no portal do Azure.

  2. Crie um novo segredo. Para fins de teste, defina a data de vencimento como o dia seguinte.

  3. Na guia Eventos no cofre de chaves, selecione a assinatura da grade de eventos que você criou.

  4. Em Métricas, confira se um evento foi capturado. Dois eventos são esperados: SecretNewVersion e SecretNearExpiry. Esses eventos validam que a Grade de Eventos capturou com êxito a alteração de status do segredo em seu cofre de chaves.

    Painel de métricas: verificar eventos capturados

  5. Vá para sua conta de Automação.

  6. Selecione a guia Runbooks e selecione o runbook que você criou.

  7. Selecione a guia Webhooks e confirme se o carimbo de data/hora "disparado pela última vez" está dentro de 60 segundos de quando você criou o novo segredo. Esse resultado confirma que a Grade de Eventos fez um POST no webhook com os detalhes do evento da alteração de status no cofre de chaves e que o webhook foi disparado.

    Guia WebHooks, carimbo de data/hora do último disparo

  8. Retorne ao seu runbook e selecione a guia Visão geral.

  9. Examine a lista Trabalhos Recentes. Você deverá ver que um trabalho foi criado e que o status dele é concluído. Isso confirma que o webhook disparou o runbook para iniciar a execução do respectivo script.

    Lista Trabalhos Recentes de Webhook

  10. Selecione o trabalho recente e examine a solicitação POST enviada da Grade de Eventos para o webhook. Examine o JSON e verifique se os parâmetros para o cofre de chaves e o tipo de evento estão corretos. Se o parâmetro "tipo de evento" no objeto JSON corresponder ao evento que ocorreu no Key Vault (neste exemplo, Microsoft.KeyVault.SecretNearExpiry), o teste foi bem-sucedido.

Solução de problemas

Não é possível iniciar uma assinatura de evento.

Registre novamente a Grade de Eventos e o provedor do Key Vault em seus provedores de recursos de assinatura do Azure. Consulte Provedores e tipos de recursos do Azure.

Próximas etapas

Parabéns! Se você seguiu corretamente todas as etapas, agora você está pronto para responder programaticamente às alterações de status dos segredos armazenados no seu cofre de chaves.

Você pode usar agora esse recurso de notificação caso você esteja usando um sistema baseado em sondagem para pesquisar alterações de status nos segredos em seus Key Vaults. Você também poderá substituir o script de teste em seu runbook por código para renovar programaticamente seus segredos quando eles estiverem prestes a expirar.

Saiba mais: