攜帶您自己的加密金鑰以用於 Power BI
根據預設,Power BI 會使用 Microsoft 管理的金鑰來為您加密資料。 在 Power BI Premium 中,您也可以將自己的金鑰用於匯入至語意模型的待用資料。 這種方法通常稱為攜帶您自己的金鑰 (BYOK)。 如需詳細資訊,請參閱資料來源和儲存體考量。
為何要使用 BYOK?
BYOK 可更輕鬆地符合透過雲端服務提供者 (在此案例中為 Microsoft) 指定金鑰排列的合規性需求。 使用 BYOK,您可以在應用程式層級提供並控制待用 Power BI 資料的加密金鑰。 如此一來,如果您決定結束服務,您可以控制並撤銷組織的金鑰。 撤銷金鑰後,服務在 30 分鐘內便會無法讀取資料。
資料來源和儲存體考量
若要使用 BYOK,您必須將資料從 Power BI Desktop (PBIX) 檔案上傳至 Power BI 服務。 在下列情況下,您無法使用 BYOK:
- Analysis Services 即時連線
- Excel 活頁簿 (除非資料先匯入 Power BI Desktop)
- 推送語意模型
- 串流語意模型
- 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 Key Vault 這個可用來安全地儲存並存取祕密 (例如加密金鑰) 的工具。 您可以使用現有的金鑰保存庫來儲存加密金鑰,或者您也可以建立一個新的來專門用於 Power BI。
下列指示假設您已具備 Azure Key Vault 基本知識。 如需詳細資訊,請參閱什麼是 Azure Key Vault?
以下列方式設定您的金鑰保存庫:
將 Power BI 服務新增為金鑰保存庫的服務主體,包含包裝和解除包裝的權限。
建立長度為 4096 位元的 RSA 金鑰,或使用此類型的現有金鑰,並且要具有包裝和解除包裝的權限。
重要
Power BI BYOK 僅支援 4096 位元長度的 RSA 金鑰。
建議:確認金鑰保存庫已啟用「虛刪除」選項。
新增服務主體
登入 Azure 入口網站,然後搜尋金鑰保存庫。
在您的金鑰保存庫中,選取 [存取原則],然後選擇 [建立]。
在 [權限] 畫面的 [金鑰權限] 下,選取 [解除包裝金鑰] 和 [包裝金鑰],然後選擇 [下一步]。
在 [主體] 畫面上,搜尋並選取 [Microsoft.Azure.AnalysisServices]。
注意
如果您找不到「Microsoft.Azure.AnalysisServices」,可能是與 Azure Key Vault 相關聯的 Azure 訂用帳戶從未有相關聯的 Power BI 資源。 請嘗試改為搜尋下列字串:00000009-0000-0000-c000-000000000000。
選取 [下一步],然後選取 [檢閱 + 建立]>[建立]。
注意
若要撤銷對資料的 Power BI 存取權,請從 Azure Key Vault 移除對此服務主體的存取權限。
建立 RSA 金鑰
在您的金鑰保存庫中,選取 [金鑰] 下方的 [產生/匯入]。
選取 [RAS] 的 [金鑰類型]和 [4096] 的 [RSA 金鑰大小]。
選取 建立。
在 [金鑰] 下方,選取您建立的金鑰。
選取金鑰 [目前版本] 的 GUID。
確認已選取 [包裝金鑰] 和 [解除包裝金鑰]。 複製 [金鑰識別碼],在您啟用 Power BI 中的 BYOK 時使用。
虛刪除選項
請在您的金鑰保存庫上啟用虛刪除,以在意外刪除金鑰 (或金鑰保存庫) 時防止資料遺失。 若要啟用「虛刪除」屬性,您必須使用 PowerShell,因為 Azure 入口網站中尚未提供此選項。
正確設定 Azure Key Vault 後,您即已準備好在您的租用戶上啟用 BYOK。
設定 Azure Key Vault 防火牆
本節說明如何使用受信任的 Microsoft 服務防火牆略過,以便為 Azure Key Vault 設定防火牆。
注意
您可以選擇在金鑰保存庫上啟用防火牆規則。 您也可以選擇按照預設設定讓金鑰保存庫上保持停用防火牆。
Power BI 是受信任的 Microsoft 服務。 您可以指示金鑰保存庫防火牆允許存取所有受信任的 Microsoft 服務,此設定可讓 Power BI 在不指定端點連線的情況下存取您的金鑰保存庫。
若要設定 Azure Key Vault 以允許存取受信任的 Microsoft 服務,請遵循下列步驟:
在 Azure 入口網站中搜尋金鑰保存庫,然後選取您想要允許從 Power BI 和其他所有受信任 Microsoft 服務存取的金鑰保存庫。
從左側導覽面板中選取 [網路]。
在 [防火牆和虛擬網路] 下,選取 [允許從特定虛擬網路和 IP 位址進行公用存取]。
向下捲動至 [防火牆] 區段。 選取 [允許受信任的 Microsoft 服務略過此防火牆]。
選取套用。
在您的租用戶上啟用 BYOK
您可以使用 PowerShell 在租用戶層級啟用 BYOK。 首先,安裝適用於 PowerShell 的 Power BI 系統管理套件,並將您在 Azure Key Vault 中建立並儲存的加密金鑰引進到 Power BI 租用戶。 接著,為每個 Premium 容量指派這些加密金鑰以加密容量中的內容。
重要考量
啟用 BYOK 之前,請記住下列考量:
目前,啟用 BYOK 後即無法加以停用。 根據您如何指定
Add-PowerBIEncryptionKey
的參數,您可以控制如何將 BYOK 用於您的一或多個容量。 不過,您無法復原將金鑰引入租用戶的動作。 如需詳細資訊,請參閱啟用 BYOK。您不能「直接」將使用 BYOK 的工作空間從 Power BI Premium 中容量移至共用容量。 您必須先將工作區移至未啟用 BYOK 的容量。
如果您將使用 BYOK 的工作區從 Power BI Premium 中的容量移至共用容量,則報表和語意模型會因為其是使用金鑰進行加密的而變得無法存取。 為避免這種情況,您必須先將工作區移至未啟用 BYOK 的容量。
啟用 BYOK
若要啟用 BYOK,您必須是 Power BI 系統管理員,並使用 Connect-PowerBIServiceAccount
Cmdlet 登入。 然後,使用 Add-PowerBIEncryptionKey 來啟用 BYOK,如下列範例所示:
Add-PowerBIEncryptionKey -Name'Contoso Sales' -KeyVaultKeyUri'https://contoso-vault2.vault.azure.net/keys/ContosoKeyVault/b2ab4ba1c7b341eea5ecaaa2wb54c4d2'
若要新增多個金鑰,請使用不同的 -Name
和 -KeyVaultKeyUri
值來執行 Add-PowerBIEncryptionKey
。
此 Cmdlet 接受兩個參數,這些參數影響目前和未來容量的加密。 根據預設,不會設定任何切換:
-Activate
:表示此金鑰會用於租用戶中所有尚未加密的現有容量。-Default
:表示此金鑰現在是整個租用戶的預設值。 當您建立新的容量時,該容量會繼承此金鑰。
重要
如果您指定 -Default
,即刻起所有在您租用戶上建立的容量都會使用您所指定的金鑰 (或更新後的預設金鑰) 來加密。 您無法復原預設作業,因此您將無法在租用戶中建立未使用 BYOK 的 Premium 容量。
在您於租用戶上啟用 BYOK 後,請設定一或多個 Power BI 容量的加密金鑰:
使用 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
使用 Set-PowerBICapacityEncryptionKey 來設定加密金鑰:
Set-PowerBICapacityEncryptionKey -CapacityId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -KeyName 'Contoso Sales'
您可以控制如何在您的租用戶中使用 BYOK。 例如,若要加密單一容量,請呼叫 Add-PowerBIEncryptionKey
而不使用 -Activate
或 -Default
。 然後,為您要啟用 BYOK 的容量呼叫 Set-PowerBICapacityEncryptionKey
。
管理 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
的-KeyVaultKeyUri
:Switch-PowerBIEncryptionKey -Name'Contoso Sales' -KeyVaultKeyUri'https://contoso-vault2.vault.azure.net/keys/ContosoKeyVault/b2ab4ba1c7b341eea5ecaaa2wb54c4d2'
請注意,應該會啟用目前的金鑰。