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

Azure 密钥保管库 日志记录

在创建一个或多个 Key Vault 之后,可能需要监视 Key Vault 的访问方式、时间和访问者。 为Azure 密钥保管库启用日志记录会将此信息保存在提供的Azure存储帐户中。 有关分步指南,请参阅如何启用密钥保管库日志记录。

您可以在 Key Vault 操作后最多 10 分钟内访问日志信息。 大多数情况下,速度会更快。 存储帐户中的日志完全由你管理:

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

有关密钥保管库的概述信息,请参阅 什么是 Azure 密钥保管库?。 有关密钥保管库可用位置的信息,请参阅 定价页面。 有关使用 Azure Monitor for 密钥保管库 的信息。

解释你的 密钥保管库 日志

启用日志记录时,系统会为你指定的存储帐户自动创建一个名为“insights-logs-auditevent”的新容器。 可以使用此同一个存储帐户来收集多个 Key Vault 的日志。

每个 Blob 存储为文本,并格式化为 JSON Blob。 让我们看一个示例日志项。

    {
        "records":
        [
            {
                "time": "2016-01-05T01:32:01.2691226Z",
                "resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/CONTOSOGROUP/PROVIDERS/MICROSOFT.KEYVAULT/VAULTS/CONTOSOKEYVAULT",
                "operationName": "VaultGet",
                "operationVersion": "2015-06-01",
                "category": "AuditEvent",
                "resultType": "Success",
                "resultSignature": "OK",
                "resultDescription": "",
                "durationMs": "78",
                "callerIpAddress": "104.40.82.76",
                "correlationId": "",
                "identity": {"claim":{"http://schemas.microsoft.com/identity/claims/objectidentifier":"d9da5048-2737-4770-bd64-XXXXXXXXXXXX","http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn":"live.com#username@outlook.com","appid":"00001111-aaaa-2222-bbbb-3333cccc4444"}},
                "properties": {"clientInfo":"azure-resource-manager/2.0","requestUri":"https://control-prod-wus.vaultcore.azure.net/subscriptions/361da5d4-a47a-4c79-afdd-XXXXXXXXXXXX/resourcegroups/contosoresourcegroup/providers/Microsoft.KeyVault/vaults/contosokeyvault?api-version=2015-06-01","id":"https://contosokeyvault.vault.azure.net/","httpStatusCode":200}
            }
        ]
    }

下表列出了字段的名称和描述:

字段名 DESCRIPTION
时间 日期和时间 (UTC)。
resourceId Azure 资源管理器资源 ID。 对于密钥保管库日志,这始终是密钥保管库资源 ID。
operationName 下一份表格中所述操作的名称。
操作版本 客户端请求的 REST API 版本。
类别 结果的类型。 对于密钥保管库日志,AuditEvent是单个可用值。
结果类型 REST API 请求的结果。
resultSignature HTTP 状态。
resultDescription 有关结果的更多描述(如果有)。
durationMs 为 REST API 请求提供服务所花费的时间,以毫秒为单位。 此时间不包括网络延迟,因此在客户端上测得的时间可能与此时间不匹配。
callerIpAddress 发出请求的客户端的 IP 地址。
correlationId 客户端可以传递的可选 GUID,用于将客户端日志与服务端(密钥保管库)日志相关联。
身份 在 REST API 请求中提供的令牌中的标识。 例如,请求来自 Azure PowerShell cmdlet 时,通常为“user”、“service principal”或“user+appId”的组合。
属性 此字段根据操作 (operationName) 包含不同的信息。 在大多数情况下,此字段包含客户端信息(客户端传递的用户代理字符串)、具体 REST API 请求 URI 和 HTTP 状态代码。 此外,在根据请求(例如,KeyCreate 或 VaultGet)返回对象时,它还包含密钥 URI( 形式)、保管库 URI 或机密 URI。

operationName 字段值采用 ObjectVerb 格式。 例如:

  • 所有 Key Vault 操作采用 Vault<action> 格式,例如 VaultGet 和 VaultCreate。
  • 所有密钥操作采用 Key<action> 格式,例如 KeySign 和 KeyList。
  • 所有机密操作采用 Secret<action> 格式,例如 SecretGet 和 SecretListVersions。

下表列出了 operationName 值和对应的 REST API 命令:

操作名称表

操作名称 REST API 命令
身份验证 通过 Microsoft Entra 端点进行身份验证
VaultGet 获取有关密钥保管库的信息
VaultPut 创建或更新密钥保管库
VaultDelete 删除密钥保管库
VaultPatch 更新密钥保管库
VaultRecover 恢复已删除的保管库
VaultAccessPolicyChangedEventGridNotification 保管库访问策略更改事件已发布。 无论是否存在事件网格订阅,都会记录该事件。

使用 Azure Monitor 日志

可以使用Azure Monitor日志中的密钥保管库解决方案来查看 密钥保管库 AuditEvent 日志。 在Azure Monitor日志中,使用日志查询分析数据并获取所需的信息。

有关详细信息,包括如何进行设置,请参阅Azure Monitor 中的 Azure 密钥保管库。

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

后续步骤