受控 HSM 記錄
在建立一或多個受控 HSM 之後,您可能會想要監視 HSM 的存取方式、時間和存取者。 為此,您可以啟用記錄,以在您提供的 Azure 儲存體帳戶中儲存這方面的資訊。 系統會自動為您指定的儲存體帳戶建立名為 insights-logs-auditevent 的新容器。 您可以使用這個相同的儲存體帳戶來收集多個受控 HSM 的記錄。
在受控 HSM 作業完成 10 分鐘 (最多) 後,您就可以存取記錄資訊。 但大多不用這麼久。 儲存體帳戶中的記錄由您全權管理:
- 請使用標準的 Azure 存取控制方法限制可存取記錄的人員,藉此來保護記錄。
- 刪除不想繼續保留在儲存體帳戶中的記錄。
本教學課程可協助您開始使用受控 HSM 記錄。 您將會建立儲存體帳戶、啟用記錄及解譯收集到的記錄資訊。
注意
本教學課程不會指示如何建立受控 HSM 或金鑰。 本文提供更新診斷記錄的 Azure CLI 指示。
必要條件
若要完成本文中的步驟,您必須具有下列項目︰
- 訂閱 Microsoft Azure。 如果您沒有帳戶,您可以註冊免費試用。
- Azure CLI 2.25.0 版或更新版本。 執行
az --version
以尋找版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI 模組。 - 訂用帳戶中的受控 HSM。 請參閱快速入門:使用 Azure CLI 佈建並啟動受控 HSM,以佈建並啟動受控 HSM。
Azure Cloud Shell
Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 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 指向您要記錄的受控 HSM。
az login
若要進一步了解透過 CLI 的登入選項,請參閱使用 Azure CLI 進行登入
您可能必須指定用來建立受控 HSM 的訂用帳戶。 輸入下列命令以查看您帳戶的訂用帳戶:
識別受控 HSM 和儲存體帳戶
hsmresource=$(az keyvault show --hsm-name ContosoMHSM --query id -o tsv)
storageresource=$(az storage account show --name ContosoMHSMLogs --query id -o tsv)
啟用 記錄
若要啟用受控 HSM 的記錄,請使用 az monitor diagnostic-settings create 命令,以及我們為新的儲存體帳戶和受控 HSM 建立的變數。 我們也會將 -Enabled 旗標設定為 $true,並將類別設定為 AuditEvent (受控 HSM 記錄唯一適用的類別):
此輸出可確認受控 HSM 的記錄現已啟用,而這會將資訊儲存到儲存體帳戶中。
您可以選擇性地設定記錄的保留原則,以便自動刪除較舊的記錄。 例如,藉由設定 -RetentionEnabled 旗標將保留原則設為 $true 並將 -RetentionInDays 參數設為 90,以便自動刪除超過 90 天的舊記錄。
az monitor diagnostic-settings create --name ContosoMHSM-Diagnostics --resource $hsmresource --logs '[{"category": "AuditEvent","enabled": true}]' --storage-account $storageresource
所記錄的內容:
- 所有已驗證的 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": "8806614c-ebc3-11ea-9e9b-00155db778ad",
"subnetId": "(unknown)",
"httpStatusCode": 202,
"PoolName": "mhsmdemo",
"requestUri": "https://ContosoMHSM.managedhsm.azure.net/backup",
"resourceGroup": "ContosoResourceGroup",
"resourceProvider": "MICROSOFT.KEYVAULT",
"resource": "ContosoMHSM",
"resourceType": "managedHSMs"
}
]
下一步
- 了解佈建和使用受控 HSM 的最佳做法
- 深入了解如何備份和還原受控 HSM