Supervisión de la integridad en máquinas virtuales blindadas

Este tema describe cómo usar Cloud Monitoring para monitorear la integridad de arranque de instancias de VM blindadas que tienen habilitada la supervisión de integridad , identificar la causa de un error de validación de integridad y actualizar la línea base de la política de integridad.

Supervisión de la integridad del arranque de la máquina virtual mediante la supervisión

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

Ver eventos de validación de integridad

Para ver las métricas de un recurso supervisado mediante el Explorador de métricas, haga lo siguiente:

  1. En la consola de Google Cloud, vaya a la página del explorador de métricas :

    Ir al explorador de métricas

    Si utiliza la barra de búsqueda para encontrar esta página, seleccione el resultado cuyo subtítulo es Monitoreo .

  2. En la barra de herramientas de la consola de Google Cloud, seleccione su proyecto de Google Cloud. Para las configuraciones de App Hub , seleccione el proyecto host de App Hub o el proyecto de administración de la carpeta habilitada para la aplicación.
  3. En el elemento Métrica , expanda el menú Seleccionar una métrica , ingrese Boot Validation en la barra de filtro y luego use los submenús para seleccionar un tipo de recurso y una métrica específicos:
    1. En el menú Recursos activos , seleccione Instancia de VM .
    2. En el menú Categorías de métricas activas , seleccione Instancia .
    3. En el menú Métricas activas , seleccione Validación de inicio temprano o Validación de inicio tardío .
      • Validación de inicio temprano : muestra el estado de aprobación/fallo de la parte de inicio temprano de la última secuencia de inicio. El arranque anticipado es la secuencia de arranque desde el inicio del firmware UEFI hasta que pasa el control al gestor de arranque.
      • Validación de inicio tardío : muestra el estado de aprobación/fallo de la parte de inicio tardío de la última secuencia de inicio. El arranque tardío es la secuencia de arranque desde el gestor de arranque hasta su finalización. Esto incluye la carga del kernel del sistema operativo.
    4. Haga clic en Aplicar .
  4. Para eliminar series temporales de la pantalla, utilice el elemento Filtro .

  5. Para combinar series temporales, utilice los menús del elemento Agregación . Por ejemplo, para mostrar la utilización de CPU de sus máquinas virtuales, según su zona, configure el primer menú en Media y el segundo menú en zona .

    Todas las series temporales se muestran cuando el primer menú del elemento Agregación está configurado en Sin agregar . La configuración predeterminada para el elemento Agregación está determinada por el tipo de métrica que seleccionó.

  6. Para cuotas y otras métricas que informan una muestra por día, haga lo siguiente:
    1. En el panel Mostrar , establezca el tipo de widget en Gráfico de barras apiladas .
    2. Establezca el período de tiempo en al menos una semana.

Configuración de alertas sobre eventos de validación de integridad

Configure alertas sobre los valores de las métricas de Validación de inicio temprano y Validación de inicio tardío si desea recibir una notificación cuando haya un error de validación de inicio en su instancia de VM. Para obtener información sobre las alertas, consulte Introducción a las alertas :

Ver detalles del evento de validación de integridad

  1. Vaya a la página de instancias de VM
  2. Haga clic en el ID de la instancia para abrir la página de detalles de la instancia de VM .
  3. En Registros , haga clic en Registro en la nube .
  4. Localice la entrada de registro earlyBootReportEvent o lateBootReportEvent que desea revisar.
  5. Expanda la entrada de registro > jsonPayload > earlyBootReportEvent o lateBootReportEvent , según corresponda. Dentro de esa sección, el elemento policyEvaluationPassed identifica si la sección dada de la secuencia de inicio pasó la verificación con respecto a la línea base de la política de integridad.
  6. Expanda la sección actualMeasurements y los elementos numerados que contiene para ver los valores del registro de configuración de la plataforma (PCR) guardados desde la última secuencia de inicio. Los valores de PCR se guardan en los elementos value dentro de los elementos numerados. Los valores de PCR identifican los componentes de inicio y el orden de carga de los componentes utilizados por la secuencia de inicio más reciente y se comparan con la línea base de la política de integridad para determinar si ha habido algún cambio en la secuencia de inicio de la instancia de VM. Para obtener más información sobre lo que representan los PCR, consulte Eventos de monitoreo de integridad .
  7. Expanda la sección policyMeasurements para ver los valores de PCR guardados para la línea base de la política de integridad.

Automatización de respuestas a eventos de validación de integridad

Puede 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, consulte Descripción general del enrutamiento y almacenamiento y Automatización de respuestas a fallas de validación de integridad .

Determinar la causa del error de validación de la integridad del arranque

  1. Vaya a la página de instancias de VM
  2. Haga clic en el ID de la instancia para abrir la página de detalles de la instancia de VM .
  3. En Registros , haga clic en Registro en la nube .
  4. Localice las entradas de registro earlyBootReportEvent y lateBootReportEvent más recientes y vea cuál tiene un valor de policyEvaluationPassed de false .
  5. Expanda la entrada de registro > jsonPayload > earlyBootReportEvent o lateBootReportEvent , según corresponda.
  6. Expanda las secciones actualMeasurements y policyMeasurements y los elementos numerados dentro de ellas para ver los valores del registro de configuración de la plataforma (PCR) guardados de la última secuencia de inicio y la línea base de la política de integridad, respectivamente. Los valores de PCR identifican los componentes de inicio y el orden de carga de los componentes utilizados por la secuencia de inicio más reciente y la línea base de la política de integridad.
  7. Compare los valores de PCR en las secciones actualMeasurements y policyMeasurements para determinar dónde se produjo la variación entre la secuencia de inicio más reciente y la línea base de la política de integridad. Cualquiera que sea la comparación que produzca valores diferentes, es el problema que provocó el error de validación. Tenga en cuenta que los números de los elementos en estas secciones rara vez corresponden a los números de los ITP, y los elementos con números similares en actualMeasurements y policyMeasurements pueden representar ITP diferentes. Por ejemplo, en la secuencia de inicio inicial de Windows y Linux, el elemento 3 en actualMeasurements y el elemento 2 en policyMeasurements representan PCR7.

  8. Verifique los eventos de monitoreo de integridad para determinar qué representa el PCR modificado e investigue si se trata de un cambio esperado.

Actualización de la línea base de la política de integridad

La línea base de la política de integridad inicial se deriva de la imagen de inicio de confianza implícita cuando se crea la instancia. La actualización de la línea base actualiza la línea base de la política de integridad utilizando la configuración de instancia actual. La instancia de VM debe estar ejecutándose cuando actualice la línea base.

Debe actualizar la línea de base después de cualquier cambio planificado específico de arranque en la configuración de la instancia, como actualizaciones del kernel o instalación del controlador del kernel, ya que esto provocará fallas en la validación de la integridad. Si tiene un error inesperado en la validación de integridad, debe investigar el motivo del error y estar preparado para detener la instancia si es necesario.

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

Utilice el siguiente procedimiento para actualizar la línea base de la política de integridad.

nube de gcloud

Actualice la línea base de la política de integridad de la instancia de VM mediante el comando compute instances update con el indicador --shielded-learn-integrity-policy .

El siguiente ejemplo restablece la línea base de la política de integridad para la instancia de VM my-instance :

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

Reemplace lo siguiente:

  • INSTANCE_NAME : nombre de la máquina virtual.
  • ZONE : Zona donde existe la VM.

API

Actualice la línea base 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 .

El siguiente ejemplo restablece la línea base de la política de integridad para una instancia de VM.

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

Reemplace lo siguiente:

  • PROJECT_ID : ID del proyecto de su proyecto donde existe la VM.
  • INSTANCE_NAME : nombre de la máquina virtual.
  • ZONE : Zona donde existe la VM.
  • YOUR_API_KEY : una clave API que le permite acceder a la API.

¿Qué sigue?