Ce document explique comment configurer les notifications pour les mises à jour des notes et des occurrences.
Artifact Analysis fournit des notifications via Pub/Sub pour les failles détectées lors d'une analyse automatisée et pour d'autres métadonnées. Lorsqu'une note ou un événement est créé ou mis à jour, un message est publié dans le sujet correspondant pour chaque version de l'API. Utilisez la rubrique correspondant à la version de l'API que vous utilisez.
Avant de commencer
- Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.
-
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Container Analysis API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
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.
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Container Analysis API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
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 - 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 créées par l'analyse de conteneurs Artifact Analysis.
Créer des sujets Pub/Sub
Après avoir activé l'API Artifact Analysis, Artifact Analysis crée automatiquement des sujets Pub/Sub avec les ID de sujet suivants :
container-analysis-notes-v1container-analysis-occurrences-v1
Si les sujets ont été supprimés par accident ou sont manquants, vous pouvez les ajouter vous-même. Par exemple, il est possible que les thèmes soient manquants si votre organisation Google Cloudest soumise à une contrainte de règle d'administration qui exige le chiffrement avec des clés de chiffrement gérées par le client (CMEK). Lorsque l'API Pub/Sub figure dans la liste de refus de cette contrainte, les services ne peuvent pas créer automatiquement de sujets avecGoogle-owned and Google-managed encryption keys.
Pour créer les thèmes avec Google-owned and Google-managed encryption keys :
Console
Accédez à la page des sujets Pub/Sub dans la console Google Cloud .
Cliquez sur Créer un sujet.
Saisissez un ID de thème :
container-analysis-notes-v1afin que le nom corresponde à l'URI :
projects/PROJECT_ID/topics/container-analysis-notes-v1où PROJECT_ID correspond à l' Google Cloud ID de votre projet.
Cliquez sur Créer.
Saisissez un ID de thème :
container-analysis-occurrences-v1afin que le nom corresponde à l'URI :
projects/PROJECT_ID/topics/container-analysis-occurrences-v1
gcloud
Exécutez les commandes suivantes dans votre fenêtre de shell ou de terminal :
gcloud pubsub topics create projects/PROJECT_ID/topics/container-analysis-notes-v1
gcloud pubsub topics create projects/PROJECT_ID/topics/container-analysis-occurrences-v1
Pour en savoir plus sur la commande gcloud pubsub topics, consultez la documentation sur topics.
Pour créer les sujets avec le chiffrement CMEK, consultez les instructions Pub/Sub pour chiffrer les sujets.
Chaque fois qu'une note ou une occurrence est créée ou mise à jour, un message est publié dans le sujet correspondant. Toutefois, vous devez également créer un abonnement Pub/Sub pour écouter les événements et recevoir des messages du service Pub/Sub.
Créer un abonnement Pub/Sub
Pour écouter les événements, créez un abonnement Pub/Sub associé au sujet :
Console
Accédez à la page "Abonnements Pub/Sub" dans la consoleGoogle Cloud .
Cliquez sur Créer un abonnement.
Saisissez un nom pour l'abonnement. Exemple : notes.
Saisissez l'URI du sujet pour les notes :
projects/PROJECT_ID/topics/container-analysis-notes-v1où PROJECT_ID correspond à l' Google Cloud ID de votre projet.
Cliquez sur Créer.
Créez un autre abonnement pour les occurrences avec l'URI :
projects/PROJECT_ID/topics/container-analysis-occurrences-v1
gcloud
Pour recevoir des événements Pub/Sub, vous devez d'abord créer un abonnement associé au sujet container-analysis-occurrences-v1 :
gcloud pubsub subscriptions create \
--topic container-analysis-occurrences-v1 occurrences
Vous pouvez ensuite récupérer des messages concernant vos occurrences à l'aide de votre nouvel abonnement :
gcloud pubsub subscriptions pull \
--auto-ack occurrences
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour Artifact Analysis, consultez la page Bibliothèques clientes Artifact Analysis. 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 Artifact Analysis, consultez Bibliothèques clientes Artifact Analysis. 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 Artifact Analysis, consultez la page Bibliothèques clientes Artifact Analysis. Pour en savoir plus, consultez la documentation de référence de l'API Artifact Analysis pour 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 Artifact Analysis, consultez la page Bibliothèques clientes Artifact Analysis. 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 Artifact Analysis, consultez Bibliothèques clientes Artifact Analysis. 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.
Les applications d'abonnés ne reçoivent que les messages publiés dans le sujet après la création de l'abonnement.
Les charges utiles Pub/Sub sont au format JSON et leur schéma se présente comme suit :
Notes :
{ "name": "projects/PROJECT_ID/notes/NOTE_ID", "kind": "NOTE_KIND", "notificationTime": "NOTIFICATION_TIME", }
Occurrences :
{ "name": "projects/PROJECT_ID/occurrences/OCCURRENCE_ID", "kind": "NOTE_KIND", "notificationTime": "NOTIFICATION_TIME", }
où :
- NOTE_KIND est l'une des valeurs de
NoteKind. - NOTIFICATION_TIME est un code temporel au format RFC 3339 UTC "Zulu", précis à la nanoseconde près.
Afficher les détails
Pour en savoir plus sur une note ou un événement, vous pouvez accéder aux métadonnées stockées dans Artifact Analysis. Par exemple, vous pouvez demander tous les détails d'un événement spécifique. Consultez les instructions de la section Examiner les failles.
Étapes suivantes
- Pour savoir comment utiliser Artifact Analysis pour stocker et gérer vos métadonnées personnalisées, consultez Créer des notes et des occurrences personnalisées.