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 en savoir plus sur la configuration des notifications Artifact Analysis pour comme les résultats d'une nouvelle analyse de failles, consultez la Documentation 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 sujet avec l'ID 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 serveur Google Cloud organisation dispose d'une contrainte de règle d'administration qui requiert le chiffrement à l'aide de 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 "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 thème 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 chiffrement CMEK, consultez la Pub/Sub des instructions de chiffrement des thèmes.

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 "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

Utilisez le contrôle des accès Pub/Sub pour configurer les autorisations de votre projet et de 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 les contrôles d'accès de Pub/Sub sur la page IAM de la console Google Cloud ou via l'API IAM.

  • Pour configurer les autorisations de publication, utilisez l'un des les rôles suivants: propriétaire, éditeur, administrateur pubsub, éditeur pubsub (pour les modifications), éditeur pubsub (pour les modifications). Les comptes principaux qui transfèrent des images ou en suppriment du registre doivent avoir l'autorisation pubsub.topics.publish de publier un message 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