攜帶您自己的Power BI 加密金鑰

Power BI 會加密待用處理中的數據。 根據預設,Power BI 會使用 Microsoft 管理的密鑰來加密您的數據。 在 Power BI 進階版 中,您也可以將自己的金鑰用於匯入語意模型的待用數據。 這種方法通常描述為 攜帶您自己的密鑰 (BYOK)。 如需詳細資訊,請參閱 數據源和記憶體考慮

為什麼要使用 BYOK?

BYOK 可讓您更輕鬆地符合合規性需求,以指定與雲端服務提供者的主要安排,在此案例中為 Microsoft。 透過 BYOK,您可以在應用層級提供和控制 Power BI 待用數據的加密密鑰。 因此,如果決定結束服務,您可以行使控制權並撤銷組織的密鑰。 藉由撤銷金鑰,數據會在 30 分鐘內變成無法讀取服務。

數據源和記憶體考慮

若要使用 BYOK,您必須從 Power BI Desktop (PBIX) 檔案將數據上傳至 Power BI 服務。 在下列案例中,您無法使用 BYOK:

BYOK 僅適用於語意模型。 用戶可上傳至服務的推播語意模型、Excel 檔案和 CSV 檔案不會使用您自己的密鑰加密。 若要識別哪些項目儲存在工作區中,請使用下列 PowerShell 命令:

PS C:\> Get-PowerBIWorkspace -Scope Organization -Include All

注意

此 Cmdlet 需要 Power BI 管理模組 v1.0.840。 您可以藉由執行 Get-InstalledModule -Name MicrosoftPowerBIMgmt來查看您擁有的版本。 執行 Install-Module -Name MicrosoftPowerBIMgmt以安裝最新版本。 您可以在 Power BI PowerShell Cmdlet 模組取得 Power BI Cmdlet 及其參數的詳細資訊。

設定 Azure Key Vault

本節說明如何設定 Azure 金鑰保存庫,這是用來安全地儲存和存取秘密的工具,例如加密密鑰。 您可以使用現有的金鑰保存庫來儲存加密金鑰,或者您可以建立一個新的密鑰,以便與 Power BI 搭配使用。

下列指示假設 Azure 金鑰保存庫 的基本知識。 如需詳細資訊,請參閱什麼是 Azure 金鑰保存庫?

以下欄位設定金鑰儲存庫:

  1. 使用包裝和解除包裝許可權,將 Power BI 服務 新增為密鑰保存庫的服務主體

  2. 建立長度為 4096 位的 RSA 金鑰 ,或使用此類型的現有金鑰,並具有包裝和解除包裝許可權。

    重要

    Power BI BYOK 僅支持長度為 4096 位的 RSA 金鑰。

  3. 建議:檢查金鑰保存庫是否已啟用虛刪除選項。

新增服務主體

  1. 登入 Azure 入口網站 並搜尋 金鑰保存庫

  2. 在您的密鑰保存庫中,選取 [ 存取原則],然後選擇 [ 建立]。

    Screenshot of the Create button for access policies in the Azure portal.

  3. 在 [許可權] 畫面的 [密鑰許可權] 底下,選取 [解除包裝密鑰] 和 [包裝密鑰],然後選擇 [下一步]。

    Screenshot of the permission screen to create a new access policy.

  4. 在 [ 主體 ] 畫面上,搜尋並選取 [Microsoft.Azure.AnalysisServices]。

    注意

    如果您找不到 Microsoft.Azure.AnalysisServices,則與 Azure 金鑰保存庫 相關聯的 Azure 訂用帳戶可能從未有與其相關聯的 Power BI 資源。 請嘗試改為搜尋下列字串:0000000009-0000-0000-c000-0000000000000。

    Screenshot of the Principal screen to select a new principal for the access policy.

  5. 選取 [下一步],然後選取 [檢閱 + 建立]。>

注意

若要撤銷對數據的 Power BI 存取權,請從 Azure 金鑰保存庫 移除此服務主體的存取權。

建立 RSA 金鑰

  1. 在金鑰保存庫的 [金鑰] 下,選取 [產生/匯入]。

  2. 選取 RSA金鑰類型,以及 4096RSA 金鑰大小

    Screenshot of the RSA key type and size selections.

  3. 選取 建立

  4. 在 [金鑰] 底下,選取您建立的金鑰。

  5. 選取金鑰目前 版本的 GUID。

  6. 確認已選取 [包裝金鑰] 和 [解除包裝金鑰]。 在 Power BI 中啟用 BYOK 時,複製要使用的金鑰標識碼

    Screenshot of the key properties with the identifier and permitted operations.

虛刪除選項

您應該在金鑰保存庫上啟用 虛刪除 ,以防止意外金鑰或金鑰保存庫刪除時遺失資料。 若要啟用虛刪除屬性,您必須使用PowerShell,因為此選項尚無法在 Azure 入口網站 中使用。

在正確設定 Azure 金鑰保存庫 之後,您就可以在租用戶上啟用 BYOK。

設定 Azure 金鑰保存庫 防火牆

本節說明如何使用受信任的 Microsoft 服務防火牆略過,設定 Azure 金鑰保存庫 周圍的防火牆。

注意

您可以選擇在金鑰儲存庫上啟用防火牆規則。 您也可以根據預設設定,選擇讓密鑰保存庫上停用防火牆。

Power BI 是受信任的 Microsoft 服務。 您可以指示金鑰保存庫防火牆允許存取所有受信任的 Microsoft 服務,此設定可讓 Power BI 存取您的金鑰保存庫,而不需指定端點連線。

若要設定 Azure 金鑰保存庫 以允許存取受信任的 Microsoft 服務,請遵循下列步驟:

  1. 在 Azure 入口網站 中搜尋 金鑰保存庫,然後選取您想要允許從 Power BI 和其他所有受信任 Microsoft 服務 存取的金鑰保存庫。

  2. 從左側導覽面板中選取 [ 網络 ]。

  3. 在 [防火牆和虛擬網络] 底下,選取 [允許來自特定虛擬網络和IP 位址的公用存取]。

    Screenshot of the Azure Key Vault networking option, with the firewalls and virtual networks option selected.

  4. 向下捲動至 [防火牆] 區段。 選取 [允許信任 Microsoft 服務 略過此防火牆

    Screenshot of the option to allow trusted Microsoft services to bypass this firewall.

  5. 選取套用

在您的租用戶上啟用 BYOK

您可以使用 PowerShell 在租用戶層級啟用 BYOK。 首先,安裝 PowerShell 的 Power BI 系統管理套件,並將您建立並儲存在 Azure 金鑰保存庫 中的加密金鑰引入 Power BI 租使用者。 接著,您可以為每個 進階版 容量指派這些加密金鑰,以加密容量中的內容。

重要考量

啟用 BYOK 之前,請記住下列考慮:

  • 此時,您無法在啟用 BYOK 之後停用 BYOK。 根據您為 指定參數 Add-PowerBIEncryptionKey的方式,您可以控制如何針對一或多個容量使用 BYOK。 不過,您無法復原對租使用者密鑰的引進。 如需詳細資訊,請參閱 啟用 BYOK

  • 您無法將使用 BYOK 的工作區從 Power BI 中的容量 進階版 直接移至共用容量。 您必須先將工作區移至未啟用 BYOK 的容量。

  • 如果您將使用 BYOK 的工作區從 Power BI 中的容量 進階版 移至共用容量,報表和語意模型會因為使用密鑰加密而變得無法存取。 若要避免這種情況,您必須先將工作區移至未啟用 BYOK 的容量。

啟用 BYOK

若要啟用 BYOK,您必須是使用 Cmdlet 登入的 Connect-PowerBIServiceAccount Power BI 系統管理員。 然後使用 Add-PowerBIEncryptionKey 來啟用 BYOK,如下列範例所示:

Add-PowerBIEncryptionKey -Name'Contoso Sales' -KeyVaultKeyUri'https://contoso-vault2.vault.azure.net/keys/ContosoKeyVault/b2ab4ba1c7b341eea5ecaaa2wb54c4d2'

若要新增多個索引鍵,請使用 和-KeyVaultKeyUri的不同值-Name執行 Add-PowerBIEncryptionKey

Cmdlet 接受影響目前和未來容量加密的兩個參數。 根據預設,兩個參數都不會設定:

  • -Activate:表示此金鑰用於租使用者中尚未加密的所有現有容量。

  • -Default:表示此金鑰現在是整個租用戶的預設值。 當您建立新的容量時,容量會繼承此金鑰。

重要

如果您指定 -Default,則會使用您指定的金鑰或更新的預設金鑰來加密您租使用者上建立的所有容量。 您無法復原預設作業,因此您無法在租使用者中建立不使用 BYOK 的進階容量。

在租用戶上啟用 BYOK 之後,請設定一或多個 Power BI 容量的加密密鑰:

  1. 使用 Get-PowerBICapacity 取得下一個步驟所需的容量識別碼。

    Get-PowerBICapacity -Scope Individual
    

    Cmdlet 會傳回類似下列輸出的輸出:

    Id              : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    DisplayName     : Test Capacity
    Admins          : adam@sometestdomain.com
    Sku             : P1
    State           : Active
    UserAccessRight : Admin
    Region          : North Central US
    
  2. 使用 Set-PowerBICapacityEncryptionKey 來設定加密密鑰:

    Set-PowerBICapacityEncryptionKey -CapacityId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -KeyName 'Contoso Sales'
    

您可以控制如何在租用戶之間使用 BYOK。 例如,若要加密單一容量,請呼叫 Add-PowerBIEncryptionKey 不含 -Activate-Default的 。 然後呼叫 Set-PowerBICapacityEncryptionKey 您想要啟用 BYOK 的容量。

管理 BYOK

Power BI 提供其他 Cmdlet 來協助管理租使用者中的 BYOK:

  • 使用 Get-PowerBICapacity 取得容量目前使用的金鑰:

    Get-PowerBICapacity -Scope Organization -ShowEncryptionKey
    
  • 使用 Get-PowerBIEncryptionKey 取得租使用者目前使用的密鑰:

    Get-PowerBIEncryptionKey
    
  • 使用 Get-PowerBIWorkspaceEncryptionStatus 來查看工作區中的語意模型是否已加密,以及其加密狀態是否與工作區同步:

    Get-PowerBIWorkspaceEncryptionStatus -Name'Contoso Sales'
    

    請注意,加密是在容量層級啟用,但您會在指定工作區的語意模型層級取得加密狀態。

  • 使用 Switch-PowerBIEncryptionKey 來切換用於加密的密鑰版本(或 輪替)。 Cmdlet 只會更新 -KeyVaultKeyUri 金鑰 -Name的 :

    Switch-PowerBIEncryptionKey -Name'Contoso Sales' -KeyVaultKeyUri'https://contoso-vault2.vault.azure.net/keys/ContosoKeyVault/b2ab4ba1c7b341eea5ecaaa2wb54c4d2'
    

    請注意,應該啟用目前的金鑰。