本文將說明在資料中心安裝 Migration Center 探索用戶端時,可能會遇到的問題和疑慮。並強調在高度管制環境中,從客戶 IT 資產探索及收集資料時,安全性、法規遵循和效能的重要性。
資料收集方式
用戶資產評估器會使用多種方法,從目標電腦收集資料。收集的資料會因方法而異。在客層級,資料是透過收集指令碼收集;在管理程序層級,資料是透過基礎平台 API 收集。
用戶資產評估器服務和程序
探索用戶端會以名為 GoogleMCDC 的服務形式執行,並在名為 mcdc_service.exe 的程序下運作。
收集指令碼
探索用戶端使用的所有訪客層級收集方法,都會在目標電腦上執行收集指令碼。如要查看實際用於收集資料的指令碼,請點選下列連結:
收集指令碼會將結果儲存在封存檔案 (zip 或 tar) 中,探索用戶端隨後會擷取該檔案。
收集機制
探索用戶端可能會使用下列章節所述的一或多個收集機制,從目標機器收集資料。
SSH (Linux)
收集 SSH 記錄時,會發生下列情況:
- 系統會在收集器機器和目標伺服器之間啟動 SSH 工作階段。
- 系統會在
~/.mcdc-temp/下建立臨時目錄。 - 收集指令碼會複製到該目錄。
- 執行收集指令碼。
- 結果封存檔會使用 SCP 擷取。
- 臨時目錄已清理完畢。
WMI (Windows)
根據預設,用戶端探索工具會使用遠端 WMI 呼叫,從目標 Windows 電腦收集資料。或者,如果您啟用指令碼式收集功能,探索用戶端會複製並執行目標電腦上的指令碼。
在以指令碼為基礎的 WMI 收集作業期間,會發生下列程序:
- 系統會啟動與目標機器的 WMI 連線。
- 系統會在目標電腦的
HKLM:\SOFTWARE\Google\Collector\data下方建立暫時 (揮發性) 登錄機碼。 - 收集指令碼會複製到登錄機碼。
- 系統會在
C:\temp下建立臨時目錄。 - 收集指令碼會寫入暫時目錄。
- 執行收集指令碼。
- 收集結果會寫入揮發性登錄機碼。
- 結果會複製到收集器電腦。
VMware Guest Tools (Linux 和 Windows)
在 Linux 和 Windows 的 VMware 收集作業期間,會發生下列程序:
- 系統會使用 VMware 客戶端工具建立臨時目錄。
- 收集指令碼會複製到該目錄。
- 執行收集指令碼。
- 結果封存檔會使用 VMware 客戶端工具擷取。
- 臨時目錄已清理完畢。
定期收集資料
用戶資產評估器會定期從所有已設定的伺服器收集資料。收藏內容分為兩種:
- 完整收集:每部伺服器每天執行一次。這個集合會執行完整的集合指令碼,收集 VM 的各種資訊,例如硬體、環境、已安裝的軟體、正在執行的程序等。
- 效能收集:每 10 分鐘在每部伺服器上執行一次。這個集合會執行效能收集指令碼,收集 CPU、記憶體、網路和磁碟使用率的資料。
我們會蒐集哪些資料
收集指令碼會收集目標 VM 的資料,瞭解 VM 的設定方式和使用的資源。這有助於評估及規劃遷移至雲端的作業。
以下列出收集的資料:
- 系統資訊:這項基本資訊對於判斷 VM 的大小、效能需求,以及對特定硬體或驅動程式的依附元件至關重要。該指南的內容包括:
- 作業系統 (版本和發布)
- 硬體 (CPU、記憶體、BIOS 詳細資料)
- 網路設定 (網路介面、IP 位址、路由表)
- 儲存空間 (磁碟機、磁碟分割區、掛接點)
- 已安裝的軟體和服務:指令碼會收集已安裝套件和執行中服務的清單,瞭解 VM 的軟體堆疊及其角色。該指南的內容包括:
- 網路伺服器 (Apache、Tomcat、JBoss)
- 資料庫 (Windows 指令碼中會收集 SQL Server 的證據)
- 其他應用程式,可能需要在遷移期間進行特定設定。
- 應用程式設定:指令碼也會收集網路伺服器 (IIS、Apache、Tomcat、JBoss、WordPress) 的設定檔。這有助於瞭解這些應用程式的特定設定和依附元件,確保順利轉換至雲端環境。
- 偵測 VMware 和雲端環境:Linux 和 Windows 指令碼都會嘗試偵測 VM 是否已在雲端環境 (AWS 或 Google Cloud) 或 VCenter 叢集中執行。方法是向這些雲端供應商的中繼資料伺服器發出要求。如果 VM 已在雲端中,指令碼會收集相關中繼資料,例如執行個體 ID、執行個體類型和其他詳細資料。
- 成效指標:成效收集指令碼會評估資源用量。包括:
- CPU
- 記憶體
- I/O 作業
- 網路
- 網路連線:指令碼會收集開放連線,協助瞭解網路資源的各種依附元件。
對目標機器的效能影響
資源使用率評估
目標電腦上收集指令碼的資源用量取決於多項參數,例如執行的程序數量、部署的應用程式數量、有效的網路連線數量等。
在 Windows 上,收集指令碼會使用 Threading API 提供的最低優先順序執行。在 Linux 上,nice 值為 5,可盡量減少對生產工作負載的干擾,並確保這些工作負載的優先順序高於收集指令碼。
在未負載的機器上,一般收集作業可能會導致單一核心 CPU 使用率在 5 到 20 秒內達到高點。如果還有其他工作負載,可能需要較長時間,因為這些工作負載的優先順序較高。
緩解策略
探索用戶端提供一種機制,可防止在特定時段收集特定伺服器的資料。這項功能可避免在尖峰時段,從執行重要工作負載的伺服器收集資料。
安全性考量
驗證及授權
與目標電腦通訊
- 探索用戶端會使用安全通道,驗證目標電腦並與其通訊。包括 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 並在這些 VM 上執行指令碼,因此可能會觸發 EDR 或 xDR 快訊。這很大程度上取決於您設定安全工具的方式,以及您使用的特定工具。請注意,並考慮為特定快訊和裝置建立例外狀況。
記錄和支援
探索用戶端會在運作期間收集記錄,以利進行偵錯和支援。系統會使用兩種機制收集用戶端探索記錄:
- 本機記錄:記錄會寫入
C:\ProgramData\Google\mcdc\logs下的檔案。記錄檔會輪替並壓縮。 - 雲端記錄:註冊的用戶端也會將記錄傳送至 Google Cloud ,以便客戶回報問題時, Google Cloud 支援團隊使用。