Skip to main content

La bêta publique de Snyk IaC introduit l’analyse des plans Terraform

Écrit par
Headshot of Ron Tal

Ron Tal

Infrastructure as Code tools

22 avril 2021

0 minutes de lecture

Nous sommes ravis de vous présenter les nouvelles fonctionnalités bêta de Snyk Infrastructure as Code (Snyk IaC) dans la CLI Snyk, qui ajoute la prise en charge de l’analyse des plans Terraform, ainsi que des améliorations en matière de performances et de sécurité.

Prise en charge de l’analyse des plans Terraform

La CLI Snyk permet déjà d’analyser les fichiers Terraform et Kubernetes en local ou dans un pipeline CI/CD, afin de vous fournir un retour immédiat pendant que vous écrivez et validez vos configurations. Cette approche convient bien aux modifications individuelles. Mais si vous souhaitez obtenir une vue d’ensemble de toutes les modifications que vous vous apprêtez à appliquer à votre infrastructure existante, en tenant compte des variables, entre autres, l’analyse du fichier de plan Terraform est la solution.

Cette version bêta de la CLI Snyk IaC peut désormais analyser un fichier JSON de plan Terraform pour déterminer si les modifications proposées introduiront de nouvelles vulnérabilités de sécurité dans votre infrastructure cloud actuelle. Dans l’exemple ci-dessous, vous pouvez voir un workflow simple : j’ai créé un fichier tfplan, je l’ai converti au format JSON, puis j’ai lancé Snyk IaC sur le fichier JSON. Notez le paramètre --experimental dans la commande Snyk : c’est tout ce qu’il vous faut pour essayer cette fonctionnalité, à condition d’utiliser la dernière version de la CLI Snyk.

$ snyk -v
1.563.0

$ terraform plan -out=tfplan
$ terraform show --json tfplan > tfplan.json

$ snyk iac test tfplan.json --experimental 
Testing tfplan.json...

Infrastructure as code issues:
  ✗ S3 Bucket is publicly readable and writable [High Severity] [SNYK-CC-TF-19] in S3
    introduced by resource > aws_s3_bucket[pictures-of-snyky-dogs] > acl

  ✗ S3 bucket MFA delete control disabled [Low Severity] [SNYK-CC-TF-127] in S3
    introduced by aws_s3_bucket[pictures-of-snyky-dogs] > versioning > mfa_delete

  ✗ S3 bucket versioning disabled [Low Severity] [SNYK-CC-TF-124] in S3
    introduced by aws_s3_bucket[pictures-of-snyky-dogs] > versioning > enabled

Organization:      purple-dobie
Type:              Terraform
Target file:       tfplan.json
Project name:      iac-tfplan-demo
Open source:       no
Project path:      tfplan.json

Tested tfplan.json for known issues, found 3 issues

L’analyse des plans Terraform présente un autre avantage : les outils de l’écosystème Terraform peuvent eux aussi fonctionner facilement avec Snyk IaC. Plusieurs de nos clients utilisent des outils comme Terragrunt et Atlantis. Comme ils peuvent tous deux générer un plan Terraform, nous pouvons l’analyser avec Snyk IaC. Si vous utilisez ce type d’outil de l’écosystème Terraform, nous aimerions savoir si l’analyse du résultat du plan vous aide dans vos workflows.

Protéger la confidentialité de votre configuration IaC et de vos secrets

L’analyse d’un plan Terraform offre une excellente visibilité sur les modifications apportées à l’ensemble de la configuration et permet de prendre en compte les modules et les variables. Toutefois, cette étape implique souvent de traiter des données d’infrastructure sensibles et des secrets. Nous savons qu’il est essentiel de protéger ces informations. Les analyses lancées avec le paramètre --experimental s’exécutent désormais en local : vos données de configuration sensibles ne quittent donc jamais votre environnement. Cela s’applique à toutes les analyses IaC lancées avec la CLI, qu’il s’agisse de fichiers Terraform ou Kubernetes, ou de l’utilisation de Snyk IaC dans vos pipelines CI. Ce comportement deviendra celui par défaut à la fin de la période bêta. Cette nouvelle méthode d’analyse améliore également les performances. Si vous avez des répertoires contenant des centaines de fichiers Terraform (ou de définitions Kubernetes), nous vous invitons à tester cette version bêta et à nous faire part de vos commentaires.

Dernières règles de sécurité IaC et niveaux de gravité personnalisés

Notre mécanisme de détection par analyse statique analyse les modifications de ressources proposées dans le plan d’exécution Terraform fourni et les compare à notre ensemble de règles de sécurité, qui ne cesse de s’enrichir et est documenté publiquement sur le site de Snyk (une autre nouveauté de Snyk IaC, proposée par notre équipe de recherche en sécurité !). Ces règles s’appuient sur les dernières normes de sécurité de tous les grands fournisseurs cloud, notamment AWS, GCP et Azure. Lorsque vous exécutez snyk iac test --experimental, la CLI Snyk récupère automatiquement la dernière version de ces règles depuis nos serveurs, y compris les niveaux de gravité personnalisés que vous avez définis. La sécurité de vos fichiers IaC sensibles est préservée, car toute l’analyse statique et le traitement s’effectuent localement sur votre machine.

Premiers pas avec la version bêta de Snyk IaC

Les fonctionnalités bêta sont accessibles à tous, y compris aux utilisateurs de l’offre gratuite. Pour commencer, rien de plus simple :

  1. Si vous n’avez pas encore de compte Snyk, inscrivez-vous gratuitement.

  2. Installez la CLI Snyk. Si elle est déjà installée, vérifiez que vous disposez de la version 1.563.0 ou ultérieure pour profiter des dernières fonctionnalités bêta.

  3. Analysez vos fichiers Terraform et Kubernetes !

    1. La commande principale permettant d’analyser du code IaC avec les nouvelles fonctionnalités bêta est :snyk iac test --experimental <path-to-file-or-folder>Pour en savoir plus sur les différentes options d’analyse disponibles, consultez la documentation Snyk IaC ou la documentation de la CLI en exécutant :snyk iac --help

    2. Pour analyser des plans Terraform, vous devez générer un résultat au format JSON à l’aide de terraform show, comme dans les exemples ci-dessus et dans la documentation Terraform.

En plus des analyses locales avec la CLI, vous pouvez utiliser Snyk IaC pour d’autres cas d’usage, par exemple :

  • Intégrer votre système de gestion du code source pour analyser automatiquement et régulièrement vos dépôts Git, afin de détecter les erreurs de configuration Terraform et Kubernetes dans votre code source.

  • Intégrer Snyk IaC à vos pipelines CI/CD pour renforcer la sécurité dès le début du cycle de développement et en faire une composante de votre SDLC.

Nous serions ravis de connaître votre avis ! Si vous êtes déjà client Snyk, votre équipe chargée de la réussite client est un excellent point de contact pour nous faire part de vos commentaires sur le produit. Sinon, vous pouvez tous nous faire part de vos commentaires sur le forum de la communauté Snyk.

Sécurisez votre infrastructure dès la source

Snyk automatise la sécurité et la conformité de l’IaC dans vos workflows, et détecte les ressources dont la configuration a dérivé ou qui sont manquantes.

Publié dans: