你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。

教程:为 Azure Cloud HSM 配置和查询操作事件日志记录

Azure Cloud HSM 支持通过Log Analytics工作区进行操作事件日志记录。 此功能支持跨云 HSM 资源集中收集、分析和监视日志。

作事件日志记录对于硬件安全模块(HSM)的整体安全性至关重要。 它提供所有访问和操作的透明且一致的记录,以帮助确保责任和可跟踪性。

通过捕获用户活动、密钥管理作和系统事件等详细信息,作日志可帮助你检测未经授权的访问、调查安全事件并符合法规要求。 他们还在识别可能表明潜在违规或配置不当的异常方面发挥了重要作用。 通过这种方式,他们增强了组织保持其加密作的完整性和机密性的能力。

在本教程中,你将:

  • 设置和配置操作事件日志,包括创建存储帐户和Log Analytics工作区。
  • 查询事件日志以检索特定的 HSM 操作事件。
  • 获取 HSM 操作事件的完整列表。

重要

为了维护安全和隐私,日志记录不包括与密钥、用户或会话相关的敏感详细信息,例如密钥 ID、密钥名称和其他可识别信息。 日志捕获执行的 HSM 操作、操作时间和相关的 HSM 元数据。

Azure云 HSM 操作事件日志记录无法确定 HSM 操作是成功还是失败。 它只能记录操作被执行的事实。

先决条件

设置和配置操作事件日志

使用以下部分中的命令设置要监视的资源。

创建用于存储 HSM 日志的存储帐户

若要创建用于存储 HSM 日志的存储帐户,首先需要创建资源组。 还需要在该资源组中创建存储帐户。

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

创建Log Analytics工作区

若要创建用于存储和分析 HSM 日志的Log Analytics工作区,请使用以下命令。

az monitor log-analytics workspace create \
  --resource-group "<resource-group>" \
  --workspace-name "<workspace-name>"

有关为Azure Monitor创建Log Analytics工作区的详细信息,请参阅 创建Log Analytics工作区。

启用诊断设置

若要为 Azure Cloud HSM 操作事件日志记录启用诊断设置,请使用以下代码。 将占位符替换为你的环境的相应值。

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 \
  --logs '[{"category":"HsmServiceOperations","enabled":true}]'

验证云 HSM 日志记录的配置

创建诊断设置后,日志将在一到两分钟内开始流动。

可以通过Log Analytics工作区从 Azure 门户查询云 HSM 操作事件日志。

Azure 门户中 Azure Cloud HSM 操作事件日志的屏幕截图。

还可以使用Azure CLI或Azure PowerShell查询云 HSM 操作事件日志。

workspaceId=$(az monitor log-analytics workspace show \
  --resource-group "<resource-group>" \
  --workspace-name "<workspace-name>" \
  --query customerId --output tsv)

az monitor log-analytics query \
  --workspace $workspaceId \
  --analytics-query "CloudHsmServiceOperationAuditLogs | take 10"

命令行接口.

注册错误

如果收到错误消息“<subscription>未注册为使用 microsoft.insights”,则Azure订阅未注册为使用 Microsoft.Insights 资源提供程序。 要解决此问题,需要在订阅中向 Microsoft.Insights 提供程序注册。

az provider register --namespace Microsoft.Insights

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

运行命令后,请确认资源提供者已注册。 如果仍在注册,可能需要等待片刻,然后再次检查。

查询操作事件日志

可以使用以下命令检索在操作日志中记录的特定 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

操作名称 命令名称 DESCRIPTION
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

操作名称 命令名称 DESCRIPTION
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 未记录。

备份和还原

操作名称 命令名称 DESCRIPTION
/backup
/restore