Configurer les notifications Pub/Sub

Lorsque des modifications sont apportées à votre dépôt Container Registry, par exemple lorsque des images sont stockées, taguées ou supprimées, vous pouvez recevoir des notifications via Pub/Sub.

Pub/Sub publie des messages concernant votre dépôt dans des ressources identifiées appelées sujets. Ces messages sont reçus par les applications abonnées aux sujets Pub/Sub. Les applications d'abonnés envoient des notifications lorsque l'état du dépôt change.

En outre, vous pouvez configurer des rôles et des autorisations pour vos sujets Pub/Sub afin de contrôler la manière dont les utilisateurs interagissent avec votre dépôt.

Pour permettre le passage de Container Registry à Artifact Registry, Artifact Registry publie des messages dans le même sujet que Container Registry.

Pour plus d'informations sur la configuration des notifications Artifact Analysis pour les activités telles que les nouveaux résultats d'analyse des failles, consultez la documentation d'Artifact Analysis.

Créer un sujet Pub/Sub

Lorsque vous activez l'API Container Registry dans un projet Google Cloud, Container Registry crée automatiquement un sujet Pub/Sub avec l'ID de sujet gcr.

Si le thème gcr a été accidentellement supprimé ou est manquant, vous pouvez l'ajouter vous-même. Par exemple, le sujet peut être manquant si votre organisation Google Cloud dispose d'une contrainte de règle d'administration qui nécessite le chiffrement avec des clés de chiffrement gérées par le client (CMEK). Lorsque L'API Pub/Sub se trouve dans la liste de refus de cette contrainte, ne peuvent pas créer automatiquement des sujets avec des clés de chiffrement gérées par Google.

Pour créer le sujet gcr avec des clés de chiffrement gérées par Google:

Console

  1. Accédez à la page des sujets Pub/Sub dans la console Google Cloud.

    Accéder à la page des sujets Pub/Sub

  2. Cliquez sur Créer un sujet.

  3. Saisissez l'ID du sujet gcr.

  4. Cliquez sur Créer un sujet.

gcloud

Exécutez la commande suivante :

gcloud pubsub topics create gcr --project=PROJECT-ID

Remplacez PROJECT-ID par l'ID de votre projet Google Cloud. Si vous omettez l'option --project, la commande utilise le projet actuel.

Pour en savoir plus sur la commande gcloud pubsub topics, consultez la documentation sur topics.

Pour créer le sujet gcr avec le chiffrement CMEK, consultez les instructions Pub/Sub pour chiffrer les sujets.

Après avoir créé le sujet gcr ou vérifié son existence, vous pouvez créer un abonnement associé au sujet ;

Créer un abonnement Pub/Sub

Chaque sujet Pub/Sub doit être associé à un abonnement.

Une application d'abonné reçoit des messages en provenance du sujet de votre dépôt. Les abonnés accomplissent des tâches telles que les notifications d'événements, la journalisation système et la communication entre les applications.

Les abonnements peuvent être configurés pour utiliser un modèle push ou un modèle pull.

Pour créer un abonnement :

Console

  1. Accédez à la page des sujets Pub/Sub dans la console Google Cloud.

    Accéder à la page des sujets Pub/Sub

  2. Cliquez sur le sujet de votre projet.

  3. Cliquez sur Créer un abonnement.

  4. Entrez un nom d'abonnement :

    projects/[PROJECT-ID]/subscriptions/[SUBSCRIPTION-NAME]
    

    Laissez le type de distribution défini sur "Retrait".

  5. Cliquez sur Créer.

gcloud

À partir du système dans lequel les images Docker sont stockées ou taguées, exécutez la commande suivante :

gcloud pubsub subscriptions create [SUBSCRIPTION-NAME] --topic=gcr

Pour en savoir plus sur la commande gcloud pubsub subscriptions, consultez la documentation sur subscriptions.

Configurer les autorisations Pub/Sub

Utiliser le contrôle des accès Pub/Sub pour configurer les autorisations pour votre projet et vos ressources. Les contrôles des accès sécurisent votre dépôt et vous permettent de gérer les autorisations des utilisateurs à l'aide d'un accès basé sur les rôles.

Vous pouvez configurer le contrôle des accès Pub/Sub Page "IAM" de la console Google Cloud ou via l'API IAM.

  • Pour configurer les autorisations de publication, utilisez l'un des rôles suivants : propriétaire, éditeur, administrateur pubsub, éditeur pubsub (pour les modifications), éditeur pubsub (pour les publications). Les principaux qui transfèrent des images ou en suppriment dans le registre doivent disposer de l'autorisation pubsub.topics.publish pour publier un message dans Pub/Sub.

  • Pour configurer les autorisations d'abonnement, utilisez l'un des rôles suivants : propriétaire, éditeur, administrateur pubsub, éditeur pubsub (pour les modifications), éditeur pubsub (pour les publications).

Exemples de notifications

Les notifications sont envoyées sous forme de chaînes au format JSON. Vous trouverez ci-dessous des exemples de notifications Container Registry envoyées par Pub/Sub.

Lorsqu'une image est stockée dans Container Registry, le contenu de la notification peut ressembler à ceci :

{
  "action":"INSERT",
  "digest":"gcr.io/my-project/hello-world@sha256:6ec128e26cd5..."
}

Lorsqu'un nouveau tag est stocké dans Container Registry, le contenu de la notification peut ressembler à ceci :

{
  "action":"INSERT",
  "digest":"gcr.io/my-project/hello-world@sha256:6ec128e26cd5...",
  "tag":"gcr.io/my-project/hello-world:1.1"
}

Le message identifie l'image pertinente à l'aide d'une clé digest ou tag.

Lorsqu'un tag est supprimé de Container Registry, le contenu de la notification peut ressembler à ceci :

{
  "action":"DELETE",
  "tag":"gcr.io/my-project/hello-world:1.1"
}

Le message peut contenir les valeurs DELETE ou INSERT pour la clé action.

Étape suivante