Esercitazione sull'integrazione dei log di Azure: elaborazione degli eventi di Azure Key Vault tramite Hub eventiAzure Log Integration tutorial: Process Azure Key Vault events by using Event Hubs

È possibili usare l'integrazione dei log di Azure per recuperare gli eventi registrati e renderli disponibili per il sistema di gestione delle informazioni e degli eventi di sicurezza (SIEM).You can use Azure Log Integration to retrieve logged events and make them available to your security information and event management (SIEM) system. Questa esercitazione illustra un esempio di come usare l'integrazione dei log di Azure per elaborare i log acquisiti tramite Hub eventi di Azure.This tutorial shows an example of how Azure Log Integration can be used to process logs that are acquired through Azure Event Hubs.

Usare questa esercitazione per acquisire familiarità con l'interazione tra l'integrazione dei log di Azure e Hub eventi seguendo la procedura di esempio e comprendendo in che modo ogni passaggio supporta la soluzione.Use this tutorial to get acquainted with how Azure Log Integration and Event Hubs work together by following the example steps and understanding how each step supports the solution. È quindi possibile applicare quanto appreso qui per creare i passaggi personalizzati per supportare i requisiti specifici della propria azienda.Then you can take what you’ve learned here to create your own steps to support your company’s unique requirements.

Avviso

Non copiare o incollare i passaggi e i comandi in questa esercitazione.The steps and commands in this tutorial are not intended to be copied and pasted. Si tratta solo di esempi.They're examples only. Non usare i comandi di PowerShell "così come sono" nell'ambiente live,Do not use the PowerShell commands “as is” in your live environment. in quanto devono essere personalizzati in base all'ambiente univoco.You must customize them based on your unique environment.

Questa esercitazione illustra il processo per estrarre l'attività di Azure Key Vault registrata in un hub eventi e renderla disponibile come file JSON nel sistema SIEM.This tutorial walks you through the process of taking Azure Key Vault activity logged to an event hub and making it available as JSON files to your SIEM system. È quindi possibile configurare il sistema SIEM per elaborare i file JSON.You can then configure your SIEM system to process the JSON files.

Nota

La maggior parte dei passaggi in questa esercitazione implica la configurazione dell'insieme di credenziali delle chiavi, degli account di archiviazione e degli hub eventi.Most of the steps in this tutorial involve configuring key vaults, storage accounts, and event hubs. La procedura di integrazione dei log di Azure specifica si trova alla fine di questa esercitazione.The specific Azure Log Integration steps are at the end of this tutorial. Non eseguire questi passaggi in un ambiente di produzione.Do not perform these steps in a production environment. Sono concepiti solo per un ambiente lab.They are intended for a lab environment only. È necessario personalizzare la procedura prima di usarla nell'ambiente di produzione.You must customize the steps before using them in production.

Le informazioni offerte consentono di comprendere i motivi di ogni passaggio.Information provided along the way helps you understand the reasons behind each step. I collegamenti ad altri articoli offrono maggiori dettagli su determinati argomenti.Links to other articles give you more detail on certain topics.

Per altre informazioni sui servizi citati in questa esercitazione, vedere:For more information about the services that this tutorial mentions, see:

Configurazione inizialeInitial setup

Per poter completare la procedura descritta in questo articolo, è necessario quanto segue:Before you can complete the steps in this article, you need the following:

  1. Una sottoscrizione di Azure e l'account per tale sottoscrizione con diritti di amministratore.An Azure subscription and account on that subscription with administrator rights. Se non si ha una sottoscrizione, è possibile creare un account gratuito.If you don't have a subscription, you can create a free account.

  2. Un sistema con accesso a Internet che soddisfi i requisiti per l'installazione del servizio di integrazione dei log di Azure.A system with access to the internet that meets the requirements for installing Azure Log Integration. Il sistema può trovarsi su un servizio cloud o essere ospitato in locale.The system can be on a cloud service or hosted on-premises.

  3. Integrazione dei log di Azure installato.Azure Log Integration installed. Per l'installazione:To install it:

    a.a. Usare il desktop remoto per connettersi al sistema citato nel passaggio 2.Use Remote Desktop to connect to the system mentioned in step 2.
    b.b. Copiarvi il programma di installazione di Integrazione dei Log di Azure nel sistema.Copy the Azure Log Integration installer to the system. È possibile scaricare i file di installazione.You can download the installation files.
    c.c. Avviare il programma di installazione e accettare le Condizioni di licenza software Microsoft.Start the installer and accept the Microsoft Software License Terms.
    d.d. Se si intende inserire informazioni di telemetria, lasciare selezionata la casella di controllo.If you will provide telemetry information, leave the check box selected. Se invece si preferisce non inviare le informazioni sull'uso a Microsoft, deselezionare la casella di controllo.If you'd rather not send usage information to Microsoft, clear the check box.

    Per altre informazioni sul servizio di integrazione dei log di Azure e su come installarlo, vedere Integrazione dei log di Azure con la registrazione di Diagnostica di Azure e l'inoltro di eventi di Windows.For more information about Azure Log Integration and how to install it, see Azure Log Integration with Azure Diagnostics logging and Windows Event Forwarding.

  4. Versione più recente di PowerShell.The latest PowerShell version.

    Se è installato Windows Server 2016 e la versione disponibile di PowerShell è almeno la versione 5.0.If you have Windows Server 2016 installed, then you have at least PowerShell 5.0. Se si usa qualsiasi altra versione di Windows Server, l'utente potrebbe aver installato una versione precedente di PowerShell.If you're using any other version of Windows Server, you might have an earlier version of PowerShell installed. È possibile controllare la versione immettendo get-host in una finestra di PowerShell.You can check the version by entering get-host in a PowerShell window. Se PowerShell 5.0 non è installato, è possibile scaricarlo.If you don't have PowerShell 5.0 installed, you can download it.

    Dopo aver installato almeno la versione di PowerShell 5.0, è possibile procedere con l'installazione della versione più recente:After you have at least PowerShell 5.0, you can proceed to install the latest version:

    a.a. In una finestra di PowerShell immettere il comando Install-Module Azure.In a PowerShell window, enter the Install-Module Azure command. Completare la procedura d'installazione.Complete the installation steps.
    b.b. Immettere il comando Install-Module AzureRM.Enter the Install-Module AzureRM command. Completare la procedura d'installazione.Complete the installation steps.

    Per altre informazioni, vedere Installare Azure PowerShell.For more information, see Install Azure PowerShell.

Creare elementi dell'infrastruttura di supportoCreate supporting infrastructure elements

  1. Aprire una finestra di PowerShell con privilegi elevati e passare a C:\Programmi\Integrazione log di Microsoft Azure.Open an elevated PowerShell window and go to C:\Program Files\Microsoft Azure Log Integration.
  2. Importare i cmdlet AzLog eseguendo lo script LoadAzLogModule.ps1.Import the AzLog cmdlets by running the script LoadAzLogModule.ps1. Immettere il comando .\LoadAzLogModule.ps1.Enter the .\LoadAzLogModule.ps1 command. Si noti l'uso di "." in questo comando. Verrà visualizzata una schermata analoga alla seguente:(Notice the “.\” in that command.) You should see something like this:

    Elenco dei moduli caricati

  3. Immettere il comando Login-AzureRmAccount.Enter the Login-AzureRmAccount command. Nella finestra di accesso inserire le informazioni sulle credenziali per la sottoscrizione che verrà usata per questa esercitazione.In the login window, enter the credential information for the subscription that you will use for this tutorial.

    Nota

    Se questa è la prima volta che si accede ad Azure da questo computer, allora si visualizzerà un messaggio su come consentire a Microsoft di raccogliere dati sull'uso di PowerShell.If this is the first time that you're logging in to Azure from this machine, you will see a message about allowing Microsoft to collect PowerShell usage data. È consigliabile abilitare la raccolta dati perché verrà usata per migliorare Azure PowerShell.We recommend that you enable this data collection because it will be used to improve Azure PowerShell.

  4. Con la corretta autenticazione si accede e vengono visualizzate le informazioni nella schermata seguente.After successful authentication, you're logged in and you see the information in the following screenshot. Annotare l'ID e il nome della sottoscrizione, necessari per completare i passaggi successivi.Take note of the subscription ID and subscription name, because you'll need them to complete later steps.

    Finestra di PowerShell

  5. Creare variabili per archiviare i valori che verranno usati successivamente.Create variables to store values that will be used later. Immettere ognuna delle seguenti righe di PowerShell.Enter each of the following PowerShell lines. Potrebbe essere necessario regolare i valori per adattarli all'ambiente.You might need to adjust the values to match your environment.
    • $subscriptionName = ‘Visual Studio Ultimate with MSDN’ Il nome della sottoscrizione potrebbe essere diverso.$subscriptionName = ‘Visual Studio Ultimate with MSDN’ (Your subscription name might be different. È possibile visualizzarlo come parte dell'output del comando precedente.You can see it as part of the output of the previous command.)
    • $location = 'West US' (Verrà usata questa variabile per passare la posizione in cui si devono creare le risorse.$location = 'West US' (This variable will be used to pass the location where resources should be created. È possibile modificare questa variabile con qualsiasi località di propria scelta.You can change this variable to be any location of your choosing.)
    • $random = Get-Random
    • $name = 'azlogtest' + $random Si può indicare qualsiasi nome, ma deve contenere solo numeri e lettere minuscole.$name = 'azlogtest' + $random (The name can be anything, but it should include only lowercase letters and numbers.)
    • $storageName = $name Questa variabile verrà usata per il nome dell'account di archiviazione.$storageName = $name (This variable will be used for the storage account name.)
    • $rgname = $name Questa variabile verrà usata per il nome del gruppo di risorse.$rgname = $name (This variable will be used for the resource group name.)
    • $eventHubNameSpaceName = $name Nome dello spazio dei nomi dell'hub eventi.$eventHubNameSpaceName = $name (This is the name of the event hub namespace.)
  6. Specificare la sottoscrizione che si userà:Specify the subscription that you will be working with:

    Select-AzureRmSubscription -SubscriptionName $subscriptionName

  7. Creare un gruppo di risorse:Create a resource group:

    $rg = New-AzureRmResourceGroup -Name $rgname -Location $location

    Se si immette $rg a questo punto, verrà visualizzato un output simile a quello della schermata di seguito:If you enter $rg at this point, you should see output similar to this screenshot:

    Output dopo la creazione di un gruppo di risorse

  8. Creare un account di archiviazione che verrà usato per tenere traccia delle informazioni sullo stato:Create a storage account that will be used to keep track of state information:

    $storage = New-AzureRmStorageAccount -ResourceGroupName $rgname -Name $storagename -Location $location -SkuName Standard_LRS

  9. Creare lo spazio dei nomi dell'hub eventiCreate the event hub namespace. necessario per creare un hub eventi.This is required to create an event hub.

    $eventHubNameSpace = New-AzureRmEventHubNamespace -ResourceGroupName $rgname -NamespaceName $eventHubnamespaceName -Location $location

  10. Ottenere l'ID della regola che verrà usato con il provider di informazioni:Get the rule ID that will be used with the insights provider:

    $sbruleid = $eventHubNameSpace.Id +'/authorizationrules/RootManageSharedAccessKey'

  11. Ottenere tutte le possibili posizioni di Azure e aggiungere i nomi a una variabile che può essere usata in un passaggio successivo:Get all possible Azure locations and add the names to a variable that can be used in a later step:

    a.a. $locationObjects = Get-AzureRMLocation
    b.b. $locations = @('global') + $locationobjects.location

    A questo punto, se si immette $locations, verranno visualizzati i nomi delle località senza le informazioni aggiuntive restituite da Get-AzureRmLocation.If you enter $locations at this point, you see the location names without the additional information returned by Get-AzureRmLocation.

  12. Creare un profilo di log di Azure Resource Manager:Create an Azure Resource Manager log profile:

    Add-AzureRmLogProfile -Name $name -ServiceBusRuleId $sbruleid -Locations $locations

    Per altre informazioni sui profili log di Azure, vedere Panoramica del log attività di Azure.For more information about the Azure log profile, see Overview of the Azure Activity Log.

Nota

È possibile ricevere un messaggio di errore quando si tenta di creare un profilo di log.You might get an error message when you try to create a log profile. È possibile consultare quindi la documentazione relativa a Get-AzureRmLogProfile e Remove-AzureRmLogProfile.You can then review the documentation for Get-AzureRmLogProfile and Remove-AzureRmLogProfile. Se si esegue Get-AzureRmLogProfile verranno visualizzate le informazioni sul profilo di log.If you run Get-AzureRmLogProfile, you see information about the log profile. È possibile eliminare il profilo di log esistente immettendo il comando Remove-AzureRmLogProfile -name 'Log Profile Name'.You can delete the existing log profile by entering the Remove-AzureRmLogProfile -name 'Log Profile Name' command.

Errore del profilo di Resource Manager

Creare un insieme di credenziali delle chiaviCreate a key vault

  1. Creare l'insieme di credenziali delle chiavi:Create the key vault:

    $kv = New-AzureRmKeyVault -VaultName $name -ResourceGroupName $rgname -Location $location

  2. Configurare la registrazione per l'insieme di credenziali delle chiavi:Configure logging for the key vault:

    Set-AzureRmDiagnosticSetting -ResourceId $kv.ResourceId -ServiceBusRuleId $sbruleid -Enabled $true

Generare l'attività di logGenerate log activity

Le richieste devono essere inviate a Key Vault per generare l'attività dei log.Requests need to be sent to Key Vault to generate log activity. Azioni quali la generazione di chiavi, l'archiviazione di segreti o la lettura di segreti da Key Vault creeranno le voci dei log.Actions like key generation, storing secrets, or reading secrets from Key Vault will create log entries.

  1. Visualizzare le chiavi di archiviazione corrente:Display the current storage keys:

    Get-AzureRmStorageAccountKey -Name $storagename -ResourceGroupName $rgname | ft -a

  2. Generare un nuovo key2:Generate a new key2:

    New-AzureRmStorageAccountKey -Name $storagename -ResourceGroupName $rgname -KeyName key2

  3. Visualizzare nuovamente le chiavi e vedere che key2 contiene un valore diverso:Display the keys again and see that key2 holds a different value:

    Get-AzureRmStorageAccountKey -Name $storagename -ResourceGroupName $rgname | ft -a

  4. Impostare e leggere un segreto per generare voci di log aggiuntive:Set and read a secret to generate additional log entries:

    a.a. Set-AzureKeyVaultSecret -VaultName $name -Name TestSecret -SecretValue (ConvertTo-SecureString -String 'Hi There!' -AsPlainText -Force) b.Set-AzureKeyVaultSecret -VaultName $name -Name TestSecret -SecretValue (ConvertTo-SecureString -String 'Hi There!' -AsPlainText -Force) b. (Get-AzureKeyVaultSecret -VaultName $name -Name TestSecret).SecretValueText

    Segreto restituito

Configurare Integrazione dei log di AzureConfigure Azure Log Integration

Dopo aver configurato tutti gli elementi necessari per la registrazione di Key Vault in un hub eventi, è necessario configurare Integrazione dei log di Azure:Now that you have configured all the required elements to have Key Vault logging to an event hub, you need to configure Azure Log Integration:

  1. $storage = Get-AzureRmStorageAccount -ResourceGroupName $rgname -Name $storagename
  2. $eventHubKey = Get-AzureRmEventHubNamespaceKey -ResourceGroupName $rgname -NamespaceName $eventHubNamespace.name -AuthorizationRuleName RootManageSharedAccessKey
  3. $storagekeys = Get-AzureRmStorageAccountKey -ResourceGroupName $rgname -Name $storagename
  4. $storagekey = $storagekeys[0].Value

Eseguire il comando AzLog per ogni hub eventi:Run the AzLog command for each event hub:

  1. $eventhubs = Get-AzureRmEventHub -ResourceGroupName $rgname -NamespaceName $eventHubNamespaceName
  2. $eventhubs.Name | %{Add-AzLogEventSource -Name $sub' - '$_ -StorageAccount $storage.StorageAccountName -StorageKey $storageKey -EventHubConnectionString $eventHubKey.PrimaryConnectionString -EventHubName $_}

Dopo circa un minuto di esecuzione degli ultimi comandi, verranno visualizzati i file JSON generati.After a minute or so of running the last two commands, you should see JSON files being generated. È possibile verificarlo monitorando la directory C:\Utenti\AzLog\EventHubJson.You can confirm that by monitoring the directory C:\users\AzLog\EventHubJson.

Passaggi successiviNext steps