建立一或多個金鑰保存庫之後,您可能會想要監視金鑰保存庫的存取方式和時間,以及存取者。 為 Azure Key Vault 啟用記錄功能,會將此資訊儲存在您提供的 Azure 儲存體帳戶中。 如需逐步指引,請參閱 如何啟用 Key Vault 記錄功能。
在金鑰保存庫作業執行 (最多) 10 分鐘後,您就可以存取記錄資訊。 在大部分情況下,會更快。 儲存體帳戶中的記錄由您全權管理:
- 使用記憶體帳戶中的標準 Azure 訪問控制方法,藉由限制誰可以存取記錄來保護您的記錄。
- 刪除您不再想保留在儲存帳戶中的記錄。
如需 Key Vault 的概觀資訊,請參閱 什麼是 Azure Key Vault?。 如需金鑰保存庫可用位置的詳細資訊,請參閱 定價頁面。 如需使用適用於 Key Vault 的 Azure 監視器的相關資訊。
解譯 Key Vault 記錄
當您啟用記錄時,會自動為指定的記憶體帳戶建立名為 insights-logs-auditevent 的新容器。 您可以使用此相同儲存體帳戶來收集多個金鑰保存庫的記錄。
個別 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}
}
]
}
下表列出各個欄位的名稱和其描述:
| 欄位名稱 | 說明 |
|---|---|
| 時間 | 日期和時間 (UTC)。 |
| resourceId | Azure Resource Manager 資源識別碼。 針對 Key Vault 記錄,其一律是 Key Vault 的資源識別碼。 |
| operationName | 作業的名稱,如下表所述。 |
| 操作版本 | 用戶端所要求的 REST API 版本。 |
| 類別 | 結果的類型。 針對 Key Vault 記錄, AuditEvent 是單一可用的值。 |
| 結果類型 | REST API 要求的結果。 |
| resultSignature | HTTP 狀態。 |
| resultDescription | 結果的詳細描述 (若有提供)。 |
| durationMs | 服務 REST API 要求時所花費的時間,以毫秒為單位。 時間不包含網路延遲,因此您在用戶端測量的時間可能不會與這段時間相符。 |
| callerIpAddress | 提出要求用戶端的 IP 位址。 |
| correlationId | 選擇性的 GUID,用戶端可傳遞此 GUID 來讓用戶端記錄與服務端 (金鑰保存庫) 記錄相互關聯。 |
| 身份 | 權杖中的身分識別,會在 REST API 要求中提供。 例如,當要求來自 Azure PowerShell Cmdlet 時,通常是「使用者」、「服務主體」或「user+appId」的組合。 |
| 屬性 | 根據作業 (operationName) 而有所不同的資訊。 在大部分情況下,此欄位會包含用戶端資訊 (用戶端傳遞的使用者代理程式字串)、完全符合的 REST API 要求 URI 和 HTTP 狀態碼。 此外,當對象因為要求而傳回時(例如 KeyCreate 或 VaultGet),它也會包含密鑰 URI(如 id)、保存庫 URI 或秘密 URI。 |
operationName 域值的格式為 ObjectVerb。 例如:
- 所有金鑰儲存函式庫作業都有
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 監控日誌
您可以使用 Azure 監視器記錄中的 Key Vault 解決方案來檢閱 Key Vault AuditEvent 記錄。 在 Azure 監視器記錄中,您可以使用記錄查詢來分析資料,並取得所需的資訊。
如需詳細資訊,包括如何設定它,請參閱 Azure 監視器中的 Azure Key Vault。
如需瞭解如何分析記錄,請參閱 範例 Kusto 記錄查詢
後續步驟
- 如何啟用 Key Vault 記錄
- Azure 監視器
- 如需在 .NET Web 應用程式中使用 Azure Key Vault 的教學課程,請參閱 從 Web 應用程式使用 Azure Key Vault。
- 如需程式設計參考,請參閱 Azure Key Vault 開發人員指南。
- 如需 Azure Key Vault 的 Azure PowerShell 1.0 Cmdlet 清單,請參閱 Azure Key Vault Cmdlet。