Usa la canalización de imagen segura

Una vez que creaste tu canalización de imágenes 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 imágenes para producir imágenes seguras y certificadas.

Antes de comenzar

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

Usa la canalización

El código fuente de las imágenes base está en el repositorio baseimgfct-[some number]-containers de la organización de GitHub que especificaste cuando configuraste la canalización de imágenes segura. Para actualizar una imagen, edita el archivo relevante 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, Cloud Build se activa en YOUR_PROJECT_NAME-builder y compila la imagen actualizada y la envía al repositorio de Artifact Registry en YOUR_PROJECT_NAME-stage.

Cuando un miembro del equipo prueba y verifica las imágenes en YOUR_PROJECT_NAME-stage, puede 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 hasta YOUR_PROJECT_NAME-verified.

En los siguientes pasos, se describe el flujo de trabajo de los desarrolladores para usar la canalización de imágenes seguras:

  1. Ve al repositorio baseimgfact-[some number]-containers.

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

  3. Realiza los cambios correspondientes. Por ejemplo, edita Dockerfile para actualizar una imagen de contenedor.

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

  5. Haga clic en Proponer cambios.

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

  7. Haz clic en Create pull request.

    Cuando creas una solicitud de extracción, la compilación se activa en YOUR_PROJECT_NAME-builder y compila tu imagen y la envía 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, analiza la imagen en busca de vulnerabilidades y certifica la imagen 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 imagen 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-stageejecuta una instanciaCupón , que es una herramienta de código abierto que ejecuta un conjunto de verificaciones en imágenes de contenedor y creaCertificaciones de autorización binaria de las imágenes. Cuando se verifica una imagen en YOUR_PROJECT_NAME-stage de forma manual y un miembro del equipo combina la solicitud de extracción en el repositorio de imágenes del contenedor de GitHub, Cupón verifica la imagen en busca de vulnerabilidades, que se definen en la configuración del cupón. Una vez finalizada 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 crea una certificación. Sin una certificación verificada, el ejecutor de la autorización binaria no permite que la imagen se envíe a YOUR_PROJECT_NAME-verified.

Puedes definir qué verificaciones se ejecutan en Cupón, junto con otros criterios, en el archivo de configuración del servidor de cupones. Para obtener instrucciones sobre cómo hacerlo, consulta la sección Cómo crear y configurar el servidor de cupones.