Puedes optar por proporcionar tus propios metadatos a Artifact Analysis para satisfacer una necesidad empresarial específica. Por ejemplo, una organización que proporciona administración de seguridad para los contenedores de Docker de sus clientes puede usar Artifact Analysis para almacenar y recuperar metadatos relacionados con la seguridad de esas imágenes.
Sigue los pasos que se indican a continuación para proporcionar metadatos personalizados de vulnerabilidad para tus imágenes con la API de Artifact Analysis. Puedes usar las mismas instrucciones para almacenar y recuperar cualquier tipo de metadatos que sea compatible con Artifact Analysis.
Antes de comenzar
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Container Analysis API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Container Analysis API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Obtén información para configurar el control de acceso para los metadatos de tu proyecto. Omite este paso si solo consumes metadatos de los casos de vulnerabilidad creados por el análisis de contenedores de Artifact Analysis.
Crea notas y casos para proyectos
En esta sección, se explica cómo crear notas y casos. En este ejemplo, usarás el tipo VULNERABILITY
.
Como proveedor, crearás una nota en tu proyecto para cada vulnerabilidad. Además, crearás un caso en el proyecto de tu cliente para cuando se produzca esa vulnerabilidad.
Crear notas
Sigue los pasos que se indican a continuación para crear una nota y asignarle un ID.
API
Crea un archivo llamado
note.json
con la descripción y los detalles de la vulnerabilidad. El siguiente código muestra un ejemplo de archivonote.json
:{ "shortDescription": "A brief Description of the note", "longDescription": "A longer description of the note", "kind": "VULNERABILITY", "vulnerability": { "details": [ { "affectedPackage": "libexempi3", "affectedCpeUri": "cpe:/o:debian:debian_linux:7", "affectedVersionStart": { "name": "2.5.7", "revision": "1", "kind": "MINIMUM"}, "affectedVersionEnd": { "name": "2.5.9", "revision": "1", "kind": "MINIMUM"}, }, { "affectedCpeUri": "cpe:/o:debian:abc:10", "affectedPackage": "anotherPackage", } ] } }
Consulta la documentación de la API de Notes para obtener más información sobre la representación JSON de las notas.
Ejecuta el siguiente comando de curl para crear una nota:
curl -v -H "Content-Type: application/json" -H \ "Authorization: Bearer $(gcloud auth print-access-token)" \ https://containeranalysis.googleapis.com/v1/projects/PROVIDER_PROJECT_ID/notes?note_id=NOTE_ID -d @note.json
Aquí:
- PROVIDER_PROJECT_ID es el ID del proyecto.
- NOTE_ID especifica un identificador para tu nota. Usa una cadena con una longitud máxima de 100 caracteres.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Artifact Analysis, consulta Bibliotecas cliente de Artifact Analysis. Para obtener más información, consulta la documentación de referencia de la API de Java de Artifact Analysis.
Para autenticarte en Artifact Analysis, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Artifact Analysis, consulta Bibliotecas cliente de Artifact Analysis. Para obtener más información, consulta la documentación de referencia de la API de Go de Artifact Analysis.
Para autenticarte en Artifact Analysis, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Artifact Analysis, consulta Bibliotecas cliente de Artifact Analysis. Para obtener más información, consulta la documentación de referencia de la API de Node.js de Artifact Analysis.
Para autenticarte en Artifact Analysis, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Artifact Analysis, consulta Bibliotecas cliente de Artifact Analysis. Para obtener más información, consulta la documentación de referencia de la API de Ruby de Artifact Analysis.
Para autenticarte en Artifact Analysis, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Artifact Analysis, consulta Bibliotecas cliente de Artifact Analysis. Para obtener más información, consulta la documentación de referencia de la API de Python de Artifact Analysis.
Para autenticarte en Artifact Analysis, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Crea casos para las notas
A fin de crear casos para una nota, sigue estos pasos:
API
Crea un archivo llamado
occurrence.json
con el siguiente contenido:{ "resourceUri": "<resource_url>", "noteName": "projects/<provider-project-id>/notes/<note_id>", "kind": "VULNERABILITY", "vulnerability": { "packageIssue": [{ "affectedCpeUri": "cpe:/o:debian_linux:7", "affectedPackage": "packageName", "affectedVersion": { "kind": "NORMAL", "name": "8.1", "revision": "3" }, "fixedCpeUri": "cpe:/o:debian_linux:7", "fixedPackage": "packageName", "fixedVersion": { "kind": "MAXIMUM" } }] "severity": "LOW" } }
Aquí:
- resource_url es la URL del recurso asociado con la ocurrencia, por ejemplo,
https://us-central1-docker.pkg.dev/my-project/my-repository/my-image@sha256:123
. - note_id especifica un identificador para tu nota. Usa una cadena con una longitud máxima de 100 caracteres.
Consulta la documentación de la API de occurrences para obtener más información sobre la representación JSON de occurrences.
- resource_url es la URL del recurso asociado con la ocurrencia, por ejemplo,
Ejecuta el siguiente comando curl, en el que CUSTOMER_PROJECT_ID es el ID del proyecto de tu cliente:
curl -v -H "Content-Type: application/json" -H \ "Authorization: Bearer $(gcloud auth print-access-token)" \ https://containeranalysis.googleapis.com/v1/projects/CUSTOMER_PROJECT_ID/occurrences -d @occurrence.json
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Artifact Analysis, consulta Bibliotecas cliente de Artifact Analysis. Para obtener más información, consulta la documentación de referencia de la API de Java de Artifact Analysis.
Para autenticarte en Artifact Analysis, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Artifact Analysis, consulta Bibliotecas cliente de Artifact Analysis. Para obtener más información, consulta la documentación de referencia de la API de Go de Artifact Analysis.
Para autenticarte en Artifact Analysis, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Artifact Analysis, consulta Bibliotecas cliente de Artifact Analysis. Para obtener más información, consulta la documentación de referencia de la API de Node.js de Artifact Analysis.
Para autenticarte en Artifact Analysis, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Artifact Analysis, consulta Bibliotecas cliente de Artifact Analysis. Para obtener más información, consulta la documentación de referencia de la API de Ruby de Artifact Analysis.
Para autenticarte en Artifact Analysis, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Artifact Analysis, consulta Bibliotecas cliente de Artifact Analysis. Para obtener más información, consulta la documentación de referencia de la API de Python de Artifact Analysis.
Para autenticarte en Artifact Analysis, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Obtén todos los casos para una nota específica
Puedes ver todos los casos de una vulnerabilidad específica en todos los proyectos de tu cliente mediante notes.occurrences.list()
.
API
Para enumerar todos los casos de una nota, envía una solicitud GET de la siguiente manera:
GET https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/notes/NOTE_ID/occurrences
Consulta el extremo de la API de projects.notes.occurrences.list
para obtener más detalles.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Artifact Analysis, consulta Bibliotecas cliente de Artifact Analysis. Para obtener más información, consulta la documentación de referencia de la API de Java de Artifact Analysis.
Para autenticarte en Artifact Analysis, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Artifact Analysis, consulta Bibliotecas cliente de Artifact Analysis. Para obtener más información, consulta la documentación de referencia de la API de Go de Artifact Analysis.
Para autenticarte en Artifact Analysis, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Artifact Analysis, consulta Bibliotecas cliente de Artifact Analysis. Para obtener más información, consulta la documentación de referencia de la API de Node.js de Artifact Analysis.
Para autenticarte en Artifact Analysis, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Artifact Analysis, consulta Bibliotecas cliente de Artifact Analysis. Para obtener más información, consulta la documentación de referencia de la API de Ruby de Artifact Analysis.
Para autenticarte en Artifact Analysis, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Artifact Analysis, consulta Bibliotecas cliente de Artifact Analysis. Para obtener más información, consulta la documentación de referencia de la API de Python de Artifact Analysis.
Para autenticarte en Artifact Analysis, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
¿Qué sigue?
Si deseas obtener instrucciones para ver y filtrar notas y casos de las imágenes de contenedor, consulta Cómo ver los casos de vulnerabilidad.
Si deseas obtener instrucciones para configurar las notificaciones, consulta Notificaciones de Pub/Sub.