Sécurité
Comment Bunkle protège vos secrets.
Architecture de sécurité
Bunkle utilise une approche de sécurité en couches pour protéger vos variables d'environnement.
┌─────────────────────────────────────────┐
│ UTILISATEUR │
│ (email + password) │
└─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ AUTHENTIFICATION │
│ (Supabase Auth) │
│ • JWT tokens │
│ • Session management │
└─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ ROW LEVEL SECURITY │
│ • Chaque user ne voit que │
│ ses propres données │
└─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ CHIFFREMENT │
│ (AES-256-GCM) │
│ • Données chiffrées au repos │
└─────────────────────────────────────────┘Chiffrement AES-256-GCM
Toutes les valeurs de variables sont chiffrées avec l'algorithme AES-256-GCM avant d'être stockées dans la base de données.
| Propriété | Valeur |
|---|---|
| Algorithme | AES-256-GCM |
| Taille de clé | 256 bits |
| IV (vecteur d'initialisation) | 12 bytes aléatoires par valeur |
| Auth Tag | 16 bytes pour l'intégrité |
Note : Chaque valeur est chiffrée avec un IV unique, ce qui signifie que la même valeur produit un texte chiffré différent à chaque fois.
Row Level Security (RLS)
Supabase RLS garantit que chaque utilisateur ne peut accéder qu'à ses propres données, même si quelqu'un obtenait un accès direct à la base de données.
-- Politique RLS pour les projetsCREATE POLICY "Users can only see their own projects"ON projectsFOR SELECTUSING (auth.uid() = user_id);-- Les variables sont liées aux projets-- Donc automatiquement protégéesStockage local
Le CLI stocke les informations de session localement sur votre machine :
- Access token (JWT) - expire après 1 heure
- Refresh token - permet de renouveler la session
- ID du projet courant
🔒 Sécurité : Les tokens ne sont jamais affichés dans les logs ou l'historique du terminal. Utilisez bunkle logout pour supprimer la session.
Bonnes pratiques
✅ À faire
- Utiliser des mots de passe forts et uniques
- Se déconnecter sur les machines partagées
- Différencier les credentials entre environnements
- Faire une rotation régulière des secrets
- Ajouter
.env*au .gitignore
❌ À éviter
- Commiter des fichiers .env dans Git
- Partager des credentials via Slack/WhatsApp
- Utiliser les mêmes credentials en dev et prod
- Stocker des credentials dans le code source
Mode lecture seule
Pour afficher les variables sans exposer les valeurs complètes :
$ bunkle pull mon-api --readonly📦 Variables (lecture seule)[production] DATABASE_URL=post****5432 API_KEY=sk-****9876 SECRET=xxxx****xxxxUtile pour vérifier la présence des variables sans risquer d'exposer les valeurs lors d'un partage d'écran.
Voir aussi
- bunkle pull --readonly — Mode lecture seule
- Workflow complet — Guide pour équipes