你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在创建一个或多个托管 HSM 之后,可能需要监视 HSM 的访问方式、时间和访问者。 为此,可以启用日志记录,以便在提供的 Azure 存储帐户中保存信息。 系统会自动为指定的存储帐户创建名为 insights-logs-auditevent 的新容器。 可以使用此同一个存储帐户来收集多个托管 HSM 的日志。 还可以选择将日志发送到 Log Analytics 工作区,随后可以将其用于启用 Microsoft Sentinel,来自动检测可疑的活动。
最多在执行托管 HSM 操作 10 分钟后,就能访问其日志记录信息。 在大多数情况下会更快。 存储帐户中的日志完全由你管理:
- 使用标准 Azure 访问控制方法,通过限制访问你的日志的人员来保护日志的安全。
- 删除不想继续保留在存储帐户中的日志。
借助本教程开始使用托管 HSM 日志记录。 启用日志记录并解释收集的日志信息之前,应已创建存储帐户或 Log Analytics 工作区。
Prerequisites
若要完成本文中的步骤,必须准备好以下项:
- Microsoft Azure 订阅。 如果没有,可以注册免费试用版。
- Azure CLI 版本 2.25.0 或更高版本。 运行
az --version即可查找版本。 如需进行安装或升级,请参阅安装 Azure CLI。 - 订阅中的托管 HSM。 请参阅快速入门:使用 Azure CLI 预配和激活托管 HSM,以预配和激活托管 HSM。
- Azure 存储帐户和/或 Log Analytics 工作区。 如果没有其一,或二者都没有,可以使用 Azure 门户创建它们:
Azure Cloud Shell
Azure 托管 Azure Cloud Shell(一个可通过浏览器使用的交互式 shell 环境)。 可以将 Bash 或 PowerShell 与 Cloud Shell 配合使用来使用 Azure 服务。 可以使用 Cloud Shell 预安装的命令来运行本文中的代码,而不必在本地环境中安装任何内容。
若要启动 Azure Cloud Shell,请执行以下操作:
| 选项 | 示例/链接 |
|---|---|
| 选择代码或命令块右上角的“试用”。 选择“试用”不会自动将代码或命令复制到 Cloud Shell。 |
|
| 转到 https://shell.azure.com 或选择“启动 Cloud Shell”按钮可在浏览器中打开 Cloud Shell。 |
|
| 选择 Azure 门户右上角菜单栏上的 Cloud Shell 按钮。 |
|
若要使用 Azure Cloud Shell,请执行以下操作:
启动 Cloud Shell。
选择代码块(或命令块)上的“复制”按钮以复制代码或命令。
在 Windows 和 Linux 上选择 Ctrl+Shift+V,或在 macOS 上选择 Cmd+Shift+V 将代码或命令粘贴到 Cloud Shell 会话中。
选择“Enter”运行代码或命令。
连接到 Azure 订阅
使用 Azure CLI az login 命令登录到 Azure 订阅:
az login
若要详细了解通过 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.azure.net/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。
后续步骤
- 了解如何 保护 Azure 托管 HSM 部署 以预配和使用托管 HSM
- 了解如何备份和还原托管 HSM