Azure 監視器客戶管理的金鑰

Azure 監視器中的資料會使用 Microsoft 管理的金鑰進行加密。 您可以使用自己的加密金鑰來保護工作區中的資料和已儲存的查詢。 Azure 監視器中的客戶自控金鑰可讓您更有彈性地管理對記錄的存取控制。 設定之後,擷取至連結工作區的新資料會使用儲存於 Azure Key VaultAzure Key Vault 受控 "HSM" 中的金鑰進行加密。

設定之前請先檢閱限制和條件約束

客戶自控金鑰概觀

待用資料加密是組織中常見的隱私權和安全性需求。 您可以讓 Azure 完全管理待用資料加密,同時有各種選項可密切管理加密和加密金鑰。

Azure 監視器可確保所有資料和已儲存的查詢都會使用 Microsoft 管理的金鑰 (MMK) 在待用時加密。 您可以在 Azure Key Vault 中使用自己的金鑰來加密資料,以控制金鑰生命週期,並且能夠撤銷對資料的存取權。 Azure 監視器使用加密的方式與 Azure 儲存體加密的運作方式相同。

客戶自控金鑰會在提供較高保護層級和控制的專用叢集上提供。 資料會在儲存體中加密兩次,一次是在服務層級使用 Microsoft 管理的金鑰或客戶自控金鑰進行加密,另一次則是在基礎結構層級使用兩個不同的加密演算法和兩個不同金鑰進行加密。 雙重加密可提供保護,以防止其中一個加密演算法或金鑰可能遭到入侵的案例。 專用叢集也可讓您使用 Lockbox 來保護資料。

在過去 14 天內嵌或最近曾在查詢中使用的資料均會保留於 (由 SSD 支援的) 熱快取中,以提升查詢效率。 不論客戶自控金鑰設定為何,SSD 資料都會使用 Microsoft 金鑰進行加密,但您對 SSD 存取的控制會遵循金鑰撤銷

Log Analytics 專用叢集定價模式需要定額層,從每天 100 GB 開始。

客戶自控金鑰如何在 Azure 監視器中運作

Azure 監視器使用受控識別來授與對 Azure Key Vault 的存取權。 叢集層級支援 Log Analytics 叢集的身分識別。 為了在多個工作區上允許客戶自控金鑰,Log Analytics「叢集」資源會在 Key Vault 與 Log Analytics 工作區之間,以中繼身分識別連線的形式執行。 叢集的儲存體會使用與叢集相關聯的受控識別,透過 Microsoft Entra ID 向 Azure Key Vault 進行驗證。

叢集支援兩種受控識別類型:系統指派的和使用者指派的,您可以根據自己的情況在叢集中定義單一身分識別。

  • 系統指派的受控識別比較簡單,且在身分識別 type 設定為 "SystemAssigned" 時,會隨著叢集建立自動產生。 此身分識別後續可用來授與對 Key Vault 的儲存體存取權,以進行包裝和解除包裝作業。
  • 使用者指派的受控識別可讓您在叢集建立時設定客戶自控金鑰 (若於叢集建立前在 Key Vault 中授與其權限)。

您可以將客戶自控金鑰設定套用至新的叢集,或已連結至工作區並擷取資料的現有叢集。 擷取至連結工作區的新資料會使用您的金鑰進行加密,並在設定之前內嵌較舊的資料,但仍會使用 Microsoft 金鑰加密。 您的查詢不會受到客戶自控金鑰設定影響,並且可在新、舊資料間順暢執行。 您可以隨時取消工作區與叢集的連結。 在取消連結後擷取新的資料會使用 Microsoft 金鑰加密,且查詢可在新、舊資料間順暢執行。

重要

客戶自控金鑰功能是區域性的。 您的 Azure Key Vault、叢集及連結的工作區都必須位於相同區域,但可位於不同訂用帳戶中。

Screenshot of customer-managed key overview.

  1. Key Vault
  2. 具有受控識別及 Key Vault 權限的 Log Analytics 叢集資源:此身分識別會傳播至基礎的專用叢集儲存體
  3. 專用叢集
  4. 連結至專用叢集的工作區

加密金鑰作業

儲存體資料加密牽涉到三種類型的金鑰:

  • "KEK":金鑰加密金鑰 (您的客戶自控金鑰)
  • "AEK":帳戶加密金鑰
  • "DEK":資料加密金鑰

適用的規則如下:

  • 叢集儲存體對於每個儲存體帳戶具有唯一的加密金鑰,也就是所謂的 "AEK"。
  • "AEK" 會用來衍生 "DEK",其為用來加密寫入磁碟之每個資料區塊的金鑰。
  • 當您在 Key Vault 中設定金鑰,並更新叢集中的金鑰詳細資料時,叢集儲存體會執行「包裝」和「解除包裝」"AEK" 的要求,以進行加密和解密。
  • 您的 "KEK" 絕不會離開 Key Vault,而就受控的 "HSM" 來說,其絕不會離開硬體。
  • Azure 儲存體會使用與叢集資源相關聯的受控識別進行驗證。 它會透過 Microsoft Entra ID 存取 Azure Key Vault。

客戶自控金鑰佈建步驟

  1. 建立 Azure Key Vault 並儲存金鑰
  2. 建立叢集
  3. 授與 Key Vault 的權限
  4. 使用金鑰識別碼詳細資料更新叢集
  5. 連結工作區

Azure 入口網站目前不支援客戶自控金鑰設定,而且可以透過 PowerShellCLIREST 要求執行佈建。

儲存加密金鑰 (KEK)

Azure 金鑰管理產品的組合會列出可使用的保存庫和受控 HSM。

在規劃叢集的區域中建立或使用現有的 Azure Key Vault。 在您的金鑰保存庫中,產生或匯入要用於記錄加密的金鑰。 Azure Key Vault 必須設定為可復原,才能保護您的金鑰和 Azure 監視器中對資料的存取權。 您可在 Key Vault 的 [屬性] 下確認此設定,其中應該已啟用 [虛刪除] 和 [清除保護]

Screenshot of soft delete and purge protection settings.

這些設定可以透過 CLI 和 PowerShell,在 Key Vault 中進行更新:

建立叢集

叢集會使用受控識別,透過您的 Key Vault 進行資料加密。 建立叢集時,將身分識別 type 屬性設定為 SystemAssigned,以允許存取 Key Vault 進行「包裝」和「解除包裝」作業。

叢集中適用於系統指派受控識別的身分識別設定

{
  "identity": {
    "type": "SystemAssigned"
    }
}

遵循專用叢集一文中說明的程序。

授與 Key Vault 權限

Key Vault 中有兩種權限模型可授與叢集和基礎儲存體的存取權 — Azure 角色型存取控制 (Azure RBAC) 和保存庫存取原則 (舊版)。

  1. 指派您控制的 Azure RBAC (建議)

    若要新增角色指派,必須要有 Microsoft.Authorization/roleAssignments/write 和 Microsoft.Authorization/roleAssignments/delete 權限,例如使用者存取系統管理員擁有者

    在 Azure 入口網站中開啟您的 Key Vault,在 [設定]按一下存取設定,然後選取 [Azure 角色型存取控制] 選項。 接著,輸入存取控制 (IAM),並新增 [Key Vault 密碼編譯服務加密使用者] 角色指派。

    Screenshot of Grant Key Vault RBAC permissions.

  2. 指派保存庫存取原則 (舊版)

    在 Azure 入口網站中,開啟 Key Vault 並按一下 [存取原則],選取 [保存庫存取原則],然後按一下 [+ 新增存取原則] 以使用下列設定來建立原則:

    • 金鑰權限:選取 [取得]、[包裝金鑰] 和 [將金鑰解除包裝]
    • 選取主體:根據叢集中使用的身分識別類型而定 (系統或使用者指派的受控識別)
      • 系統指派的受控識別:輸入叢集名稱或叢集主體識別碼
      • 使用者指派的受控識別:輸入身分識別名稱

    Screenshot of Grant Key Vault access policy permissions.

    需要 [取得] 權限,才能確認 Key Vault 已設定為可復原來保護金鑰和 Azure 監視器資料的存取權。

使用金鑰識別碼詳細資料更新叢集

叢集上的所有作業都需要 Microsoft.OperationalInsights/clusters/write 動作權限。 此權限可以透過包含 */write 動作的擁有者或參與者,或透過包含 Microsoft.OperationalInsights/* 動作的 Log Analytics 參與者角色來授與。

此步驟使用金鑰和版本來更新專用叢集儲存體,以用於 "AEK" 包裝和解除包裝。

重要

  • 金鑰輪替可自動進行或需要明確的金鑰更新,請參閱金鑰輪替以判斷適合您的方法,然後更新叢集中的金鑰識別碼詳細資料。
  • 叢集更新不應在相同作業中同時包括身分識別和金鑰識別碼詳細資料。 如果您需要更新這兩者,則更新應該在兩個連續作業中進行。

Screenshot of Grant Key Vault permissions.

使用金鑰識別碼詳細資料來更新叢集中的 KeyVaultProperties。

作業為非同步,而且可能需要一些時間才能完成。

N/A

重要

只有在叢集佈建之後,才能執行此步驟。 如果在佈建之前連結工作區並內嵌資料,則內嵌的資料將遭到捨棄且無法復原。

您需要擁有工作區和叢集的「寫入」權限,才能執行此作業。 其包含 Microsoft.OperationalInsights/workspaces/writeMicrosoft.OperationalInsights/clusters/write

遵循專用叢集一文中說明的程序。

金鑰撤銷

重要

  • 撤銷資料存取權的建議方式是停用金鑰,或刪除 Key Vault 中的存取原則。
  • 將叢集的 identitytype 設定為 None,也會撤銷資料的存取權,但不建議使用此方法,因為您無法在不連絡支援人員的情況下加以還原。

叢集儲存體的金鑰權限變更一律會在一小時或更短的時間內生效,且儲存體會變得無法使用。 內嵌至連結工作區的新資料會遭捨棄且無法復原。 這些工作區上的資料無法存取且查詢會失敗。 只要叢集和工作區未遭刪除,先前內嵌的資料就會保留在儲存體中。 無法存取的資料由資料保留原則所控管,且會在達到保留期時清除。 在過去 14 天內嵌的資料或最近曾在查詢中使用的資料也會保留於 (由 SSD 支援的) 熱快取中,以提升查詢效率。 SSD 上的資料會在金鑰撤銷作業中遭到刪除且變成無法存取。 叢集儲存體會嘗試定期連線到 Key Vault 以進行包裝和解除包裝,且在金鑰啟用後,解除包裝就會成功,SSD 資料會從儲存體中重新載入,且資料擷取和查詢均會在 30 分鐘內繼續。

金鑰輪替

金鑰輪替有兩種模式:

  • 自動輪替:使用 "keyVaultProperties" 但省略 "keyVersion" 屬性或將其設為 "" 來更新叢集。 儲存體會自動使用最新的金鑰版本。
  • 明確的金鑰版本更新:使用 "keyVersion" 屬性中的金鑰版本來更新叢集。 金鑰輪替在叢集中需要明確的 "keyVaultProperties" 更新,請參閱使用金鑰識別碼詳細資料更新叢集。 如果您在 Key Vault 中產生新的金鑰版本,但未在叢集中加以更新,叢集儲存體將繼續使用先前的金鑰。 如果您先停用或刪除舊金鑰,然後再更新叢集中的新金鑰,則會進入金鑰撤銷狀態。

金鑰輪替作業之後,您的所有資料仍可存取。 資料一律使用帳戶加密金鑰 ("AEK") 進行加密,這會使用您在 Key Vault 中新的金鑰加密金鑰 ("KEK") 版本進行加密。

適用於已儲存查詢和記錄搜尋警示的客戶自控金鑰

Log Analytics 中使用的查詢語言具有表達性,而且可以在註解或查詢語法中包含敏感性資訊。 有些組織要求這類資訊要受到客戶自控金鑰原則所保護,而且您需要儲存使用金鑰進行加密的查詢。 Azure 監視器可讓您在連結至工作區時,將使用金鑰加密的已儲存查詢和記錄搜尋警示儲存在您自己的儲存體帳戶中。

活頁簿的客戶自控金鑰

Azure 監視器可讓您在活頁簿的「儲存」作業中選取 [將內容儲存至 Azure 儲存體帳戶],以將使用金鑰加密的活頁簿查詢儲存在您自己的儲存體帳戶中,惟須留意適用於已儲存查詢和記錄搜尋警示的客戶自控金鑰提及的注意事項。

Screenshot of Workbook save.

注意

不論客戶自控金鑰設定為何,在下列案例中,查詢都會以 Microsoft 金鑰 ("MMK") 加密:Azure 儀表板、Azure 邏輯應用程式、Azure Notebooks 和自動化 Runbook。

連結已儲存查詢的儲存體帳戶時,服務會將已儲存查詢和記錄搜尋警示查詢儲存在您的儲存體帳戶中。 透過對儲存體帳戶待用加密原則的控制,您可以使用客戶自控金鑰來保護已儲存的查詢和記錄搜尋警示。 不過,您需負責支付與該儲存體帳戶相關聯的成本。

設定客戶自控金鑰進行查詢之前的考慮事項

  • 您必須擁有工作區和儲存體帳戶的「寫入」權限。
  • 請務必在 Log Analytics 工作區所在的相同區域中建立您的儲存體帳戶 (使用客戶自控金鑰加密)。 這是很重要的,因為已儲存的查詢會儲存在資料表儲存體中,且只能在儲存體帳戶建立時進行加密。
  • 儲存在查詢套件中的查詢不會使用客戶自控金鑰加密。 請在儲存查詢時改為選取 [另存為舊版查詢],以使用客戶自控金鑰保護查詢。
  • 儲存體中的儲存查詢會被視為服務成品,且其格式可能會變更。
  • 連結用於查詢的儲存體帳戶,會從工作區中移除現有的儲存查詢。 進行此設定之前,請先複製您所需的儲存查詢。 您可以使用 PowerShell 來檢視已儲存的查詢。
  • 連結儲存體帳戶進行查詢時,不支援查詢「歷程記錄」和「釘選到儀表板」。
  • 您可以將單一儲存體帳戶連結至已儲存查詢和記錄搜尋警示查詢的工作區。
  • 記錄搜尋警示儲存在 Blob 儲存體中,客戶自控金鑰加密可在儲存體帳戶建立時設定,或是稍後再設定。
  • 引發的記錄搜尋警示將不會包含搜尋結果或警示查詢。 您可以使用警示維度來取得引發警示中的內容。

為已儲存的查詢設定 BYOS

連結用於查詢的儲存體帳戶,以將已儲存的查詢保留在儲存體帳戶中。

N/A

設定之後,任何新的「已儲存的搜尋」查詢都將儲存於您的儲存體中。

為記錄搜尋警示查詢設定 BYOS

連結用於警示的儲存體帳戶,以將記錄搜尋警示查詢保留在儲存體帳戶中。

N/A

設定之後,任何新的警示查詢都將儲存於您的儲存體中。

客戶加密箱

加密箱讓您能夠在支援要求期間,可以控制是否要核准或拒絕 Microsoft 工程師存取您資料的要求。

加密箱提供於 Azure 監視器中的專用叢集,其中,會在訂用帳戶層級授與您對資料的存取權限。

深入了解適用於 Microsoft Azure 的客戶加密箱

客戶自控金鑰作業

客戶自控金鑰會在專用叢集上提供,而這些作業已在專用叢集一文中加以參考

  • 取得資源群組中的所有叢集
  • 取得訂用帳戶中的所有叢集
  • 更新叢集中的「容量保留」
  • 更新叢集中的「billingType」
  • 取消工作區與叢集的連結
  • 刪除叢集

限制和條件約束

  • 每個區域和訂用帳戶中最多可以建立五個作用中的叢集。

  • 每個區域和訂用帳戶中最多可以存在七個保留叢集 (作用中或最近刪除的叢集)。

  • 最多可將 1,000 個 Log Analytics 工作區連結至叢集。

  • 在特定工作區上,最多允許在 30 天內執行兩個工作區連結作業。

  • 目前不支援將叢集移至另一個資源群組或訂用帳戶。

  • 叢集更新不應在相同作業中同時包含身分識別和金鑰識別碼詳細資料。 如果您需要更新這兩者,則更新應該在兩個連續作業中進行。

  • 加密箱目前不適用於中國。

  • 系統會自動針對自 2020 年 10 月在支援的區域中建立的叢集設定雙重加密。 您可以在叢集上傳送 GET 要求,並針對已啟用雙重加密的叢集,觀察 isDoubleEncryptionEnabled 值是否為 true,以驗證已將叢集設定為雙重加密。

    • 如果您建立叢集並收到錯誤:「region-name 不支援針對叢集使用雙重加密」,您仍然可以透過在 REST 要求本文中新增 "properties": {"isDoubleEncryptionEnabled": false},來建立不含雙重加密的叢集。
    • 建立叢集後,就無法變更雙重加密設定。

連結至叢集時,允許刪除連結的工作區。 如果您決定在虛刪除期間復原工作區,則工作區會返回先前的狀態,並維持與叢集的連結。

  • 客戶自控金鑰加密會在設定時間之後套用到新的內嵌資料。 設定之前內嵌的資料會持續以 Microsoft 金鑰加密。 您可以順暢地查詢在客戶自控金鑰設定前後內嵌的資料。

  • Azure Key Vault 必須設定為可復原。 這些屬性預設不會啟用,且應該使用 CLI 或 PowerShell 來設定:

    • 虛刪除
    • 清除保護應會開啟,以防止強制刪除祕密保存庫,即使在虛刪除之後也一樣。
  • 您的 Azure Key Vault、叢集和工作區必須位於相同區域和相同的 Microsoft Entra 租用戶中,但可位於不同的訂用帳戶中。

  • 將叢集的 identitytype 設定為 None,也會撤銷資料的存取權,但不建議使用此方法,因為您無法在不連絡支援人員的情況下加以還原。 撤銷資料存取權的建議方式是金鑰撤銷

  • 如果您的 Key Vault 位於 Private-Link (vNet) 中,就無法將客戶自控金鑰與使用者指派的受控識別搭配使用。 在此案例中,您可以使用系統指派的受控識別。

  • 目前客戶管理的金鑰案例不支援搜尋作業非同步查詢

疑難排解

  • 每個 Key Vault 可用性的行為:

    • 正常作業:儲存體會在短時間內快取 "AEK",並定期回到 Key Vault 以解除包裝。

    • Key Vault 連線錯誤 — 儲存體藉由允許金鑰在可用性問題發生期間保留於快取中來處理暫時性錯誤 (逾時、連線失敗、"DNS" 問題),並克服短暫中斷和可用性問題。 查詢和擷取功能會繼續進行,而不會中斷。

  • Key Vault 存取率:Azure 叢集儲存體存取 Key Vault 以進行包裝和解除包裝的頻率介於 6 到 60 秒之間。

  • 如果您在叢集處於佈建狀態或更新狀態時更新叢集,更新就會失敗。

  • 如果在建立叢集時發生衝突錯誤,可能是有同名的叢集已在過去 14 天內刪除,但仍保留。 刪除的叢集名稱會在刪除的 14 天後變成可用名稱。

  • 工作區連結至叢集時若連結至另一個叢集,連結就會失敗。

  • 如果您建立叢集並立即指定 KeyVaultProperties,作業可能會失敗,除非在叢集中指派身分識別,並且在 Key Vault 中授與。

  • 如果您使用 KeyVaultProperties 更新現有叢集,且 Key Vault 中缺少 'Get' 金鑰存取原則,則作業會失敗。

  • 如果無法部署叢集,請驗證您的 Azure Key Vault、叢集及連結的工作區均位於相同區域。 但其可位於不同的訂用帳戶中。

  • 如果您在 Key Vault 中輪替金鑰,但未在叢集中將新的金鑰識別碼詳細資料更新,則叢集會繼續使用先前的金鑰,且資料將變得無法存取。 更新叢集中新的金鑰識別碼詳細資料,以繼續進行資料擷取和查詢。 您可以使用 "''" 更新金鑰版本,讓儲存體一律自動使用最新的金鑰版本。

  • 有些作業是長時間執行的,且可能需要一些時間才能完成,例如叢集建立、叢集金鑰更新和叢集刪除。 您可以將 GET 要求傳送至叢集或工作區,並觀察回應,以檢查作業狀態。 例如,未連結的工作區在features 下方不會有 clusterResourceId

  • 錯誤訊息

    叢集更新

    • 400:叢集處於刪除狀態。 非同步作業正在進行中。 叢集必須先完成其作業,然後才能執行任何更新作業。
    • 400:KeyVaultProperties 並非空白,但格式不正確。 請參閱金鑰識別碼更新
    • 400:無法在 Key Vault 中驗證金鑰。 可能是因為權限不足,或金鑰不存在時。 驗證您已在 Key Vault 中設定金鑰和存取原則
    • 400:金鑰無法復原。 Key Vault 必須設定為虛刪除和清除保護。 請參閱 Key Vault 文件
    • 400:無法立即執行作業。 請等候非同步作業完成,然後再試一次。
    • 400:叢集處於刪除狀態。 請等候非同步作業完成,然後再試一次。

    叢集取得

    • 404 -- 找不到叢集,叢集可能已遭刪除。 如果您嘗試使用該名稱建立叢集,但發生衝突,表示該叢集正在刪除中。

下一步