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 de la consola de Google Cloud .

Harás lo siguiente:

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

    • Nivel de Supply-chain Levels for Software Artifacts (SLSA), que identifica el nivel de madurez de tu proceso de compilación de software de acuerdo con la especificación de SLSA
    • Vulnerabilidades en los artefactos de compilación
    • Lista de materiales de software (SBOM) para los artefactos de compilación
    • Procedencia de la 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 la fuente 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. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

  3. Si usas un proveedor de identidad externo (IdP), primero debes acceder a gcloud CLI con tu identidad federada.

  4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  5. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Build, Artifact Registry, and Container Scanning APIs:

    gcloud services enable cloudbuild.googleapis.com  artifactregistry.googleapis.com  containerscanning.googleapis.com
  8. Install the Google Cloud CLI.

  9. Si usas un proveedor de identidad externo (IdP), primero debes acceder a gcloud CLI con tu identidad federada.

  10. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  11. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  12. Verify that billing is enabled for your Google Cloud project.

  13. Enable the Cloud Build, Artifact Registry, and Container Scanning APIs:

    gcloud services enable cloudbuild.googleapis.com  artifactregistry.googleapis.com  containerscanning.googleapis.com
  14. Prepara 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 contenerizar:

      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 con la descripción “Repositorio de Docker”:

      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

    Compila y aloja en un contenedor la aplicación de Java con Cloud Build. El siguiente comando compila y crea contenedores en la aplicación de Java, y 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 de los que depende 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 Estadísticas de seguridad 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 de Estadísticas de seguridad, haz lo siguiente:

    1. Abre la página Historial de compilación en la consola de Google Cloud :

      Abrir la página Historial de compilación

    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 de la compilación:

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

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

    • Vulnerabilidades: Cualquier vulnerabilidad que se encuentre 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 la compilación: 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 Google 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
      

      Con estos pasos, borraste el repositorio que creaste como parte de esta guía de inicio rápido.

    ¿Qué sigue?