Monitorizar la integridad de VM blindadas

En este documento se describe cómo usar Cloud Monitoring para monitorizar la integridad del arranque de las instancias de VM blindadas que tienen habilitada la supervisión de integridad, identificar la causa de un fallo de validación de integridad y actualizar el valor de referencia de la política de integridad.

Monitorizar la integridad del arranque de una VM con Monitoring

Usa Cloud Monitoring para ver los eventos de validación de integridad y configurar alertas para ellos, y Cloud Logging para consultar los detalles de esos eventos.

Ver eventos de validación de integridad

Para ver las métricas de un recurso monitorizado con el explorador de métricas, haz lo siguiente:

  1. En la Google Cloud consola, ve a la página  Explorador de métricas:

    Ve al explorador de métricas.

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.

  2. En la barra de herramientas de la Google Cloud consola, selecciona tu Google Cloud proyecto. En las configuraciones de App Hub, selecciona el proyecto host de App Hub o el proyecto de gestión de la carpeta habilitada para aplicaciones.
  3. En el elemento Métrica, despliega el menú Seleccionar una métrica, introduce Boot Validation en la barra de filtros y, a continuación, usa los submenús para seleccionar un tipo de recurso y una métrica específicos:
    1. En el menú Recursos activos, selecciona Instancia de VM.
    2. En el menú Categorías de métricas activas, selecciona Instancia.
    3. En el menú Métricas activas, selecciona Validación de arranque anticipado o Validación de arranque tardío.
      • Validación de arranque inicial: muestra el estado (correcto o incorrecto) de la parte de arranque inicial de la última secuencia de arranque. El arranque temprano es la secuencia de arranque que abarca el proceso desde que se inicia el firmware de UEFI hasta que el control pasa al bootloader.
      • Validación de arranque tardío: muestra el estado (correcto o incorrecto) de la parte de arranque tardío de la última secuencia de arranque. El arranque tardío es la secuencia de arranque que abarca el proceso desde que se inicia el bootloader hasta que se completa. Esto incluye la carga del kernel del sistema operativo.
    4. Haz clic en Aplicar.
  4. Para añadir filtros que eliminen series temporales de los resultados de la consulta, usa el elemento Filter.

  5. Para combinar series temporales, usa los menús del elemento "Agregación". Por ejemplo, para mostrar el uso de la CPU de tus VMs en función de su zona, define el primer menú como Media y el segundo como zona.

    Todas las series temporales se muestran cuando el primer menú del elemento Agregación se define como Sin agregar. Los ajustes predeterminados del elemento Agregación se determinan en función del tipo de métrica que hayas seleccionado.

  6. En el caso de las cuotas y otras métricas que registran una muestra al día, haga lo siguiente:
    1. En el panel Visualización, defina el Tipo de widget como Gráfico de barras apiladas.
    2. Define el periodo en al menos una semana.

Configurar alertas sobre eventos de validación de integridad

Define alertas en los valores de las métricas Validación de inicio temprana y Validación de inicio tardía si quieres recibir una notificación cuando falle la validación de inicio en tu instancia de VM. Para obtener información sobre las alertas, consulta la introducción a las alertas:

Ver los detalles de los eventos de validación de integridad

  1. Ve a la página Instancias de VM.
  2. Haz clic en el ID de la instancia para abrir la página Detalles de la instancia de VM.
  3. En Registros, haz clic en Cloud Logging.
  4. Busca la entrada de registro earlyBootReportEvent o lateBootReportEvent que quieras revisar.
  5. Despliega la entrada de registro > jsonPayload > earlyBootReportEvent o lateBootReportEvent, según corresponda. En esa sección, el elemento policyEvaluationPassed indica si una determinada sección de la secuencia de arranque ha superado la verificación del valor de referencia de la política de integridad.
  6. Despliega la sección actualMeasurements y los elementos numerados que contiene para ver los valores del registro de configuración de la plataforma (PCR) guardados de la última secuencia de arranque. Los valores PCR se guardan en los elementos value de los elementos numerados. Los valores PCR identifican los componentes de arranque y el orden de carga de los componentes que se han usado en la secuencia de arranque más reciente. Se comparan con el valor de referencia de la política de integridad para determinar si se ha producido algún cambio en la secuencia de arranque de la instancia de máquina virtual. Para obtener más información sobre lo que representan los PCRs, consulta Eventos de la supervisión de integridad.
  7. Amplía la sección policyMeasurements para ver los valores PCR guardados del valor de referencia de la política de integridad.

Automatizar respuestas a eventos de validación de integridad

Puedes automatizar las respuestas a los eventos de validación de arranque exportando los registros de Cloud Logging y procesándolos en otro servicio, como las funciones de Cloud Run. Para obtener más información, consulta los artículos Información general sobre el enrutamiento y el almacenamiento y Automatizar respuestas a fallos de validación de integridad.

Determinar la causa de los fallos de validación de integridad

  1. Ve a la página Instancias de VM.
  2. Haz clic en el ID de la instancia para abrir la página Detalles de la instancia de VM.
  3. En Registros, haz clic en Cloud Logging.
  4. Busca las entradas de registro de earlyBootReportEvent y lateBootReportEvent más recientes y comprueba cuál tiene el valor false en policyEvaluationPassed.
  5. Despliega la entrada de registro > jsonPayload > earlyBootReportEvent o lateBootReportEvent, según corresponda.
  6. Despliega las secciones actualMeasurements y policyMeasurements, así como los elementos numerados que contienen, para ver los valores del registro de configuración de la plataforma (PCR) guardados de la última secuencia de arranque y del valor de referencia de la política de integridad, respectivamente. Los valores PCR identifican los componentes de arranque y el orden de carga de los componentes que se han usado en la secuencia de arranque más reciente y en el valor de referencia de la política de integridad.
  7. Compara los valores PCR de las secciones actualMeasurements y policyMeasurements para determinar dónde se produjo la variación entre la secuencia de arranque más reciente y el valor de referencia de la política de integridad. La comparación que dé como resultado valores diferentes es el problema que ha provocado el fallo de validación. Ten en cuenta que los números de elemento de estas secciones rara vez se corresponden con los números de PCR. Del mismo modo, los elementos con el mismo número en actualMeasurements y policyMeasurements pueden representar PCRs diferentes. Por ejemplo, en la secuencia de arranque inicial de Windows y Linux, el elemento 3 de actualMeasurements y el elemento 2 de policyMeasurements representan PCR7.

  8. Consulta los eventos de la supervisión de integridad para determinar qué representa el PCR modificado e investiga si se trata de un cambio esperado.

Actualizar la base de la política de integridad

El valor de referencia inicial de la política de integridad se deriva de la imagen de arranque de confianza implícita cuando se crea la instancia. Al actualizar el valor de referencia, se actualiza el valor de referencia de la política de integridad con la configuración de la instancia actual. La instancia de VM debe estar en ejecución cuando actualices el valor de referencia.

Debes actualizar la base después de cualquier cambio planificado específico del arranque en la configuración de la instancia, como actualizaciones del kernel o instalación de controladores del kernel, ya que estos cambios provocarán errores de validación de la integridad. Si se produce un fallo inesperado en la validación de integridad, debes investigar la causa del fallo y prepararte para detener la instancia si es necesario.

Debes tener el permiso setShieldedInstanceIntegrityPolicy para poder actualizar la línea de base de la política de integridad.

Sigue este procedimiento para actualizar el valor de referencia de la política de integridad.

gcloud

Actualiza el valor de referencia de la política de integridad de la instancia de VM con el comando compute instances update y la marca --shielded-learn-integrity-policy.

En el siguiente ejemplo se restablece el valor de referencia de la política de integridad de la instancia de máquina virtual my-instance:

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

Haz los cambios siguientes:

  • INSTANCE_NAME: nombre de la VM.
  • ZONE: zona en la que se encuentra la VM.

REST

Actualiza el valor de referencia de la política de integridad de la instancia de VM mediante el elemento del cuerpo de la solicitud updateAutoLearnPolicy con el método setShieldedInstanceIntegrityPolicy.

En el siguiente ejemplo se restablece el valor de referencia de la política de integridad de una instancia de máquina virtual.

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

Haz los cambios siguientes:

  • PROJECT_ID: ID del proyecto en el que se encuentra la máquina virtual.
  • INSTANCE_NAME: nombre de la VM.
  • ZONE: zona en la que se encuentra la VM.
  • YOUR_API_KEY: una clave de API que te permite acceder a la API.

Siguientes pasos