Comment auditer son infrastructure Databricks ?
Databricks Security Analysis Tool
Il y a quelque temps je suis tombé sur un outil open source proposé par Databricks dénommé Security Analysis Tool , j’étais très curieux car il est fréquent de faire des audits de sécurité sur une infrastructure ou sur une application mais je n’en avais jamais entendu pour Databricks et je me demandais bien ce que pouvait remonter comme infos/alertes cet outil.
Ce poste à pour but de synthétiser la découverte et l’expérience de cet outil mais je ne reviendrai pas sur sa mise en place qui est très bien expliquée dans le ReadMe du projet.
Qu’est ce que c’est ? Pourquoi le mettre en place ?
On trouve dans le Readme du projet la présentation suivante: “Security Analysis Tool (SAT) est un outil d’observabilité qui vise à améliorer le renforcement de la sécurité des déploiements Databricks en sensibilisant les clients aux écarts par rapport aux meilleures pratiques de sécurité établies en aidant les clients à surveiller facilement la santé de la sécurité des espaces de travail des comptes Databricks”
L’intérêt est d’avoir une analyse globale de son infrastructure Databricks afin de savoir si l’on suit les bonnes pratiques et quoi améliorer. Plusieurs aspects sont scrutés:
- Sécurité des réseaux
- Identité et accès
- Protection des données
- Gouvernance
- Information
Le programme est prometteur mais qu’en est-il en réalité ? 🤔
Voici un exemple de rapport généré:
Le positif
Le point positif majeur est le fait que l’on peut auditer tous les workspaces de son Databricks Account via un seul job et sans avoir à tenir une liste à jour, cela signifie que même si l’on a une infrastructure mouvante (le nombre de workspaces évolue) pas besoin de se casser la tête à redéployer de plusieurs fois.
Cet audit n’est ni plus ni moins qu’un job Databricks qui exécute un notebook donc il est envisageable de scheduler pour bénéficier une analyse dans le temps et sans aucune maintenance.
Le rapport d’audit est visualisable via Databricks Warehouse donc rien à stocker ou héberger ailleurs que dans Databricks.
Le dernier point que je souhaiterais aborder est le fait que tout a déjà été terraformé 😍 donc il est très simple de tester l’outil et de le pérenniser si l’on est séduit. Cependant attention il y a quelques différences dans les valeurs Terraform et ce qui est présenté dans le Readme pour le faire à la main.
Le négatif
A la fin de ce POC la première chose qui m’est venu en tête est “Pourquoi cela n’est pas intégré par défaut ?”, pas que cet outil soit indispensable quotidien mais il devrait déjà être intégré à Databricks afin de valider qu’un maximum de bonnes pratiques sont suivis durant la phase de build d’un workspace.
Cet outil bien qu’open source est en réalité payant pour son utilisation car vous aurez besoin d’un cluster pour la phase de scan de l’infrastructure + d’un cluster SQL Warehouse quand vous voudrez consulter les dashboards d’audit. De plus j’ai fait le choix de ne pas toucher le code terraform fourni par Databricks et le coût peut être élevé car le cluster est assez conséquent et l’option photon est activée pour un temps de traitement d’au moins 30min, ce qui élimine l’idée de faire tourner ce job fréquemment (à moins d’essayer de custom le code Terraform et le cluster).
Si l’on en vient au rapport en lui-même la chose qui m’a le plus “déçu” est que la plupart des points remontés comme critiques (HIGH) sont des choses qui sont uniquement applicables avec le plan Entrerprise de Databricks ; dommage qu’ils faillent payer le mode le plus chère pour avoir une infrastructure la plus sécurisée possible (selon leurs bonnes pratiques). D’autres points sont bien entendu intéressants et t’amènent à découvrir des choses, mais hélas rien de transcendant.
Conclusion
Comme vous l’aurez compris je reste un peu sur ma faim car le coût est conséquent et les informations remontées sans pour autant être évidentes ne sont pas d’une très grande plus value. Après si vous êtes novice et que vous débutez dans la mise en place de Databricks cela pourra vous apporter j’en suis certain. Dans cet article je me suis focus sur Databricks SAT mais bien entendu ce n’est pas une solution miracle, vous pouvez également suivre les bonnes pratiques de votre Cloud Provider avec toute la panoplie de services à votre disposition et pourquoi pas intégrer Kics dans votre CI pour valider votre code Terraform avec le provider Databricks (PS: c’est moi qui est fait l’intégration dans l’outil😉).