Genera y almacena SBOM

En este documento, se describe cómo crear y almacenar una lista de materiales de software (SBOM) en la que se enumeran las dependencias de tus imágenes de contenedor.

Cuando almacenas imágenes de contenedores en Artifact Registry y las analizas en busca de vulnerabilidades con Artifact Analysis, puedes generar una SBOM con Google Cloud CLI.

Para obtener información sobre el uso del análisis de vulnerabilidades, consulta Análisis automático y Precios.

Artifact Analysis almacena las SBOM en Cloud Storage. Para obtener más información sobre los costos de Cloud Storage, consulta la página Precios.

Antes de comenzar

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  4. Enable the Artifact Registry, Container Analysis, Container Scanning APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Install the Google Cloud CLI.

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

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

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  10. Enable the Artifact Registry, Container Analysis, Container Scanning APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. Install the Google Cloud CLI.

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

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

    gcloud init
  14. Crea un repositorio de Docker en Artifact Registry y envía una imagen de contenedor al repositorio. Si no conoces Artifact Registry, consulta la guía de inicio rápido de Docker.
  15. Roles requeridos

    Para obtener los permisos que necesitas para administrar buckets de Cloud Storage y subir archivos de SBOM, pídele a tu administrador que te otorgue el rol de IAM Administrador de almacenamiento (roles/storage.admin) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

    También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

    Genera un archivo SBOM

    Para generar un archivo de SBOM, usa el siguiente comando:

    gcloud artifacts sbom export --uri=URI
    

    Dónde

    • URI es el URI de la imagen de Artifact Registry que describe el archivo SBOM, similar a us-east1-docker.pkg.dev/my-image-repo/my-image. Las imágenes pueden estar en formato de etiqueta o formato de resumen. Las imágenes proporcionadas en formato de etiqueta se resolverán en formato de resumen.

    Artifact Analysis almacena tu SBOM en Cloud Storage.

    Puedes ver las SBOM con la consola de Google Cloud o gcloud CLI. Si quieres ubicar el bucket de Cloud Storage que contiene tus SBOM, debes buscar las SBOM con la CLI de gcloud.

    Genera una SBOM sin análisis de vulnerabilidades

    Si deseas generar una SBOM, pero no quieres que se realice un análisis de vulnerabilidades continuo para tu proyecto, puedes exportar una SBOM si habilitas la API de Container Scanning antes de enviar la imagen a Artifact Registry. Después de que se envíe tu imagen a Artifact Registry y de que exportes una SBOM, debes inhabilitar la API de Container Scanning para evitar que se te facture por análisis de vulnerabilidades adicionales.

    ¿Qué sigue?