Monitorando a integridade em VMs protegidas

Este tópico descreve como usar o Cloud Monitoring para monitorar a integridade de inicialização de instâncias de VMs protegidas que têm o monitoramento de integridade ativado , identificar a causa de uma falha na validação de integridade e atualizar a linha de base da política de integridade.

Monitorando a integridade da inicialização da VM usando o Monitoring

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

Visualizando eventos de validação de 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 explorador de métricas :

    Vá para o explorador de métricas

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

  2. Na barra de ferramentas do console do Google Cloud, selecione seu projeto do Google Cloud. Para configurações do App Hub , selecione o projeto host do App Hub ou o projeto de gerenciamento da pasta habilitada para aplicativo.
  3. No elemento Métrica , expanda o menu Selecionar uma métrica , insira Boot Validation na barra de filtros e 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 inicialização antecipada ou Validação de inicialização tardia .
      • Validação de inicialização antecipada : mostra o status de aprovação/reprovação da parte de inicialização inicial da última sequência de inicialização. A inicialização antecipada é a sequência de inicialização desde o início do firmware UEFI até que ele passe o controle para o gerenciador de inicialização.
      • Validação de inicialização tardia : mostra o status de aprovação/reprovação da parte de inicialização tardia da última sequência de inicialização. A inicialização tardia é a sequência de inicialização do bootloader até a conclusão. Isso inclui o carregamento do kernel do sistema operacional.
    4. Clique em Aplicar .
  4. Para remover séries temporais da exibição, use o elemento Filter .

  5. Para combinar séries temporais, use os menus no elemento Aggregation . Por exemplo, para exibir a utilização da CPU das suas VMs, com base em suas zonas, defina o primeiro menu como Mean e o segundo menu como zone .

    Todas as séries temporais são exibidas quando o primeiro menu do elemento Aggregation é definido como Ungregated . As configurações padrão do elemento Agregação são determinadas pelo tipo de métrica selecionado.

  6. Para cotas e outras métricas que relatam uma amostra por dia, faça o seguinte:
    1. No painel Exibir , defina o tipo de widget como Stacked bar chart .
    2. Defina o período de tempo para pelo menos uma semana.

Configurando alertas sobre eventos de validação de integridade

Defina alertas sobre os valores das métricas Early Boot Validation e Late Boot Validation se quiser ser notificado quando houver uma falha na validação de inicialização em sua instância de VM. Para obter informações sobre alertas, consulte Introdução aos alertas :

Visualizando detalhes do evento de validação de integridade

  1. Acesse a página de instâncias de VM
  2. Clique no ID da instância para abrir a página de detalhes da instância de VM .
  3. Em Logs , clique em Cloud Logging .
  4. Localize a entrada de log earlyBootReportEvent ou lateBootReportEvent que você deseja revisar.
  5. Expanda a entrada de log > jsonPayload > earlyBootReportEvent ou lateBootReportEvent , conforme apropriado. Nessa seção, o elemento policyEvaluationPassed identifica se determinada seção da sequência de inicialização passou na verificação em relação à linha de base da política de integridade.
  6. Expanda a seção actualMeasurements e os elementos numerados dentro dela para ver os valores do registro de configuração da plataforma (PCR) salvos da última sequência de inicialização. Os valores PCR são salvos nos elementos value dentro dos elementos numerados. Os valores de PCR identificam os componentes de inicialização e a ordem de carregamento dos componentes usados ​​pela sequência de inicialização mais recente e são comparados à linha de base da política de integridade para determinar se houve alguma alteração na sequência de inicialização da instância de VM. Para obter mais informações sobre o que os PCRs representam, consulte Eventos de monitoramento de integridade .
  7. Expanda a seção policyMeasurements para ver os valores de PCR salvos para a linha de base da política de integridade.

Automatizando respostas a eventos de validação de integridade

Você pode automatizar respostas para eventos de validação de inicialização exportando os registros do Cloud Logging e processando-os em outro serviço, como funções do Cloud Run. Para obter mais informações, consulte Visão geral de roteamento e armazenamento e Automatizando respostas a falhas de validação de integridade .

Determinando a causa da falha na validação da integridade da inicialização

  1. Acesse a página de instâncias de VM
  2. Clique no ID da instância para abrir a página de detalhes da instância de VM .
  3. Em Logs , clique em Cloud Logging .
  4. Localize as entradas de log earlyBootReportEvent e lateBootReportEvent mais recentes e veja qual delas tem um valor policyEvaluationPassed igual a false .
  5. Expanda a entrada de log > jsonPayload > earlyBootReportEvent ou lateBootReportEvent , conforme apropriado.
  6. Expanda as seções actualMeasurements e policyMeasurements e os elementos numerados dentro delas para ver os valores do registro de configuração da plataforma (PCR) salvos da sequência de inicialização mais recente e da linha de base 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 sequência de inicialização mais recente e pela linha de base 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 a linha de base da política de integridade. Qualquer comparação que produza valores diferentes é o problema que causou a falha na validação. Esteja ciente de que os números dos elementos nestas seções raramente correspondem aos números do PCR, e os elementos numerados de forma semelhante em actualMeasurements e policyMeasurements podem representar PCRs diferentes. Por exemplo, na sequência de inicialização inicial do Windows e do Linux, o elemento 3 em actualMeasurements e o elemento 2 em policyMeasurements representam PCR7.

  8. Verifique os eventos de monitoramento de integridade para determinar o que o PCR alterado representa e investigue se essa é uma mudança esperada.

Atualizando a linha de base da política de integridade

A linha de base inicial da política de integridade é derivada da imagem de inicialização implicitamente confiável quando a instância é criada. A atualização da linha de base atualiza a linha de base da política de integridade usando a configuração da instância atual. A instância de VM deve estar em execução quando você atualizar a linha de base.

Você deve atualizar a linha de base após quaisquer alterações planejadas específicas de inicialização na configuração da instância, como atualizações do kernel ou instalação do driver do kernel, pois elas causarão falhas na validação de integridade. Se você tiver uma falha inesperada na validação de integridade, deverá investigar o motivo da falha e estar preparado para interromper a instância, se necessário.

Você deve ter a permissão setShieldedInstanceIntegrityPolicy para poder atualizar a linha de base da política de integridade.

Use o procedimento a seguir para atualizar a linha de base da política de integridade.

gcloud

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

O exemplo a seguir redefine a linha de base 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 existe a VM.

API

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

O exemplo a seguir redefine a linha de base 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 existe VM.
  • INSTANCE_NAME : nome da VM.
  • ZONE : Zona onde existe a VM.
  • YOUR_API_KEY : uma chave de API que permite acessar a API.

O que vem a seguir