Monitorizar a integridade em VMs protegidas

Este documento descreve como usar o Cloud Monitoring para monitorizar a integridade do arranque de instâncias de VMs protegidas com a monitorização da integridade ativada, identificar a causa de uma falha de validação da integridade e atualizar a base de referência da política de integridade.

Monitorizar a integridade do arranque da VM através do Monitoring

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

Visualizar eventos de validação de integridade

Para ver as métricas de um recurso monitorizado através do Metrics Explorer, faça o seguinte:

  1. Na Google Cloud consola, aceda à página  Explorador de métricas:

    Aceda ao Metrics Explorer

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.

  2. Na barra de ferramentas da Google Cloud consola, selecione o seu Google Cloud projeto. Para configurações do App Hub, selecione o projeto anfitrião do App Hub ou o projeto de gestão da pasta com apps ativadas.
  3. No elemento Métrica, expanda o menu Selecionar uma métrica, introduza Boot Validation na barra de filtros e, de seguida, use os submenus para selecionar um tipo de recurso e uma métrica específicos:
    1. No menu Recursos ativos, selecione Instância de VM.
    2. No menu Categorias de métricas ativas, selecione Instância.
    3. No menu Métricas ativas, selecione Validação de arranque antecipada ou Validação de arranque tardia.
      • Validação do arranque antecipado: mostra o estado de aprovação/reprovação da parte de arranque antecipado da última sequência de arranque. O arranque antecipado é a sequência de arranque desde o início do firmware UEFI até passar o controlo para o carregador de arranque.
      • Validação de arranque tardio: mostra o estado de aprovação/reprovação da parte de arranque tardio da última sequência de arranque. O arranque tardio é a sequência de arranque desde o carregador de arranque até à conclusão. Isto inclui o carregamento do kernel do sistema operativo.
    4. Clique em Aplicar.
  4. Para adicionar filtros que removem séries cronológicas dos resultados da consulta, use o elemento Filter.

  5. Para combinar séries cronológicas, use os menus no elemento Agregação. Por exemplo, para apresentar a utilização da CPU das suas VMs, com base na respetiva zona, defina o primeiro menu como Média e o segundo menu como zona.

    Todas as séries cronológicas são apresentadas quando o primeiro menu do elemento Agregação está definido como Não agregado. As predefinições do elemento Agregação são determinadas pelo tipo de métrica que selecionou.

  6. Para a quota e outras métricas que comunicam uma amostra por dia, faça o seguinte:
    1. No painel Apresentação, defina o Tipo de widget como Gráfico de barras empilhadas.
    2. Defina o período como, pelo menos, uma semana.

Definir alertas em eventos de validação da integridade

Defina alertas sobre os valores das métricas Validação de arranque antecipada e Validação de arranque tardia se quiser receber uma notificação quando ocorrer uma falha de validação de arranque na sua instância de VM. Para informações sobre alertas, consulte o artigo Introdução aos alertas:

Ver detalhes do evento de validação da integridade

  1. Aceda à página de instâncias de VM
  2. Clique no ID da instância para abrir a página Detalhes da instância de VM.
  3. Em Registos, clique em Cloud Logging.
  4. Localize a entrada de registo earlyBootReportEvent ou lateBootReportEvent que quer rever.
  5. Expanda a entrada do registo > jsonPayload > earlyBootReportEvent ou lateBootReportEvent, conforme adequado. Nessa secção, o elemento policyEvaluationPassed identifica se a secção fornecida da sequência de arranque passou na validação em relação à base de referência da política de integridade.
  6. Expanda a secção actualMeasurements e os elementos numerados na mesma para ver os valores do registo de configuração da plataforma (PCR) guardados da sequência de arranque mais recente. Os valores de PCR são guardados nos elementos value nos elementos numerados. Os valores de PCR identificam os componentes de arranque e a ordem de carregamento dos componentes usados pela sequência de arranque mais recente e são comparados com a base de referência da política de integridade para determinar se houve alguma alteração na sequência de arranque da instância de VM. Para mais informações sobre o que os PCRs representam, consulte o artigo Eventos de monitorização da integridade.
  7. Expanda a secção policyMeasurements para ver os valores PCR guardados para a base de referência da política de integridade.

Automatizar respostas a eventos de validação da integridade

Pode automatizar as respostas a eventos de validação de arranque exportando os registos do Cloud Logging e processando-os noutro serviço, como as funções do Cloud Run. Para mais informações, consulte os artigos Vista geral do encaminhamento e armazenamento e Automatizar respostas a falhas de validação da integridade.

Determinar a causa da falha na validação da integridade do arranque

  1. Aceda à página de instâncias de VM
  2. Clique no ID da instância para abrir a página Detalhes da instância de VM.
  3. Em Registos, clique em Cloud Logging.
  4. Localize as entradas de registo earlyBootReportEvent e lateBootReportEvent mais recentes e veja qual delas tem um valor policyEvaluationPassed de false.
  5. Expanda a entrada do registo > jsonPayload > earlyBootReportEvent ou lateBootReportEvent, conforme adequado.
  6. Expanda as secções actualMeasurements e policyMeasurements e os elementos numerados nas mesmas para ver os valores do registo de configuração da plataforma (PCR) guardados da sequência de arranque mais recente e a base da política de integridade, respetivamente. Os valores de PCR identificam os componentes de arranque e a ordem de carregamento dos componentes usados pela sequência de arranque mais recente e a base de referência da política de integridade.
  7. Compare os valores de PCR nas secções actualMeasurements e policyMeasurements para determinar onde ocorreu a variação entre a sequência de arranque mais recente e a base da política de integridade. A comparação que produzir valores diferentes é o problema que causou a falha de validação. Tenha em atenção que os números dos elementos nestas secções raramente correspondem aos números de PCR e, da mesma forma, os elementos numerados de forma semelhante em actualMeasurements e policyMeasurements podem representar PCRs diferentes. Por exemplo, na sequência de arranque inicial para o Windows e o Linux, o elemento 3 em actualMeasurements e o elemento 2 em policyMeasurements representam o PCR7.

  8. Verifique os eventos de monitorização da integridade para determinar o que o PCR alterado representa e investigue se essa é uma alteração esperada.

Atualizar a base de referência da política de integridade

A base inicial da política de integridade é derivada da imagem de arranque implicitamente fidedigna quando a instância é criada. A atualização da base de referência atualiza a base de referência da política de integridade com a configuração da instância atual. A instância de VM tem de estar em execução quando atualiza a base de referência.

Deve atualizar a base de referência após quaisquer alterações planeadas específicas do arranque na configuração da instância, como atualizações do kernel ou instalação do controlador do kernel, uma vez que estas vão causar falhas na validação da integridade. Se tiver uma falha de validação de integridade inesperada, deve investigar o motivo da falha e preparar-se para parar a instância, se necessário.

Tem de ter a autorização setShieldedInstanceIntegrityPolicy para poder atualizar a base de referência da política de integridade.

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

gcloud

Atualize a base de referência da política de integridade da instância de VM através do comando compute instances update com a flag --shielded-learn-integrity-policy.

O exemplo seguinte repõe a base de referência da política de integridade para a instância de VM my-instance:

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

Substitua o seguinte:

  • INSTANCE_NAME: nome da VM.
  • ZONE: zona onde a VM existe.

REST

Atualize a base de referência da política de integridade da instância de VM através do item do corpo do pedido updateAutoLearnPolicy com o método setShieldedInstanceIntegrityPolicy.

O exemplo seguinte repõe a base de referência da política de integridade 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 o seguinte:

  • PROJECT_ID: ID do projeto onde a VM existe.
  • INSTANCE_NAME: nome da VM.
  • ZONE: zona onde a VM existe.
  • YOUR_API_KEY: uma chave da API que lhe permite aceder à API.

O que se segue?