Habilitar logs do Key Vault

Depois de criar um ou mais cofres de chaves, provavelmente você desejará monitorar como e quando os cofres de chaves serão acessados e por quem. Para obter detalhes completos sobre o recurso, confira Registro em log do Azure Key Vault.

O que é registrado em log:

  • Todas as solicitações à API REST autenticadas, incluindo solicitações que falharam devido a permissões de acesso, erros do sistema ou solicitações inválidas.
  • As operações do próprio cofre de chaves, incluindo a criação, a exclusão, a configuração de políticas de acesso ao cofre de chaves e a atualização dos atributos do cofre de chaves, como as marcas.
  • Operações em chaves e segredos no cofre de chaves, incluindo:
    • A criação, modificação ou exclusão dessas chaves ou segredos.
    • A assinatura, verificação, criptografia, descriptografia, encapsulamento e desencapsulamento de chaves, obtenção de segredos e listagem de chaves e segredos (e suas versões).
  • Solicitações não autenticadas que resultam em uma resposta 401. Por exemplo, solicitações que não têm um token de portador, estão malformadas ou expiradas ou têm um token inválido.
  • Eventos de notificação da Grade de Eventos do Azure para as seguintes condições: expirado, expiração próxima e política de acesso do cofre alterada (o novo evento de versão não é registrado). Os eventos são registrados mesmo se houver uma assinatura de evento criada no cofre de chaves. Para saber mais, confira Azure Key Vault como fonte da Grade de Eventos.

Pré-requisitos

Para concluir este tutorial, você precisará de um cofre de chaves do Azure. Você pode criar um novo cofre de chaves usando um destes métodos:

Você também precisará de um destino para os logs. O destino pode ser uma conta de armazenamento existente ou nova do Azure e/ou um workspace do Log Analytics.

Você pode criar uma nova conta de armazenamento do Azure usando um destes métodos:

Você pode criar um workspace do Log Analytics usando um destes métodos:

Conectar-se à assinatura do Key Vault

A primeira etapa para configurar um registro em log de chaves será conectar-se à assinatura que contém o cofre de chaves, se você tiver várias assinaturas associadas à sua conta.

Com a CLI do Azure, você pode exibir todas as assinaturas usando o comando az account list. Em seguida, você se conecta a uma usando o comando az account set:

az account list

az account set --subscription "<subscriptionID>"

Com o Azure PowerShell, você pode primeiro listar as assinaturas usando o cmdlet Get-AzSubscription. Em seguida, você se conecta a uma usando o cmdlet Set-AzContext:

Get-AzSubscription

Set-AzContext -SubscriptionId "<subscriptionID>"

Obter IDs de recurso

Para habilitar o registro em log em um cofre de chaves, você precisará da ID do recurso do cofre de chaves, bem como do destino (conta do Armazenamento do Azure ou do Log Analytics).

Se você não consegue lembrar o nome do seu cofre de chaves, poderá usar o comando az keyvault list da CLI do Azure, ou o cmdlet Get-AzKeyVault do Azure PowerShell para localizá-lo.

Use o nome do cofre de chaves para localizar a ID do recurso. Com a CLI do Azure, use o comando az keyvault show.

az keyvault show --name "<your-unique-keyvault-name>"

Com o Azure PowerShell, use o cmdlet Get-AzKeyVault.

Get-AzKeyVault -VaultName "<your-unique-keyvault-name>"

A ID do recurso para o seu cofre de chaves está no seguinte formato: "/subscriptions/your-subscription-ID/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/your-unique-keyvault-name. Observe isso na próxima etapa.

Habilitar o registro em log

Você pode habilitar o registro em log para Key Vault usando a CLI do Azure, o Azure PowerShell ou o portal do Azure.

CLI do Azure

Use o comando az monitor diagnostic-settings az monitor diagnostic-settings create da CLI do Azure, a ID da conta de armazenamento e a ID do recurso do cofre de chaves, da seguinte maneira:

az monitor diagnostic-settings create --storage-account "<storage-account-id>" --resource "<key-vault-resource-id>" --name "Key vault logs" --logs '[{"category": "AuditEvent","enabled": true}]' --metrics '[{"category": "AllMetrics","enabled": true}]'

Opcionalmente, você pode definir uma política de retenção para seus logs, para que os logs mais antigos sejam excluídos automaticamente após um período especificado. Por exemplo, você pode definir uma política de retenção que exclui automaticamente os logs com mais de 90 dias.

Com a CLI do Azure, use o comando az monitor diagnostic-settings update.

az monitor diagnostic-settings update --name "Key vault retention policy" --resource "<key-vault-resource-id>" --set retentionPolicy.days=90

Acessar seus logs

Os logs do Key Vault são armazenados no contêiner insights-logs-auditevent na conta de armazenamento fornecida. Para exibir os logs, você precisa baixar blobs.

Primeiro, liste todos os blobs no contêiner. Com a CLI do Azure, use o comando az storage blob list.

az storage blob list --account-name "<your-unique-storage-account-name>" --container-name "insights-logs-auditevent"

Com o Azure PowerShell, use Get-AzStorageBlob. Para listar todos os blobs nesse contêiner, insira:

Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context

A partir da saída do comando da CLI do Azure ou do cmdlet do Azure PowerShell, você pode ver que os nomes dos blobs estão no seguinte formato: resourceId=<ARM resource ID>/y=<year>/m=<month>/d=<day of month>/h=<hour>/m=<minute>/filename.json. Os valores de data e hora usam o Tempo Universal Coordenado.

Como a mesma conta de armazenamento pode ser usada para coletar logs de vários recursos, a ID do recurso completa no nome do blob será muito útil para acessar ou baixar apenas os blobs que você precisa.

Mas primeiro, baixe todos os blobs. Com a CLI do Azure, use o comando az storage blob download, passe os nomes dos blobs e o caminho para o arquivo onde deseja salvar os resultados.

az storage blob download --container-name "insights-logs-auditevent" --file <path-to-file> --name "<blob-name>" --account-name "<your-unique-storage-account-name>"

Com o Azure PowerShell, use o cmdlet Get-AzStorageBlob para obter uma lista dos blobs. Em seguida, canalize essa lista para o cmdlet Get-AzStorageBlobContent para baixar os logs para o caminho escolhido.

$blobs = Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context | Get-AzStorageBlobContent -Destination "<path-to-file>"

Quando você executa este segundo cmdlet no PowerShell, o delimitador / nos nomes de blob cria uma estrutura de pasta completa na pasta de destino. Você usará essa estrutura para baixar e armazenar os blobs como arquivos.

Use caracteres curinga para baixar seletivamente os blobs. Por exemplo:

  • Se você tiver vários cofres da chave e quiser baixar logs de apenas um cofre da chave, chamado CONTOSOKEYVAULT3:

    Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context -Blob '*/VAULTS/CONTOSOKEYVAULT3
    
  • Se você tiver vários grupos de recursos e quiser baixar os logs para apenas um grupo de recursos, use -Blob '*/RESOURCEGROUPS/<resource group name>/*':

    Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context -Blob '*/RESOURCEGROUPS/CONTOSORESOURCEGROUP3/*'
    
  • Se você quiser baixar todos os logs do mês de janeiro de 2019, use -Blob '*/year=2019/m=01/*':

    Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context -Blob '*/year=2016/m=01/*'
    

Usar os logs do Azure Monitor

É possível usar a solução do Key Vault nos logs do Azure Monitor para examinar os logs AuditEvent do Key Vault. Nos logs do Azure Monitor, você usa consultas de log para analisar dados e obter as informações necessárias. Para saber mais, confira Monitoramento Key Vault.

Próximas etapas

  • Para obter informações conceituais, incluindo como interpretar os registros do Key Vault, confira Log do Key Vault.
  • Para saber mais sobre como usar Azure Monitor no Key Vault, consulte Monitoramento Key Vault.