Partager via


Configurer la mise à jour corrective continue dans Azure Container Registry

Dans cet article, vous allez apprendre à installer, activer et configurer la mise à jour corrective continue. La mise à jour corrective continue lorsqu’elle est activée pour un registre de conteneurs détecte et corrige automatiquement les vulnérabilités au niveau du système d’exploitation (système d’exploitation) pour les images conteneur.

Conditions préalables

  • Vous pouvez utiliser Azure Cloud Shell ou une installation locale d’Azure CLI avec une version minimale de la version 2.15.0 ou ultérieure.
  • Vous disposez d’un groupe de ressources existant avec Azure Container Registry (ACR).
  • Vous disposez d’un Registre de conteneurs Azure avec ACR Tasks activé (ACR Tasks n’est pas pris en charge dans le niveau gratuit d’ACR).

Installation du flux de travail de mise à jour corrective continue

Exécutez la commande suivante pour installer l’extension CLI :

    az extension add -n acrcssc

Activer le flux de travail de mise à jour corrective continue

  1. Connectez-vous à Azure CLI avec az login.
az login
  1. Connectez-vous à ACR.
az acr login -n <myRegistry>
  1. Exécutez la commande suivante pour créer un fichier nommé continuouspatching.json, qui contient le JSON de mise à jour corrective continue. Le nom de fichier JSON est flexible.
cat <<EOF > continuouspatching.json
{
    "version": "v1",
    "tag-convention" : "<incremental|floating>",
    "repositories": [{
        "repository": "<Repository Name>",
        "tags": ["<comma-separated-tags>"],   
        "enabled": <true|false>
    }] 
}
EOF

Le schéma ingère des référentiels et des balises spécifiques dans un format de tableau. Chaque variable est définie ici :

  • version permet à l’équipe ACR de suivre la version du schéma que vous utilisez. Ne modifiez pas cette variable, sauf indication.

  • tag-convention est un champ facultatif. Les valeurs autorisées sont « incrémentielles » ou « flottantes » : reportez-vous aux concepts clés de mise à jour corrective continue pour plus d’informations.

  • repositories est un tableau qui se compose d’informations détaillées sur le référentiel et les étiquettes

    • repository fait référence au nom du référentiel
    • tags est un tableau de balises séparées par des virgules. Le caractère générique * peut être utilisé pour signer toutes les balises au sein de ce référentiel.
    • enabled est une valeur booléenne de true ou false qui détermine si le référentiel spécifié est activé ou non.

Les détails suivants présentent un exemple de configuration pour un client qui souhaite mettre à jour toutes les balises (utiliser le symbole *) dans le référentiel python, et mettre à jour spécifiquement les balises jammy-20240111 et jammy-20240125 dans le référentiel ubuntu.

Exemple JSON :

{
"version": "v1",
"tag-convention" : "incremental",
"repositories": [{
        "repository": "python",
        "tags": ["*"],
        "enabled": true
    },
    {
        "repository": "ubuntu",
        "tags": ["jammy-20240111", "jammy-20240125"],
        "enabled": true, 
    }]
}
  1. Après avoir créé votre fichier de configuration, il est recommandé d’exécuter une exécution sèche pour vérifier que les artefacts prévus sont sélectionnés par les critères JSON. L’exécution sèche nécessite un paramètre appelé schedule, qui spécifie la fréquence à laquelle votre cycle de mise à jour corrective continue s’exécute. L’indicateur de planification est mesuré en jours, avec une valeur minimale d’un jour et une valeur maximale de 30 jours. Par exemple, si vous souhaitez qu’une image soit corrigée tous les jours, vous spécifiez la planification en tant que 1dou 1 jour. Si vous souhaitez un correctif hebdomadaire (une fois par semaine), vous devez remplir le calendrier avec 7d, ou 7 jours.

Schéma de commande :

az acr supply-chain workflow create -r <registryname> -g <resourcegroupname> -t continuouspatchv1 --config <JSONfilepath> --schedule <number of days> --dry-run 

Exemple de commande :

az acr supply-chain workflow create -r myRegistry -g myResourceGroup -t continuouspatchv1 --config ./continuouspatching.json --schedule 1d --dry-run   

L’indicateur --dry-run génère tous les artefacts spécifiés par la configuration du fichier JSON. Les clients peuvent vérifier que les artefacts appropriés sont sélectionnés. Avec l’exemple de configuration ubuntu, les résultats suivants doivent être affichés sous forme de sortie.

Ubuntu: jammy-20240111
Ubuntu: jammy-20240125

Commande d’aide pour afficher tous les indicateurs obligatoires/facultatifs :

az acr supply-chain workflow create --help
  1. Une fois satisfaits des résultats de l’exécution sèche, réexécutez la create commande sans l’indicateur --dry-run pour créer officiellement votre flux de travail de mise à jour corrective continue.

Remarque

Le --schedule paramètre suit un multiplicateur de jour fixe à partir du jour 1 du mois. En d’autres termes :

  • Si vous spécifiez --schedule 7d et exécutez la commande le 3, la prochaine exécution planifiée sera le 7, car 7 est le premier multiple de 7 (jours) après le 3, à partir du jour 1 du mois.
  • Si --schedule est 3d et que nous sommes aujourd’hui le 7, la prochaine exécution planifiée aura lieu le 9, puisque le 9 est le multiple de 3 qui suit le 7.
  • Si vous ajoutez l’indicateur --run-immediately, vous déclenchez une exécution de correctif immédiate. L’exécution planifiée suivante sera toujours alignée sur le multiple de jour le plus proche du premier du mois, sur la base de votre valeur --schedule.
  • Le compteur d'horaires est réinitialisé chaque mois. Quelle que soit la planification désignée, votre flux de travail s’exécute le premier de chaque mois, puis suit la valeur de planification spécifiée pour le reste du mois. Si ma mise à jour corrective a lieu le 28 janvier et que mon intervalle est de 7 jours, mon prochain correctif aura lieu le premier février, puis le huit, et continuera à suivre un intervalle de 7 jours.

Schéma de commande :

az acr supply-chain workflow create -r <registryname> -g <resourcegroupname> -t continuouspatchv1 --config <JSONfilename> --schedule <number of days> --run-immediately

Exemple de commande :

az acr supply-chain workflow create -r myRegistry -g myResourceGroup -t continuouspatchv1 --config ./continuouspatching.json --schedule 1d --run-immediately

Une fois la commande réussie (que vous incluiez --run-immediatelyou non), vous devez voir :

  • Message de réussite confirmant que vos tâches de flux de travail sont mises en file d’attente.

  • Paramètre de sortie indiquant quand l’exécution suivante de votre flux de travail est planifiée. Vous pouvez donc suivre exactement le moment où la mise à jour corrective se produit à nouveau.

Commande d’aide pour tous les indicateurs obligatoires/facultatifs.

az acr supply-chain workflow create --help

Utiliser le portail Azure pour afficher les tâches de flux de travail

  1. Une fois le flux de travail réussi, accédez au portail Azure pour afficher vos tâches en cours d’exécution. Dans le menu du service, sous Services, sélectionnez **Dépôts. Vous devez voir un nouveau référentiel nommé csscpolicies/patchpolicy. Ce référentiel héberge l’artefact de configuration JSON qui est référencé en permanence pour la mise à jour corrective continue.

  2. Ensuite, sous Services, sélectionnez Tâches. Vous devez voir trois nouvelles tâches :

Capture d’écran montrant les tâches créées pour la mise à jour corrective continue.

Tâches:

  • cssc-trigger-workflow : cette tâche analyse le fichier de configuration et appelle la tâche d’analyse sur chaque image respective.
  • cssc-scan-image : cette tâche analyse l’image pour détecter les vulnérabilités du système d’exploitation. Cette tâche déclenche la tâche de mise à jour corrective uniquement si des vulnérabilités du système d’exploitation ont été détectées.
  • cssc-patch-image : cette tâche corrige l’image. Ces tâches fonctionnent conjointement pour exécuter votre workflow de mise à jour corrective continue.
  1. Vous pouvez également sélectionner « Exécutions » dans la vue « Tâches » pour afficher des exécutions de tâches spécifiques. Ici, vous pouvez afficher des informations d'état concernant la réussite ou l'échec de la tâche, ainsi que consulter un journal de débogage.

Capture d’écran montrant les tâches exécutées pour la mise à jour corrective continue.

Utiliser l’interface CLI pour afficher les tâches de flux de travail

Vous pouvez également exécuter la commande cli suivante pour afficher plus de détails sur chaque tâche et le flux de travail général. La commande génère :

  • Calendrier
  • Date de création
  • Données système telles que la date de dernière modification, par qui, etc.

Schéma de commande :

az acr supply-chain workflow show -r <registry> -g <resourceGroup> -t continuouspatchv1   

Exemple de commande :

az acr supply-chain workflow show -r myRegistry -g myResourceGroup -t continuouspatchv1 

Commande d’aide pour tous les indicateurs obligatoires/facultatifs :

az acr supply-chain workflow show --help

Mise à jour du processus de correctif continu

Dans les scénarios où vous souhaitez apporter des modifications à votre flux de travail de mise à jour corrective continue, la commande de mise à jour est le moyen le plus simple de le faire. Vous pouvez mettre à jour votre schéma de configuration JSON ou de planification à l’aide de la commande CLI de mise à jour directement.

Schéma de commande :

az acr supply-chain workflow update -r <registry> -g <resourceGroup> -t continuouspatchv1 --config <JSONfilename> --schedule <number of days>

Exemple de commande :

az acr supply-chain workflow update -r myRegistry -g myResourceGroup -t continuouspatchv1 --config ./continuouspatching.json --schedule 1d

Commande d’aide pour tous les indicateurs obligatoires/facultatifs :

az acr supply-chain workflow update --help

Pour mettre à jour votre planification, exécutez la commande précédente avec une nouvelle entrée pour la planification. Pour mettre à jour votre configuration JSON, nous vous recommandons d’apporter des modifications au fichier, d’exécuter une exécution sèche, puis d’exécuter la commande de mise à jour.

Suppression du flux de travail de mise à jour corrective continue

Pour supprimer le flux de travail de mise à jour corrective continue, exécutez la commande CLI suivante.

Schéma de commande :

az acr supply-chain workflow delete -r <registry> -g <resourceGroup> -t continuouspatchv1 

Exemple de commande :

az acr supply-chain workflow delete -r myregistry -g myresourcegroup -t continuouspatchv1

Commande d’aide pour tous les indicateurs obligatoires/facultatifs :

az acr supply-chain workflow delete --help

Une fois qu’un flux de travail est correctement supprimé, le dépôt « csscpolicies/patchpolicy » est automatiquement supprimé. Les trois tâches qui exécutent votre workflow seront également supprimées, ainsi que toutes les exécutions actuellement mises en file d’attente.