このドキュメントでは、データセンターに Migration Center のディスカバリー クライアントをインストールする際の懸念事項と質問について説明します。規制の厳しい環境で、お客様の IT アセットからデータを検出して収集する際のセキュリティ、コンプライアンス、パフォーマンスの重要性を強調しています。
データ収集の実施方法
ディスカバリー クライアントは、複数の方法を使用してターゲット マシンからデータを収集します。収集されるデータは、方法によって異なります。ゲストレベルでは、収集スクリプトを使用してデータが収集されます。ハイパーバイザー レベルでは、基盤となるプラットフォーム API を使用してデータが収集されます。
ディスカバリー クライアントのサービスとプロセス
ディスカバリ クライアントは、mcdc_service.exe というプロセスで GoogleMCDC というサービスとして実行されます。
収集スクリプト
検出クライアントで使用されるすべてのゲストレベルの収集方法では、ターゲット マシンで収集スクリプトが実行されます。収集に使用される実際のスクリプトについては、次のリンクをご覧ください。
- Linux
- Windows
収集スクリプトは、結果をアーカイブ ファイル(zip または tar)に保存します。このファイルは、検出クライアントによって取得されます。
収集メカニズム
ディスカバリー クライアントは、次のセクションで説明する 1 つ以上の収集メカニズムを使用して、ターゲット マシンからデータを収集できます。
SSH(Linux)
SSH 収集中、次のプロセスが発生します。
- コレクタ マシンとターゲット サーバーの間で SSH セッションが開始されます。
~/.mcdc-temp/の下に一時ディレクトリが作成されます。- 収集スクリプトがそのディレクトリにコピーされます。
- 収集スクリプトが実行されます。
- 結果アーカイブは SCP を使用して取得されます。
- 一時ディレクトリがクリーンアップされます。
WMI(Windows)
デフォルトでは、ディスカバリー クライアントはリモート WMI 呼び出しを使用して、ターゲット Windows マシンからデータを収集します。また、スクリプトベースの収集を有効にすると、ディスカバリー クライアントはターゲット マシンでスクリプトをコピーして実行します。
スクリプトベースの WMI 収集では、次のプロセスが発生します。
- ターゲット マシンへの WMI 接続が開始されます。
- 一時的な(揮発性の)レジストリキーが、ターゲット マシンの
HKLM:\SOFTWARE\Google\Collector\dataに作成されます。 - 収集スクリプトがレジストリキーにコピーされます。
C:\tempの下に一時ディレクトリが作成されます。- 収集スクリプトが一時ディレクトリに書き込まれます。
- 収集スクリプトが実行されます。
- 収集の結果は揮発性レジストリキーに書き込まれます。
- 結果はコレクタ マシンにコピーされます。
VMware ゲスト ツール(Linux と Windows)
Linux と Windows の両方の VMware 収集では、次のプロセスが発生します。
- 一時ディレクトリは VMware ゲストツールを使用して作成されます。
- 収集スクリプトがそのディレクトリにコピーされます。
- 収集スクリプトが実行されます。
- 結果アーカイブは VMware ゲストツールを使用して取得されます。
- 一時ディレクトリがクリーンアップされます。
定期的なデータ収集
ディスカバリー クライアントは、構成されたすべてのサーバーから定期的にデータを収集します。コレクションには次の 2 種類があります。
- 完全な収集: 各サーバーで 1 日 1 回実行されます。このコレクションは、ハードウェア、環境、インストールされているソフトウェア、実行中のプロセスなど、VM に関するさまざまな情報を収集する完全なコレクション スクリプトを実行します。
- パフォーマンス収集: 各サーバーで 10 分ごとに実行されます。このコレクションは、CPU、メモリ、ネットワーク、ディスクの使用率に関するデータを収集するパフォーマンス収集スクリプトを実行します。
収集されるデータの種類
収集スクリプトは、ターゲット VM に関するデータを収集して、構成方法と使用しているリソースを把握します。これにより、クラウドへの移行の評価と計画に役立ちます。
収集されるデータは次のとおりです。
- システム情報: VM のサイズ、パフォーマンス要件、特定のハードウェアまたはドライバへの依存関係を判断するうえで重要な基本情報。たとえば次のものを利用できます。
- オペレーティング システム(バージョンとリリース)
- ハードウェア(CPU、メモリ、BIOS の詳細)
- ネットワーク構成(ネットワーク インターフェース、IP アドレス、ルーティング テーブル)
- ストレージ(ディスク ドライブ、パーティション、マウント ポイント)
- インストールされたソフトウェアとサービス: スクリプトは、インストールされたパッケージと実行中のサービスのリストを収集して、VM のソフトウェア スタックとその役割を把握します。たとえば次のものを利用できます。
- ウェブサーバー(Apache、Tomcat、JBoss)
- データベース(SQL Server の証拠は Windows スクリプトで収集されます)
- 移行時に特定の構成が必要になる可能性がある他のアプリケーション。
- アプリケーション構成: スクリプトは、ウェブサーバー(IIS、Apache、Tomcat、JBoss、WordPress)の構成ファイルも収集します。これにより、これらのアプリケーションの特定の設定と依存関係を把握できます。これは、クラウド環境へのスムーズな移行を確保するために不可欠です。
- VMWare とクラウド環境の検出: Linux スクリプトと Windows スクリプトの両方で、VM がクラウド環境(AWS または Google Cloud)または VCenter クラスタで実行されているかどうかを検出します。これは、これらのクラウド プロバイダのメタデータ サーバーにリクエストを行うことで実現されます。VM がすでにクラウドにある場合、スクリプトはインスタンス ID、インスタンス タイプなどの関連するメタデータを収集します。
- パフォーマンス指標: パフォーマンス収集スクリプトは、リソース使用率を測定します。これには以下が含まれます。
- CPU
- メモリ
- I/O オペレーション
- ネットワーキング
- ネットワーク接続: スクリプトは、ネットワーク リソースに対するさまざまな依存関係の全体像を把握するために、開いている接続を収集します。
ターゲット マシンへのパフォーマンスの影響
リソース使用率の評価
ターゲット マシン上の収集スクリプトのリソース使用率は、実行中のプロセスの数、デプロイされたアプリケーションの数、アクティブなネットワーク接続の数などのパラメータによって異なります。
Windows では、コレクション スクリプトは Threading API で使用可能な最低の優先度で実行されます。Linux では、nice 値 5 を使用して、本番環境ワークロードとの干渉を最小限に抑え、収集スクリプトよりも優先度が高くなるようにします。
一般的な収集では、負荷のないマシンで 5 ~ 20 秒の単一コア CPU 使用率が高くなることがあります。他のワークロードが存在する場合、これらのワークロードの優先度が高いため、時間がかかることがあります。
緩和戦略
ディスカバリー クライアントには、特定の時間帯に特定のサーバーの収集を防止するメカニズムが用意されています。この機能を使用すると、ピーク時に重要なワークロードを実行しているサーバーからの収集を防ぐことができます。
セキュリティ上の考慮事項
認証と認可
ターゲット マシンとの通信
- 検出クライアントは、安全なチャネルを使用してターゲット マシンを認証し、ターゲット マシンと通信します。これには、SSH、WMI、VMware ツール、VCenter 接続が含まれます。ディスカバリー クライアントは、これらのプロトコルの一部として組み込みのセキュリティ対策を使用します。
- SSH では、ディスカバリー クライアントはユーザー名とパスワードによる認証と鍵ベースの認証の両方を許可します。サポートされている鍵ペアの種類の完全なリストについては、ターゲット アセットの要件をご覧ください。
Google Cloudとの通信
- 登録されたディスカバリー クライアントは、通常のオペレーション中に Google Cloud Migration Center と通信します。通信は、
roles/migrationcenter.discoveryClientロール バインディングを持つサービス アカウントを介して行われます。サービス アカウントは、自動的に作成されるか、登録プロセス中にユーザーによって提供されます。 - サービス アカウントの秘密鍵は、次のセクションで説明する暗号化メカニズムを使用して、検出クライアント マシンで暗号化されます。
- Google Cloud へのすべての通信は、このサービス アカウントを使用して認証され、SSL/TLS を使用して暗号化されます。
データ暗号化
- 転送中: すべての検出クライアント通信チャネルで暗号化を使用して、転送中のデータを保護します。これには、さまざまなプロトコル(SSH/WMI)を使用したターゲット マシンとの通信や、HTTPS を使用した Google Cloud との通信が含まれます。
- 保存時: ディスカバリー クライアントの PII、SPII、シークレットはすべて、
AES128_GCMアルゴリズムを使用して保存時に暗号化され、Windows DPAPI を使用して暗号鍵が安全に保存されます。
侵入検知および防止
検出クライアントは、組織内の多くの VM でスクリプトを接続して実行するために使用されるため、EDR または xDR アラートがトリガーされる可能性があります。これは、セキュリティ ツールの構成方法と使用している特定のツールに大きく依存します。特定の警告とデバイスの除外を作成することを検討してください。
ロギングとサポータビリティ
ディスカバリー クライアントは、オペレーション中にログを収集して、デバッグとサポートを可能にします。ディスカバリー クライアントのログは、次の 2 つのメカニズムを使用して収集されます。
- ローカルログ: ログは
C:\ProgramData\Google\mcdc\logsの下のファイルに書き込まれます。ログファイルはローテーションされ、圧縮されます。 - Cloud ログ: 登録されたクライアントは、ログを Google Cloud にも送信します。これにより、お客様の問題が報告されたときに、 Google Cloud サポートチームがログを使用できるようになります。