既定では、Power BI は Microsoft マネージド キーを使用してデータを暗号化します。 Power BI Premium では、セマンティック モデルにインポートされる保存データに独自のキーを使用することもできます。 このアプローチは、多くの場合、 Bring Your Own Key (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 ライブ接続
データが最初に Power BI Desktop にインポートされない限り、Excel ブック。
注
SharePoint および OneDrive に格納されている Excel ブックの場合は、 カスタマー キーを使用できます。
現在、Power BI メトリック は BYOK をサポートしていません
BYOK はセマンティック モデルにのみ適用されます。 ユーザーがサービスにアップロードできるプッシュ セマンティック モデル、Excel ファイル、CSV ファイルは、独自のキーを使用して暗号化されません。 ワークスペースに格納されている項目を識別するには、次の PowerShell コマンドを使用します。
PS C:\> Get-PowerBIWorkspace -Scope Organization -Include All
注
このコマンドレットには、Power BI 管理モジュール v1.0.840 が必要です。
Get-InstalledModule -Name MicrosoftPowerBIMgmtを実行すると、使用しているバージョンを確認できます。
Install-Module -Name MicrosoftPowerBIMgmtを実行して最新バージョンをインストールします。 Power BI コマンドレットとそのパラメーターの詳細については、 Power BI PowerShell コマンドレット モジュールを参照してください。
Azure Key Vault を構成する
このセクションでは、暗号化キーなどのシークレットを安全に格納してアクセスするためのツールである Azure Key Vault を構成する方法について説明します。 既存のキー コンテナーを使用して暗号化キーを格納することも、Power BI で使用するために新しいキーコンテナーを作成することもできます。
次の手順では、Azure Key Vault に関する基本的な知識を前提としています。 詳細については、「Azure Key Vault とは」を参照してください。
次の方法でキー コンテナーを構成します。
ラップとラップ解除のアクセス許可を持つ、キー コンテナーのサービス プリンシパルとして Power BI サービスを追加します。
4096 ビット長の RSA キーを作成するか、ラップとラップ解除のアクセス許可を持つこの種類の既存のキーを使用します。
Important
Power BI BYOK では、4096 ビット長の RSA キーと RSA-HSM キーがサポートされます。
推奨: キー コンテナーで 論理的な削除 オプションが有効になっていることを確認します。
サービス プリンシパルを追加する
Azure portal にログインし、Key Vault を検索します。
キー コンテナーで、[ アクセス ポリシー] を選択し、[ 作成] を選択します。
[ アクセス許可 ] 画面の [ キーのアクセス許可] で、[ キーのラップ解除 ] と [ キーの折り返し] を選択し、[ 次へ] を選択します。
[ プリンシパル ] 画面で、 Microsoft.Azure.AnalysisServices を検索して選択します。
注
Microsoft.Azure.AnalysisServices が見つからない場合は、Azure Key Vault に関連付けられている Azure サブスクリプションに Power BI リソースが関連付けられていない可能性があります。 代わりに、000000009-0000-0000-c000-0000000000000 という文字列を検索してみてください。
[ 次へ] を選択し、[ 確認と作成>作成] を選択します。
Azure ロールベースのアクセス制御 を使用して、 キーのラップ解除 と ラップ キーのアクセス許可を含むロールを選択することで、アクセス許可を付与することもできます。
注
データへの Power BI アクセスを取り消すには、Azure Key Vault からこのサービス プリンシパルへのアクセス権を削除します。
RSA キーを作成する
キー コンテナーの [ キー] で、[ 生成/インポート] を選択します。
RSA のキーの種類と RSA キー サイズ4096 を選択します。
を選択してを作成します。
[ キー] で、作成したキーを選択します。
キーの 現在のバージョン の GUID を選択します。
[キーの折り返し] と [キーのラップ解除] の両方が選択されていることを確認します。 Power BI で BYOK を有効にするときに使用する キー識別子 をコピーします。
論理的な削除オプション
キー コンテナーで 論理的な削除 を有効にして、誤ってキーまたはキー コンテナーが削除された場合にデータ損失から保護する必要があります。 論理的な削除プロパティを有効にするには、PowerShell を使用する必要があります。このオプションは Azure portal ではまだ使用できないためです。
Azure Key Vault が正しく構成されたら、テナントで BYOK を有効にする準備ができました。
Azure Key Vault ファイアウォールを構成する
このセクションでは、信頼された Microsoft サービス ファイアウォール バイパスを使用して、Azure Key Vault の周囲にファイアウォールを構成する方法について説明します。
注
キー コンテナーでファイアウォール規則を有効にすることを選択できます。 また、既定の設定に従って、キー コンテナーでファイアウォールを無効のままにすることもできます。
Power BI は信頼できる Microsoft サービスです。 すべての信頼された Microsoft サービスへのアクセスを許可するように Key Vault ファイアウォールに指示できます。これは、Power BI がエンドポイント接続を指定せずにキー コンテナーにアクセスできるようにする設定です。
信頼された Microsoft サービスへのアクセスを許可するように Azure Key Vault を構成するには、次の手順に従います。
Azure portal で Key Vault を 検索し、Power BI とその他のすべての信頼できる Microsoft サービスからのアクセスを許可するキー コンテナーを選択します。
左側 の ナビゲーション パネルから [ネットワーク] を選択します。
[ パブリック アクセス - アクセスの許可: ] で、[ 選択したネットワーク] を選択します。
[ 例外 ] セクションまで下にスクロールし、[ 信頼できる Microsoft サービスによるこのファイアウォールのバイパスを許可する] を選択します。
を選択してを適用します。
テナントで BYOK を有効にする
テナント レベルで BYOK を有効にするには、PowerShell を使用します。 まず、 PowerShell 用の Power BI 管理パッケージを インストールし、Azure Key Vault に作成して格納した暗号化キーを Power BI テナントに導入します。 次に、容量内のコンテンツを暗号化するために、Premium 容量ごとにこれらの暗号化キーを割り当てます。
重要な考慮事項
BYOK を有効にする前に、次の考慮事項に注意してください。
- 現時点では、BYOK を有効にした後で無効にすることはできません。
Add-PowerBIEncryptionKeyのパラメーターを指定する方法に応じて、1 つ以上の容量に BYOK を使用する方法を制御できます。 ただし、テナントへのキーの導入を元に戻すことはできません。 詳細については、「 BYOK を有効にする」を参照してください。 - BYOK を使用するワークスペースを Power BI Premium の容量から共有容量に 直接 移動することはできません。 まず、BYOK が有効になっていない容量にワークスペースを移動する必要があります。
- BYOK を使用するワークスペースを Power BI Premium の容量から共有容量に移動すると、レポートとセマンティック モデルはキーで暗号化されるためアクセスできなくなります。 この状況を回避するには、まず、BYOK が有効になっていない™容量にワークスペースを移動する必要があります。
BYOK を有効にする
BYOK を有効にするには、 Connect-PowerBIServiceAccount コマンドレットを使用してサインインしている Power BI 管理者である必要があります。 次の例に示すように、 Add-PowerBIEncryptionKey を使用して BYOK を有効にします。
Add-PowerBIEncryptionKey -Name'Contoso Sales' -KeyVaultKeyUri'https://contoso-vault2.vault.azure.net/keys/ContosoKeyVault/b2ab4ba1c7b341eea5ecaaa2wb54c4d2'
複数のキーを追加するには、-Nameと-KeyVaultKeyUriに異なる値を指定してAdd-PowerBIEncryptionKeyを実行します。
コマンドレットは、現在および将来の容量の暗号化に影響を与える 2 つのスイッチ パラメーターを受け入れます。 既定では、どちらのスイッチも設定されていません。
-
-Activate: このキーが、まだ暗号化されていないテナント内のすべての既存の容量に使用されることを示します。 -
-Default: このキーがテナント全体の既定値になったことを示します。 新しい容量を作成すると、容量はこのキーを継承します。
Important
-Defaultを指定した場合、この時点からテナントに作成されたすべての容量は、指定したキーまたは更新された既定のキーを使用して暗号化されます。 既定の操作を元に戻すことはできないため、BYOK を使用しないテナントで Premium 容量を作成できなくなります。
テナントで BYOK を有効にした後、1 つ以上の Power BI 容量の暗号化キーを設定します。
Get-PowerBICapacity を使用して、次の手順に必要な容量 ID を取得します。
Get-PowerBICapacity -Scope Individualコマンドレットは、次の出力のような出力を返します。
Id : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx DisplayName : Test Capacity Admins : adam@sometestdomain.com Sku : P1 State : Active UserAccessRight : Admin Region : North Central USSet-PowerBICapacityEncryptionKey を使用して暗号化キーを設定します。
Set-PowerBICapacityEncryptionKey -CapacityId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -KeyName 'Contoso Sales'
テナント全体で BYOK を使用する方法を制御できます。 たとえば、1 つの容量を暗号化するには、-Activateや-Defaultを使用せずにAdd-PowerBIEncryptionKeyを呼び出します。 次に、BYOK を有効にする容量の Set-PowerBICapacityEncryptionKey を呼び出します。
BYOK の管理
Power BI には、テナントでの BYOK の管理に役立つ追加のコマンドレットが用意されています。
Get-PowerBICapacity を使用して、容量が現在使用しているキーを取得します。
Get-PowerBICapacity -Scope Organization -ShowEncryptionKeyGet-PowerBIEncryptionKey を使用して、テナントが現在使用しているキーを取得します。
Get-PowerBIEncryptionKeyGet-PowerBIWorkspaceEncryptionStatus を使用して、ワークスペース内のセマンティック モデルが暗号化されているかどうか、および暗号化状態がワークスペースと同期されているかどうかを確認します。
Get-PowerBIWorkspaceEncryptionStatus -Name'Contoso Sales'暗号化は容量レベルで有効になっていますが、指定したワークスペースのセマンティック モデル レベルで暗号化の状態が取得されることに注意してください。
Switch-PowerBIEncryptionKey を使用して、暗号化に使用されているキーのバージョンを切り替える (またはローテーション) します。 このコマンドレットは、キー
-Nameの-KeyVaultKeyUriを更新するだけです。Switch-PowerBIEncryptionKey -Name'Contoso Sales' -KeyVaultKeyUri'https://contoso-vault2.vault.azure.net/keys/ContosoKeyVault/b2ab4ba1c7b341eea5ecaaa2wb54c4d2'現在のキーを有効にする必要があることに注意してください。