Power BI で独自の暗号化キーを使用する

Power BI では、"保存" データと "処理中" のデータが暗号化されます。 既定では、Power BI で Microsoft マネージド キーを使用してデータを暗号化します。 Power BI Premium では、セマンティック モデルにインポートされる保存データに対して独自のキーを使用することもできます。 このアプローチは多くの場合、Bring Your Own Key (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

注意

このコマンドレットでは、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 の概要に関するページを参照してください。

次のように、キー コンテナーを構成します。

  1. 折り返しおよび折り返し解除のアクセス許可を使用して、キー コンテナーのサービス プリンシパルとして Power BI サービスを追加します

  2. 折り返しおよび折り返し解除のアクセス許可を使用して、4096 ビット長の RSA キーを作成します (または、この種類の既存のキーを使用します)。

    重要

    Power BI BYOK では、4,096 ビット長の RSA キーのみがサポートされます。

  3. 推奨: キー コンテナーで "論理的な削除" オプションが有効になっていることを確認します。

サービス プリンシパルを追加する

  1. Azure portal にログインして、キー コンテナーを検索します。

  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 Key Vault に関連付けられている Azure サブスクリプションにこれまで Power BI リソースが関連付けられていない可能性があります。 代わりに、次の文字列を検索してください: 00000009-0000-0000-c000-000000000000。

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

  5. [次へ] を選択し、[確認および作成]>[作成] を選択します。

注意

データへの Power BI アクセスを取り消すには、Azure Key Vault からこのサービス プリンシパルへのアクセス権限を削除します。

RSA キーを作成する

  1. お使いのキー コンテナーの [キー] で、 [生成/インポート] を選択します。

  2. [キーの種類] では RSA を、[RSA キー サイズ] では 4096 を選択します。

    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 portal ではまだ使用できないためです。

Azure Key Vault が正しく構成されたら、テナントで BYOK を有効にすることができます。

Azure Key Vault ファイアウォールを構成する

このセクションでは、信頼された Microsoft サービスのファイアウォールのバイパスを使用して、Azure Key Vault に対してファイアウォールを構成する方法について説明します。

Note

キー コンテナーに対してファイアウォール規則を有効にすることができます。 既定の設定に従って、キー コンテナーでファイアウォールを無効のままにしておくこともできます。

Power BI は、信頼された Microsoft サービスです。 すべての信頼された Microsoft サービスへのアクセスを許可するように、キー コンテナーのファイアウォールに指示できます。これは、Power BI がエンドポイント接続を指定せずにキー コンテナーにアクセスできるようにする設定です。

信頼された Microsoft サービスへのアクセスを許可するように Azure Key Vault を構成するには、次の手順に従います。

  1. Azure portal で「キー コンテナー」を検索し、Power BI とその他すべての信頼された Microsoft サービスからのアクセスを許可するキー コンテナーを選択します。

  2. 左側のナビゲーション パネルから [ネットワーク] を選択します。

  3. [ファイアウォールと仮想ネットワーク] で、[特定の仮想ネットワークと IP アドレスからのパブリック アクセスを許可する] を選択します。

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

  4. [ファイアウォール] セクションまで下にスクロールします。 [Allow trusted Microsoft services to bypass this firewall](信頼された Microsoft サービスがこのファイアウォールをバイパスすることを許可する) を選択します。

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

  5. [適用] を選びます。

テナントで BYOK を有効にする

テナント レベルで BYOK を有効にするには、PowerShell を使用します。 まず、PowerShell 用 Power BI 管理パッケージをインストールし、お客様が作成して Azure Key Vault に格納した暗号化キーを Power BI テナントに導入します。 その後、容量のコンテンツを暗号化するために、Premium 容量ごとにこれらの暗号化キーを割り当てます。

重要な考慮事項

BYOK を有効にする前に、次の考慮事項に注意してください。

  • 現時点では、BYOK を有効にした後で無効にすることはできません。 Add-PowerBIEncryptionKey のパラメーターを指定する方法に応じて、1 つまたは複数の容量に対して BYOK を使用する方法を制御できます。 しかし、テナントに対するキーの導入を元に戻すことはできません。 詳細については、「BYOK を有効にする」を参照してください。

  • Power BI Premium の容量から共有された容量に BYOK を使用するワークスペースを "直接" 移動することはできません。 まず、BYOK が有効になっていない容量にワークスペースを移動する必要があります。

  • BYOK を使用するワークスペースを Power BI Premium の容量から共有された容量に移動した場合、レポートとセマンティック モデルはそのキーで暗号化されているため、アクセスできなくなります。 この状況を回避するには、まず BYOK が有効になっていない容量にワークスペースを移動する必要があります。

BYOK を有効にする

BYOK を有効にするには、Power BI 管理者になっている必要があり、Connect-PowerBIServiceAccount コマンドレットを使用してサインインしている必要があります。 その後、以下の例に示すように、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:このキーが現在、テナント全体の既定値であることを示します。 新しい容量を作成するときに、容量ではこのキーが継承されます。

重要

-Default を指定した場合、この時点からテナントで作成されたすべての容量が、指定するキー (または更新された既定のキー) を使用して暗号化されます。 既定の操作を元に戻すことはできません。そのため、BYOK を使わないテナントで Premium 容量を作成することはできなくなります。

テナントで BYOK を有効にした後は、1 つまたは複数の Power BI 容量に対する暗号化キーを設定します。

  1. 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 US
    
  2. Set-PowerBICapacityEncryptionKey を使って暗号化キーを設定します。

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

テナント全体で BYOK を使用する方法を制御することができます。 たとえば、単一の容量を暗号化するには、-Activate または -Default なしで Add-PowerBIEncryptionKey を呼び出します。 その後、BYOK を有効にする容量に対して、Set-PowerBICapacityEncryptionKey を呼び出します。

BYOK を管理する

Power BI では、テナントでの BYOK の管理に役立つ追加のコマンドレットが提供されます。

  • Get-PowerBICapacity を使って、容量で現在使用されているキーを取得します。

    Get-PowerBICapacity -Scope Organization -ShowEncryptionKey
    
  • Get-PowerBIEncryptionKey を使って、テナントで現在使用されているキーを取得します。

    Get-PowerBIEncryptionKey
    
  • Get-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'
    

    現在のキーを有効にする必要があることに注意してください。