创建一个或多个托管 HSM 后,可能需要监视访问 HSM 的方式和时间以及访问者。 可以通过启用日志记录来监视此访问,该日志记录将信息保存在你提供的Azure存储帐户中。 系统会自动为指定的存储帐户创建名为 insights-logs-auditevent 的新容器。 可以使用此同一个存储帐户来收集多个托管 HSM 的日志。 还可以选择将日志发送到Log Analytics工作区,该工作区可用于启用Microsoft Sentinel自动检测可疑活动。
执行托管 HSM 操作后最快 10 分钟内可访问日志信息。 在大多数情况下,它会更快。 您可以在存储帐户中管理日志:
- 使用标准Azure访问控制方法通过限制谁可以访问日志来保护日志。
- 删除不想继续保留在存储帐户中的日志。
借助本教程开始使用托管 HSM 日志功能。 启用日志记录并解释收集的日志信息之前,应已拥有存储帐户或 Log Analytics 工作区。
必备知识
若要完成本文中的步骤,必须准备好以下项:
- 订阅Azure。 如果您没有订阅,可以注册一个试用版订阅。
- Azure CLI版本 2.25.0 或更高版本。 运行
az --version即可查找版本。 如果需要安装或升级,请参阅 安装 Azure CLI。 - 您的订阅中的托管硬件安全模块(HSM)。 请参阅 Quickstart:使用 Azure CLI 预配和激活托管 HSM 来预配和激活托管 HSM。
- Azure存储帐户和/或Log Analytics工作区。 如果没有一个或两者,可以使用Azure门户创建它们:
连接到您的 Azure 订阅
使用 Azure CLI az login 命令登录到Azure订阅:
az cloud set -n AzureChinaCloud
az login
# az cloud set -n AzureCloud //means return to Public Azure.
有关通过 CLI 的身份验证选项的详细信息,请参阅 sign with Azure CLI。
识别托管 HSM、存储帐户和日志分析工作区
设置密钥日志记录的第一步是找到要记录的托管 HSM。
使用 Azure CLI az keyvault show 命令查找要记录的托管 HSM。
还可以使用 Azure CLI az 存储帐户 show 命令查找要用于日志记录的存储帐户。 若要查找用于日志记录的日志分析工作区,请使用 Azure CLI az monitor log-analytics workspace show 命令。
hsmresource=$(az keyvault show --hsm-name <hsm-name> --query id -o tsv)
storageresource=$(az storage account show --name <storage-account-name> --query id -o tsv)
loganalyticsresource=$(az monitor log-analytics workspace show --resource-group <resource-group> --workspace-name <workspace-name> --query id -o tsv)
启用日志记录
若要为托管 HSM 启用日志记录,请使用 Azure CLI az monitor diagnostic-settings create 命令以及上述命令中的变量。 将 -Enabled 设置为 true,并将 category 设置为 AuditEvent(托管 HSM 日志记录的唯一类别)。
若要将日志发送到存储帐户,请执行以下操作:
az monitor diagnostic-settings create --name <hsm-name>-Diagnostics --resource $hsmresource --logs '[{"category": "AuditEvent","enabled": true}]' --storage-account $storageresource
若要将日志发送到Log Analytics工作区,请执行以下操作:
az monitor diagnostic-settings create --name "<hsm-name>-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/<resource-group>/PROVIDERS/MICROSOFT.KEYVAULT/MANAGEDHSMS/<hsm-name>",
"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\":\"<user-email>\"}}}}",
"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://<hsm-name>.managedhsm.chinacloudapi.cn/backup",
"resourceGroup": "<resource-group>",
"resourceProvider": "MICROSOFT.KEYVAULT",
"resource": "<hsm-name>",
"resourceType": "managedHSMs"
}
]
Log Analytics 工作区
托管 HSM 日志存储在您提供的“Log Analytics”工作区中。 可以使用Azure门户查询日志。 有关详细信息,请参阅 Log Analytics 教程。
使用 Azure Monitor 日志
在 Azure Monitor 日志中使用 Key Vault 解决方案审查托管 HSM 审核事件日志。 在Azure Monitor日志中,使用日志查询分析数据并获取所需的信息。 有关详细信息(包括如何进行设置),请参阅 Monitor Azure 托管 HSM。
若要了解如何分析日志,请参阅 示例 Kusto 日志查询。
如果将日志发送到Log Analytics工作区,可以使用Microsoft Sentinel自动检测可疑活动。 请参阅 Azure 托管 HSM 的 Microsoft Sentinel。
后续步骤
- 了解如何保护您的 Azure 托管 HSM 部署,以便预配和使用托管 HSM。
- 了解如何 备份和还原 托管 HSM。