Windows Server ファイル分類インフラストラクチャ (FCI) での RMS の保護

Azure Information Protection クライアントと PowerShell を使用してファイル サーバー リソース マネージャーとファイル分類インフラストラクチャ (FCI) を構成する手順とスクリプトについては、この記事を参照してください。

このソリューションを使用すると、Windows Server を実行しているファイル サーバー上のフォルダー内のすべてのファイルを自動的に保護したり、特定の条件を満たすファイルを自動的に保護したりできます。 たとえば、機密情報または機密情報を含むとして分類されたファイルなどです。 このソリューションは、Azure Information Protection から Azure Rights Management サービスに直接接続してファイルを保護するため、このサービスを組織に展開する必要があります。

Note

Azure Information Protection には、ファイル分類インフラストラクチャをサポートするコネクタが含まれていますが、そのソリューションは、Office ファイルなどのネイティブ保護のみをサポートします。

Windows Server ファイル分類インフラストラクチャで複数のファイルの種類をサポートするには、この記事で説明されているように、PowerShell AzureInformationProtection モジュールを使用する必要があります。 Azure Information Protection コマンドレットは、Azure Information Protection クライアントと同様に、ネイティブ保護だけでなく汎用保護もサポートしています。つまり、Office ドキュメント以外のファイルの種類も保護できます。 詳細については、Azure Information Protection クライアント管理者ガイドの「Azure Information Protection クライアントでサポートされるファイルの種類」を参照してください。

以下の手順は、Windows Server 2012 R2 または Windows Server 2012 を対象としています。 サポートされている他のバージョンの Windows を実行している場合は、オペレーティング システムのバージョンとこの記事に記載されているバージョンの違いに合わせて一部の手順を調整する必要がある場合があります。

Windows Server FCI による Azure Rights Management 保護の前提条件

これらの手順の前提条件:

  • ファイル分類インフラストラクチャを使用してファイル リソース マネージャーを実行する各ファイル サーバー上で、次の操作を行います。

    • ファイル サーバー リソース マネージャーを、ファイル サービスの役割の役割サービスの 1 つとしてインストールしました。

    • Rights Management で保護するファイルが含まれるローカル フォルダーを特定しました。 たとえば、C:\FileShare です。

    • AzureInformationProtection PowerShell モジュールをインストールし、このモジュールが Azure Rights Management サービスに接続するための前提条件を構成しました。

      AzureInformationProtection PowerShell モジュールは、Azure Information Protection クライアントに含まれています。 インストール手順については、Azure Information Protection 管理者ガイドの「ユーザー用の Azure Information Protection クライアントのインストール」を参照してください。 必要に応じて、PowerShellOnly=trueパラメーターを使用して PowerShell モジュールのみをインストールできます。

      この PowerShell モジュールを使用するための前提条件には、Azure Rights Management サービスのアクティブ化、サービス プリンシパルの作成、およびテナントが北米以外にある場合のレジストリの編集が含まれます。 この記事の手順を開始する前に、前提条件に記載されているように、BposTenantIdAppPrincipalId、および 対称キーの値があることを確認してください。

    • 特定のファイル名拡張子のデフォルトの保護レベル (ネイティブまたは汎用) を変更する場合は、管理者ガイドの「ファイルのデフォルトの保護レベルの変更」セクションの説明に従ってレジストリを編集している必要があります。

    • インターネットに接続し、プロキシ サーバーに必要な場合はコンピューターの設定を構成します。 例: netsh winhttp import proxy source=ie

  • オンプレミスの Active Directory ユーザー アカウントとAzure Active Directory または Microsoft 365を同期しました (電子メール アドレスを含みます)。   これは、FCI および Azure Rights Management サービスによって保護された後にファイルにアクセスする必要があるすべてのユーザーに必要です。 この手順を実行しないと (たとえば、テスト環境で)、ユーザーはこれらのファイルにアクセスできなくなる可能性があります。 この要件の詳細については、「Azure Information Protection 用のユーザーとグループの準備」を参照してください。

  • このシナリオでは部門別テンプレートがサポートされていないので、スコープ構成されていないテンプレートを使用するか、または Set-AipServiceTemplateProperty コマンドレットと EnableInLegacyApps パラメーターを使用する必要があります。

Azure Rights Management 保護用にファイル サーバー リソース マネージャー FCI を構成する手順

PowerShell スクリプトをカスタム タスクとして使用して、フォルダー内のすべてのファイルを自動的に保護するには、次の手順に従ってください。 これらの手順を次の順序で実行します。

  1. PowerShell スクリプトを保存する

  2. Rights Management (RMS) の分類プロパティを作成する

  3. 分類ルールの作成 (RMS の分類)

  4. 分類スケジュールを構成する

  5. カスタム ファイル管理タスクの作成 (RMS によるファイルの保護)

  6. ルールとタスクを手動で実行して構成をテストする

これらの手順を完了すると、選択したフォルダー内のすべてのファイルが RMS のカスタム プロパティで分類され、これらのファイルは Rights Management によって保護されます。 一部のファイルを選択的に保護し、その他のファイルは保護しない、より複雑な構成の場合は、それらのファイルのみを保護するファイル管理タスクを使用して、別の分類プロパティとルールを作成または使用できます。

FCI に使用する Rights Management テンプレートを変更した場合、ファイルを保護するスクリプトを実行するコンピュータ アカウントは、更新されたテンプレートを自動的に取得しないことに注意してください。 これを行うには、スクリプト内でコメント化された Get-RMSTemplate -Force コマンドを見つけて、# コメント文字を削除します。 更新されたテンプレートがダウンロードされるとき (スクリプトが少なくとも 1 回実行されるとき)、この追加コマンドをコメント アウトして、テンプレートが毎回不必要にダウンロードされないようにすることができます。 テンプレートへの変更がファイル サーバー上のファイルを再保護するほど重要である場合は、ファイルのエクスポートまたはフル コントロールの使用権限を持つアカウントで Protect-RMSFile コマンドレットを実行することで対話的にこれを行うことができます。 FCI に使用する新しいテンプレートを公開する場合も、Get-RMSTemplate -Force を実行する必要があります。

Windows PowerShell スクリプトを保存する

  1. ファイル サーバー リソース マネージャーを使用して、Azure RMS 保護用のWindows PowerShell スクリプトの内容をコピーします。 自分のコンピューターで、スクリプトの内容を RMS-Protect-FCI.ps1 という名前のファイルに貼り付けます。

  2. スクリプトを確認し、次の変更を行います。

    • 次の文字列を検索し、Set-RMSServerAuthentication コマンドレットで Azure Rights Management サービスに接続するために使用する独自の AppPrincipalId に置き換えます。

      <enter your AppPrincipalId here>
      

      たとえば、スクリプトは次のようになります。

      [Parameter(Mandatory = $false)]

      [Parameter(Mandatory = $false)] [string]$AppPrincipalId = "b5e3f76a-b5c2-4c96-a594-a0807f65bba4",

    • 次の文字列を検索し、Set-RMSServerAuthentication コマンドレットで使用して Azure Rights Management サービスに接続する独自の対称キーに置き換えます。

      <enter your key here>
      

      たとえば、スクリプトは次のようになります。

      [Parameter(Mandatory = $false)]

      [string]$SymmetricKey = "zIeMu8zNJ6U377CLtppkhkbl4gjodmYSXUVwAO5ycgA="

    • 次の文字列を検索し、Set-RMSServerAuthentication コマンドレットで Azure Rights Management サービスに接続するために使用する独自の BposTenantId (テナント ID) に置き換えます。

      <enter your BposTenantId here>
      

      たとえば、スクリプトは次のようになります。

      [Parameter(Mandatory = $false)]

      [string]$BposTenantId = "23976bc6-dcd4-4173-9d96-dad1f48efd42",

  3. スクリプトに署名します。 スクリプトに署名しない場合 (安全性が高くなります)、スクリプトを実行するサーバー上で Windows PowerShell を構成する必要があります。 たとえば、管理者として実行 オプションを使用して Windows PowerShell セッションを実行し、「Set-ExecutionPolicy RemoteSigned」と入力します。 ただし、この構成では、署名されていないすべてのスクリプトがこのサーバーに保存されているときに実行できます (安全性は低くなります)。

    Windows PowerShell スクリプトの署名の詳細については、PowerShell のドキュメント ライブラリの「about_Signing」を参照してください。

  4. ファイル分類インフラストラクチャを備えたファイル リソース マネージャーを実行する各ファイル サーバーにファイルをローカルに保存します。 たとえば、ファイルをC:\RMS-Protectionに保存します。 別のパスまたはフォルダー名を使用する場合は、スペースを含まないパスとフォルダーを選択してください。 権限のないユーザーがファイルを変更できないように、NTFS アクセス許可を使用してこのファイルを保護します。

これで、ファイル サーバー リソース マネージャーの構成を開始する準備ができました。

Rights Management (RMS) の分類プロパティを作成する

  • ファイル サーバー リソース マネージャーの分類管理で、新しいローカル プロパティを作成します。

    • 名前: タイプRMS

    • [説明]: 「Rights Management の保護」と入力します

    • プロパティ タイプ: はい/いいえを選択します

    • : はいを選択します

このプロパティを使用する分類ルールを作成できるようになりました。

分類ルールの作成 (RMS の分類)

  • 新しい分類ルールを作成します。

    • 全般 タブで、

      • 名前: タイプRMS の分類

      • 有効: このチェックボックスがオンになっているデフォルトのままにします。

      • 説明: 「<フォルダ名>内のすべてのファイルを Rights Management 用に分類します」と入力します。

        <フォルダ名>を選択したフォルダ名に置き換えます。 たとえば、C:\FileShare フォルダー内のすべてのファイルを Rights Management 用に分類します

      • スコープ: 選択したフォルダーを追加します。 たとえば、C:\FileShare です。

        チェックボックスは選択しないでください。

    • [分類] タブ:

    • 分類方法: フォルダー分類子を選択します

    • プロパティ名: RMS を選択します。

    • プロパティ: はいを選択します

分類ルールは手動で実行できますが、継続的な操作では、新しいファイルが RMS プロパティを使用して分類されるように、このルールをスケジュールに従って実行する必要があります。

分類スケジュールを構成する

  • [自動分類] タブで:

    • 固定スケジュールを有効にする: このチェックボックスをオンにします。

    • すべての分類ルールを実行するスケジュールを構成します。これには、RMS プロパティを使用してファイルを分類する新しいルールが含まれます。

    • 新しいファイルの継続的な分類を許可: 新しいファイルが分類されるようにするには、このチェック ボックスをオンにします。

    • オプション: レポートや通知のオプションの構成など、その他の必要な変更を加えます。

これで分類の構成が完了したので、ファイルに RMS 保護を適用する管理タスクを構成する準備が整いました。

カスタム ファイル管理タスクの作成 (RMS によるファイルの保護)

  • ファイル管理タスクで、新しいファイル管理タスクを作成します。

    • 全般 タブで、

      • タスク名: タイプRMS でファイルを保護

      • [有効] チェックボックスは選択したままにしておきます。

      • 説明: Windows PowerShell スクリプトを使用して、<フォルダ名>にRights Managementとテンプレートでファイルを保護するとタイプします。

        <フォルダ名>を選択したフォルダ名に置き換えます。 例えば、Windows PowerShell スクリプトを使用して、C:\FileShareにRights Managementとテンプレートでファイルを保護します

      • スコープ: 選択したフォルダーを選択します。 たとえば、C:\FileShare です。

        チェックボックスは選択しないでください。

    • [アクション] タブで:

      • タイプ: カスタムを選択します。

      • 実行可能ファイル: 次のように指定します。

        C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
        

        Windows が C: ドライブにない場合は、このパスを変更するか、このファイルを参照します。

      • 引数: <パス> と <テンプレート ID> に独自の値を指定して、以下を指定します。

        -Noprofile -Command "<path>\RMS-Protect-FCI.ps1 -File '[Source File Path]' -TemplateID <template GUID> -OwnerMail '[Source File Owner Email]'"
        

        たとえば、スクリプトを C:\RMS-Protection にコピーし、前提条件から特定したテンプレート ID が e6ee2481-26b9-45e5-b34a-f744eacd53b0 である場合、次のように指定します。

        -Noprofile -Command "C:\RMS-Protection\RMS-Protect-FCI.ps1 -File '[Source File Path]' -TemplateID e6ee2481-26b9-45e5-b34a-f744eacd53b0 -OwnerMail '[Source File Owner Email]'"

        このコマンドでは、[ソース ファイル パス][ソース ファイル所有者の電子メール] は両方とも FCI 固有の変数であるため、これらを前のコマンドに表示されたとおりに正確に入力します。 最初の変数は、フォルダー内で識別されたファイルを自動的に指定するために FCI によって使用され、2 番目の変数は、FCI が識別されたファイルの指定された所有者の電子メール アドレスを自動的に取得するために使用されます。 このコマンドは、フォルダー内のファイルごとに繰り返されます。この例では、C:\FileShare フォルダー内の各ファイルで、ファイル分類プロパティとして RMS が追加されています。

        Note

        -OwnerMail [Source File Owner Email] パラメータと値により、ファイルが保護された後、ファイルの元の所有者に Rights Management 所有者が確実に付与されます。 この構成により、元のファイル所有者が自分のファイルに対するすべての Rights Management 権限を持つことが保証されます。 ファイルがドメイン ユーザーによって作成されると、ファイルの Owner プロパティのユーザー アカウント名を使用して Active Directory から電子メール アドレスが自動的に取得されます。 これを行うには、ファイル サーバーがユーザーと同じドメインまたは信頼されたドメインに存在する必要があります。

        可能な限り、保護されたドキュメントに元の所有者を割り当てて、これらのユーザーが作成したファイルを引き続き完全に制御できるようにします。 ただし、前述のコマンドのように [Source File Owner Email] 変数を使用し、ファイルに所有者として定義されたドメイン ユーザーが存在しない場合 (たとえば、ファイルの作成にローカル アカウントが使用されたため、所有者には SYSTEM)、スクリプトは失敗します。

        所有者としてドメイン ユーザーがいないファイルの場合は、これらのファイルを自分でドメイン ユーザーとしてコピーして保存し、これらのファイルのみの所有者になることができます。 または、権限がある場合は、所有者を手動で変更できます。 または、[Source File Owner Email] 変数の代わりに特定の電子メール アドレス (自分のアドレスや IT 部門のグループ アドレスなど) を指定することもできます。これは、このスクリプトを使用して保護するすべてのファイルがこの電子メール アドレスを使用することを意味します。 新しい所有者を定義します。

    • 次のようにコマンドを実行します: ローカル システム を選択します

    • [条件] タブで:

      • プロパティ: RMSを選択します。

      • 演算子: 等しいを選択します

      • : はいを選択します

    • [スケジュール] タブで:

      • 実行時刻: 希望のスケジュールを設定します。

        スクリプトが完了するまで十分な時間をとってください。 このソリューションではフォルダー内のすべてのファイルが保護されますが、スクリプトはファイルごとに 1 回ずつ実行されます。 これには、Azure Information Protection クライアントがサポートしているすべてのファイルを同時に保護するよりも時間がかかりますが、FCI のこのファイルごとの構成はより強力です。 たとえば、[Source File Owner Email]変数を使用する場合、保護されたファイルは異なる所有者を持つことができ(元の所有者を保持)、後でフォルダ内のすべてのファイルではなく、選択的にファイルを保護するように設定を変更する場合は、このファイルごとのアクションが必要です。

      • Run continuous on new files: このチェックボックスを選択します。

ルールとタスクを手動で実行して構成をテストする

  1. 分類ルールを実行する:

    1. 分類ルール>今すぐすべてのルールで分類を実行をクリックします。

    2. 分類が完了するまで待ちますをクリックし、OKをクリックします。

  2. [実行中の分類] ダイアログ ボックスが閉じるまで待ってから、自動的に表示されるレポートで結果を確認します。 Properties フィールドに 1 とフォルダー内のファイルの数が表示されます。 ファイル エクスプローラーを使用し、選択したフォルダー内のファイルのプロパティを確認して確認します。 [分類] タブで、プロパティ名として RMS が表示され、その として はい が表示されます。

  3. ファイル管理タスクを実行します。

    1. ファイル管理タスク>RMS でファイルを保護>今すぐファイル管理タスクを実行をクリックします。

    2. タスクが完了するまで待ちますをクリックし、OKをクリックします。

  4. [ファイル管理タスクの実行] ダイアログ ボックスが閉じるまで待ってから、自動的に表示されるレポートで結果を確認します。 [ファイル] フィールドに、選択したフォルダー内のファイルの数が表示されます。 選択したフォルダー内のファイルが Rights Management によって保護されていることを確認します。 たとえば、選択したフォルダーが C:\FileShare の場合、Windows PowerShell セッションで次のコマンドを入力し、保護されていない 状態のファイルがないことを確認します。

    foreach ($file in (Get-ChildItem -Path C:\FileShare -Force | where {!$_.PSIsContainer})) {Get-RMSFileStatus -f $file.PSPath}
    

    ヒント

    トラブルシューティングに関するヒント:

    • レポートにフォルダー内のファイル数の代わりに 0 が表示される場合、この出力はスクリプトが実行されなかったことを示しています。 まず、スクリプト自体を Windows PowerShell ISE にロードしてスクリプトの内容を検証し、同じ PowerShell セッションで 1 回実行してエラーが表示されるかどうかを確認します。 引数が指定されていない場合、スクリプトは Azure Rights Management サービスへの接続と認証を試行します。

      • Azure Rights Management サービス (Azure RMS) に接続できなかったことがスクリプトによって報告された場合は、スクリプトで指定したサービス プリンシパル アカウントに対して表示される値を確認してください。 このサービス プリンシパル アカウントの作成方法の詳細については、Azure Information Protection クライアント管理者ガイドの「前提条件 3: 対話なしでファイルを保護または保護解除するには」を参照してください。
      • スクリプトが Azure RMS に接続できたと報告した場合は、次に、サーバー上の Windows PowerShell から直接 Get-RMSTemplate を実行して、指定されたテンプレートを見つけられることを確認します。 指定したテンプレートが結果として返されることがわかります。
    • スクリプト自体を Windows PowerShell ISE で実行してもエラーが発生しない場合は、次のように保護するファイルの名前を指定し、-OwnerEmail パラメーターを指定しないで、PowerShell セッションからスクリプトを実行してみます。

      powershell.exe -Noprofile -Command "<path>\RMS-Protect-FCI.ps1 -File '<full path and name of a file>' -TemplateID <template GUID>"
      
      • この Windows PowerShell セッションでスクリプトが正常に実行する場合は、ファイル管理タスク アクションでの [実行可能ファイル][引数] の指定を確認します。 -OwnerEmail [ソース ファイル所有者の電子メール] を指定した場合は、このパラメータを削除してみてください。

        -OwnerEmail [Source File Owner Email] なしでファイル管理タスクが正常に動作する場合は、保護されていないファイルのファイル所有者として SYSTEM ではなくドメイン ユーザーが表示されるかどうかを確認します。 このチェックを行うには、ファイルのプロパティの [セキュリティ] タブを使用し、[詳細] をクリックします。 Owner の値は、ファイル Name の直後に表示されます。 また、ファイル サーバーが同じドメインまたは信頼されたドメイン内にあることを確認して、Active Directory ドメイン サービスからユーザーの電子メール アドレスを検索します。

    • レポートに正しいファイル数が表示されているにもかかわらず、ファイルが保護されていない場合は、Protect-RMSFile コマンドレットを使用してファイルを手動で保護し、エラーが表示されるかどうかを確認してください。

これらのタスクが正常に実行されたことを確認したら、ファイル リソース マネージャーを閉じます。 スケジュールされたタスクが実行されると、新しいファイルが自動的に分類され、保護されます。

Rights Management テンプレートを変更する場合に必要なアクション

スクリプトが参照する Rights Management テンプレートに変更を加えた場合、ファイルを保護するスクリプトを実行するコンピューター アカウントは、更新されたテンプレートを自動的に取得しません。 スクリプト内で、Set-RMSConnection 関数内のコメント化されたGet-RMSTemplate -Forceコマンドを見つけて、行の先頭にあるコメント文字を削除します。 次回スクリプトを実行すると、更新されたテンプレートがダウンロードされます。 テンプレートが不必要にダウンロードされないようにパフォーマンスを最適化するには、この行を再度コメントアウトします。

テンプレートへの変更がファイル サーバー上のファイルを再保護するほど重要である場合は、ファイルのエクスポートまたはフル コントロールの使用権限を持つアカウントで Protect-RMSFile コマンドレットを実行することで対話的にこれを行うことができます。

FCI に使用する新しいテンプレートを公開し、カスタム ファイル管理タスクの引数行のテンプレート ID を変更する場合も、スクリプト内でこの行を実行します。

ファイルを選択的に保護するための手順の変更

前述の手順を実行できれば、より洗練された構成に変更するのは簡単です。 たとえば、同じスクリプトを使用して、個人を特定できる情報を含むファイルのみを保護し、より制限的な権限を持つテンプレートを選択する場合があります。

この変更を行うには、組み込みの分類プロパティ (個人を特定できる情報 など) の 1 つを使用するか、独自の新しいプロパティを作成します。 次に、このプロパティを使用する新しいルールを作成します。 たとえば、[コンテンツ分類子] を選択し、[個人を特定できる情報] プロパティと値 [高] を選択して、このプロパティ用に構成するファイルを識別する文字列または式パターンを構成します (たとえば、文字列 "Date of Birth")。

ここで必要なのは、同じスクリプトを使用する新しいファイル管理タスクを作成することですが、おそらく異なるテンプレートを使用し、構成したばかりの分類プロパティの条件を構成するだけです。 例えば、以前設定した条件(RMSプロパティ、EqualYes)の代わりに、Operatorの値をEqualに設定し、ValueHighに設定したPersonally Identifiable Informationプロパティを選択します。

次のステップ

Windows Server FCI と Azure Information Protection スキャナーの違いについてご説明します。