根據預設,Power BI 會使用 Microsoft 管理的金鑰來加密您的資料。 在 Power BI Premium 中,您也可以針對匯入語意模型的待用資料使用自己的索引鍵。 這種方法通常被描述為 自備金鑰 (BYOK)。 如需詳細資訊,請參閱資料來源和儲存體考量。 Power BI BYOK 支援雙重加密,確保分層安全性並符合企業加密標準。 這包括使用 Server-Side 加密 (SSE) 的儲存層級加密,以及使用Microsoft管理的資料加密金鑰 (DEK) 的用戶端加密。 此 DEK 會在靜態儲存資料之前使用 CMK 包裝。
為什麼要使用 BYOK?
BYOK 可讓您更輕鬆地滿足合規性需求,這些需求會指定與雲端服務提供者 (在本例中為 Microsoft) 的重要安排。 使用 BYOK,您可以在應用程式層級提供和控制待用 Power BI 資料的加密金鑰。 因此,如果您決定退出服務,您可以行使控制權並撤銷組織的金鑰。 撤銷金鑰後,服務會在 30 分鐘內無法讀取資料。
資料來源和儲存體考量
若要使用 BYOK,您必須從 Power BI Desktop (PBIX) 檔案將資料上傳至 Power BI 服務。 在下列案例中,您無法使用 BYOK:
Analysis Services 即時連線
Excel 活頁簿,除非先將資料匯入 Power BI Desktop。
備註
針對儲存在 SharePoint 和 OneDrive 中的 Excel 活頁簿,您可以使用 客戶金鑰。
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 金鑰保存庫?
以下列方式設定金鑰保存庫:
將 Power BI 服務新增為 金鑰保存庫的服務主體,並具有包裝和解包許可權。
建立長度為 4096 位的 RSA 金鑰,或使用此類型的現有金鑰,並具有包裝和取消包裝權限。
這很重要
Power BI BYOK 支援長度為 4096 位的 RSA 和 RSA-HSM 金鑰。
建議:檢查金鑰保存庫是否已啟用虛刪除選項。
新增服務主體
登入 Azure 入口網站 並搜尋 金鑰保存庫。
在您的金鑰保存庫中,選取 [存取原則],然後選擇 [建立]。
在 [許可] 畫面的 [金鑰許可] 底下,選取 [ 取消包裝金鑰 ] 和 [包裝金鑰],然後選擇 [下一步]。
在 [主體] 畫面上,搜尋並選取 Microsoft.Azure.AnalysisServices。
備註
如果您找不到 Microsoft.Azure.AnalysisServices,則可能是與您的 Azure 金鑰保存庫相關聯的 Azure 訂用帳戶從未有相關聯的 Power BI 資源。 請改為嘗試搜尋下列字串:00000009-0000-0000-c000-0000000000000。
選取 下一步,然後選取 檢閱 + 建立>建立。
Azure 角色型存取控制 也可以用來選取包含 [解包裝金鑰 ] 和 [包裝金鑰 ] 權限的角色來授與許可權。
備註
若要撤銷 Power BI 對資料的存取權,請從 Azure 金鑰保存庫移除此服務主體的存取權。
建立 RSA 金鑰
在金鑰保存庫的 [金鑰] 底下,選取 [產生/匯入]。
選取 RSA 的金鑰類型,以及 4096 的 RSA 金鑰大小。
選取 ,創建。
在 [金鑰] 底下,選取您建立的金鑰。
選取金鑰目前 版本 的 GUID。
檢查 Wrap Key 和 Unwrap Key 都已選取。 複製金鑰 識別碼 ,以便在 Power BI 中啟用 BYOK 時使用。
虛刪除選項
您應該在金鑰保存庫上啟用 虛刪除 ,以防止在意外刪除金鑰或金鑰保存庫時遺失資料。 若要啟用 虛刪除 屬性,您必須使用 PowerShell ,因為 Azure 入口網站中尚無法使用此選項。
正確設定 Azure 金鑰保存庫後,您就可以在租用戶上啟用 BYOK。
設定 Azure 金鑰保存庫防火牆
本節說明如何使用受信任的 Microsoft 服務防火牆略過,以設定 Azure 金鑰保存庫周圍的防火牆。
備註
您可以選擇在金鑰保存庫上啟用防火牆規則。 您也可以選擇根據預設設定,在金鑰保存庫上停用防火牆。
Power BI 是受信任的 Microsoft 服務。 您可以指示金鑰保存庫防火牆允許存取所有受信任的 Microsoft 服務,此設定可讓 Power BI 存取您的金鑰保存庫,而不需要指定端點連線。
若要設定 Azure 金鑰保存庫以允許存取受信任的 Microsoft 服務,請遵循下列步驟:
在 Azure 入口網站中搜尋 金鑰保存庫 ,然後選取您要允許從 Power BI 和所有其他受信任的 Microsoft 服務存取的金鑰保存庫。
從左側導覽面板中選取 網路 。
在 [公用存取 - 允許存取來源:] 下,選擇 [選取的網路]。
向下捲動到例外部分,然後選擇允許受信任的 Microsoft 服務繞過此防火牆。
選取 ,然後套用。
在租用戶上啟用 BYOK
您可以使用 PowerShell 在租用戶層級啟用 BYOK。 首先,安裝 適用於 PowerShell 的 Power BI 系統管理套件 ,並將您建立並儲存在 Azure 金鑰保存庫中的加密金鑰引進至 Power BI 租用戶。 然後,您可以為每個進階容量指派這些加密金鑰,以加密容量中的內容。
重要考慮
啟用 BYOK 之前,請記住下列考量事項:
- 目前,啟用 BYOK 後無法停用它。 視您指定 的
Add-PowerBIEncryptionKey參數方式而定,您可以控制如何將 BYOK 用於一或多個容量。 不過,您無法復原將金鑰引進給租用戶。 如需詳細資訊,請參閱 啟用 BYOK。 - 您無法 直接 將使用 BYOK 的工作區從 Power BI Premium 中的容量移至共用容量。 您必須先將工作區移至未啟用 BYOK 的容量。
- 如果您將使用 BYOK 的工作區從 Power BI Premium 中的容量移至共用容量,報表和語意模型會變得無法存取,因為它們會使用金鑰加密。 若要避免這種情況,您必須先將工作區移至未啟用 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'
若要新增多個索引鍵,請Add-PowerBIEncryptionKey使用 和 -KeyVaultKeyUri的不同-Name值執行。
Cmdlet 接受兩個參數,這些參數會影響目前和未來容量的加密。 預設情況下,兩個開關都未設定:
-
-Activate:表示此金鑰會用於租用戶中尚未加密的所有現有容量。 -
-Default:表示此金鑰現在是整個租戶的預設金鑰。 當您建立新容量時,容量會繼承此金鑰。
這很重要
如果您指定 -Default,則從此點開始在租用戶上建立的所有容量都會使用您指定的金鑰或更新的預設金鑰進行加密。 您無法復原預設作業,因此您無法在租用戶中建立不使用 BYOK 的進階容量。
在租用戶上啟用 BYOK 之後,請設定一或多個 Power BI 容量的加密金鑰:
使用 Get-PowerBICapacity 來取得下一個步驟所需的容量識別碼。
Get-PowerBICapacity -Scope IndividualCmdlet 會傳回類似下列輸出的輸出:
Id : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx DisplayName : Test Capacity Admins : adam@sometestdomain.com Sku : P1 State : Active UserAccessRight : Admin Region : North Central US使用 Set-PowerBICapacityEncryptionKey 來設定加密金鑰:
Set-PowerBICapacityEncryptionKey -CapacityId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -KeyName 'Contoso Sales'
您可以控制如何在租用戶中使用 BYOK。 例如,若要加密單一容量,請呼叫 Add-PowerBIEncryptionKey without -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 只會更新金鑰
-Name的 :-KeyVaultKeyUriSwitch-PowerBIEncryptionKey -Name'Contoso Sales' -KeyVaultKeyUri'https://contoso-vault2.vault.azure.net/keys/ContosoKeyVault/b2ab4ba1c7b341eea5ecaaa2wb54c4d2'請注意,應啟用目前的金鑰。