フォレンジック セレクト ホールド機能の目的は、法的、セキュリティ、および運用上の必要性に応じて、正確で変更されていないデータを提供することにあります。現在サポートされているユースケースでは、法的な理由、インシデント レスポンス、または運用上の理由でユーザーがセレクト ホールドになった場合に、ユーザーのデスクトップに関連付けられているデータを定期的にライブ キャプチャできます。ユーザーがフォレンジック セレクト ホールドの対象になると、ユーザーのデスクトップが一時的に保持された状態になり、デスクトップの更新や削除(再イメージング)を防ぐことができます。管理者は、ユーザー エクスペリエンスに対する影響を最小限に抑えながら、ユーザーのデスクトップに調査目的でアクセスすることができます。

この機能は、フローティングおよび専用の Windows インスタント クローン デスクトップ プールでサポートされます。

フォレンジック セレクト ホールド機能の仕組み

  • ロール ベースのアクセス制御

    フォレンジック機能は、グローバル権限 FORENSICS によって制御されます。スーパー管理者は、この権限をフォレンジック管理者という別の管理者に割り当てることができますが、デフォルトでは、この権限はスーパー管理者に対して有効になっていません。詳細については、『Horizon 8 の管理』ドキュメントの「グローバル権限」を参照してください。

  • アーカイブ データストア

    アーカイブ データストアはマウントされた NFS または VMFS です。これは、LDAP でグローバルに設定されています。Horizon 8 は、この設定を LDAP から読み取り、アーカイブされたデータの配置場所を特定します。デフォルトでは、プールが存在するデータストアを使用するように設定されています。

  • セレクト ホールドのワークフロー
    • ユーザーを保留状態にする
      保留は、個々の Active Directory ユーザー レベルでのみ適用されます。フォレンジック管理者が API を使用してユーザーを保留状態にすると、次の処理が行われます。
      • ユーザーがすでに仮想マシンを使用している場合は、現在ログインしている仮想マシンと、ユーザーに割り当てられている他の仮想マシンが保留状態になります。
      • ユーザーが仮想マシンにログインすると、Horizon 8 は、インスタント クローン仮想マシンの状態をステートレスからステートフルに変更しますが、ステートフル仮想マシンは元のプールに残ります。
      • 保留状態のユーザーは、引き続き同じ仮想マシンにログインします。デスクトップに対して行った以前の変更はすべて表示されます。Horizon 8 は、仮想マシンの内容を変更しません。
      • 管理コンソールのステータス インジケータには、仮想マシンが保留状態であることが示されます。
      • 仮想マシンは [フォレンジック] としてタグ付けされ、vCenter Server で保護されるため、vCenter Server 管理者が誤って仮想マシンを変更または削除することはありません。
    • 保留期間中
      ユーザーが保留状態になると、フォレンジック チームはステートフル デスクトップにアクセスして調査を行い、その場でライブ データを即時キャプチャできます。このデータ キャプチャのために、フォレンジック管理者には次のオプションがあります。
      • Archive API を使用する。Archive API は、複数の仮想マシンと複数のユーザーに対して機能します。ユーザーがログインしていない場合にのみ、個々の仮想マシンをアーカイブできます。ユーザーがログインしている場合は、ユーザーがログアウトするまで、アーカイブ コマンドの実行を延期する必要があります。
        アーカイブ操作を実行すると、次の処理が行われます。
        • 仮想マシンがシャットダウンされます。
        • すべてのディスクが統合されます。
        • すべてのスナップショットが統合されます。
        • VMDK ファイルが、選択したアーカイブの場所にコピーされます。
        • 仮想マシンがターゲット イメージに再同期されます。
      • 独自のスクリプトまたはサードパーティ ツールを使用する。この場合は、ハイパーバイザー メモリのみをアーカイブするのか、仮想マシンの VMDK のみをアーカイブするのか、ハイパーバイザー メモリと VMDK の両方をアーカイブするのかを選択できます。

        isHeldUser 環境変数は、セッションに接続しているユーザーが保留状態かどうかを示します。この変数の値に基づいて、保留状態のユーザーがデスクトップにログインしたときにデータ収集スクリプトをトリガできます。スクリプトは、Connection Server 仮想マシンでスクリプト ホスト サービスが実行されているときにトリガできます。詳細については、『Horizon リモート デスクトップの機能と GPO』ドキュメントの「VMware Horizon View スクリプト ホスト サービスの有効化」を参照してください。

      保留期間中に注意すべき点:
      • 保留状態の仮想マシンを更新、リカバリ、削除することはできません。また、メンテナンス モードに切り替えることもできません。これは、保留状態の仮想マシンにのみ適用されます。同じプール内で保留状態でない仮想マシンには適用されません。
      • 保留状態の仮想マシンを含むプールは削除できません。
      • プールの自動圧縮機能が設定されている場合、Horizon 8 は、保留状態の仮想マシンが失われないように、これらの仮想マシンを優先的に処理します。
      • インスタント クローン プールでプールの更新またはパッチ アップデートが必要な場合は、次の 2 つのオプションがあります。
        • 保留状態の仮想マシンを含むプールを更新する必要があり、アーカイブ データストアが設定されていない場合、イメージのプッシュでステートフル仮想マシンが無視されます。これにより、フォレンジック目的で保留されている仮想マシンが保持されます。ユーザーがログインすると、パーシステント仮想マシンに引き続き転送されます。これらの仮想マシンには、パーシステント仮想マシンなどの個別のツールを使用して、パッチを適用する必要があります。
        • 保留状態の仮想マシンを含むプールを更新する必要があり、アーカイブ データストアが設定されている場合、Horizon 8 はまず、プール内の他のすべての仮想マシンに対してイメージのプッシュを実行し、その後、保留状態の仮想マシンをアーカイブします。保留状態の仮想マシンがアーカイブされると、Horizon 8 は通常のイメージ プッシュ プロセスを実行します。保留状態のユーザーが次にログインしたときに、元の時状態の仮想マシンが提供され、この仮想マシンがステートフル仮想マシンに変わり、プロセスが繰り返されます。パッチ処理が実行されるたびに、ステートフル仮想マシンをコピーしてアーカイブするために追加のストレージが必要になります。
    • ユーザーの保留状態を解除する

      フォレンジックス管理者が API を使用してユーザーの保留状態を解除すると、次の処理が行われます。

      • Horizon 8 が、仮想マシンをステートレス仮想マシンに戻します。
      • 仮想マシンが保留されたときに適用される [フォレンジック] タグが削除され、仮想マシンを vCenter Server から削除できます。
      • ユーザーが次にログアウトしたときに、仮想マシンが削除され、ゴールド イメージから再作成されます。仮想マシンは初期状態に戻ります。
  • イベント データベースのフォレンジック操作

    FORENSICS 権限の付与、ユーザーの保留/保留解除を含むすべての操作は、イベント データベースにキャプチャされます。これは、実行が必要なスクリプトを通知するために使用できます。

API を使用したフォレンジック セレクト ホールド機能の実行

Horizon API を使用すると、以下の説明のように、フォレンジック セレクト ホールドを実行できます。API ごとに、VMware {code} Web サイト上のドキュメンテーションへのリンクがあります。

  • フォレンジック管理者ロールを作成してユーザーを割り当てる
    1. 次の API を使用して、カスタム フォレンジック管理者ロールを作成します。
      /config/v1/roles

      この API のドキュメンテーションについては、「こちら」を参照してください。

    2. Horizon 8 の管理』ガイドの「Horizon Console での管理者の作成」の手順に従って、カスタム フォレンジック管理者ロールを割り当てます。
  • アーカイブするデータストアの指定
    仮想ディスクとメモリをアーカイブするデータストアを指定するには、次の API を使用します。
    /config/v1/virtual-centers/{id}/action/mark-datastores-for-archival

    この API のドキュメンテーションについては、「こちら」を参照してください。

  • ユーザーを保留状態にする
    ユーザーを保留状態にするには、次の API を使用します。
    /external/v1/ad-users-or-groups/action/hold
    API は、保留状態のユーザーに割り当てられているすべてのデスクトップのデスクトップ ID、プール ID、およびマシン状態を返します。このアラート情報を使用して、スクリプト化されたデータ収集をトリガできます。この API のドキュメンテーションについては、「 こちら」を参照してください。

    vCenter Server で、保留状態のユーザーが使用するすべての仮想マシンに ForensicHold タグが適用されます。

  • 仮想マシンの仮想ディスクとメモリをアーカイブする
    仮想マシンの仮想ディスクとメモリをアーカイブするには、次の API を使用します。
    /inventory/v1/machines/action/archive

    この API のドキュメンテーションについては、「こちら」を参照してください。

    • ユーザーが保留状態の仮想マシンからログアウトすると、アーカイブが実行されます。
    • 仮想マシンがアーカイブされると、これらは vCenter Server のアーカイブ データストア(上記の API で指定)の Archive フォルダ内に表示されます。
    • 仮想マシンに複数のディスクがある場合は、プライマリ ディスクのみがアーカイブされます。マルチディスク アーカイブは、このリリースではサポートされていません。
  • ユーザーの保留状態を解除する
    ユーザーの保留状態を解除するには、次の API を使用します。
    /external/v1/ad-users-or-groups/action/release-hold

    API は、保留状態のユーザーに割り当てられているすべてのデスクトップのデスクトップ ID、プール ID、およびマシン状態を返します。このアラート情報を使用して、スクリプト化されたデータ収集をトリガできます。この API のドキュメンテーションについては、「こちら」を参照してください。

  • 保留状態のユーザーを一覧表示する
    保留状態のユーザーを一覧表示するには、次の API を使用します。
    /external/v1/ad-users-or-groups/held-users-or-groups

    この API のドキュメンテーションについては、「こちら」を参照してください。

  • 保留状態のマシンを一覧表示する
    現在保留中のマシンのリストを作成するには、次の API を使用します。
    /inventory/v3/machines

    この API のドキュメンテーションについては、「こちら」を参照してください。

    注: この API は、すべてのマシンを返します。応答で、保留状態の仮想マシンには "held_machine": true という値が含まれています。