Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
- Connectez-vous à Azure CLI avec az login.
az login
- Connectez-vous à ACR.
az acr login -n <myRegistry>
- 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 :
versionpermet à l’équipe ACR de suivre la version du schéma que vous utilisez. Ne modifiez pas cette variable, sauf indication.tag-conventionest 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.repositoriesest un tableau qui se compose d’informations détaillées sur le référentiel et les étiquettes-
repositoryfait référence au nom du référentiel -
tagsest 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. -
enabledest 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,
}]
}
- 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 que1dou 1 jour. Si vous souhaitez un correctif hebdomadaire (une fois par semaine), vous devez remplir le calendrier avec7d, 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
- Une fois satisfaits des résultats de l’exécution sèche, réexécutez la
createcommande sans l’indicateur--dry-runpour 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 7det 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
--scheduleest 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
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.Ensuite, sous Services, sélectionnez Tâches. Vous devez voir trois nouvelles tâches :
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.
- 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.
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.