| nav_exclude | true |
|---|---|
| lang | fr |
| permalink | /fr/labs/lab-03 |
| title | Lab 03 - Checkov : Analyse statique de politiques |
| description | Exécuter Checkov sur des templates Bicep pour détecter les violations de sécurité et de gouvernance des coûts. |
| Durée | 30 minutes |
| Niveau | Intermédiaire |
| Prérequis | Lab 01 |
À la fin de ce lab, vous serez capable de :
- Exécuter Checkov sur des templates Bicep via le CLI
- Interpréter la sortie de Checkov incluant les vérifications réussies, échouées et ignorées
- Exporter les résultats de Checkov au format SARIF pour l'intégration avec l'onglet Sécurité GitHub
- Comparer les résultats de Checkov avec ceux de PSRule pour le même template
Vous allez analyser l'application sans étiquettes avec Checkov et générer une sortie SARIF.
-
Créez le répertoire de rapports s'il n'existe pas :
mkdir -p reports
-
Exécutez Checkov sur l'application 001 avec une sortie console et SARIF :
checkov -d finops-demo-app-001/infra/ --output cli --output sarif --output-file-path console,reports/
Cela produit une sortie CLI à l'écran et écrit un fichier SARIF dans le répertoire
reports/. -
Examinez la sortie CLI. Checkov résume les résultats en trois catégories :
- Passed (réussi) — vérifications satisfaites par le template
- Failed (échoué) — vérifications violées par le template
- Skipped (ignoré) — vérifications exclues par la configuration
-
Notez les identifiants des vérifications échouées. Checkov utilise des identifiants au format
CKV_AZURE_*(par exemple,CKV_AZURE_18pour les règles réseau du compte de stockage).
Tip
Checkov analyse les violations de sécurité et de bonnes pratiques. Vous verrez des vérifications liées à l'application de HTTPS, la version TLS, les clés d'accès et la configuration réseau — pas uniquement la gouvernance des coûts. Cette couverture élargie complète le focus spécifique Azure de PSRule.
Vous allez analyser les résultats de Checkov pour comprendre la signification de chaque résultat.
-
Ouvrez le fichier SARIF généré par Checkov dans le répertoire
reports/. -
Examinez le tableau
results. Chaque entrée contient :ruleId— l'identifiant de vérification Checkov (par exemple,CKV_AZURE_18)level— sévérité du résultatmessage.text— description de la vérification échouéelocations— chemin du fichier et référence de la ressource
-
Classez les résultats par groupes :
Catégorie Exemples d'identifiants Description Sécurité réseau CKV_AZURE_18,CKV_AZURE_59Règles réseau du compte de stockage, HTTPS uniquement Chiffrement CKV_AZURE_33,CKV_AZURE_43Chiffrement au repos, version TLS Contrôle d'accès CKV_AZURE_36Clé d'accès partagée désactivée Surveillance CKV_AZURE_65Messages d'erreur détaillés App Service -
Notez que Checkov ne vérifie pas explicitement les 7 étiquettes de gouvernance comme le fait PSRule. C'est une différence clé entre les outils.
Important
Les identifiants et descriptions des vérifications Checkov peuvent varier entre les versions. Utilisez checkov --list pour voir toutes les vérifications disponibles pour le framework arm.
Vous allez analyser l'application avec des ressources redondantes/coûteuses et rechercher des résultats supplémentaires.
-
Exécutez Checkov sur l'application 005 :
checkov -d finops-demo-app-005/infra/ --output cli --output sarif --output-file-path console,reports/
-
Comparez la sortie avec l'analyse de l'application 001. L'application 005 a :
- 2 App Service Plans déployés dans des régions non approuvées (
westusetwesteurope) - Stockage GRS (géo-redondant) pour une charge de travail de développement
- Les 7 étiquettes de gouvernance présentes
- 2 App Service Plans déployés dans des régions non approuvées (
-
Vérifiez si Checkov signale :
- Les App Service Plans en double
- Le niveau de stockage GRS comme excessivement coûteux
- Des violations liées aux régions
-
Notez quelles violations Checkov détecte par rapport à celles qu'il manque. Cet écart justifie l'utilisation de plusieurs outils d'analyse.
Vous allez créer une comparaison côte à côte pour comprendre les forces de chaque outil.
-
Si vous avez terminé le Lab 02, ouvrez les résultats SARIF de PSRule pour les applications 001 et 005.
-
Si vous n'avez pas terminé le Lab 02, exécutez PSRule maintenant (référez-vous au Lab 02, Exercice 2.2 pour la commande).
-
Construisez un tableau comparatif basé sur vos résultats :
Aspect PSRule Checkov Domaine Bonnes pratiques Azure, étiquetage, nommage Sécurité, conformité, benchmarks CIS Vérif. étiquettes Règle explicite Azure.Resource.UseTagsPas de vérification dédiée de gouvernance des étiquettes Vérif. régions Configuration AZURE_RESOURCE_ALLOWED_LOCATIONSConscience limitée des régions Vérif. SKU Quelques règles pour les bonnes pratiques de dimensionnement Vérifications pour des configurations de services spécifiques Format de sortie SARIF, CSV, JSON SARIF, JSON, JUnit, CSV Support langages Bicep (via décompilation), ARM JSON ARM JSON, Bicep, Terraform Règles personnalisées Règles personnalisées basées sur PowerShell Vérifications personnalisées basées sur Python -
Résumez votre observation clé : PSRule excelle dans la gouvernance spécifique Azure (étiquettes, régions, nommage) tandis que Checkov excelle dans la sécurité et la conformité (chiffrement, règles réseau, benchmarks CIS). L'utilisation des deux outils ensemble fournit une couverture complète.
Tip
Dans un pipeline d'analyse FinOps en production, vous exécutez tous les outils d'analyse en parallèle et fusionnez les résultats SARIF. Les Labs 06 et 07 couvrent exactement ce schéma avec GitHub Actions.
Avant de continuer, vérifiez :
- L'analyse Checkov s'est terminée avec succès sur au moins 2 applications de démonstration
- La sortie SARIF a été générée par Checkov dans le répertoire
reports/ - Pouvez expliquer au moins 3 identifiants de vérification Checkov et ce qu'ils détectent
- Avez documenté le chevauchement et les lacunes entre Checkov et PSRule
Passez au Lab 04 — Cloud Custodian : Analyse des ressources en temps réel.



