Le hook infra signale les erreurs de configuration de l'infrastructure as code qu'il est possible de trancher à partir du fichier : un réseau ouvert au monde entier, une autorisation générique, un secret dans un manifeste, un conteneur root, une valeur non fiable dans un shell de CI. Il ne lit que les fichiers IaC (.tf/.tf.json/.hcl, Dockerfile*, .github/workflows/**). C'est le moteur déterministe derrière la spécialisation infra, en mode scan ou check.
Exécution
- Analyser la base de code
- Vérifier un extrait
npx lagune read infra # scans every IaC file
npx lagune read infra --dir infra # scans a directory
npx lagune read infra --file Dockerfile # scans a single file
Passez l'extrait avec --pattern et son type avec --kind (terraform, dockerfile ou github-actions).
npx lagune read infra --kind terraform --pattern 'actions = ["*"]' # => iam-wildcard
npx lagune read infra --kind dockerfile --pattern 'FROM node:20' # => mutable-tag
L'analyse affiche jusqu'à deux sections. Infrastructure risks found se termine avec un code non nul et contient les défauts tranchables (un ingress 0.0.0.0/0 sur un port sensible, une déclaration IAM générique, un secret dans un manifeste, encrypted = false, un module git non épinglé, une image qui s'exécute explicitement en root, un curl | sh, une injection de script en CI, permissions: write-all). Infrastructure hardening advisories ne change pas le code de sortie (un tag de base mutable, une action épinglée par tag). Une analyse propre affiche no infrastructure risks found.
Lire le verdict
Le mode check affiche le tag de plus haute gravité qu'il a reconnu (par exemple public-ingress, iam-wildcard, root-user, curl-pipe, script-injection, write-all), un tag d'avertissement (mutable-tag, unpinned-action), ou safe. Seul un tag de gravité constat produit un code de sortie non nul.
Options de la CLI
| Option | Valeur | Description |
|---|---|---|
--pattern | un extrait | Vérifie un extrait. Exige --kind. Répétez-la pour en vérifier plusieurs. |
--kind | terraform | dockerfile | github-actions | Le type selon lequel l'extrait est jugé. |
--dir | un répertoire | Limite l'analyse à un répertoire. Peut être répétée et combinée avec --file. |
--file | un fichier | Limite l'analyse à un seul fichier. Peut être répétée et combinée avec --dir. |
Sans option, il analyse tous les fichiers IaC du projet. --pattern ne peut pas être combinée avec --dir ou --file.
Le hook repère les cas flagrants et tranchables : l'absence de chiffrement, l'exposition via pull_request_target et le bon périmètre IAM relèvent du jugement que couvre toujours la spécialisation infra.
Questions fréquentes
Terraform/HCL (.tf, .tf.json, .hcl), les Dockerfiles, et le YAML des workflows et des actions GitHub Actions sous .github/. Il atteint ces fichiers même si les analyseurs de code source les ignorent.
