Configurer les notifications Pub/Sub

Vous pouvez recevoir des notifications de Pub/Sub pour les dans un dépôt Docker. Les notifications s'appliquent à toutes les images de conteneurs stockés dans le dépôt, y compris les charts Helm 3. empaqueté au format OCI.

Pub/Sub publie des messages concernant vos dépôts dans des des ressources appelées topics. Les applications qui s'abonnent à Pub/Sub reçoivent ces messages et reçoivent des notifications lorsqu'un les changements d'état.

Artifact Registry publie des messages concernant les modifications suivantes :

  • Importations d'image
  • Nouveaux tags ajoutés aux images
  • Suppression d'image

De plus, vous pouvez configurer des rôles et des autorisations pour la publication à s'abonner aux notifications.

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

Présentation

Artifact Registry publie des messages concernant les modifications apportées aux dépôts dans un sujet nommé gcr.

Pour recevoir des notifications, vous devez :

  1. Créez un sujet nommé gcr dans le projet avec Artifact Registry.
  2. Créez un abonnement associé au sujet.
  3. Configurez votre application d'abonné pour recevoir messages concernant les modifications du dépôt.
  4. Le cas échéant, configurez les autorisations pour contrôler les accès à votre sujet et à votre abonnement.

Créer le sujet Artifact Registry

Lorsque vous activez l'API Artifact Registry dans un projet Google Cloud, Artifact Registry crée automatiquement sujet avec l'ID gcr. Si Container Registry est activé dans le même le sujet existe peut-être déjà, car les deux registres utilisent le même sujet pour publier des messages.

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 appartenant à Google et gérées par Google.

Pour afficher la liste des sujets existants, vous pouvez consulter Page des sujets Pub/Sub dans la console Google Cloud ou exécutez la commande suivante:

gcloud pubsub topics list

Pour créer le sujet gcr avec des clés appartenant à Google et 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

Après avoir créé un sujet pour les modifications du dépôt, vous pouvez configurer un abonnement qui utilise la distribution push ; ou la distribution pull. Nous vous recommandons d'utiliser la distribution pull Les systèmes CI/CD peuvent générer de nombreuses modifications aux artefacts stockés et extraire la distribution est plus efficace pour un grand nombre de messages.

Pour créer un abonnement avec la distribution pull, procédez comme suit :

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/subscriptions/[SUBSCRIPTION-NAME]
    

    Laissez le type de distribution défini sur Retrait.

  5. Cliquez sur Créer.

gcloud

Exécutez la commande suivante :

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

Remplacez SUBSCRIPTION-NAME par le nom de l'abonnement.

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

Vous êtes désormais abonné au sujet gcr. L'étape suivante consiste à Configuration des autorisations pour les identités qui déclenchent des modifications dans des dépôts.

Configurer votre application d'abonné

Après avoir créé un sujet et un abonnement vous pouvez configurer votre application d'abonné, qui reçoivent des messages concernant les modifications apportées aux dépôts. Applications d'abonnés effectuer des tâches comme les notifications d'événements, la journalisation du système, et la communication entre les applications.

Lorsqu'un utilisateur du dépôt transfère ou supprime une image, les étapes suivantes se produisent:

  1. Le compte de service Artifact Registry publie la modification dans votre gcr sur un sujet. Le compte de service est service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com. où PROJECT-NUMBER est le numéro de votre projet Google Cloud. La Le compte de service Artifact Registry dispose du rôle pubsub.topics.publish l'autorisation par défaut afin de pouvoir publier les modifications apportées à votre sujet.

    Si un administrateur a révoqué les autorisations pubsub.topics.publish pour le compte de service Artifact Registry, Artifact Registry tente de publier en tant qu'utilisateur du dépôt. Dans ce cas, l'utilisateur du dépôt le compte doit disposer de l'autorisation pubsub.topics.publish pour réussir publier le message.

  2. Pub/Sub transfère le message du sujet vers votre abonnement.

  3. Lorsque votre application d'abonné envoie une requête pour des messages, elle extrait le nouveau message de l'abonnement.

    L'identité qui extrait les messages au nom de l'abonné doit avoir autorisations d'accès à l'abonnement. Vous pouvez utiliser Rôle d'abonné Pub/Sub pour accorder cette autorisation.

Pour en savoir plus sur la configuration d'un abonnement pour recevoir des messages dans le cadre d'un abonnement avec la distribution pull, consultez la page Recevoir des messages en mode pull.

Configurer des autorisations

Vous pouvez utiliser les autorisations Pub/Sub pour contrôler l'accès à vos sujets abonnements.

Pour en savoir plus sur les autorisations Pub/Sub et sur l'attribution et les abonnements, consultez la Pub/Sub documentation sur le contrôle des accès.

Exemples de notifications

Pub/Sub envoie des notifications sous forme de chaînes au format JSON. Consultez les Voici quelques exemples pour découvrir à quoi vous attendre lorsque vous recevez des notifications Artifact Registry de Pub/Sub.

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

{
  "action":"INSERT",
  "digest":"us-east1-docker.pkg.dev/my-project/my-repo/hello-world@sha256:6ec128e26cd5..."
}

Lorsqu'un nouveau tag d'image est transféré vers Artifact Registry, la charge utile de notification se présente comme suit :

{
  "action":"INSERT",
  "digest":"us-east1-docker.pkg.dev/my-project/my-repo/hello-world@sha256:6ec128e26cd5...",
  "tag":"us-east1-docker.pkg.dev/my-project/my-repo/hello-world:1.1"
}

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

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

{
  "action":"DELETE",
  "tag":"us-east1-docker.pkg.dev/my-project/my-repo/hello-world:1.1"
}

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

Étape suivante