Como monitorar a integridade em VMs protegidas

Neste tópico, descrevemos como usar o Cloud Monitoring para monitorar a integridade da inicialização de instâncias de VMs protegidas com monitoramento de integridade ativado, identificar a causa de uma falha na validação da integridade e atualizar o valor de referência da política de integridade.

Como monitorar a integridade da inicialização da VM usando o Monitoring

Use o Cloud Monitoring para ver eventos de validação de integridade e definir alertas, e o Cloud Logging para revisar os detalhes desses eventos.

Como ver eventos de validação da integridade

Para visualizar as métricas de um recurso monitorado usando o Metrics Explorer, faça o seguinte:

  1. No console do Google Cloud, acesse a página do  Metrics Explorer:

    Acesse o Metrics explorer

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.

  2. No elemento Metric, expanda o menu Selecionar uma métrica, digite Boot Validation na barra de filtro e use os submenus para selecionar um tipo de recurso e métrica específicos:
    1. No menu Recursos ativos, selecione Instância de VM.
    2. No menu Categorias de métrica ativas, selecione Instância.
    3. No menu Métricas ativas, selecione Validação de inicialização antecipada ou Validação de inicialização atrasada.
      • Validação de inicialização antecipada: mostra o status de aprovação/reprovação referente à parte de inicialização antecipada da última sequência de inicialização. A inicialização antecipada é a sequência que vai desde quando o firmware UEFI é iniciado até o momento em que ele passa o controle para o carregador de inicialização.
      • Validação de inicialização atrasada: mostra o status de aprovação/reprovação da parte de inicialização atrasada da última sequência de inicialização. A inicialização atrasada é a sequência que vai desde o carregador de inicialização até a conclusão. Isso inclui o carregamento do kernel do sistema operacional.
    4. Clique em Aplicar.
  3. Para remover séries temporais da exibição, use o elemento Filtro.

  4. Para combinar séries temporais, use os menus no elemento Agregação. Por exemplo, para exibir a utilização da CPU para suas VMs, com base na zona, defina o primeiro menu como Média e o segundo como zona.

    Todas as séries temporais são exibidas quando o primeiro menu do elemento Agregação está definido como Não agregado. As configurações padrão do elemento Agregação são determinadas pelo tipo de métrica selecionada.

  5. Para cotas e outras métricas que informam uma amostra por dia, faça as seguintes ações:
    1. No painel Exibição, defina o Tipo de widget como Gráfico de barras empilhadas.
    2. Defina o período como pelo menos uma semana.

Como definir alertas para eventos de validação de integridade

Defina alertas para valores das métricas Validação de inicialização antecipada e Validação de inicialização atrasada, caso você queira receber uma notificação quando houver uma falha na validação de inicialização na instância de VM. Para mais informações sobre alertas, consulte Introdução a alertas.

Como ver detalhes do evento de validação da integridade

  1. Acessar a página "Instâncias de VM"
  2. Clique no código da instância para abrir a página Detalhes da instância de VM.
  3. Em Registros, clique em Cloud Logging.
  4. Localize a entrada de registro earlyBootReportEvent ou lateBootReportEvent que você quer analisar.
  5. Expanda a entrada de registro > jsonPayload > earlyBootReportEvent ou lateBootReportEvent, conforme apropriado. Nessa seção, o elemento policyEvaluationPassed identifica se a seção determinada da sequência de inicialização foi aprovada na verificação com o valor de referência da política de integridade.
  6. Expanda a seção actualMeasurements e os elementos numerados dela para ver os valores de registro de configuração da plataforma (PCR, na sigla em inglês) salvos na sequência de inicialização mais recente. Os valores de PCR são salvos em value nos elementos numerados. Eles identificam os componentes de inicialização e a ordem de carregamento dos componentes usados pela sequência de inicialização mais recente. Além disso, eles são comparados com o valor de referência da política de integridade para determinar se houve alguma alteração na sequência de inicialização da instância de VM. Para mais informações sobre a representação dos PCRs, consulte Eventos de monitoramento da integridade.
  7. Expanda a seção policyMeasurements para ver os valores de PCR salvos como valor de referência da política de integridade.

Como automatizar respostas a eventos de validação de integridade

Para automatizar as respostas a eventos de validação de inicialização, exporte os registros do Cloud Logging e processe-os em outro serviço, como o Cloud Run functions. Para mais informações, consulte Visão geral de roteamento e armazenamento e Como automatizar respostas a falhas de validação de integridade.

Como determinar a causa da falha na validação de integridade da inicialização

  1. Acessar a página "Instâncias de VM"
  2. Clique no código da instância para abrir a página Detalhes da instância de VM.
  3. Em Registros, clique em Cloud Logging.
  4. Localize as entradas de registro earlyBootReportEvent e lateBootReportEvent mais recentes e veja a que tem o valor policyEvaluationPassed como false.
  5. Expanda a entrada de registro > jsonPayload > earlyBootReportEvent ou lateBootReportEvent, conforme apropriado.
  6. Expanda as seções actualMeasurements e policyMeasurements e os elementos numerados dentro delas para ver os valores de registro de configuração de plataforma (PCR, na sigla em inglês) salvos da sequência de inicialização mais recente e o valor de referência da política de integridade, respectivamente. Os valores de PCR identificam os componentes de inicialização e a ordem de carregamento dos componentes usados pela última sequência de inicialização e pelo valor de referência da política de integridade.
  7. Compare os valores de PCR nas seções actualMeasurements e policyMeasurements para determinar onde ocorreu a variação entre a sequência de inicialização mais recente e o valor de referência da política de integridade. Qualquer comparação que produza valores diferentes é o problema que causou a falha na validação. Saiba que os números dos elementos nessas seções raramente correspondem aos números de PCR. Além disso, os elementos com numeração similar em actualMeasurements e policyMeasurements podem representar PCRs diferentes. Por exemplo, na sequência de inicialização antecipada para Windows e Linux, o elemento 3 em actualMeasurements e o elemento 2 em policyMeasurements representam PCR7.

  8. Consulte Eventos de monitoramento de integridade para determinar o que o PCR alterado representa e investigue se essa é uma alteração esperada.

Como atualizar o valor de referência da política de integridade

O valor de referência da política de integridade inicial deriva da imagem de inicialização implicitamente confiável quando a instância é criada. A atualização do valor de referência atualiza o valor de referência da política de integridade usando a configuração da instância atual. A instância de VM precisa estar em execução quando você atualiza o valor de referência.

Você precisará atualizar o valor de referência depois de qualquer alteração específica da inicialização planejada na configuração da instância, como atualizações do kernel ou instalação do driver do kernel, porque elas causarão falhas na validação de integridade. Em caso de falha inesperada na validação da integridade, verifique o motivo da falha e prepare-se para interromper a instância, se necessário.

Você precisa ter a permissão setShieldedInstanceIntegrityPolicy para atualizar o valor de referência da política de integridade.

Use o procedimento a seguir para atualizar o valor de referência da política de integridade.

gcloud

Atualize o valor de referência da política de integridade da instância de VM usando o comando compute instances update com a sinalização --shielded-learn-integrity-policy.

No exemplo a seguir, o valor de referência da política de integridade é redefinido para a instância de VM my-instance:

gcloud compute instances update INSTANCE_NAME \
    --zone=ZONE \
    --shielded-learn-integrity-policy

Substitua:

  • INSTANCE_NAME: nome da VM.
  • ZONE: a zona em que a VM está.

API

Atualize o valor de referência da política de integridade da instância de VM usando o item do corpo da solicitação updateAutoLearnPolicy com o método setShieldedInstanceIntegrityPolicy.

No exemplo a seguir, o valor de referência da política de integridade é redefinido para uma instância de VM.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setShieldedInstanceIntegrityPolicy?key=YOUR_API_KEY
{
  "updateAutoLearnPolicy": true
}

Substitua:

  • PROJECT_ID: o ID do projeto em que a VM está.
  • INSTANCE_NAME: nome da VM.
  • ZONE: a zona em que a VM está.
  • YOUR_API_KEY: uma chave de API que permite acessar a API.

A seguir