Usar la canalización de imagen segura

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

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.

Usar 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 pruebe y verifique las imágenes en 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 desde el 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 los cambios que quieras. 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 permite 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 seguras para generar y mantener imágenes de contenedor base, puedes especificar una política de seguridad personalizada en función de la cual 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 las imágenes de contenedor y crea certificaciones de autorización binaria para las imágenes. Cuando se verifica una imagen de YOUR_PROJECT_NAME-stage de forma manual y un miembro del equipo combina la solicitud de extracción en el repositorio de imágenes de contenedor de GitHub, el cupón verifica la imagen en busca de vulnerabilidades, que se definen en el archivo de configuración de cupón. Una vez que se completa la verificación, si todas las vulnerabilidades identificadas están por debajo del umbral, el cupón crea una certificación de autorización binaria para la imagen y esta se envía a YOUR_PROJECT_NAME-verified. Si alguna de las vulnerabilidades identificadas alcanza o supera el umbral, el cupón no creará una certificación. Sin una certificación verificada, el ejecutor de la autorización binaria impide que la imagen se envíe 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.