Operate
Securite
Principes de securite, donnees sensibles, acces Notion, cles API, sauvegardes et bonnes pratiques.
Securite
Le systeme gere des donnees sensibles : cles API, acces trading, donnees clients. La securite n'est pas optionnelle.
Principes fondamentaux
- Moindre privilege. Chaque agent n'a acces qu'a ce dont il a besoin.
- Defense en profondeur. Plusieurs couches de protection.
- Zero confiance par defaut. Un nouvel agent commence avec zero permission.
- Auditabilite. Chaque action est loggee.
- Chiffrement partout. En transit et au repos.
Donnees sensibles
Classification
| Categorie | Exemples | Stockage | Acces |
|---|---|---|---|
| Critique | Cles API trading, seed phrases | Vault chiffre | Utilisateur seul |
| Sensible | Tokens Notion, Telegram | Variables d'environnement chiffrees | CEO + agent concerne |
| Interne | Logs, metriques | Serveur local | Tous les agents (lecture) |
| Public | Posts sociaux, docs publiques | Notion / Git | Tout le monde |
Regles strictes
- Jamais de cle API dans le code source
- Jamais de cle API dans un message Telegram
- Jamais de cle API dans un log
- Jamais de mot de passe en clair
!!! warning "Un secret dans Git = un secret compromis" Si une cle API est commitee par erreur, la considerer comme compromise. La revoquer immediatement et en generer une nouvelle.
Gestion des cles API
Stockage
Les cles vivent dans le vault chiffre (MCP vault).
# Ajouter une cle
openclaw vault set TWITTER_API_KEY "sk-xxx..."
# Lire une cle (masquee)
openclaw vault get TWITTER_API_KEY
# → sk-xxx...xxx (masquee)
# Lister les cles
openclaw vault listRotation
| Cle | Frequence de rotation | Methode |
|---|---|---|
| API Anthropic | Tous les 90 jours | Regenerer sur console.anthropic.com |
| Tokens Notion | Tous les 90 jours | Regenerer dans les settings Notion |
| Bot Telegram | Annuellement | Regenerer via BotFather |
| API Trading | Tous les 30 jours | Regenerer sur l'exchange |
Permissions par agent
{
"social-manager": {
"vault_access": ["TWITTER_API_KEY", "INSTAGRAM_TOKEN"],
"forbidden": ["TRADING_*", "ANTHROPIC_*"]
},
"trader": {
"vault_access": ["HYPERLIQUID_KEY", "HYPERLIQUID_SECRET"],
"forbidden": ["TWITTER_*", "NOTION_*"]
}
}Acces Notion
Notion contient des donnees business. L'acces est controle.
| Agent | Pages autorisees | Operations |
|---|---|---|
| CEO | Toutes | Lecture + Ecriture |
| Social Manager | Social Calendar, Content DB | Lecture + Ecriture |
| Trader | Finance Dashboard | Lecture + Ecriture |
| OPS Manager | Logs Agents | Ecriture seule |
| Autres agents | Aucune par defaut | Aucune |
Sauvegardes
Strategie 3-2-1
- 3 copies des donnees
- 2 supports differents (disque local + cloud)
- 1 copie hors site
Schedule de sauvegarde
| Donnee | Frequence | Destination | Retention |
|---|---|---|---|
| Notion (export) | Quotidien (CRON-010) | R2 Cloudflare | 30 jours |
| Config OpenClaw | A chaque commit | Git + R2 | Illimite |
| Vault (secrets) | Quotidien | Backup chiffre local | 90 jours |
| Logs agents | Quotidien | R2 Cloudflare | 14 jours |
| KB Obsidian | En continu (sync) | Git + Syncthing | Illimite |
Verifier les sauvegardes
# Verifier l'integrite
openclaw backup verify --all
# Restaurer un test
openclaw backup restore --target test --date 2026-04-01!!! tip "Une sauvegarde non testee n'existe pas" Tester la restauration une fois par mois. CRON-010 verifie l'integrite quotidiennement.
Securite reseau
| Mesure | Implementation |
|---|---|
| Firewall | UFW avec regles strictes |
| SSH | Cle uniquement, pas de password |
| Ports | Seuls 80, 443, 22 ouverts |
| VPN | WireGuard pour l'acces admin |
| HTTPS | Partout, via Cloudflare |
| Rate limiting | Nginx + fail2ban |
Audit de securite
Le cron CRON-013 effectue un scan hebdomadaire.
Elements verifies :
- Ports ouverts inattendus
- Services avec versions vulnerables
- Permissions fichiers anormales
- Tentatives de connexion echouees
- Certificats proches de l'expiration
Lecture liee
- Gestion des erreurs pour les incidents de securite
- Couts pour les couts lies a la securite
- Modifier le systeme pour les changements de securite