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” !