共用方式為


Azure 監視器客戶自控金鑰

Azure 監視器中的資料會使用 Microsoft 管理的金鑰進行加密。 您可以使用自己的加密金鑰來保護工作區中的數據。 Azure 監視器中的客戶自控密鑰可讓您控制加密金鑰生命週期,以及存取記錄。 設定之後,內嵌至連結工作區的新數據會使用 Azure Key Vault 中的密鑰加密,或 Azure Key Vault 受控 HSM (硬體安全性模組)。

客戶自控金鑰概觀

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

Azure 監視器可確保所有資料和已儲存的查詢都會使用 Microsoft 管理的金鑰 (MMK) 在待用時加密。 Azure 監視器使用加密的方式與 Azure 儲存體加密的運作方式相同。

若要控制金鑰生命週期,並能夠撤銷存取資料、使用您自己的金鑰在 Azure Key VaultAzure Key Vault 受控 HSM 中加密資料。 客戶管理的金鑰功能可在 專用叢集 上使用,並提供較高層級的保護和控制。

擷取至專用叢集的數據會加密兩次-在服務層級使用Microsoft管理的密鑰或客戶管理的金鑰,以及在基礎結構層級使用兩種不同的加密演算法和兩個不同的密鑰。 雙重加密可防止其中一個加密演算法或密鑰遭到入侵的案例。 專用叢集也可讓您使用 Lockbox 來保護資料。

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

重要

專用叢集會使用 每天至少 100 GB 的承諾層定價模式

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

Azure 監視器會使用受控識別來授與 Azure Key Vault 中金鑰的存取權。 叢集層級支援Log Analytics叢集的身分識別。 為了在多個工作區上提供客戶管理的密鑰,Log Analytics 叢集資源會做為 金鑰保存庫 與 Log Analytics 工作區之間的中繼身分識別連線。 叢集的儲存體會使用與叢集相關聯的受控識別,透過 Microsoft Entra ID 向 Azure Key Vault 進行驗證。

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

  • 系統指派的受管理識別比較簡單,且在設置identitytypeSystemAssigned的時候會自動與叢集一起生成。 此身分稍後會用於授與您的金鑰保存庫存取儲存體的權限,以便進行數據加密和解密。
  • 使用者指派的受控識別可讓您在 identitytype 設定為 UserAssigned 時,在叢集建立時設定客戶自控金鑰,並在叢集建立之前授與金鑰保存庫中的權限。

在新叢集上設定客戶自控金鑰,或具有連結工作區內嵌資料的現有專用叢集。 您可以隨時從叢集取消連結工作區。 擷取至連結工作區的新數據會使用您的密鑰加密,而較舊的數據仍會以Microsoft管理的密鑰加密。 設定不會中斷擷取或查詢,其中查詢會順暢地跨舊數據和新數據執行。 當您將工作區從叢集取消連結時,新匯入的資料會使用 Microsoft 管理的密鑰進行加密。

重要

客戶自控金鑰功能是區域性的。 您的 Azure 金鑰保存庫、專用叢集和連結工作區必須位於相同的區域中,但可以位於不同的訂用帳戶中。

客戶自控金鑰概觀的螢幕擷取畫面。

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

加密金鑰類型

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

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

適用的規則如下:

  • 叢集記憶體對於每個記憶體帳戶都有唯一的加密密鑰,稱為 AEK
  • AEK 用來衍生 DEKs,這是用來加密寫入磁碟之每個數據區塊的密鑰。
  • 當您在叢集中設定客戶管理的 KEK 時,叢集儲存體會對 Key Vault 執行並 wrapunwrap 要求,以用於 AEK 加密和解密。
  • 您的 KEK 永遠不會離開您的金鑰庫。 如果您將密鑰儲存在 Azure Key Vault 受控 HSM 中,它永遠不會離開該硬體。
  • Azure 儲存體 使用與叢集相關聯的受控識別進行驗證。 它會透過 Microsoft Entra ID 存取 Azure Key Vault。

客戶自控金鑰佈建步驟

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

客戶管理的金鑰設定不支援設定身分識別和金鑰標識碼詳細數據。 透過 PowerShellCLIREST 要求執行這些作業。

所需的權限

若要執行叢集相關動作,您需要下列權限:

動作 需要的權限或角色
建立專用叢集 例如,Microsoft.Resources/deployments/*提供的 Microsoft.OperationalInsights/clusters/write 權限
變更叢集屬性 例如,Microsoft.OperationalInsights/clusters/write提供的 權限
將工作區連結至叢集 例如,Microsoft.OperationalInsights/clusters/write提供的 Microsoft.OperationalInsights/workspaces/writeMicrosoft.OperationalInsights/workspaces/linkedservices/write 權限
檢查工作區連結狀態 例如,Microsoft.OperationalInsights/workspaces/read提供的工作區 權限
取得叢集或檢查叢集的佈建狀態 例如,Microsoft.OperationalInsights/clusters/read提供的 權限
更新叢集中的承諾用量層或 billingType 例如,Microsoft.OperationalInsights/clusters/write提供的 權限
授與所需的權限 具有 */write 權限的擁有者或參與者角色,或具有 權限的 Microsoft.OperationalInsights/*
取消工作區與叢集的連結 例如,Microsoft.OperationalInsights/workspaces/linkedServices/delete提供的 權限
刪除專用叢集 例如,Microsoft.OperationalInsights/clusters/delete提供的 權限

儲存加密金鑰 (KEK)

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

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

重要

建議透過 Azure 事件方格 設定通知,以有效回應 Azure Key Vault 事件,例如即將到期的密鑰。 金鑰到期時,擷取和查詢不會受到影響,但您無法更新叢集中的密鑰。 請遵循下列步驟來解決

  1. 在 [JSON 檢視] 底下,識別 Azure 入口網站中叢集概觀頁面中所使用的密鑰
  2. 在 Azure Key Vault 中延長金鑰到期日
  3. 使用中索引鍵更新叢集,最好設置版本值為空,以一律自動使用最新版本。

[軟刪除] 和 [清除保護] 設定的螢幕擷取畫面。

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

建立叢集

叢集會使用受控識別,透過您的 Key Vault 進行資料加密。 identity以允許存取 Key Vault 時,將 typeSystemAssigned 屬性設定 UserAssigned,以用於加密和解密作業。

例如,在系統指派的受控識別的要求本文中新增這些屬性

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

附註

建立叢集之後,可以變更身分識別類型,且不會中斷擷取或查詢,並考量下列事項:

  • 無法同時更新叢集的身分識別和金鑰。 在兩個連續作業中更新。
  • 當將 SystemAssigned 更新為 UserAssigned 時,在 Key Vault 中 授予UserAssign 身分識別,然後在叢集中更新 identity
  • 當將 UserAssigned 更新為 SystemAssigned 時,在 Key Vault 中 授予SystemAssigned 身分識別,然後在叢集中更新 identity

請遵循專用叢集一文說明的程式。

授與 Key Vault 權限

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

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

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

    1. 在 Azure 入口網站中開啟您的 Key Vault,然後選取 [設定>存取>設定] Azure 角色型存取控制套用
    2. 選取 [前往存取控制(IAM)],然後新增 Key Vault Crypto Service Encryption User 角色指派。
    3. 在 [成員] 索引標籤中選取 [受控識別],然後選取身分識別的訂用帳戶和身分識別作為成員。

    授與 Key Vault RBAC 權限的螢幕擷取畫面。

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

    在 Azure 入口網站中開啟您的 Key Vault,然後選取 [存取原則]>[保存庫存取原則]>[+ 新增存取原則],以使用以下這些設定建立原則:

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

    授與 Key Vault 存取原則權限的螢幕擷取畫面。

    需要取得 權限,以驗證您的 Key Vault 是否已配置為可復原,以保護您的金鑰和 Azure 監視器資料的存取權。

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

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

此步驟使用金鑰和版本來更新專用叢集儲存體,以用於AEKwrapunwrap

重要

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

授與 Key Vault 權限的螢幕擷取畫面。

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

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

N/A

重要

只有在叢集佈建之後,才能執行此步驟。 如果您在佈建之前連結工作區並匯入資料,已匯入的資料會被丟棄且無法恢復。

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

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

金鑰撤銷

重要

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

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

金鑰輪替

金鑰輪替有兩種模式:

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

在金鑰輪替作業期間和之後,所有數據都會保持可存取。 數據一律會使用帳戶加密金鑰(AEK)進行加密,該金鑰將使用您在金鑰保存庫中的新鑰匙加密金鑰(KEK)版本進行加密。

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

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

活頁簿的客戶自控金鑰

在考慮適用於已儲存查詢和記錄搜尋警示的客戶自控金鑰的注意事項後,當您在活頁簿的「儲存」操作中選擇「將內容儲存至 Azure 儲存體帳戶」時,Azure 監視器可讓您將使用您自己的金鑰加密的活頁簿查詢儲存在您的儲存體帳戶中。

活頁簿儲存的螢幕擷取畫面。

附註

無論客戶管理的金鑰配置為何,查詢在以下情況下仍會使用 Microsoft 金鑰 (MMK) 加密:Azure 儀表板、Azure 邏輯應用程式、Azure 筆記本和自動化腳本。

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

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

  • 您必須擁有工作區和儲存體帳戶的「寫入」權限。
  • 記憶體帳戶必須是 StorageV2,且位於與 Log Analytics 工作區相同的區域中。 連結適用於查詢的儲存帳戶會從工作區中移除已儲存的查詢和函式,以保護隱私。 在設定之前複製現有的已儲存查詢和函式。 您可以使用 PowerShell 來檢視已儲存的查詢。
  • 儲存在 查詢套件中的查詢 不會儲存在連結的記憶體帳戶上,且無法使用客戶管理的密鑰加密。 建議使用「 另存為舊版查詢 」,以使用客戶管理的密鑰來保護查詢。
  • 將查詢和函式儲存在記憶體中會被視為服務成品,而且其格式可能會變更。
  • 連結儲存體帳戶進行查詢時,不支援查詢「歷程記錄」和「釘選到儀表板」。
  • 您可以連結單一或個別的儲存帳戶,用於保存查詢和記錄搜尋警示查詢。
  • 記錄搜尋警示儲存在 Blob 儲存體中,客戶自控金鑰加密可在儲存體帳戶建立時設定,或是稍後再設定。
  • 觸發的記錄搜尋警示不包含搜尋結果或警示查詢。 使用 警示維度 來獲得已發出警示的上下文。

設定 BYOS 用於已儲存的查詢

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

N/A

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

配置 BYOS 以用於日誌搜尋警示查詢

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

N/A

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

客戶保險箱

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

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

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

客戶自控金鑰作業

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

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

限制和條件約束

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

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

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

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

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

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

  • Lockbox 目前在中國無法使用。

  • Lockbox 不適用於具有輔助資料表方案的資料表。

  • 系統會自動針對自 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(虛擬網路),則無法使用客戶管理的密鑰搭配使用者指派的受控識別。 在此案例中使用系統指派的受控識別。

疑難排解

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

    • 正常作業:儲存體會在短時間內快取 AEK,並定期回到 Key Vault 以 unwrap

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

  • Key Vault 存取速率 (叢集儲存體存取 Key Vault 來進行 wrapunwrap 作業的頻率) 介於 6 到 60 秒之間。

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

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

  • 如果工作區已連結至另一個叢集,則無法將工作區連結至該叢集。

  • 如果您建立叢集並立即指定 KeyVaultProperties ,作業可能會失敗,直到將身分識別指派給叢集,並授與 Key Vault 為止。

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

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

  • 如果您在 Key Vault 中輪替金鑰,且未更新叢集中的新金鑰標識碼詳細數據,叢集會繼續使用先前的金鑰,且您的數據會變成無法存取。 更新叢集中的新金鑰標識碼詳細數據,以繼續數據擷取和查詢功能。 使用 '' 表示法更新金鑰版本,以確保記憶體一律會自動使用最新的密鑰版本。

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

  • 錯誤訊息

    叢集更新

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

    叢集取得

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

下一步