Compila una aplicación y consulta las estadísticas de seguridad

En esta guía de inicio rápido, se explica cómo compilar una aplicación y ver las estadísticas de seguridad de la compilación en el panel Estadísticas de seguridad del Software Delivery Shield en la consola de Google Cloud.

Harás lo siguiente:

  • Compila y aloja en contenedores una aplicación de Java con Cloud Build y envía la imagen de contenedor al repositorio de Docker de Artifact Registry.
  • Consulta las siguientes estadísticas de seguridad para la compilación:

    • Nivel de la cadena de suministro para artefactos de software (SLSA), que identifica el nivel de madurez de tu proceso de compilación de software de acuerdo con la especificación SLSA .
    • Vulnerabilidades en artefactos de compilación
    • Lista de materiales de software (SBOM) para los artefactos de compilación
    • Procedencia de compilación, que es una colección de metadatos verificables sobre una compilación. Incluye detalles como los resúmenes de las imágenes compiladas, las ubicaciones de las fuentes de entrada, la cadena de herramientas de compilación, los pasos de compilación y la duración de la compilación.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. Instala Google Cloud CLI.
  3. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
  4. Crea o selecciona un proyecto de Google Cloud.

    • Crea un proyecto de Google Cloud:

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el proyecto de Google Cloud que estás creando.

    • Selecciona el proyecto de Google Cloud que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre del proyecto de Google Cloud.

  5. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  6. Habilita las APIs de Cloud Build, Artifact Registry, and Container Scanning:

    gcloud services enable cloudbuild.googleapis.com  artifactregistry.googleapis.com  containerscanning.googleapis.com
  7. Instala Google Cloud CLI.
  8. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
  9. Crea o selecciona un proyecto de Google Cloud.

    • Crea un proyecto de Google Cloud:

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el proyecto de Google Cloud que estás creando.

    • Selecciona el proyecto de Google Cloud que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre del proyecto de Google Cloud.

  10. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  11. Habilita las APIs de Cloud Build, Artifact Registry, and Container Scanning:

    gcloud services enable cloudbuild.googleapis.com  artifactregistry.googleapis.com  containerscanning.googleapis.com

Prepare el entorno

  1. Configura el ID del proyecto como una variable de entorno:

    export PROJECT_ID=$(gcloud config get project)
    
  2. Clona el repositorio que contiene la muestra de código de Java para compilar y crear contenedores:

    git clone https://github.com/googlecloudplatform/software-delivery-shield-demo-java.git
    cd software-delivery-shield-demo-java/backend
    

Crea el repositorio de Artifact Registry para tu imagen

  1. Crea un nuevo repositorio de Docker llamado containers en la ubicación us-central1 y con la descripción “Docker repository”:

    gcloud artifacts repositories create containers \
        --repository-format=docker \
        --location=us-central1 --description="Docker repository"
    
  2. Verifica que se haya creado el repositorio:

    gcloud artifacts repositories list
    

    Deberías ver containers en la lista de repositorios que se muestran.

Compila la aplicación

Compilar y alojar en contenedores la aplicación de Java con Cloud Build Con el siguiente comando, se compila y almacena en contenedores la aplicación de Java y se almacena el contenedor compilado en el repositorio de Docker de Artifact Registry:

gcloud builds submit --config=cloudbuild.yaml --region=us-central1

Una vez que se complete la compilación, verás un mensaje de estado de éxito similar al siguiente:

<pre class="none lang-sh">
DONE
-----------------------------------------------------------------------------
ID: 3e08565f-7f57-4449-bc68-51c46cf33d03
CREATE_TIME: 2022-09-19T15:41:07+00:00
DURATION: 54S
SOURCE: gs://sds-docs-project_cloudbuild/source/1663602066.777581-6ebe4b2d6fd741ffa18936d7f78055e9.tgz
IMAGES: us-central1-docker.pkg.dev/sds-docs-project/containers/java-guestbook-backend:quickstart
STATUS: SUCCESS
</pre>

Genera una SBOM para la imagen compilada

Una SBOM es un inventario completo de una aplicación que identifica los paquetes en los que se basa tu software. El contenido puede incluir software de terceros de proveedores, artefactos internos y bibliotecas de código abierto.

Genera la SBOM para la imagen que compilaste en la sección anterior:

gcloud artifacts sbom export
    --uri=us-central1-docker.pkg.dev/${PROJECT_ID}/containers/java-guestbook-backend:quickstart

Ver estadísticas de seguridad

La IU de Cloud Build en la consola de Google Cloud contiene el panel Security Insights del Software Delivery Shield que muestra información de seguridad relacionada con la compilación, como el nivel de SLSA, las vulnerabilidades en las dependencias y la procedencia de la compilación.

Para ver el panel Security insights del Escudo de entrega de software, haz lo siguiente:

  1. Abre la página Build history en la consola de Google Cloud:

    Abrir la página Historial de compilaciones

  2. Selecciona tu proyecto y haz clic en Open.

  3. En el menú desplegable Región, selecciona us-central1.

  4. En la tabla con las compilaciones, busca la fila con la compilación que acabas de ejecutar.

  5. En la columna Estadísticas de seguridad, haz clic en Ver.

Verás el panel Estadísticas de seguridad para la compilación:

Captura de pantalla del panel Software Delivery Shield (Escudo de entrega de software)

En este panel, se muestra la siguiente información:

  • Nivel SLSA: Esta compilación alcanzó el nivel 3 de SLSA. Haz clic en el vínculo Más información para entender qué significa este nivel de seguridad.

  • Vulnerabilidades: todas las vulnerabilidades encontradas en tus artefactos. Haz clic en el nombre de la imagen (java-guestbook-backend) para ver los artefactos que se analizaron en busca de vulnerabilidades.

  • Dependencias de la imagen de contenedor compilada en Artifact Registry.

  • Detalles de compilación: Son detalles de la compilación, como el compilador y el vínculo para ver los registros.

Limpia

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que se usaron en esta página, borra el proyecto de Cloud que tiene los recursos.

  1. Inhabilita la API de Container Scanning:

    gcloud services disable containerscanning.googleapis.com --force
    
  2. Borra el repositorio de Artifact Registry:

    gcloud artifacts repositories delete containers \
        --location=us-central1 --async
    

    Ya borraste el repositorio que creaste como parte de esta guía de inicio rápido.

¿Qué sigue?