共用方式為


教學課程:設定和查詢 Azure 雲端 HSM 的作業事件記錄

Azure Cloud HSM 支援透過Log Analytics工作區進行作業事件記錄。 此功能可讓您集中收集、分析和監視雲端 HSM 資源中的記錄。

作業事件記錄對於硬體安全模組 (HSM) 的整體安全性至關重要。 其會為所有存取和作業提供透明且不可變的記錄,以協助確保責任和可追蹤性。

作業記錄可藉由擷取使用者活動、金鑰管理動作和系統事件等詳細資料,協助您偵測未經授權的存取、調查安全性事件,以及符合法規需求。 對於可能表示有潛在缺口或設定錯誤的異常狀況,其在這方面的識別上也扮演重要角色。 透過這種方式,其讓組織有更強的能力維護其密碼編譯作業的完整性和機密性。

在本教學課程中,您會:

  • 設定作業事件記錄,包括建立儲存體帳戶和 Log Analytics 工作區。
  • 查詢作業事件記錄以擷取特定的 HSM 作業事件。
  • 取得 HSM 作業事件的完整清單。

這很重要

為了維護安全性和隱私權,記錄會排除敏感的詳細資料,例如金鑰識別碼、金鑰名稱,以及其他與金鑰、使用者或工作階段相關的可識別資訊。 記錄會擷取已執行的 HSM 作業、作業時間,以及相關的 HSM 中繼資料。

Azure 雲端 HSM 作業事件記錄無法判斷 HSM 作業成功與否。 它只能記錄執行作業的事實。

先決條件

設定作業事件記錄

請使用下列各節中的命令來設定您想要監視的資源。

建立儲存體帳戶以儲存 HSM 記錄

若要建立儲存體帳戶來儲存 HSM 記錄,您必須先建立資源群組。 您也需要在該資源群組內建立儲存體帳戶。 請使用下列命令建立這些項目:

az group create --name <ResourceGroupName> --location <RegionName>
az storage account create --name <StorageAccountName> --resource-group <ResourceGroupName> --location <RegionName> --sku Standard_LRS --kind StorageV2

建立 Log Analytics 工作區

若要建立 Log Analytics 工作區來儲存和分析 HSM 記錄,請使用下列命令:

az monitor log-analytics workspace create --resource-group <ResourceGroupName> --workspace-name <WorkspaceName>

如需如何為 Azure 監視器建立 Log Analytics 工作區的詳細資訊,請參閱建立 Log Analytics 工作區 (部分機器翻譯)。

使用 Azure CLI 或 Azure PowerShell 啟用診斷設定

若要設定變數並執行命令來啟用 Azure 雲端 HSM 作業事件記錄的診斷設定,請使用下列程式碼。 將 SubscriptionIdResourceGroupNameHSMNameStorageAccountNameWorkspaceName 的預留位置取代為您的環境適用的值。

Azure CLI

$resourceId = "/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.HardwareSecurityModules/cloudHsmClusters/<HSMName>"
 
$storageAccountId = "/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<StorageAccountName>"
 
$workspaceId = "/subscriptions/<SubscriptionId>/resourcegroups/<ResourceGroupName>/providers/microsoft.operationalinsights/workspaces/<WorkspaceName>"

az monitor diagnostic-settings create --resource $resourceId -n "my-chsmAuditLogs" --storage-account $storageAccountId --logs "[{category:HsmServiceOperations,enabled:true}]"  --workspace $workspaceId

Azure PowerShell

$resourceId = "/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.HardwareSecurityModules/cloudHsmClusters/<HSMName>"
 
$storageAccountId = "/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<StorageAccountName>"
 
$workspaceId = "/subscriptions/<SubscriptionId>/resourcegroups/<ResourceGroupName>/providers/microsoft.operationalinsights/workspaces/<WorkspaceName>"

New-AzDiagnosticSetting -ResourceId $resourceId -Name "my-chsmAuditLogs" -StorageAccountId $storageAccountId -WorkspaceId $workspaceId -Enabled $true -Category "HsmServiceOperations"

驗證雲端 HSM 記錄的設定

在建立診斷設定後,記錄便會在一兩分鐘內開始流動。

您可以透過 Log Analytics 工作區,從 Azure 入口網站查詢雲端 HSM 作業事件記錄。

Azure 入口網站中 Azure 雲端 HSM 作業事件記錄的螢幕擷取畫面。

您也可以使用 Azure CLI 和 Azure PowerShell 查詢雲端 HSM 作業事件記錄。 在此範例中,您會更新 ResourceGroupNameWorkspaceName

$workspaceId = az monitor log-analytics workspace show --resource-group <ResourceGroupName> --workspace-name <WorkspaceName> --query customerId -o tsv
az monitor log-analytics query -w $workspaceId --analytics-query "CloudHsmServiceOperationAuditLogs | take 10"

命令列介面中 Azure 雲端 HSM 作業事件記錄的螢幕擷取畫面。

註冊錯誤

如果您收到錯誤訊息「<訂用帳戶> 未註冊為使用 microsoft.insights」,則表示您的 Azure 訂用帳戶未註冊為使用 Microsoft.Insights 資源提供者。 若要解決此問題,您必須在訂用帳戶中向 Microsoft.Insights 提供者註冊。

若要使用 Azure CLI 註冊 Microsoft.Insights,請執行下列命令:

az provider register --namespace Microsoft.Insights
az provider show --namespace Microsoft.Insights --query "registrationState" --output table

若要使用 Azure PowerShell 註冊 Microsoft.Insights,請執行下列命令:

Register-AzResourceProvider -ProviderNamespace Microsoft.Insights
Get-AzResourceProvider -ProviderNamespace Microsoft.Insights | Select-Object ProviderNamespace, > RegistrationState

在執行命令後,請確定您已註冊資源提供者。 如果仍在註冊中,您可能需要稍候片刻,然後再次檢查。

查詢作業事件記錄

您可以使用下列命令來擷取作業記錄中所記錄的特定 HSM 作業事件。 若要列出所有作業事件,只要執行 CloudHsmServiceOperationAuditLogs 即可。

如需可查詢之其他作業的詳細資料,請參閱本文稍後的所記錄作業的完整清單

登入和工作階段事件

// Find login and session events
CloudHsmServiceOperationAuditLogs
| where OperationName in ("CN_LOGIN", "CN_AUTHORIZE_SESSION")
| project OperationName, MemberId, CallerIpAddress, TimeGenerated

建立和刪除使用者的事件

// Find user creation and deletion events 
CloudHsmServiceOperationAuditLogs
| where OperationName in ("CN_CREATE_USER", "CN_DELETE_USER")
| project OperationName, MemberId, CallerIpAddress, TimeGenerated

建立金鑰的事件

// Find key creation events
CloudHsmServiceOperationAuditLogs
| where OperationName in ("CN_GENERATE_KEY", "CN_GENERATE_KEY_PAIR")
| project OperationName, MemberId, CallerIpAddress, TimeGenerated

刪除金鑰的事件

// Find key deletion events
CloudHsmServiceOperationAuditLogs
| where OperationName == "CN_TOMBSTONE_OBJECT"
| project OperationName, MemberId, CallerIpAddress, TimeGenerated

作業詞彙

下列名稱與 HSM 作業事件有關。

azcloudhsm_util

作業名稱 命令名稱 說明
CN_LOGIN loginHSM 登入 HSM。
CN_LOGOUT logoutHSM 登出 HSM。
CN_GENERATE_KEY genSymKey 產生對稱金鑰。
CN_GENERATE_KEY_PAIR genRSAKeyPair 產生 RSA 金鑰組。
CN_GENERATE_KEY_PAIR genECCKeyPair 產生 ECC 金鑰組。
CN_SHARE_OBJECT shareKey 與其他使用者共用/取消共用現有金鑰。
CN_TOMBSTONE_OBJECT deleteKey 刪除金鑰。
CN_FIND_OBJECTS_FROM_INDEX findSingleKey 尋找單一金鑰。
CN_FIND_OBJECTS_USING_COUNT findKey 尋找金鑰。
CN_GET_OBJECT_INFO getKeyInfo 取得關於共用使用者/工作階段的金鑰資訊。
HASH_SINGLE_CALL sign 產生簽章 (ME_PKCS_PKCS1v15_CRT_ENCRYPT)。
HASH_SINGLE_CALL verify 驗證簽章 (ME_PKCS_PKCS1v15_DECRYPT)。
CN_LIST_TOKENS listTokens 列出目前分割區中的所有權杖。
CN_GET_TOKEN getToken 取得權杖。
CN_CREATE_USER createUser 建立使用者。
CN_DELETE_USER deleteUser 刪除使用者。
CN_LIST_USERS listUsers 列出使用者。
CN_CHANGE_PSWD changePswd 變更密碼。
CN_MODIFY_OBJECT setAttribute 設定物件的屬性。
CN_GET_ATTRIBUTE_VALUE
CN_GET_ALL_ATTRIBUTE_VALUE
CN_GET_ATTRIBUTE_SIZE
CN_GET_ALL_ATTRIBUTE_SIZE
getAttribute 取得物件的屬性。
CN_TOKEN_INFO getHSMInfo 取得 HSM 資訊。
CN_PARTITION_INFO getPartitionInfo 取得分割區資訊。
--- getClusterInfo 未記錄。
--- server 未記錄。

azcloudhsm_mgmt

作業名稱 命令名稱 說明
CN_LOGIN loginHSM 登入 HSM。
CN_LOGOUT logoutHSM 登出 HSM。
CN_GENERATE_KEY genSymKey 產生對稱金鑰。
CN_GENERATE_KEY_PAIR genRSAKeyPair 產生 RSA 金鑰組。
CN_GENERATE_KEY_PAIR genECCKeyPair 產生 ECC 金鑰組。
CN_SHARE_OBJECT shareKey 與其他使用者共用/取消共用現有金鑰。
CN_TOMBSTONE_OBJECT deleteKey 刪除金鑰。
CN_FIND_OBJECTS_FROM_INDEX findSingleKey 尋找單一金鑰。
CN_FIND_OBJECTS_USING_COUNT findKey 尋找金鑰。
CN_GET_OBJECT_INFO getKeyInfo 取得關於共用使用者/工作階段的金鑰資訊。
HASH_SINGLE_CALL sign 產生簽章 (ME_PKCS_PKCS1v15_CRT_ENCRYPT)。
HASH_SINGLE_CALL verify 驗證簽章 (ME_PKCS_PKCS1v15_DECRYPT)。
CN_LIST_TOKENS listTokens 列出目前分割區中的所有權杖。
CN_GET_TOKEN getToken 取得權杖。
CN_CREATE_USER createUser 建立使用者。
CN_DELETE_USER deleteUser 刪除使用者。
CN_LIST_USERS listUsers 列出使用者。
CN_CHANGE_PSWD changePswd 變更密碼。
CN_MODIFY_OBJECT setAttribute 設定物件的屬性。
CN_GET_ATTRIBUTE_VALUE
CN_GET_ALL_ATTRIBUTE_VALUE
CN_GET_ATTRIBUTE_SIZE
CN_GET_ALL_ATTRIBUTE_SIZE
getAttribute 取得物件的屬性。
CN_TOKEN_INFO getHSMInfo 取得 HSM 資訊。
CN_PARTITION_INFO getPartitionInfo 取得分割區資訊。
--- getClusterInfo 未記錄。
--- server 未記錄。

備份與還原

作業名稱 命令名稱 說明
/backup
/restore