﻿﻿{"id":2457,"date":"2026-03-06T14:09:20","date_gmt":"2026-03-06T13:09:20","guid":{"rendered":"https:\/\/elearningsamba.com\/index.php\/cleancloud-le-nettoyeur-cloud-qui-ne-casse-rien\/"},"modified":"2026-03-06T14:09:20","modified_gmt":"2026-03-06T13:09:20","slug":"cleancloud-le-nettoyeur-cloud-qui-ne-casse-rien","status":"publish","type":"page","link":"https:\/\/elearningsamba.com\/index.php\/cleancloud-le-nettoyeur-cloud-qui-ne-casse-rien\/","title":{"rendered":"CleanCloud &#8211; Le nettoyeur cloud qui ne casse rien"},"content":{"rendered":"<p>Le gaspillage du cloud, c&#8217;est un peu le secret de polichinelle du devops. Tout le monde sait qu&#8217;il y a des volumes EBS d\u00e9tach\u00e9s qui tra\u00eenent, des snapshots vieux de 6 mois, des Elastic IP \u00e0 3,65 $\/mois qui servent \u00e0 rien&#8230; mais bon, on nettoie pas. Parce qu&#8217;on a trop les miquettes de casser un truc en prod. Mais entre le volume de 500 Go &#8220;temporaire&#8221; cr\u00e9\u00e9 en 2024 et le NAT Gateway qui facture 32 $\/mois dans le vide, \u00e7a chiffre assez vite.<\/p>\n<p>\n<a href=\"https:\/\/github.com\/cleancloud-io\/cleancloud\">CleanCloud<\/a><br \/>\nva vous permettre de rem\u00e9dier \u00e0 \u00e7a. Il s&#8217;agit d&#8217;un petit CLI Python compatible Linux, macOS et Windows (dispo via <code>pip<\/code> ou <code>pipx<\/code>) qui va scanner vos comptes AWS et Azure pour d\u00e9busquer toutes ces ressources orphelines. Le truc, c&#8217;est qu&#8217;il tourne uniquement en lecture seule, donc pas de mutation, pas de suppression, et z\u00e9ro modification de tags. Lui se contente de regarder, de prendre des notes, et de vous sortir un bon vieux <code>report.json<\/code> ou CSV avec tout le d\u00e9tail.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/korben.info\/cdn-cgi\/image\/width=1200,fit=scale-down,quality=90,f=avif\/cleancloud-nettoyeur-cloud-aws-azure\/cleancloud-nettoyeur-cloud-aws-azure-2.png\" alt=\"\" loading=\"lazy\"><\/p>\n<p>Du coup, c\u00f4t\u00e9 permissions IAM, c&#8217;est le strict minimum&#8230; 14 permissions en lecture seule type <code>ec2:Describe*<\/code>, <code>s3:List*<\/code> ou <code>rds:DescribeDBInstances<\/code>. C&#8217;est d&#8217;ailleurs bien fichu puisque le code v\u00e9rifie statiquement via AST qu&#8217;aucun appel en \u00e9criture ne passe. Donc pas besoin de filer vos cl\u00e9s IAM \u00e0 un outil tiers, et \u00e7a c&#8217;est plut\u00f4t rassurant pour les \u00e9quipes s\u00e9cu qui flippent (\u00e0 juste titre) d\u00e8s qu&#8217;on parle d&#8217;acc\u00e8s cloud.<\/p>\n<p>L&#8217;outil embarque 20 r\u00e8gles de d\u00e9tection. 10 pour AWS, 10 pour Azure. C\u00f4t\u00e9 AWS, \u00e7a scanne comme vous l&#8217;aurez devin\u00e9 les volumes EBS non attach\u00e9s, les vieux snapshots, les logs CloudWatch en r\u00e9tention infinie, les Elastic IP orphelines, les ENI d\u00e9tach\u00e9es, les AMI cr\u00e9\u00e9es en 2022 qui tra\u00eenent, les NAT Gateways au repos, les instances RDS \u00e0 l&#8217;arr\u00eat&#8230;etc.<\/p>\n<p>C\u00f4t\u00e9 Azure, m\u00eame combat avec les disques manag\u00e9s, les IP publiques inutilis\u00e9es, les VMs stopp\u00e9es qui continuent de bouffer du stockage Premium SSD.<\/p>\n<p>Pour chaque trouvaille, vous avez un score de confiance (LOW, MEDIUM, HIGH) et une estimation du co\u00fbt mensuel gaspill\u00e9 en dollars. En fait c&#8217;est assez bien foutu, le rapport vous donne le type de ressource, la r\u00e9gion, l&#8217;\u00e2ge du truc et combien \u00e7a vous co\u00fbte.<\/p>\n<p>Hop, un <code>pipx install cleancloud<\/code> et c&#8217;est parti :<\/p>\n<div class=\"highlight\">\n<pre class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">cleancloud scan --provider aws --all-regions\n<\/span><\/span><\/code><\/pre>\n<p>Y&#8217;a m\u00eame un mode d\u00e9mo sans aucun credential requis, histoire de voir la t\u00eate du rapport JSON avant de brancher vos vrais comptes. Perso, je trouve \u00e7a bien pour voir \u00e0 quoi \u00e7a ressemble :<\/p>\n<div class=\"highlight\">\n<pre class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">cleancloud demo\n<\/span><\/span><\/code><\/pre>\n<p>Et pour ceux qui veulent aller plus loin, le scanner s&#8217;int\u00e8gre dans vos pipelines CI\/CD. GitHub Actions, Azure DevOps, Docker CI, peu importe. Vous collez un <code>--fail-on-cost 100<\/code> (exit code 2 si le gaspillage d\u00e9passe 100 $\/mois) ou un <code>--fail-on-confidence HIGH<\/code> et hop, le build p\u00e8te si y&#8217;a du d\u00e9chet. De quoi automatiser le m\u00e9nage. Vous mettez juste cette commande dans votre CI et c&#8217;est pli\u00e9.<\/p>\n<p>D&#8217;ailleurs, la config supporte aussi le filtrage par tags. Vous cr\u00e9ez ce fichier <code>cleancloud.yaml<\/code> \u00e0 la racine de votre projet, vous excluez vos ressources de prod taggu\u00e9es <code>env:production<\/code>, et le scan ignore ce qui doit l&#8217;\u00eatre. Attention par contre, si vos ressources sont mal taggu\u00e9es (et on sait tous que c&#8217;est souvent le cas&#8230;), le filtre ne servira \u00e0 rien.<\/p>\n<p>C\u00f4t\u00e9 s\u00e9curit\u00e9, l&#8217;outil ne fait aucun appel vers des serveurs tiers et cause uniquement avec les API AWS et Azure de vos propres comptes, et supporte aussi l&#8217;auth OIDC avec des credentials temporaires. Voil\u00e0 m\u00eame si c&#8217;est un projet super jeune encore, c&#8217;est plut\u00f4t bien pens\u00e9 pour les environnements corporate. C&#8217;est sous licence MIT et le code Python est sur GitHub donc tout est v\u00e9rifiable.<\/p>\n<p>Bref, si votre facture cloud vous pique les yeux, un <code>pip install cleancloud<\/code> et comme \u00e7a, vous en saurez plus&#8230; C&#8217;est gratuit, c&#8217;est open source, et surtout \u00e7a ne casse rien !<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Le gaspillage du cloud, c&#8217;est un peu le secret de polichinelle du devops. Tout le monde sait qu&#8217;il y a des volumes EBS d\u00e9tach\u00e9s qui tra\u00eenent, des snapshots vieux de 6 mois, des Elastic IP \u00e0 3,65 $\/mois qui servent \u00e0 rien&#8230; mais bon, on nettoie pas. Parce qu&#8217;on a trop les miquettes de casser un truc en prod. Mais entre le volume de 500 Go &#8220;temporaire&#8221; cr\u00e9\u00e9 en 2024 et le NAT Gateway qui facture 32 $\/mois dans le vide, \u00e7a chiffre assez vite. CleanCloud va vous permettre de rem\u00e9dier \u00e0 \u00e7a. Il s&#8217;agit d&#8217;un petit CLI Python compatible Linux, macOS et Windows (dispo via pip ou pipx) qui va scanner vos comptes AWS et Azure pour d\u00e9busquer toutes ces ressources orphelines. Le truc, c&#8217;est qu&#8217;il tourne uniquement en lecture seule, donc pas de mutation, pas de suppression, et z\u00e9ro modification de tags. Lui se contente de regarder, de prendre des notes, et de vous sortir un bon vieux report.json ou CSV avec tout le d\u00e9tail. Du coup, c\u00f4t\u00e9 permissions IAM, c&#8217;est le strict minimum&#8230; 14 permissions en lecture seule type ec2:Describe*, s3:List* ou rds:DescribeDBInstances. C&#8217;est d&#8217;ailleurs bien fichu puisque le code v\u00e9rifie statiquement via AST qu&#8217;aucun appel en \u00e9criture ne passe. Donc pas besoin de filer vos cl\u00e9s IAM \u00e0 un outil tiers, et \u00e7a c&#8217;est plut\u00f4t rassurant pour les \u00e9quipes s\u00e9cu qui flippent (\u00e0 juste titre) d\u00e8s qu&#8217;on parle d&#8217;acc\u00e8s cloud. L&#8217;outil embarque 20 r\u00e8gles de d\u00e9tection. 10 pour AWS, 10 pour Azure. C\u00f4t\u00e9 AWS, \u00e7a scanne comme vous l&#8217;aurez devin\u00e9 les volumes EBS non attach\u00e9s, les vieux snapshots, les logs CloudWatch en r\u00e9tention infinie, les Elastic IP orphelines, les ENI d\u00e9tach\u00e9es, les AMI cr\u00e9\u00e9es en 2022 qui tra\u00eenent, les NAT Gateways au repos, les instances RDS \u00e0 l&#8217;arr\u00eat&#8230;etc. C\u00f4t\u00e9 Azure, m\u00eame combat avec les disques manag\u00e9s, les IP publiques inutilis\u00e9es, les VMs stopp\u00e9es qui continuent de bouffer du stockage Premium SSD. Pour chaque trouvaille, vous avez un score de confiance (LOW, MEDIUM, HIGH) et une estimation du co\u00fbt mensuel gaspill\u00e9 en dollars. En fait c&#8217;est assez bien foutu, le rapport vous donne le type de ressource, la r\u00e9gion, l&#8217;\u00e2ge du truc et combien \u00e7a vous co\u00fbte. Hop, un pipx install cleancloud et c&#8217;est parti : cleancloud scan &#8211;provider aws &#8211;all-regions Y&#8217;a m\u00eame un mode d\u00e9mo sans aucun credential requis, histoire de voir la t\u00eate du rapport JSON avant de brancher vos vrais comptes. Perso, je trouve \u00e7a bien pour voir \u00e0 quoi \u00e7a ressemble : cleancloud demo Et pour ceux qui veulent aller plus loin, le scanner s&#8217;int\u00e8gre dans vos pipelines CI\/CD. GitHub Actions, Azure DevOps, Docker CI, peu importe. Vous collez un &#8211;fail-on-cost 100 (exit code 2 si le gaspillage d\u00e9passe 100 $\/mois) ou un &#8211;fail-on-confidence HIGH et hop, le build p\u00e8te si y&#8217;a du d\u00e9chet. De quoi automatiser le m\u00e9nage. Vous mettez juste cette commande dans votre CI et c&#8217;est pli\u00e9. D&#8217;ailleurs, la config supporte aussi le filtrage par tags. Vous cr\u00e9ez ce fichier cleancloud.yaml \u00e0 la racine de votre projet, vous excluez vos ressources de prod taggu\u00e9es env:production, et le scan ignore ce qui doit l&#8217;\u00eatre. Attention par contre, si vos ressources sont mal taggu\u00e9es (et on sait tous que c&#8217;est souvent le cas&#8230;), le filtre ne servira \u00e0 rien. C\u00f4t\u00e9 s\u00e9curit\u00e9, l&#8217;outil ne fait aucun appel vers des serveurs tiers et cause uniquement avec les API AWS et Azure de vos propres comptes, et supporte aussi l&#8217;auth OIDC avec des credentials temporaires. Voil\u00e0 m\u00eame si c&#8217;est un projet super jeune encore, c&#8217;est plut\u00f4t bien pens\u00e9 pour les environnements corporate. C&#8217;est sous licence MIT et le code Python est sur GitHub donc tout est v\u00e9rifiable. Bref, si votre facture cloud vous pique les yeux, un pip install cleancloud et comme \u00e7a, vous en saurez plus&#8230; C&#8217;est gratuit, c&#8217;est open source, et surtout \u00e7a ne casse rien !<\/p>\n","protected":false},"author":1,"featured_media":2458,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"give_campaign_id":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_kadence_starter_templates_imported_post":false,"footnotes":""},"class_list":["post-2457","page","type-page","status-publish","has-post-thumbnail","hentry"],"campaignId":"","_links":{"self":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/2457","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/comments?post=2457"}],"version-history":[{"count":0,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/2457\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media\/2458"}],"wp:attachment":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media?parent=2457"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}