Coleta e segurança de dados do Discovery client

Este documento aborda dúvidas e questões sobre a instalação do cliente de descoberta da Central de migração em data centers. Ele enfatiza a importância da segurança, da conformidade e da performance ao descobrir e coletar dados de recursos de TI dos clientes em ambientes altamente regulamentados.

Como a coleta de dados é feita

O cliente de descoberta usa vários métodos para coletar dados das máquinas de destino. Os dados coletados variam de acordo com o método. No nível de convidado, os dados são coletados usando os scripts de coleta. No nível do hipervisor, os dados são coletados usando as APIs da plataforma subjacente.

Serviço e processo do discovery client

O cliente de descoberta é executado como um serviço chamado GoogleMCDC em um processo chamado mcdc_service.exe.

Scripts de coleções

Todos os métodos de coleta no nível do convidado usados pelo cliente de descoberta executam scripts de coleta nas máquinas de destino. Confira os scripts reais usados para coleta nos links a seguir:

Os scripts de coleta armazenam os resultados em um arquivo de arquivamento (zip ou tar) que o cliente de descoberta recupera.

Mecanismos de coleta

O cliente de descoberta pode usar um ou mais dos mecanismos de coleta descritos nas seções a seguir para coletar dados das máquinas de destino.

SSH (Linux)

Durante a coleta de SSH, ocorre o seguinte processo:

  1. Uma sessão SSH é iniciada entre a máquina do coletor e o servidor de destino.
  2. Um diretório temporário é criado em ~/.mcdc-temp/.
  3. O script de coleta é copiado para esse diretório.
  4. O script de coleta é executado.
  5. O arquivo de resultados é buscado usando SCP.
  6. O diretório temporário é limpo.

WMI (Windows)

Por padrão, o discovery client usa chamadas WMI remotas para coletar dados de máquinas Windows de destino. Como alternativa, se você ativar a coleta baseada em script, o cliente de descoberta vai copiar e executar um script na máquina de destino.

Durante a coleta de WMI baseada em script, ocorre o seguinte processo:

  1. Uma conexão WMI é iniciada com a máquina de destino.
  2. Uma chave de registro temporária (volátil) é criada na máquina de destino em HKLM:\SOFTWARE\Google\Collector\data.
  3. O script de coleta é copiado para a chave de registro.
  4. Um diretório temporário é criado em C:\temp.
  5. O script de coleta é gravado no diretório temporário.
  6. O script de coleta é executado.
  7. O resultado da coleta é gravado na chave de registro volátil.
  8. O resultado é copiado para a máquina do coletor.

VMware Guest Tools (Linux e Windows)

Durante a coleta da VMware para Linux e Windows, o seguinte processo ocorre:

  1. Um diretório temporário é criado usando as ferramentas de convidado do VMware.
  2. O script de coleta é copiado para esse diretório.
  3. O script de coleta é executado.
  4. O arquivo de resultados é buscado usando as ferramentas de convidado do VMware.
  5. O diretório temporário é limpo.

Coleta de dados periódica

O discovery client coleta dados de todos os servidores configurados de forma periódica. Há dois tipos de coleta:

  • Coleta completa:é executada uma vez por dia em cada servidor. Essa coleta executa o script de coleta completo que coleta várias informações sobre a VM, como hardware, ambiente, software instalado, processos em execução e muito mais.
  • Coleta de performance:é executada a cada 10 minutos em cada servidor. Essa coleta executa o script de coleta de desempenho que coleta dados sobre a utilização de CPU, memória, rede e disco.

Quais dados são coletados

Os scripts de coleta coletam dados sobre as VMs de destino para entender como elas estão configuradas e quais recursos usam. Isso ajuda a avaliar e planejar a migração para a nuvem.

A lista a seguir descreve os dados coletados:

  • Informações do sistema: as informações básicas que são cruciais para determinar o tamanho da VM, os requisitos de desempenho e as dependências de hardware ou drivers específicos. Ele inclui:
    • Sistema operacional (versão e lançamento)
    • Hardware (CPU, memória, detalhes do BIOS)
    • Configuração de rede (interfaces de rede, endereços IP, tabelas de roteamento)
    • Armazenamento (unidades de disco, partições, pontos de montagem)
  • Software e serviços instalados: os scripts coletam uma lista de pacotes instalados e serviços em execução para entender a pilha de software da VM e sua função. Ele inclui:
    • Servidores da Web (Apache, Tomcat, JBoss)
    • Bancos de dados (evidências do SQL Server são coletadas no script do Windows)
    • Outros aplicativos que podem exigir configurações específicas durante a migração.
  • Configurações de aplicativos: os scripts também coletam arquivos de configuração para servidores da Web (IIS, Apache, Tomcat, JBoss, Wordpress). Isso ajuda a entender as configurações e dependências específicas desses aplicativos, o que é vital para garantir uma transição tranquila para o ambiente de nuvem.
  • Detecção de ambiente de nuvem e VMWare: os scripts do Linux e do Windows tentam detectar se a VM já está sendo executada em um ambiente de nuvem (AWS ou Google Cloud) ou em um cluster do VCenter. Para isso, eles fazem solicitações aos servidores de metadados desses provedores de nuvem. Se a VM já estiver na nuvem, os scripts vão coletar metadados relevantes, como ID e tipo da instância, entre outros detalhes.
  • Métricas de performance:os scripts de coleta de performance medem a utilização de recursos. Isso inclui o seguinte:
    • CPU
    • Memória
    • Operações de E/S
    • Rede
  • Conexões de rede:os scripts coletam conexões abertas para ajudar a criar uma imagem das diferentes dependências de recursos de rede.

Impacto na performance das máquinas de destino

Avaliação do uso de recursos

A utilização de recursos dos scripts de coleta na máquina de destino depende de parâmetros como o número de processos em execução, o número de aplicativos implantados, o número de conexões de rede ativas e outros.

No Windows, o script de coleta é executado com a menor prioridade disponível pela API Threading. No Linux, um valor nice de 5 é usado para minimizar a interferência com as cargas de trabalho de produção e garantir que elas tenham maior prioridade em relação ao script de coleta.

Uma coleta típica pode levar de 5 a 20 segundos de alto uso de CPU de núcleo único em uma máquina sem carga. Isso pode levar mais tempo se outras cargas de trabalho estiverem presentes, porque elas têm maior prioridade.

Estratégias de mitigação

O discovery client oferece um mecanismo para impedir a coleta de servidores específicos durante horários específicos. Esse recurso pode ser usado para evitar a coleta de servidores que executam cargas de trabalho críticas durante os horários de pico.

Considerações sobre segurança

Autenticação e autorização

Comunicação com máquinas de destino

  • O cliente de descoberta usa canais seguros para autenticar e se comunicar com máquinas de destino. Isso inclui conexões SSH, WMI, ferramentas VMware e vCenter. O cliente de descoberta usa as medidas de segurança integradas como parte desses protocolos.
  • No SSH, o cliente de descoberta permite a autenticação com nome de usuário e senha e com base em chaves. Para uma lista completa dos tipos de pares de chaves compatíveis, consulte Requisitos de recursos de destino.

Comunicação com Google Cloud

  • Os discovery clients registrados se comunicam com o Migration Center do Google Cloud durante a operação normal. A comunicação acontece por uma conta de serviço com a vinculação de papel roles/migrationcenter.discoveryClient. A conta de serviço é criada automaticamente ou fornecida pelo usuário durante o processo de registro.
  • A chave privada da conta de serviço é criptografada na máquina cliente de descoberta usando o mecanismo de criptografia descrito na seção a seguir.
  • Toda a comunicação com Google Cloud é autenticada usando essa conta de serviço e criptografada com SSL/TLS.

Criptografia de dados

  • Em trânsito:todos os canais de comunicação do cliente de descoberta usam criptografia para proteger os dados em trânsito. Isso inclui a comunicação com as máquinas de destino usando os diferentes protocolos (SSH/WMI) e a comunicação com Google Cloud usando HTTPS.
  • Em repouso:as informações pessoais identificáveis (PII), as informações pessoais sensíveis identificáveis (SPII) e os secrets do cliente de descoberta são criptografados em repouso usando o algoritmo AES128_GCM e a DPAPI do Windows para armazenar com segurança as chaves de criptografia.

Detecção e prevenção contra invasões

Como o cliente de descoberta é usado para conectar e executar scripts em muitas VMs na sua organização, ele pode acionar alertas de EDR ou XDR. Isso depende muito da configuração das suas ferramentas de segurança e das ferramentas específicas que você está usando. Crie exceções para alertas e dispositivos específicos.

Geração de registros e capacidade de suporte

O cliente de descoberta coleta registros durante a operação para permitir depuração e suporte. Os registros do discovery client são coletados usando dois mecanismos:

  • Registros locais:os registros são gravados em um arquivo em C:\ProgramData\Google\mcdc\logs. Os arquivos de registro são rotacionados e compactados.
  • Registros do Cloud:os clientes registrados também enviam os registros para Google Cloud para que possam ser usados pela equipe de suporte do Google Cloud quando os problemas dos clientes são relatados.