Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure Cloud HSM supporta la registrazione delle operazioni HSM tramite le impostazioni di diagnostica di Monitoraggio di Azure. La categoria di log HsmOperations contiene record a prova di manomissione generati dal firmware del modulo di protezione hardware per le operazioni di gestione eseguite sulle partizioni del modulo di protezione hardware. Inviare questi record sia a un account di archiviazione sia a un'area di lavoro Log Analytics per raccolte, analisi, monitoraggio e conservazione centralizzate.
La registrazione delle operazioni HSM è la strategia di registrazione consigliata per la sicurezza e la conformità. Registra operazioni di gestione, ad esempio accessi, gestione degli utenti, creazione ed eliminazione delle chiavi, importazione ed esportazione delle chiavi e backup e ripristino. I log vengono recuperati da ogni partizione del modulo di protezione hardware in batch e ogni batch viene firmato dal modulo di protezione hardware usando la chiave del certificato di partizione. Tutti i record di un batch condividono lo stesso CorrelationId I record esportati includono anche la firma corrispondente per il batch firmato e i certificati pubblici HSM, che possono essere usati per verificare l'integrità e l'autenticità dell'audit trail.
Azure Cloud HSM fornisce anche la HsmServiceOperations categoria di registrazione eventi. Questi log delle operazioni del servizio descrivono le richieste osservate dal servizio HSM cloud e possono integrare i log delle operazioni del modulo di protezione hardware per la risoluzione dei problemi. È possibile abilitare entrambe le categorie nella stessa impostazione di diagnostica, ma usare HsmOperations come origine primaria per le operazioni di controllo registrate dal modulo di protezione hardware.
In questa esercitazione, imparerai a:
- Impostare e configurare i log delle operazioni del modulo di protezione hardware, inclusa la creazione di un account di archiviazione e un'area di lavoro di analisi dei log.
- Facoltativamente, abilitare i log delle operazioni del servizio insieme ai log delle operazioni del modulo di protezione hardware.
- Eseguire query sui log delle operazioni HSM per recuperare operazioni di gestione specifiche.
- Ottenere un elenco completo dei comandi di gestione registrati dai log delle operazioni del modulo di protezione hardware.
Importante
Le impostazioni di diagnostica controllano dove vengono esportati i log.
Limitare l'accesso all'account di archiviazione di destinazione e all'area di lavoro Log Analytics. I record delle operazioni HSM possono includere identificatori operativi, ad esempio ID utente, handle di sessione, handle di chiave e dettagli specifici dell'operazione.
Prerequisites
- Un account Azure con una sottoscrizione attiva. È possibile creare un account gratuitamente.
- Una risorsa Azure Cloud HSM distribuita correttamente. Per informazioni, vedere la guida per l'integrazione Azure Cloud HSM.
Impostare e configurare i log delle operazioni del modulo di protezione hardware
Usare i comandi nelle sezioni seguenti per configurare le risorse da monitorare.
Creare un account di archiviazione per archiviare i log delle operazioni del modulo di protezione hardware
Per conservare i log delle operazioni HSM in un account di archiviazione, creare prima un gruppo di risorse e quindi creare l'account di archiviazione in tale gruppo di risorse.
- interfaccia della riga di comando di Azure
- Azure PowerShell
az group create --name "<resource-group>" --location "<location>"
az storage account create \
--name "<storage-account-name>" \
--resource-group "<resource-group>" \
--location "<location>" \
--sku Standard_LRS \
--kind StorageV2
Creare un'area di lavoro Log Analytics
Per creare un'area di lavoro Log Analytics per l'archiviazione e l'analisi dei log delle operazioni HSM, usare il comando seguente.
- interfaccia della riga di comando di Azure
- Azure PowerShell
az monitor log-analytics workspace create \
--resource-group "<resource-group>" \
--workspace-name "<workspace-name>" \
--location "<location>" \
--retention-time "<NumOfDays>"
Note
Il tempo di conservazione dell'area di lavoro supportato Log Analytics deve essere di almeno 30 giorni.
Per altre informazioni sulla creazione di un'area di lavoro Log Analytics per Monitoraggio di Azure, vedere Creare un'area di lavoro Log Analytics.
Abilitare le impostazioni di diagnostica
Per esportare i log delle operazioni di Azure Cloud HSM, creare un'impostazione di diagnostica con la categoria HsmOperations abilitata. Gli esempi seguenti inviano i log a un account di archiviazione e a un'area di lavoro Log Analytics.
- interfaccia della riga di comando di Azure
- Azure PowerShell
resourceId="/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.HardwareSecurityModules/cloudHsmClusters/<hsm-name>"
storageAccountId="/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>"
workspaceId="/subscriptions/<subscription-id>/resourcegroups/<resource-group>/providers/microsoft.operationalinsights/workspaces/<workspace-name>"
az monitor diagnostic-settings create \
--resource $resourceId \
--name "my-chsmAuditLogs" \
--storage-account $storageAccountId \
--workspace $workspaceId \
--export-to-resource-specific true \
--logs '[{"category":"HsmOperations","enabled":true}]'
Per raccogliere anche i log delle operazioni del servizio per la risoluzione dei problemi, abilitare HsmServiceOperations insieme a HsmOperations.
- interfaccia della riga di comando di Azure
- Azure PowerShell
az monitor diagnostic-settings create \
--resource $resourceId \
--name "my-chsmAuditLogs" \
--storage-account $storageAccountId \
--workspace $workspaceId \
--export-to-resource-specific true \
--logs '[{"category":"HsmOperations","enabled":true},{"category":"HsmServiceOperations","enabled":true}]'
Verificare l'impostazione di diagnostica
Elencare le impostazioni di diagnostica per la risorsa Cloud HSM e verificare che l'impostazione includa l'account di archiviazione, l'area di lavoro Log Analytics, Dedicated il tipo di destinazione e la categoria HsmOperations abilitata. Se sono stati abilitati i log delle operazioni del servizio, verificare anche che HsmServiceOperations sia abilitato.
- interfaccia della riga di comando di Azure
- Azure PowerShell
resourceId="/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.HardwareSecurityModules/cloudHsmClusters/<hsm-name>"
az monitor diagnostic-settings list \
--resource $resourceId \
--output json
Verificare la configurazione della registrazione delle operazioni di Cloud HSM
Dopo aver creato l'impostazione di diagnostica ed eseguito un'operazione di gestione supportata, consentire al modulo di protezione hardware di pubblicare il batch di controllo firmato e a Monitoraggio di Azure di acquisirlo.
Note
Dopo aver creato un'impostazione di diagnostica, i log vengono comunemente visualizzati in Log Analytics entro alcuni minuti. L'inserimento dei log delle risorse di Azure può richiedere circa 20 minuti in condizioni normali e l'attivazione iniziale di una nuova impostazione di diagnostica può richiedere occasionalmente fino a 90 minuti. Le impostazioni di diagnostica non compilano retroattivamente i log generati prima della creazione dell'impostazione.
È possibile eseguire query sui log delle operazioni di Cloud HSM dal portale di Azure tramite l'area di lavoro Log Analytics. I record delle operazioni HSM vengono archiviati nella CloudHsmHardwareOperationAuditLogs tabella. Se è stato abilitato HsmServiceOperationsanche , tali record vengono archiviati separatamente nella CloudHsmServiceOperationAuditLogs tabella.
È anche possibile eseguire query sui registri eventi delle operazioni del modulo di protezione hardware cloud usando il interfaccia della riga di comando di Azure o Azure PowerShell.
- interfaccia della riga di comando di Azure
- Azure PowerShell
workspaceCustomerId=$(az monitor log-analytics workspace show \
--resource-group "<resource-group>" \
--workspace-name "<workspace-name>" \
--query customerId --output tsv)
az monitor log-analytics query \
--workspace $workspaceCustomerId \
--analytics-query 'CloudHsmHardwareOperationAuditLogs'
Errore di registrazione
Se viene visualizzato il messaggio di errore "<subscription> non è registrato per l'uso di microsoft.insights", la sottoscrizione Azure non è registrata per l'uso del Microsoft.Insights provider di risorse. Per risolvere questo problema, registra il provider Microsoft.Insights nella tua sottoscrizione.
- interfaccia della riga di comando di Azure
- Azure PowerShell
az provider register --namespace Microsoft.Insights
az provider show --namespace Microsoft.Insights --query "registrationState" --output table
Dopo aver eseguito il comando, assicurarsi che il provider di risorse sia registrato. Se è ancora in fase di registrazione, può essere necessario attendere alcuni istanti e riprovare.
Eseguire query sui log delle operazioni di HSM
Eseguire le query seguenti nell'editor dei log di Log Analytics nel portale di Azure. Per eseguirli dalla riga di comando, sostituire il testo della query nel parametro interfaccia della riga di comando di Azure --analytics-query o il parametro Azure PowerShell -Query illustrato negli esempi di verifica precedenti.
Usare le query seguenti per recuperare le operazioni di gestione del modulo di protezione hardware da CloudHsmHardwareOperationAuditLogs. Per elencare tutti i record delle operazioni di gestione, eseguire:
CloudHsmHardwareOperationAuditLogs
| where OperationName startswith "CN_"
La tabella può anche contenere record di batch firmati e di certificati i cui nomi di operazione iniziano con BATCH_. Per informazioni dettagliate sui record batch e sulle operazioni di gestione che possono comparire, vedere il glossario delle operazioni.
Eventi di accesso e sessione
// Find login and session events.
CloudHsmHardwareOperationAuditLogs
| where OperationName in (
"CN_LOGIN",
"CN_LOGOUT",
"CN_CLOSE_SESSION",
"CN_CLOSE_ALL_SESSIONS",
"CN_CLOSE_PARTITION_SESSIONS"
)
| project TimeGenerated, OperationName, ResultType, UserID, SessionHandle, HsmInstance, SequenceNumber
Eventi per la creazione e l'eliminazione di utenti
// Find user creation and deletion events.
CloudHsmHardwareOperationAuditLogs
| where OperationName in (
"CN_CREATE_USER",
"CN_CREATE_CO",
"CN_CREATE_APPLIANCE_USER",
"CN_CREATE_PRE_OFFICER",
"CN_DELETE_USER"
)
| project TimeGenerated, OperationName, ResultType, UserID, HsmInstance, SequenceNumber, AdditionalInfo
Eventi per la creazione di chiavi
// Find key creation events.
CloudHsmHardwareOperationAuditLogs
| where OperationName in (
"CN_GENERATE_KEY",
"CN_GENERATE_KEY_PAIR",
"CN_GENERATE_PBE_KEY",
"CN_GEN_KEY_ENC_KEY",
"CN_GEN_PSWD_ENC_KEY",
"CN_DERIVE_KEY"
)
| project TimeGenerated, OperationName, ResultType, UserID, HsmInstance, SequenceNumber, AdditionalInfo
Eventi per l'eliminazione della chiave
// Find key deletion events.
CloudHsmHardwareOperationAuditLogs
| where OperationName in (
"CN_DESTROY_OBJECT",
"CN_TOMBSTONE_OBJECT",
"CN_DELETE_TOMBSTONED_OBJECT"
)
| project TimeGenerated, OperationName, ResultType, UserID, HsmInstance, SequenceNumber, AdditionalInfo
Glossario delle operazioni
La registrazione delle operazioni HSM registra i record batch e i comandi di gestione del modulo di protezione hardware seguenti. Le query e le operazioni di sola lettura non elencate di seguito non vengono acquisite in HsmOperations.
Gestione delle sessioni
| Nome dell'operazione | Description |
|---|---|
CN_LOGIN |
Consente l'accesso di un utente a una partizione. |
CN_LOGOUT |
Disconnette un utente da una partizione. |
CN_CLOSE_SESSION |
Chiude una sessione specifica. |
CN_CLOSE_ALL_SESSIONS |
Chiude tutte le sessioni su una partizione. |
CN_APP_FINALIZE |
Finalizza una sessione dell'applicazione, ad esempio PKCS#11 C_Finalize. |
CN_CLOSE_PARTITION_SESSIONS |
Chiude tutte le sessioni su una partizione specifica. |
CN_ENCRYPT_SESSION |
Stabilisce una sessione cifrata. |
Ciclo di vita della partizione
| Nome dell'operazione | Description |
|---|---|
CN_INIT_TOKEN |
Inizializza o formatta una partizione. |
CN_INIT_DONE |
Contrassegna l'inizializzazione della partizione come completata. |
CN_ZEROIZE |
Azzera una partizione. |
CN_VENDOR_ZEROIZE |
Esegue un'operazione di zeroizzazione specifica del fornitore. |
CN_SET_NODEID |
Imposta l'ID del nodo di partizione. |
CN_SET_M_VALUE |
Imposta il valore M per il quorum M-of-N. |
CN_SET_POLICY |
Imposta un criterio di partizione. |
CN_SET_HSM_CONFIG |
Imposta la configurazione hardware dell'HSM. |
CN_SET_KBK_PRIMARY |
Imposta la Key Block Key (KBK) primaria. |
CN_PARTN_STORAGE_UPDATE |
Aggiorna l'archiviazione permanente della partizione. |
CN_PARTN_STORAGE_DELETE |
Elimina un record di archiviazione permanente della partizione. |
Gestione degli utenti
| Nome dell'operazione | Description |
|---|---|
CN_CREATE_USER |
Crea un utente crypto (CU). |
CN_CREATE_CO |
Crea un crypto officer (CO). |
CN_CREATE_APPLIANCE_USER |
Crea un dispositivo o un utente di servizio. |
CN_CREATE_PRE_OFFICER |
Crea un pre-officer. |
CN_CHANGE_PSWD |
Modifica la password o il PIN di un utente. |
CN_RENAME_PCO |
Rinomina un pre-officer. |
CN_DELETE_USER |
Elimina un utente. |
CN_UNLOCK_CO |
Sblocca un Crypto Officer a cui è stato bloccato l'accesso. |
CN_GET_CHALLENGE_CO |
Ottiene una richiesta per lo sblocco di Crypto Officer. |
CN_SET_USER_ATTR |
Imposta gli attributi utente. |
CN_UNLOCK_USER |
Sblocca un utente bloccato. |
CN_ALWAYS_AUTHORIZE_USER |
Configura un utente sempre autorizzato per M-of-N. |
CN_REGISTER_AUTH_PUB_KEY |
Registra una chiave pubblica di autenticazione. |
CN_SET_AUTH_PUB_KEY |
Imposta una chiave pubblica di autenticazione. |
Generazione della chiave
| Nome dell'operazione | Description |
|---|---|
CN_GENERATE_KEY |
Genera una chiave simmetrica. |
CN_GENERATE_KEY_PAIR |
Genera una coppia di chiavi asimmetriche. |
CN_GENERATE_PBE_KEY |
Genera una chiave di crittografia basata su password. |
CN_GEN_KEY_ENC_KEY |
Genera una chiave di crittografia delle chiavi. |
CN_GEN_PSWD_ENC_KEY |
Genera una chiave per la crittografia delle password. |
CN_DERIVE_KEY |
Deriva una chiave da una chiave di base. |
Incapsulamento della chiave, importazione ed esportazione
| Nome dell'operazione | Description |
|---|---|
CN_WRAP_KEY |
Esegue il wrapping di una chiave per l'esportazione protetta. |
CN_WRAP_KEY2 |
Esegue il wrapping di una chiave con attributi estesi. |
CN_UNWRAP_KEY |
Rimuove il wrapping da una chiave protetta. |
CN_UNWRAP_KEY2 |
Rimuove il wrapping di una chiave protetta con attributi estesi. |
CN_NIST_AES_WRAP |
Esegue il wrapping delle chiavi NIST AES. |
CN_NIST_AES_WRAP_UNWRAP2 |
Esegue il wrapping o l'unwrapping della chiave NIST AES. |
CN_INSERT_MASKED_OBJECT |
Inserisce un oggetto chiave mascherato. |
CN_EXTRACT_MASKED_OBJECT |
Estrae un oggetto chiave mascherato. |
CN_INSERT_MASKED_OBJECT_USER |
Inserisce un oggetto mascherato con contesto utente. |
CN_EXTRACT_MASKED_OBJECT_USER |
Estrae un oggetto mascherato con contesto utente. |
CN_STORE_KBK_SHARE |
Archivia una quota KBK per la protezione con chiave M-of-N. |
Ciclo di vita delle chiavi e degli oggetti
| Nome dell'operazione | Description |
|---|---|
CN_CREATE_OBJECT |
Crea una chiave o un oggetto dati. |
CN_MODIFY_OBJECT |
Modifica gli attributi dell'oggetto. |
CN_MODIFY_KEY_OWNER |
Trasferisce la proprietà della chiave a un altro utente. |
CN_DESTROY_OBJECT |
Elimina definitivamente un oggetto . |
CN_TOMBSTONE_OBJECT |
Contrassegna un oggetto come eliminato per la sincronizzazione. |
CN_DELETE_TOMBSTONED_OBJECT |
Rimuove definitivamente un oggetto contrassegnato come tombstone. |
CN_SHARE_OBJECT |
Condivide un oggetto della chiave con altri utenti. |
CN_PARK_OBJECT |
Serializza un oggetto per il trasferimento. |
CN_UNPARK_OBJECT |
Deserializza un oggetto parcheggiato. |
Backup e ripristino
| Nome dell'operazione | Description |
|---|---|
CN_BACKUP_BEGIN |
Avvia un'operazione di backup. |
CN_BACKUP_CONFIG |
Esegue il backup della configurazione della partizione. |
CN_BACKUP_USERS |
Esegue il backup del database utente. |
CN_BACKUP_KEY |
Esegue il backup delle chiavi. |
CN_BACKUP_OBJECT |
Esegue il backup di oggetti. |
CN_BACKUP_END |
Completa e finalizza un backup. |
CN_RESTORE_BEGIN |
Avvia un'operazione di ripristino. |
CN_RESTORE_END |
Completa un'operazione di ripristino. |
CN_CLONE_SOURCE_INIT |
Inizializza una partizione come origine clone. |
CN_CLONE_TARGET_INIT |
Inizializza una partizione come destinazione clone. |
CN_CLONE_SOURCE_STAGE1 |
Esegue la fase clone-source 1. |
CN_CLONE_TARGET_STAGE1 |
Esegue la fase 1 di clone-target. |
Operazioni con token M-of-N
| Nome dell'operazione | Description |
|---|---|
CN_APPROVE_TOKEN |
Approva un token di autorizzazione M-of-N. |
CN_GET_TOKEN |
Recupera un token M-of-N. |
CN_DELETE_TOKEN |
Elimina un token M-of-N. |
CN_TOKEN_TIMEOUT |
Registra un timeout del token M-of-N. |
Operazioni del firmware e dell'applicazione sicure
| Nome dell'operazione | Description |
|---|---|
CN_SMAPP_DELETE |
Elimina un'applicazione sicura. |
CN_SMAPP_CTRL |
Gestisce un'applicazione sicura. |
CN_SMAPP_UPDATE_BEGIN |
Avvia un aggiornamento dell'applicazione protetta. |
CN_SMAPP_UPDATE |
Scrive dati di aggiornamento per applicazioni sicure. |
CN_SMAPP_UPDATE_END |
Finalizza un aggiornamento dell'applicazione sicura. |
CN_SMAPP_DELETE_FILE |
Elimina un file secure-application. |
CN_SMAPP_WRITE_SFRAM |
Scrive su SFRAM. |
CN_SMAPP_READ_SFRAM |
Legge da SFRAM. |
CN_SMAPP_WRITE_DATA |
Scrive i dati dell'applicazione sicura. |
CN_SMAPP_READ_DATA |
Legge i dati dell'applicazione protetta. |
Integrità del lotto e record dei certificati
Tutti i record nello stesso batch condividono un CorrelationId. Usare questo valore per associare i record dell'operazione di gestione del modulo di protezione hardware ai record di firma e certificato pubblico corrispondenti.
| Nome dell'operazione | Description |
|---|---|
BATCH_BINARY_SIGNATURE |
Contiene la firma generata dal modulo di protezione hardware e l'hash SHA-256 per il batch. Usare la firma e la catena di certificati per verificare l'integrità e l'autenticità del batch. |
BATCH_PARTITION_IDENTITY_CERT |
Contiene il certificato di identità della partizione firmato dal modulo di protezione hardware. |
BATCH_HSM_DEVICE_CERT |
Contiene il certificato che identifica il dispositivo HSM. |
BATCH_HSM_MANUFACTURER_ROOT_CERT |
Contiene il certificato radice del produttore del modulo di protezione hardware, ovvero l'ancoraggio di attendibilità per la catena di certificati HSM. |
BATCH_HSM_OWNER_AUTH_CERT |
Contiene il certificato di autenticazione del proprietario HSM, che identifica il proprietario dell'hardware. |
Scaricare i log delle operazioni HSM per la verifica della firma
Scaricare i log delle operazioni HSM come file JSON per usarli per la verifica della firma. Il file esportato deve contenere ogni record per ogni CorrelationId incluso, incluse le firme batch e i record del certificato. Non aggiungere take o limit a queste query perché così si potrebbe esportare un batch firmato incompleto.
Scaricare i log dagli ultimi sette giorni per una risorsa
Sostituire i segnaposto con i valori per la risorsa Cloud HSM e l'area di lavoro di Log Analytics. La query identifica i batch con record degli ultimi sette giorni e quindi esporta ogni record per tali batch in modo che rimangano completi. Il _ResourceId filtro non fa distinzione tra maiuscole e minuscole.
- interfaccia della riga di comando di Azure
- Azure PowerShell
resourceGroupName="<resource-group>"
workspaceName="<workspace-name>"
resourceId="/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.HardwareSecurityModules/cloudHsmClusters/<hsm-name>"
outputFile="./logs/CloudHsmOperationLogsLast7Days.json"
mkdir -p ./logs
workspaceCustomerId=$(az monitor log-analytics workspace show \
--resource-group "$resourceGroupName" \
--workspace-name "$workspaceName" \
--query customerId \
--output tsv)
query=$(cat <<EOF
let recentBatches =
CloudHsmHardwareOperationAuditLogs
| where TimeGenerated >= ago(7d)
| where _ResourceId =~ "$resourceId"
| distinct CorrelationId;
CloudHsmHardwareOperationAuditLogs
| where _ResourceId =~ "$resourceId"
| where CorrelationId in (recentBatches)
EOF
)
az monitor log-analytics query \
--workspace "$workspaceCustomerId" \
--analytics-query "$query" \
--output json > "$outputFile"
Scaricare tutti i log per un ID di correlazione specificato
Usare questa query per scaricare un batch firmato completo. Tutti i record che hanno lo CorrelationId specificato vengono scritti nel file di output, indipendentemente dal relativo ordine.
- interfaccia della riga di comando di Azure
- Azure PowerShell
resourceGroupName="<resource-group>"
workspaceName="<workspace-name>"
correlationId="<correlation-id>"
outputFile="./logs/CloudHsmOperationLogsByCorrelationId.json"
mkdir -p ./logs
workspaceCustomerId=$(az monitor log-analytics workspace show \
--resource-group "$resourceGroupName" \
--workspace-name "$workspaceName" \
--query customerId \
--output tsv)
query=$(cat <<EOF
CloudHsmHardwareOperationAuditLogs
| where CorrelationId == "$correlationId"
EOF
)
az monitor log-analytics query \
--workspace "$workspaceCustomerId" \
--analytics-query "$query" \
--output json > "$outputFile"
Passaggio successivo: Verifica della firma dei log scaricati
Usare le utilità del log di controllo di Azure Cloud HSM per verificare l'integrità e l'autenticità dei log delle operazioni HSM scaricati.
- Passare al repository Microsoft Azure Cloud HSM SDK.
- Apri la cartella Utilità.
- Scaricare il
.zippacchetto denominatoAzureCloudHSM-AuditLogUtils. - Estrarre il pacchetto e seguire le istruzioni incluse per verificare le firme batch e la catena di certificati del file di log scaricato.