Vous pouvez choisir de fournir vos propres métadonnées à Artifact Analysis pour répondre à un besoin professionnel spécifique. Par exemple, une organisation qui assure la gestion de la sécurité des conteneurs Docker de ses clients peut utiliser Artifact Analysis pour stocker et récupérer des métadonnées liées à la sécurité de ces images.
Suivez les étapes ci-dessous pour fournir des métadonnées de faille personnalisées pour vos images à l'aide de l'API Artifact Analysis. Vous pouvez utiliser les mêmes instructions pour stocker et récupérer tout type de métadonnées accepté par Artifact Analysis.
Avant de commencer
- 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
- Découvrez comment configurer le contrôle des accès pour les métadonnées de votre projet. Ignorez cette étape si vous n'utilisez que les métadonnées des occurrences de failles créées par l'analyse des conteneurs Artifact Analysis.
Créer des notes et des occurrences pour des projets
Cette section explique comment créer des notes et des occurrences. Pour cet exemple, vous utiliserez le type VULNERABILITY
.
En tant que fournisseur, vous créez une note dans votre projet pour chaque faille, et vous créez une occurrence dans le projet de votre client pour une occurrence de cette faille.
Créer des notes
Pour créer une note et lui attribuer un ID, procédez comme suit :
API
Créez un fichier nommé
note.json
contenant une description ainsi que les détails de la faille. Le code suivant illustre un exemple de fichiernote.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", } ] } }
Pour en savoir plus sur la représentation JSON des notes, consultez la documentation de l'API Notes.
Exécutez la commande curl suivante pour créer une note:
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
Où :
- PROVIDER_PROJECT_ID est l'ID de votre projet.
- NOTE_ID spécifie un identifiant pour votre note. Utilisez une chaîne d'une longueur maximale de 100 caractères.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour l'Artifact Analysis, consultez la page Bibliothèques clientes d'analyse d'artefacts. Pour en savoir plus, consultez la documentation de référence de l'API Artifact Analysis Java.
Pour vous authentifier auprès d'Artifact Analysis, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour l'Artifact Analysis, consultez la page Bibliothèques clientes d'analyse d'artefacts. Pour en savoir plus, consultez la documentation de référence de l'API Artifact Analysis Go.
Pour vous authentifier auprès d'Artifact Analysis, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour l'Artifact Analysis, consultez la page Bibliothèques clientes d'analyse d'artefacts. Pour en savoir plus, consultez la documentation de référence de l'API Artifact Analysis Node.js.
Pour vous authentifier auprès d'Artifact Analysis, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Pour savoir comment installer et utiliser la bibliothèque cliente pour l'Artifact Analysis, consultez la page Bibliothèques clientes d'analyse d'artefacts. Pour en savoir plus, consultez la documentation de référence de l'API Artifact Analysis Ruby.
Pour vous authentifier auprès d'Artifact Analysis, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour l'Artifact Analysis, consultez la page Bibliothèques clientes d'analyse d'artefacts. Pour en savoir plus, consultez la documentation de référence de l'API Artifact Analysis Python.
Pour vous authentifier auprès d'Artifact Analysis, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Créer des occurrences pour les notes
Pour créer des occurrences pour une note :
API
Créez un fichier nommé
occurrence.json
avec le contenu suivant :{ "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" } }
Où :
- resource_url est l'URL de la ressource associée à l'occurrence, par exemple
https://us-central1-docker.pkg.dev/my-project/my-repository/my-image@sha256:123
. - note_id spécifie un identifiant pour votre note. Utilisez une chaîne d'une longueur maximale de 100 caractères.
Pour en savoir plus sur la représentation JSON des occurrences, consultez la documentation de l'API occurrences.
- resource_url est l'URL de la ressource associée à l'occurrence, par exemple
Exécutez la commande curl suivante, où CUSTOMER_PROJECT_ID correspond à l'ID de projet de votre client:
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
Pour savoir comment installer et utiliser la bibliothèque cliente pour l'Artifact Analysis, consultez la page Bibliothèques clientes d'analyse d'artefacts. Pour en savoir plus, consultez la documentation de référence de l'API Artifact Analysis Java.
Pour vous authentifier auprès d'Artifact Analysis, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour l'Artifact Analysis, consultez la page Bibliothèques clientes d'analyse d'artefacts. Pour en savoir plus, consultez la documentation de référence de l'API Artifact Analysis Go.
Pour vous authentifier auprès d'Artifact Analysis, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour l'Artifact Analysis, consultez la page Bibliothèques clientes d'analyse d'artefacts. Pour en savoir plus, consultez la documentation de référence de l'API Artifact Analysis Node.js.
Pour vous authentifier auprès d'Artifact Analysis, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Pour savoir comment installer et utiliser la bibliothèque cliente pour l'Artifact Analysis, consultez la page Bibliothèques clientes d'analyse d'artefacts. Pour en savoir plus, consultez la documentation de référence de l'API Artifact Analysis Ruby.
Pour vous authentifier auprès d'Artifact Analysis, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour l'Artifact Analysis, consultez la page Bibliothèques clientes d'analyse d'artefacts. Pour en savoir plus, consultez la documentation de référence de l'API Artifact Analysis Python.
Pour vous authentifier auprès d'Artifact Analysis, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Obtenir toutes les occurrences associées à une note spécifique
Vous pouvez afficher toutes les occurrences d'une faille spécifique dans l'ensemble des projets de votre client à l'aide de notes.occurrences.list()
.
API
Pour répertorier toutes les occurrences d'une note, envoyez une requête GET basée sur le modèle suivant :
GET https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/notes/NOTE_ID/occurrences
Reportez-vous au point de terminaison projects.notes.occurrences.list
de l'API pour obtenir des informations complètes.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour l'Artifact Analysis, consultez la page Bibliothèques clientes d'analyse d'artefacts. Pour en savoir plus, consultez la documentation de référence de l'API Artifact Analysis Java.
Pour vous authentifier auprès d'Artifact Analysis, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour l'Artifact Analysis, consultez la page Bibliothèques clientes d'analyse d'artefacts. Pour en savoir plus, consultez la documentation de référence de l'API Artifact Analysis Go.
Pour vous authentifier auprès d'Artifact Analysis, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour l'Artifact Analysis, consultez la page Bibliothèques clientes d'analyse d'artefacts. Pour en savoir plus, consultez la documentation de référence de l'API Artifact Analysis Node.js.
Pour vous authentifier auprès d'Artifact Analysis, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Pour savoir comment installer et utiliser la bibliothèque cliente pour l'Artifact Analysis, consultez la page Bibliothèques clientes d'analyse d'artefacts. Pour en savoir plus, consultez la documentation de référence de l'API Artifact Analysis Ruby.
Pour vous authentifier auprès d'Artifact Analysis, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour l'Artifact Analysis, consultez la page Bibliothèques clientes d'analyse d'artefacts. Pour en savoir plus, consultez la documentation de référence de l'API Artifact Analysis Python.
Pour vous authentifier auprès d'Artifact Analysis, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Étape suivante
Pour obtenir des instructions sur l'affichage et le filtrage des notes et des occurrences pour les images de conteneurs, consultez la page Afficher les occurrences de failles.
Pour obtenir des instructions sur la configuration des notifications, consultez la page Notifications Pub/Sub.