Comme quoi la vielle permet de découvrir des pépites et je nomme aujourd’hui.
regula est un outil écrit en GO, développé par Fugue,
permettant d’évaluer la conformité en termes de sécurité d’un code d’Infra As
Code.
Donc contrairement à d’autres outils comme popeye ou polaris, c’est un outil
d’analyse statique de code. Il prend en charge les langages d’Infra As Code
suivant :
les templates CloudFormation (JSON/YAML)
Terraform (HCL/JSON)
les manifests Kubernetes (YAML
les modèles JSON Azure Resource Manager (ARM)
regula est livré sous la forme d’un simple binaire faisant appel à une
bibliothèque de règles écrites en Rego, le langage de politique utilisé par le
projet Open Policy Agent (OPA).
Autre point important, ces règles peuvent être complétées
facilement pour intégrer vos
propres règles. Ainsi vous pouvez vérifier que vos propres bonnes pratiques sont
appliqués.
Installation de Regula
Fugue livre régulièrement les
binaires de son outil et voyons
comment l’installer via un simple curl :
J’ai écris un plugin asdf pour installer plusieurs versions de regula:
Utilisation de Regula
Comme il s’agit d’un CLI elle utilise des options qui sont les suivantes :
En parcourant ces options on peut voir qu’il est très bien pensé pour être
utilisé dans une chaine CI/CD. Rien que la prise en charge en entrée comme en
sortie de plusieurs formats permet de l’intégrer à d’autres outils. Si vous
utilisez Helm ou Kustomize il faudra générer les manifests avant de lancer
regula.
On retrouve une option -s qui permet de désactiver (pas bien) voir
d’augmenter le niveau de criticité pour sortir en erreur.
Lançons-le sur ma stack de side-car qui a été écrite vite faite et voyons ce
qu’il retourne :
Tout est documenté. J’ai suivi quelques liens et c’est vraiment bien expliqué.
Y a plus qu’à l’intégrer dans un sonarqube pour avoir de beau dashboard !
J’adore cet outil est vraiment pensé pour une chaine CI/CD Gitops. Un “must have” !