共用方式為

托管 HSM 日志记录

在创建一个或多个托管 HSM 之后,可能需要监视 HSM 的访问方式、时间和访问者。 为此,可以启用日志记录,以便在提供的 Azure 存储帐户中保存信息。 系统会自动为指定的存储帐户创建名为 insights-logs-auditevent 的新容器。 可以使用此同一个存储帐户来收集多个托管 HSM 的日志。 还可以选择将日志发送到 Log Analytics 工作区,随后可以将其用于启用 Microsoft Sentinel,来自动检测可疑的活动。

最多在执行托管 HSM 操作 10 分钟后,就能访问其日志记录信息。 在大多数情况下会更快。 存储帐户中的日志完全由你管理:

  • 使用标准 Azure 访问控制方法,通过限制访问你的日志的人员来保护日志的安全。
  • 删除不想继续保留在存储帐户中的日志。

借助本教程开始使用托管 HSM 日志记录。 在启用日志记录并解释收集的日志信息之前,你应该已经创建了存储帐户或 Log Analytics 工作区。

必备知识

若要完成本文中的步骤,必须准备好以下项:

连接到 Azure 订阅

使用 Azure CLI az login 命令登录到 Azure 订阅:

az cloud set -n AzureChinaCloud
az login
# az cloud set -n AzureCloud   //means return to Public Azure.

若要详细了解通过 CLI 使用的登录选项,请参阅使用 Azure CLI 登录

识别托管 HSM、存储帐户和日志分析工作区

设置密钥日志记录的第一步是找到要记录的托管 HSM。

使用 Azure CLI az keyvault show 命令查找要记录的托管 HSM。

还可以使用 Azure CLI az storage account show 命令查找要用于日志记录的存储帐户,以及/或者使用 Azure CLI az monitor log-analytics workspace show 命令查找要用于日志记录的 Log Analytics 工作区。

hsmresource=$(az keyvault show --hsm-name ContosoMHSM --query id -o tsv)
storageresource=$(az storage account show --name ContosoMHSMLogs --query id -o tsv)
loganalyticsresource=$(az monitor log-analytics workspace show --resource-group ContosoResourceGroup --workspace-name ContosoLogs --query id -o tsv)

启用日志记录

要为托管 HSM 启用日志记录,请使用 Azure CLI az monitor diagnostic-settings create 命令,并结合使用先前命令中的变量。 还将 -Enabled 标志设置为“true”,并将 category 设置为“AuditEvent”(托管 HSM 日志记录的唯一类别)。

若要将日志发送到存储帐户,请执行以下操作:

az monitor diagnostic-settings create --name ContosoMHSM-Diagnostics --resource $hsmresource --logs '[{"category": "AuditEvent","enabled": true}]' --storage-account $storageresource

若要将日志发送到 Log Analytics 工作区,请执行以下操作:

az monitor diagnostic-settings create --name "ContosoMHSM-Diagnostics" --resource $hsmresource --logs '[{"category": "AuditEvent","enabled": true}]' --workspace $loganalyticsresource

记录的内容

为托管 HSM 记录以下类型的操作和事件:

  • 所有已经过身份验证的 REST API 请求,包括由于访问权限、系统错误、防火墙阻止或错误请求而导致的失败请求。
  • 对托管 HSM 资源本身的托管平面操作,包括创建、删除和更新属性(如标记)。
  • 与安全域相关的操作,如初始化和下载、初始化恢复、上传
  • 完整的 HSM 备份、还原和选择性还原操作
  • 角色管理操作(例如,创建/查看/删除角色分配以及创建/查看/删除自定义角色定义)
  • 对密钥执行的操作,包括:
    • 创建、修改或删除密钥。
    • 对密钥进行签名、验证、加密、解密、包装和解包以及列出密钥。
    • 密钥备份、还原、清除
    • 密钥发布
  • 导致 404 响应的无效路径。

访问日志

存储帐户

托管 HSM 日志存储在提供的存储帐户的 insights-logs-auditevent 容器中。 若要查看这些日志,必须下载 Blob。 有关 Azure 存储的信息,请参阅使用 Azure CLI 创建、下载和列出 Blob

单个 Blob 存储为文本,格式设置为 JSON。 让我们看一个示例日志项。 此示例显示了创建完整备份的请求发送到托管 HSM 时的日志条目。

[
  {
    "TenantId": "{tenant-id}",
    "time": "2020-08-31T19:52:39.763Z",
    "resourceId": "/SUBSCRIPTIONS/{subscription-id}/RESOURCEGROUPS/CONTOSORESOURCEGROUP/PROVIDERS/MICROSOFT.KEYVAULT/MANAGEDHSMS/CONTOSOMHSM",
    "operationName": "BackupCreate",
    "operationVersion": "7.0",
    "category": "AuditEvent",
    "resultType": "Success",
    "properties": {
        "PoolType": "M-HSM",
        "sku_Family": "B",
        "sku_Name": "Standard_B1"
    },
    "durationMs": 488,
    "callerIpAddress": "X.X.X.X",
    "identity": "{\"claim\":{\"appid\":\"{application-id}\",\"http_schemas_microsoft_com_identity\":{\"claims\":{\"objectidentifier\":\"{object-id}\"}},\"http_schemas_xmlsoap_org_ws_2005_05_identity\":{\"claims\":{\"upn\":\"admin@contoso.com\"}}}}",
    "clientInfo": "azsdk-python-core/1.7.0 Python/3.8.2 (Linux-4.19.84-microsoft-standard-x86_64-with-glibc2.29) azsdk-python-azure-keyvault/7.2",
    "correlationId": "aaaa0000-bb11-2222-33cc-444444dddddd",
    "subnetId": "(unknown)",
    "httpStatusCode": 202,
    "PoolName": "mhsmdemo",
    "requestUri": "https://ContosoMHSM.managedhsm.chinacloudapi.cn/backup",
    "resourceGroup": "ContosoResourceGroup",
    "resourceProvider": "MICROSOFT.KEYVAULT",
    "resource": "ContosoMHSM",
    "resourceType": "managedHSMs"
  }
]

Log Analytics 工作区

托管 HSM 日志存储在提供的 Log Analytics 工作区中。 可以使用 Azure 门户来查询日志。 有关详细信息,请参阅 Log Analytics 教程

使用 Azure Monitor 日志

可以使用 Azure Monitor 日志中的 Key Vault 解决方案查看托管 HSM AuditEvent 日志。 在 Azure Monitor 日志中,可以使用日志查询来分析数据并获取所需的信息。 有关更多信息,包括如何设置,请参阅监视 Azure 托管 HSM

要了解如何分析日志,请参阅示例 Kusto 日志查询

如果要将日志发送到 Log Analytics 工作区,可以使用 Microsoft Sentinel 来自动检测可疑的活动。 请参阅适用于 Azure 托管 HSM 的 Microsoft Sentinel

后续步骤