受控 HSM 記錄

在建立一或多個受控 HSM 之後,您可能會想要監視 HSM 的存取方式、時間和存取者。 為此,您可以啟用記錄,以在您提供的 Azure 儲存體帳戶中儲存這方面的資訊。 系統會自動為您指定的儲存體帳戶建立名為 insights-logs-auditevent 的新容器。 您可以使用這個相同的儲存體帳戶來收集多個受控 HSM 的記錄。

在受控 HSM 作業完成 10 分鐘 (最多) 後,您就可以存取記錄資訊。 但大多不用這麼久。 儲存體帳戶中的記錄由您全權管理:

  • 請使用標準的 Azure 存取控制方法限制可存取記錄的人員,藉此來保護記錄。
  • 刪除不想繼續保留在儲存體帳戶中的記錄。

本教學課程可協助您開始使用受控 HSM 記錄。 您將會建立儲存體帳戶、啟用記錄及解譯收集到的記錄資訊。

注意

本教學課程不會指示如何建立受控 HSM 或金鑰。 本文提供更新診斷記錄的 Azure CLI 指示。

必要條件

若要完成本文中的步驟,您必須具有下列項目︰

Azure Cloud Shell

Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell,與 Azure 服務共同使用。 您可以使用 Cloud Shell 預先安裝的命令,執行本文提到的程式碼,而不必在本機環境上安裝任何工具。

要啟動 Azure Cloud Shell:

選項 範例/連結
選取程式碼或命令區塊右上角的 [試試看]。 選取 [試試看] 並不會自動將程式碼或命令複製到 Cloud Shell 中。 Azure Cloud Shell 的「試試看」範例螢幕擷取畫面。
請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 啟動 Azure Cloud Shell 的按鈕。
選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 顯示 Azure 入口網站中 Cloud Shell 按鈕的螢幕擷取畫面

若要使用 Azure Cloud Shell:

  1. 啟動 Cloud Shell。

  2. 選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。

  3. 透過在 Windows 和 Linux 上選取 Ctrl+Shift+V;或在 macOS 上選取 Cmd+Shift+V,將程式碼或命令貼到 Cloud Shell 工作階段中。

  4. 選取 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"
  }
]

下一步