Puoi scegliere di fornire i tuoi metadati ad Artifact Analysis per soddisfare un'esigenza aziendale specifica. Ad esempio, un'organizzazione che fornisce la gestione della sicurezza per i container Docker dei propri clienti può utilizzare Artifact Analysis per archiviare e recuperare i metadati relativi alla sicurezza per queste immagini.
Segui i passaggi riportati di seguito per fornire metadati personalizzati sulle vulnerabilità per le tue immagini utilizzando l'API Artifact Analysis. Puoi utilizzare le stesse istruzioni per archiviare e recuperare qualsiasi tipo di metadati supportato da Artifact Analysis.
Prima di iniziare
- 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.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Scopri come configurare il controllo dell'accesso per i metadati nel tuo progetto. Ignora questo passaggio se utilizzi solo i metadati delle occorrenze di vulnerabilità create dall'analisi dei container di Artifact Analysis.
Crea un file denominato
note.json
con la descrizione e i dettagli della vulnerabilità. Il seguente codice mostra un esempio di filenote.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", } ] } }
Per saperne di più sulla rappresentazione JSON delle note, consulta la documentazione dell'API Note.
Esegui questo comando curl per creare 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
Dove:
- PROVIDER_PROJECT_ID è l'ID progetto.
- NOTE_ID specifica un identificatore per la nota. Utilizza una stringa con una lunghezza massima di 100 caratteri.
Crea un file denominato
occurrence.json
con il seguente contenuto:{ "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" } }
Dove:
- resource_url è l'URL della risorsa associata all'occorrenza, ad esempio
https://us-central1-docker.pkg.dev/my-project/my-repository/my-image@sha256:123
. - note_id specifica un identificatore per la nota. Utilizza una stringa con una lunghezza massima di 100 caratteri.
Per ulteriori informazioni sulla rappresentazione JSON delle occorrenze, consulta la documentazione dell'API Occorrenze.
- resource_url è l'URL della risorsa associata all'occorrenza, ad esempio
Esegui questo comando curl in cui CUSTOMER_PROJECT_ID è l'ID progetto del tuo 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
Per istruzioni su come visualizzare e filtrare note e occorrenze per le immagini container, consulta Visualizzazione delle occorrenze di vulnerabilità.
Per istruzioni su come configurare le notifiche, consulta Notifiche Pub/Sub.
Creare note e occorrenze per i progetti
Questa sezione spiega come creare note e occorrenze. Per questo esempio, utilizzerai il tipo VULNERABILITY
.
In qualità di fornitore, creerai una nota nel tuo progetto per ogni vulnerabilità e un'occorrenza nel progetto del cliente per ogni occorrenza di quella vulnerabilità.
Creazione note
Per creare una nota e assegnarle un ID nota:
API
Java
Per scoprire come installare e utilizzare la libreria client per Artifact Analysis, consulta Librerie client di Artifact Analysis. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Artifact Analysis per Java.
Per eseguire l'autenticazione in Artifact Analysis, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Artifact Analysis, consulta Librerie client di Artifact Analysis. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Artifact Analysis per Go.
Per eseguire l'autenticazione in Artifact Analysis, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Artifact Analysis, consulta Librerie client di Artifact Analysis. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Artifact Analysis per Node.js.
Per eseguire l'autenticazione in Artifact Analysis, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per scoprire come installare e utilizzare la libreria client per Artifact Analysis, consulta Librerie client di Artifact Analysis. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Artifact Analysis per Ruby.
Per eseguire l'autenticazione in Artifact Analysis, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Artifact Analysis, consulta Librerie client di Artifact Analysis. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Artifact Analysis per Python.
Per eseguire l'autenticazione in Artifact Analysis, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Crea occorrenze per le note
Per creare occorrenze per una nota:
API
Java
Per scoprire come installare e utilizzare la libreria client per Artifact Analysis, consulta Librerie client di Artifact Analysis. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Artifact Analysis per Java.
Per eseguire l'autenticazione in Artifact Analysis, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Artifact Analysis, consulta Librerie client di Artifact Analysis. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Artifact Analysis per Go.
Per eseguire l'autenticazione in Artifact Analysis, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Artifact Analysis, consulta Librerie client di Artifact Analysis. Per saperne di più, consulta la documentazione di riferimento dell'API Artifact Analysis per Node.js.
Per eseguire l'autenticazione in Artifact Analysis, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per scoprire come installare e utilizzare la libreria client per Artifact Analysis, consulta Librerie client di Artifact Analysis. Per saperne di più, consulta la documentazione di riferimento dell'API Artifact Analysis per Ruby.
Per eseguire l'autenticazione in Artifact Analysis, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Artifact Analysis, consulta Librerie client di Artifact Analysis. Per saperne di più, consulta la documentazione di riferimento dell'API Artifact Analysis per Python.
Per eseguire l'autenticazione in Artifact Analysis, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Visualizzare tutte le occorrenze di una nota specifica
Puoi visualizzare tutte le occorrenze di una vulnerabilità specifica nei progetti del tuo cliente utilizzando notes.occurrences.list()
.
API
Per elencare tutte le occorrenze di una nota, invia una richiesta GET come segue:
GET https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/notes/NOTE_ID/occurrences
Per informazioni dettagliate, consulta l'endpoint API
projects.notes.occurrences.list
.
Java
Per scoprire come installare e utilizzare la libreria client per Artifact Analysis, consulta Librerie client di Artifact Analysis. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Artifact Analysis per Java.
Per eseguire l'autenticazione in Artifact Analysis, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Artifact Analysis, consulta Librerie client di Artifact Analysis. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Artifact Analysis per Go.
Per eseguire l'autenticazione in Artifact Analysis, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Artifact Analysis, consulta Librerie client di Artifact Analysis. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Artifact Analysis per Node.js.
Per eseguire l'autenticazione in Artifact Analysis, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per scoprire come installare e utilizzare la libreria client per Artifact Analysis, consulta Librerie client di Artifact Analysis. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Artifact Analysis per Ruby.
Per eseguire l'autenticazione in Artifact Analysis, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Artifact Analysis, consulta Librerie client di Artifact Analysis. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Artifact Analysis per Python.
Per eseguire l'autenticazione in Artifact Analysis, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.