Raccolta e sicurezza dei dati del cliente predittivo

Questo documento risponde a dubbi e domande sull'installazione del client di rilevamento di Migration Center nei data center. Sottolinea l'importanza della sicurezza, della conformità e delle prestazioni durante l'individuazione e la raccolta dei dati dagli asset IT dei clienti in ambienti altamente regolamentati.

Come viene eseguita la raccolta dei dati

Il client di rilevamento utilizza diversi metodi per raccogliere i dati dalle macchine di destinazione. I dati raccolti variano a seconda del metodo. A livello di guest, i dati vengono raccolti utilizzando gli script di raccolta; a livello di hypervisor, i dati vengono raccolti utilizzando le API di piattaforma sottostanti.

Servizio e processo del client predittivo

Il client discovery viene eseguito come servizio denominato GoogleMCDC in un processo chiamato mcdc_service.exe.

Script di raccolta

Tutti i metodi di raccolta a livello di ospite utilizzati dal client di rilevamento eseguono script di raccolta sulle macchine di destinazione. Puoi esaminare gli script effettivi utilizzati per la raccolta ai seguenti link:

Gli script di raccolta memorizzano i risultati in un file di archivio (zip o tar) che il client di discovery recupera.

Meccanismi di raccolta

Il client di scoperta può utilizzare uno o più dei meccanismi di raccolta descritti nelle sezioni seguenti per raccogliere i dati dalle macchine di destinazione.

SSH (Linux)

Durante la raccolta SSH, viene eseguita la seguente procedura:

  1. Viene avviata una sessione SSH tra il computer del collettore e il server di destinazione.
  2. Viene creata una directory temporanea in ~/.mcdc-temp/.
  3. Lo script della raccolta viene copiato in quella directory.
  4. Lo script di raccolta viene eseguito.
  5. L'archivio dei risultati viene recuperato utilizzando SCP.
  6. La directory temporanea viene ripulita.

WMI (Windows)

Durante la raccolta WMI su Windows, viene eseguita la seguente procedura:

  1. Viene avviata una connessione WMI alla macchina di destinazione.
  2. Nella macchina di destinazione viene creata una chiave del Registro di sistema temporanea (volatile) in HKLM:\SOFTWARE\Google\Collector\data.
  3. Lo script di raccolta viene copiato nella chiave del registry.
  4. Viene creata una directory temporanea in C:\temp.
  5. Lo script di raccolta viene scritto nella directory temporanea.
  6. Lo script di raccolta viene eseguito.
  7. Il risultato della raccolta viene scritto nella chiave del registry volatile.
  8. Il risultato viene copiato sul computer del raccoglitore.

VMware Guest Tools (Linux e Windows)

Durante la raccolta di VMware sia per Linux che per Windows, avviene la seguente procedura:

  1. Viene creata una directory temporanea utilizzando gli strumenti guest VMware.
  2. Lo script della raccolta viene copiato in quella directory.
  3. Lo script di raccolta viene eseguito.
  4. L'archivio dei risultati viene recuperato utilizzando gli strumenti guest VMware.
  5. La directory temporanea viene ripulita.

Raccolta periodica dei dati

Il client predittivo raccoglie i dati da tutti i server configurati in modo periodico. Esistono due tipi di raccolte:

  • Raccolta completa:viene eseguita una volta al giorno per ogni server. Questa raccolta esegue lo script di raccolta completo che raccoglie varie informazioni sulla VM, come l'hardware, l'ambiente, il software installato, i processi in esecuzione e altro ancora.
  • Raccolta del rendimento:viene eseguita ogni 10 minuti su ogni server. Questa raccolta esegue lo script di raccolta delle prestazioni che raccoglie i dati sull'utilizzo di CPU, memoria, rete e disco.

Quali dati vengono raccolti

Gli script di raccolta raccolgono i dati sulle VM di destinazione per capire come sono configurate e quali risorse utilizzano. Ciò consente di valutare e pianificare la migrazione al cloud.

L'elenco seguente descrive i dati raccolti:

  • Informazioni di sistema: le informazioni di base fondamentali per determinare le dimensioni, i requisiti di prestazioni e le dipendenze della VM da hardware o driver specifici. Sono inclusi:
    • Sistema operativo (versione e release)
    • Hardware (CPU, memoria, dettagli del BIOS)
    • Configurazione di rete (interfacce di rete, indirizzi IP, tabelle di routing)
    • Archiviazione (unità disco, partizioni, punti di montaggio)
  • Software e servizi installati: gli script raccolgono un elenco di pacchetti installati e servizi in esecuzione per comprendere lo stack software e il ruolo della VM. Sono inclusi:
    • Server web (Apache, Tomcat, JBoss)
    • Database (le prove di SQL Server vengono raccolte nello script Windows)
    • Altre applicazioni che potrebbero richiedere configurazioni specifiche durante la migrazione.
  • Configurazioni delle applicazioni: gli script raccolgono anche i file di configurazione per i server web (IIS, Apache, Tomcat, JBoss, WordPress). In questo modo, puoi comprendere le impostazioni e le dipendenze specifiche di queste applicazioni, il che è fondamentale per garantire una transizione fluida all'ambiente cloud.
  • Rilevamento dell'ambiente VMware e cloud: sia gli script Linux che quelli Windows tentano di rilevare se la VM è già in esecuzione in un ambiente cloud (AWS o Google Cloud) o in un cluster VCenter. A tal fine, inviano richieste ai server dei metadati di questi fornitori di servizi cloud. Se la VM è già nel cloud, gli script raccolgono i metadati pertinenti come ID istanza, tipo di istanza e altri dettagli.
  • Metriche relative alle prestazioni:gli script di raccolta delle prestazioni misurano l'utilizzo delle risorse. Sono inclusi:
    • CPU
    • Memoria
    • Operazioni I/O
    • Networking
  • Connessioni di rete: gli script raccolgono le connessioni aperte per contribuire a creare un quadro delle diverse dipendenze dalle risorse di rete.

Impatto sulle prestazioni delle macchine di destinazione

Valutazione dell'utilizzo delle risorse

L'utilizzo delle risorse degli script di raccolta sulla macchina di destinazione dipende da parametri quali il numero di processi in esecuzione, il numero di applicazioni di cui è stato eseguito il deployment, il numero di connessioni di rete attive e altri ancora.

Su Windows, lo script di raccolta viene eseguito utilizzando la priorità più bassa disponibile tramite l'API Threading. Su Linux, viene utilizzato un valore nice pari a 5 per ridurre al minimo le interferenze con i carichi di lavoro di produzione e garantire che abbiano una priorità più alta rispetto allo script di raccolta.

Una raccolta tipica potrebbe richiedere 5-20 secondi di utilizzo elevato della CPU a un solo core su una macchina non caricata. L'operazione potrebbe richiedere più tempo se sono presenti altri carichi di lavoro, poiché questi hanno una priorità più elevata.

Strategie di mitigazione

Il client di rilevamento fornisce un meccanismo per impedire la raccolta di server specifici durante orari specifici. Questa funzionalità può essere utilizzata per impedire la raccolta dai server che eseguono carichi di lavoro critici durante le ore di punta.

Considerazioni sulla sicurezza

Autenticazione e autorizzazione

Comunicazione con le macchine di destinazione

  • Il client di rilevamento utilizza canali sicuri per autenticarsi e comunicare con le macchine di destinazione. Sono incluse le connessioni SSH, WMI, VMware e VCenter. Il client di rilevamento utilizza le misure di sicurezza integrate nell'ambito di questi protocolli.
  • In SSH, il client di rilevamento consente sia l'autenticazione basata su nome utente e password sia su chiave. Per un elenco completo dei tipi di coppie di chiavi supportati, consulta Requisiti delle risorse di destinazione.

Comunicazione con Google Cloud

  • I client di rilevamento registrati comunicano con Google Cloud Migration Center durante il normale funzionamento. La comunicazione avviene tramite un account di servizio con l'associazione del ruolo roles/migrationcenter.discoveryClient. L'account di servizio viene creato automaticamente o fornito dall'utente durante la procedura di registrazione.
  • La chiave privata dell'account di servizio viene criptata sulla macchina del client di discovery utilizzando il meccanismo di crittografia descritto nella sezione seguente.
  • Tutte le comunicazioni con Google Cloud vengono autenticate utilizzando questo account di servizio e criptate utilizzando SSL/TLS.

Crittografia dei dati

  • In transito: tutti i canali di comunicazione dei client di discovery utilizzano la crittografia per proteggere i dati in transito. Sono incluse la comunicazione con le macchine di destinazione che utilizzano i diversi protocolli (SSH/WMI) e la comunicazione con Google Cloud tramite HTTPS.
  • In stato inattivo:le PII, le informazioni sensibili e i secret del client di rilevamento sono tutti criptati in stato inattivo utilizzando l'algoritmo AES128_GCM e la DPAPI di Windows per archiviare in modo sicuro le chiavi di crittografia.

Rilevamento e prevenzione delle intrusioni

Poiché il client di rilevamento viene utilizzato per connettere ed eseguire script su molte VM della tua organizzazione, potrebbe attivare avvisi EDR o xDR. Ciò dipende molto dal modo in cui sono configurati gli strumenti di sicurezza e dagli strumenti specifici che utilizzi. Tieni presente questa possibilità e valuta la possibilità di creare esenzioni per gli avvisi e i dispositivi specifici.

Logging e supportabilità

Il client di rilevamento raccoglie i log durante il funzionamento per consentire il debugging e l'assistenza. I log del client predittivo vengono raccolti utilizzando due meccanismi:

  • Log locali:i log vengono scritti in un file in C:\ProgramData\Google\mcdc\logs. I file di log vengono ruotati e compressi.
  • Log di Cloud: i clienti registrati inviano anche i log a Google Cloud in modo che possano essere utilizzati dal team di assistenza Google Cloud quando vengono segnalati problemi dei clienti.