Usa la canalización de imágenes seguras

Una vez que creaste la canalización de imagen segura, puedes automatizar el flujo de trabajo de generación de imágenes firmadas cada vez que realices cambios en el código fuente.

En esta página, se explica cómo usar la canalización de imagen para producir imágenes seguras y certificadas.

Antes de comenzar

Crea la canalización de imagen segura y familiarízate con los recursos que crea la canalización.

Usa la canalización

El código fuente de las imágenes base está en el repositorio baseimgfct-[some number]-containers en la organización de GitHub que especificaste cuando configuraste la canalización de imagen segura. Para actualizar una imagen, edita el archivo pertinente en el repositorio y envía una solicitud de extracción con los cambios a un miembro del equipo para su revisión. Cuando creas la solicitud de extracción, el activador de Cloud Build en YOUR_PROJECT_NAME-builder compila la imagen actualizada y la envía al repositorio de Artifact Registry en YOUR_PROJECT_NAME-stage.

Cuando un miembro del equipo haya probado y verificado las imágenes de YOUR_PROJECT_NAME-stage, podrá aprobar y combinar tu solicitud de extracción. La acción de combinación compila, analiza y certifica las imágenes, y las envía del proyecto de etapa de pruebas a YOUR_PROJECT_NAME-verified.

En los siguientes pasos, se describe el flujo de trabajo del desarrollador para usar la canalización de imagen segura:

  1. Ve al repositorio baseimgfact-[algún número]-containers.

  2. Abre la carpeta correspondiente a la imagen que deseas cambiar, por ejemplo, ubuntu_18_0_4.

  3. Haz cambios. Por ejemplo, edita Dockerfile para actualizar una imagen de contenedor.

  4. Selecciona Crear una rama nueva para esta confirmación y comenzar una solicitud de extracción.

  5. Haz clic en Proponer cambios.

  6. En Descripción del comentario, ingresa /gcbrun. Esto es para garantizar que solo los usuarios autorizados propongan cambios en el repositorio.

  7. Haz clic en Create pull request.

    Cuando creas una solicitud de extracción, los activadores de compilación en YOUR_PROJECT_NAME-builder compilan tu imagen y la envían a YOUR_PROJECT_NAME-stage.

  8. Agrega un miembro del equipo para que revise tu solicitud de extracción.

  9. Después de verificar la imagen de forma manual, el miembro del equipo aprueba y combina la solicitud de extracción.

    La acción de combinación compila, prueba y analiza la imagen en busca de vulnerabilidades y la certifica si es una imagen de contenedor y, luego, la envía a YOUR_PROJECT_NAME-verified.

Especifica una política de seguridad personalizada

Si usas la canalización de imágenes segura para generar y mantener imágenes de contenedor base, puedes especificar una política de seguridad personalizada con la que se verifique la imagen.

YOUR_PROJECT_NAME-stage ejecuta un cupón de instancia, que es una herramienta de código abierto que ejecuta un conjunto de verificaciones en imágenes de contenedor y crea certificaciones de autorización binaria para las imágenes. Cuando una imagen de YOUR_PROJECT_NAME-stage se verifica de forma manual y un miembro del equipo combina la solicitud de extracción en el repositorio de imágenes de contenedor de GitHub, Voucher verifica si la imagen presenta vulnerabilidades, que se definen en el archivo de configuración de Voucher. Una vez que se completa la verificación, si todas las vulnerabilidades identificadas están por debajo del umbral, Voucher crea una certificación de autorización binaria para la imagen, que se envía a YOUR_PROJECT_NAME-verified. Si alguna de las vulnerabilidades identificadas alcanza o supera el umbral, Voucher no creará una certificación. Sin una certificación verificada, el ejecutor de la autorización binaria no permite que se envíe la imagen a YOUR_PROJECT_NAME-verified.

Puedes definir qué verificaciones se ejecutan en Voucher, junto con otros criterios, en el archivo de configuración del servidor de Voucher. Para obtener instrucciones sobre cómo hacer esto, consulta Compila y configura el servidor de Voucher.