Skip to content

Commit cd335b2

Browse files
authored
Create README.fr.md (#95)
1 parent 783aaaa commit cd335b2

1 file changed

Lines changed: 311 additions & 0 deletions

File tree

README.fr.md

Lines changed: 311 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,311 @@
1+
# CleanCloud
2+
3+
![PyPI](https://img.shields.io/pypi/v/cleancloud)
4+
![Python Versions](https://img.shields.io/pypi/pyversions/cleancloud)
5+
![License](https://img.shields.io/badge/License-MIT-yellow.svg)
6+
[![Security Scanning](https://github.com/cleancloud-io/cleancloud/actions/workflows/security-scan.yml/badge.svg)](https://github.com/cleancloud-io/cleancloud/actions/workflows/security-scan.yml)
7+
![GitHub stars](https://img.shields.io/github/stars/cleancloud-io/cleancloud?style=social)
8+
9+
**Languages / Langues :**
10+
🇬🇧 [English](README.md) | 🇫🇷 [Français](README.fr.md)
11+
12+
---
13+
14+
**Trivy pour le gaspillage cloud. Un scanner qui détecte les ressources orphelines et applique l'hygiène en CI.**
15+
16+
Comme `tfsec` pour Terraform ou `trivy` pour les conteneurs — CleanCloud scanne votre environnement cloud et rapporte ce qui gaspille de l'argent. Exécutez-le une fois pour un audit ponctuel, planifiez-le, ou intégrez-le en CI/CD pour bloquer les builds sur des violations de politique.
17+
18+
- **20 règles de détection haut signal :** volumes orphelins, bases de données inactives, load balancers vides, et plus
19+
- **Gaspillage mensuel estimé :** par finding et en agrégat
20+
- **Application de politique CI/CD (opt-in) :** `--fail-on-confidence HIGH` ou `--fail-on-cost 100` gate votre pipeline
21+
- **Formats de sortie multiples :** lisible, JSON, CSV, et markdown (à coller dans vos PRs GitHub ou Slack)
22+
- **Lecture seule par conception :** aucune suppression, aucune modification de tags, aucune mutation — jamais
23+
- **Aucun agent. Zéro télémétrie. Pas de SaaS.** S'exécute dans votre environnement, les données ne quittent jamais votre périmètre
24+
25+
**Cas d'usage :**
26+
- Audit ponctuel de gaspillage cloud — exécutez dans CloudShell, findings visibles en 60 secondes
27+
- Analyses d'hygiène planifiées — cron ou CI hebdomadaire pour détecter la dérive
28+
- Gate CI/CD — bloquer un build si le gaspillage dépasse votre seuil
29+
30+
```
31+
6 problèmes d'hygiène détectés :
32+
33+
1. [AWS] Volume EBS non attaché — $40/mois
34+
2. [AWS] NAT Gateway inactive — $32.40/mois
35+
3. [AWS] Elastic IP non attachée — $0/mois
36+
...
37+
38+
Gaspillage mensuel estimé : ~$147
39+
Régions scannées : us-east-1, us-west-2, eu-west-1
40+
```
41+
42+
## Ce qu'en disent les utilisateurs
43+
44+
> "Outil de découverte solide qui remonte les économies potentielles. Facile à installer et à utiliser !"
45+
> [Utilisateur Reddit](https://www.reddit.com/r/AZURE/comments/1rm7an5/comment/o8zfv6a/)
46+
47+
---
48+
49+
## Démarrage
50+
51+
```bash
52+
pipx install cleancloud
53+
pipx ensurepath # ajoute cleancloud au PATH — relancez votre shell après
54+
cleancloud demo # visualisez des findings sans aucun credential cloud
55+
```
56+
57+
Prêt à scanner votre vrai environnement :
58+
59+
```bash
60+
cleancloud scan --provider aws --all-regions
61+
cleancloud scan --provider azure
62+
```
63+
64+
### Sans installation — essayez dans votre cloud shell
65+
66+
Vous avez un compte AWS ou Azure ? Lancez un vrai scan en quelques secondes, sans installation locale.
67+
68+
**AWS — [AWS CloudShell](https://console.aws.amazon.com/cloudshell) :**
69+
```bash
70+
pip install --upgrade cleancloud
71+
cleancloud doctor --provider aws # vérifiez les permissions de votre session
72+
cleancloud scan --provider aws --all-regions
73+
```
74+
75+
**Azure — [Azure Cloud Shell](https://shell.azure.com) :**
76+
```bash
77+
pip install --upgrade --user cleancloud
78+
export PATH="$HOME/.local/bin:$PATH"
79+
cleancloud doctor --provider azure # vérifiez les permissions de votre session
80+
cleancloud scan --provider azure
81+
```
82+
83+
Les deux shells s'authentifient via votre session du portail — aucune credential séparée n'est requise.
84+
85+
Les permissions varient selon les comptes ; `doctor` vous indique exactement ce qui est disponible avant de scanner. Si des permissions sont manquantes, CleanCloud ignore les règles concernées et indique lesquelles ont été ignorées.
86+
87+
<details>
88+
<summary>Problèmes d'installation</summary>
89+
90+
**macOS :** `brew install pipx && pipx install cleancloud`
91+
92+
**Linux :** `sudo apt install pipx && pipx install cleancloud`
93+
94+
**Windows :** `python3 -m pip install --user pipx && python3 -m pipx ensurepath && pipx install cleancloud`
95+
96+
**Command not found: cleancloud** — Exécutez `pipx ensurepath` puis relancez votre shell.
97+
98+
**externally-managed-environment** — Utilisez `pipx` à la place de `pip`.
99+
100+
**Mise à jour depuis un `pip install` existant** — supprimez-le d'abord pour éviter les conflits :
101+
```bash
102+
pip uninstall cleancloud && pipx install cleancloud && pipx ensurepath
103+
```
104+
105+
**Mauvaise version après installation** — Exécutez `which cleancloud` ; un ancien `pip install` masque peut-être le pipx.
106+
107+
**Version minimale recommandée : v1.6.3** — les versions antérieures ont des problèmes de setup. Exécutez `cleancloud --version` pour vérifier.
108+
109+
</details>
110+
111+
---
112+
113+
## Exemple de résultat détaillé
114+
115+
```
116+
6 problèmes d'hygiène détectés :
117+
118+
1. [AWS] Volume EBS non attaché
119+
Risque : Faible
120+
Confiance : High
121+
Ressource : aws.ebs.volume → vol-0a1b2c3d4e5f67890
122+
Région : us-east-1
123+
Règle : aws.ebs.volume.unattached
124+
Raison : Volume non attaché depuis 47 jours
125+
Détails :
126+
- size_gb: 500
127+
- state: available
128+
- tags: {"Project": "legacy-api", "Owner": "platform"}
129+
130+
2. [AWS] NAT Gateway inactive
131+
Risque : Moyen
132+
Confiance : Medium
133+
Ressource : aws.ec2.nat_gateway → nat-0abcdef1234567890
134+
Région : us-west-2
135+
Règle : aws.ec2.nat_gateway.idle
136+
Raison : Aucun trafic détecté depuis 21 jours
137+
Détails :
138+
- name: staging-nat
139+
- total_bytes_out: 0
140+
- estimated_monthly_cost_usd: 32.40
141+
142+
3. [AWS] Elastic IP non attachée
143+
Risque : Faible
144+
Confiance : High
145+
Ressource : aws.ec2.elastic_ip → eipalloc-0a1b2c3d4e5f6
146+
Région : eu-west-1
147+
Règle : aws.ec2.elastic_ip.unattached
148+
Raison : Elastic IP non associée à aucune instance ou ENI (ancienneté : 92 jours)
149+
150+
--- Résumé du scan ---
151+
Total findings : 6
152+
Par risque : faible: 5 moyen: 1
153+
Par confiance : high: 2 medium: 4
154+
Gaspillage minimum estimé : ~$147/mois
155+
(4 findings sur 6 chiffrés)
156+
Régions scannées : us-east-1, us-west-2, eu-west-1 (auto-détectées)
157+
```
158+
159+
Pas encore de compte cloud ? `cleancloud demo` affiche un exemple de sortie sans aucun credential.
160+
161+
### Rapport markdown partageable
162+
163+
```bash
164+
cleancloud scan --provider aws --all-regions --output markdown
165+
```
166+
167+
Produit un résumé groupé que vous pouvez coller directement dans un commentaire de PR GitHub, un message Slack, ou une issue :
168+
169+
```markdown
170+
## Résultats du scan CleanCloud
171+
172+
**Provider :** AWS
173+
**Régions :** us-east-1, us-west-2, eu-west-1
174+
**Scanné le :** 2026-03-07
175+
**Gaspillage mensuel estimé :** ~$147
176+
177+
**Total des findings :** 6
178+
179+
| Finding | Nombre | Coût mensuel estimé |
180+
|---------|-------:|--------------------:|
181+
| Volume EBS non attaché | 2 | ~$115 |
182+
| NAT Gateway inactive | 1 | ~$32 |
183+
| Elastic IP non attachée | 1 | ~$0 |
184+
| ENI détachée | 1 ||
185+
| CloudWatch Log Group : rétention infinie | 1 ||
186+
187+
**Confiance :** high: 3 · medium: 3
188+
189+
> Généré par [CleanCloud](https://github.com/cleancloud-io/cleancloud) — scanner d'hygiène cloud lecture seule pour AWS et Azure.
190+
```
191+
192+
Sauvegardez dans un fichier avec `--output-file results.md`. Sans `--output-file`, la sortie s'affiche dans stdout.
193+
194+
Pour des exemples de sortie complets incluant `doctor`, JSON, CSV et markdown : [`docs/example-outputs.md`](docs/example-outputs.md)
195+
196+
---
197+
198+
## Ce que CleanCloud détecte
199+
200+
20 règles pour AWS et Azure — conservatives, haut signal, conçues pour éviter les faux positifs en environnements IaC.
201+
202+
**AWS :**
203+
- Volumes EBS non attachés (HIGH)
204+
- Anciens snapshots EBS
205+
- Logs CloudWatch à rétention infinie
206+
- Elastic IPs non attachées (HIGH)
207+
- ENI détachées
208+
- Ressources sans tags
209+
- Anciennes AMIs
210+
- NAT Gateways inactives
211+
- Instances RDS inactives (HIGH)
212+
- Load Balancers inactifs (HIGH)
213+
214+
**Azure :**
215+
- Disques managés non attachés
216+
- Anciens snapshots
217+
- Adresses IP publiques inutilisées (HIGH)
218+
- Load Balancers vides (HIGH)
219+
- App Gateways vides (HIGH)
220+
- App Service Plans vides (HIGH)
221+
- VNet Gateways inactives
222+
- VMs arrêtées (non désallouées) (HIGH)
223+
- Bases de données SQL inactives (HIGH)
224+
- Ressources sans tags
225+
226+
Les règles sans marqueur de confiance sont MEDIUM — elles utilisent des heuristiques temporelles ou des signaux multiples. Commencez par `--fail-on-confidence HIGH` pour les gaspillages évidents, puis resserrez au fil de la validation par votre équipe.
227+
228+
**Détails complets des règles, signaux et preuves :** [`docs/rules.md`](docs/rules.md)
229+
230+
---
231+
232+
## Application de politique CI/CD
233+
234+
Les scans se terminent avec `0` par défaut. Activez l'application de politique :
235+
236+
| Flag | Comportement | Code de sortie |
237+
|------|-------------|----------------|
238+
| *(aucun)* | Rapport uniquement, jamais d'échec | `0` |
239+
| `--fail-on-confidence HIGH` | Échec sur les findings HIGH | `2` |
240+
| `--fail-on-confidence MEDIUM` | Échec sur MEDIUM ou supérieur | `2` |
241+
| `--fail-on-cost 50` | Échec si gaspillage mensuel estimé >= 50$ | `2` |
242+
| `--fail-on-findings` | Échec sur n'importe quel finding | `2` |
243+
244+
### GitHub Actions — AWS (OIDC)
245+
246+
```yaml
247+
- uses: aws-actions/configure-aws-credentials@v4
248+
with:
249+
role-to-assume: arn:aws:iam::${{ vars.AWS_ACCOUNT_ID }}:role/CleanCloudCIReadOnly
250+
aws-region: us-east-1
251+
252+
- run: pip install cleancloud
253+
254+
- run: |
255+
cleancloud scan --provider aws --all-regions \
256+
--fail-on-confidence HIGH \
257+
--output json --output-file scan.json
258+
```
259+
260+
### GitHub Actions — Azure (Workload Identity)
261+
262+
```yaml
263+
- uses: azure/login@v2
264+
with:
265+
client-id: ${{ secrets.AZURE_CLIENT_ID }}
266+
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
267+
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
268+
269+
- run: pip install cleancloud
270+
271+
- run: |
272+
cleancloud scan --provider azure \
273+
--fail-on-confidence MEDIUM \
274+
--output json --output-file scan.json
275+
```
276+
277+
**Guide CI/CD complet :** [`docs/ci.md`](docs/ci.md) — configuration OIDC, patterns d'application, formats de sortie.
278+
Guides de configuration : [AWS](docs/aws.md) · [Azure](docs/azure.md)
279+
280+
> Les snippets CI/CD ci-dessus utilisent `pip install` — correct pour les runners éphémères où l'isolation pipx n'est pas nécessaire.
281+
282+
---
283+
284+
## Feuille de route
285+
286+
- Règles AWS supplémentaires (cycle de vie S3, instances EC2 arrêtées)
287+
- Policy-as-code dans `cleancloud.yaml` (`fail_on_confidence`, `fail_on_cost` en config)
288+
- Filtrage de règles (flag `--rules`)
289+
- Scan multi-comptes (AWS Organizations)
290+
291+
---
292+
293+
## Documentation
294+
295+
- [`docs/rules.md`](docs/rules.md) — Règles de détection, signaux et preuves
296+
- [`docs/aws.md`](docs/aws.md) — Politique IAM AWS et configuration OIDC
297+
- [`docs/azure.md`](docs/azure.md) — RBAC Azure et configuration Workload Identity
298+
- [`docs/ci.md`](docs/ci.md) — Guide d'intégration CI/CD
299+
- [`docs/example-outputs.md`](docs/example-outputs.md) — Exemples de sortie complets
300+
- [`SECURITY.md`](SECURITY.md) — Politique de sécurité et modèle de menace
301+
- [`docs/infosec-readiness.md`](docs/infosec-readiness.md) — IAM Proof Pack, modèle de menace
302+
303+
---
304+
305+
**Vous avez trouvé un bug ?** [Ouvrez une issue](https://github.com/cleancloud-io/cleancloud/issues)
306+
307+
**Demande de fonctionnalité ?** [Démarrez une discussion](https://github.com/cleancloud-io/cleancloud/discussions)
308+
309+
**Questions ?** suresh@getcleancloud.com
310+
311+
[Licence MIT](LICENSE)

0 commit comments

Comments
 (0)