Clarifications modèle de déploiement:
- Solution 100% on-premise ("boîte noire")
- Aucune connexion externe, aucun service cloud
- Compatible air-gap (environnements déconnectés)
- Accès bases de données en lecture seule uniquement
Nouvelle section 11 - Continuité de service et sauvegardes:
- SLA simple (pas de PCA/PRA - produit non vital)
- Responsabilité client pour les sauvegardes
- API backup Dashboard documentées (workflows, correction packs, config, logs)
- Export modèles entraînés opt-in (anonymisés)
- Procédure mise à jour hors-ligne
- Procédure rollback
Précisions conformité:
- Plan d'Assurance Sécurité (PAS) mentionné
- IA Act européen ajouté aux certifications visées
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
27 KiB
Playbook DSI/RSSI - RPA Vision V3
Version: 1.1 Date: 19 janvier 2026 Classification: Document technique - Usage interne Public cible: Directeurs des Systèmes d'Information, Responsables Sécurité SI
Table des matières
- Résumé exécutif
- Architecture de sécurité
- Authentification et autorisation
- Protection des données
- Traçabilité et audit
- Contrôle d'accès réseau
- Protection contre les attaques
- Déploiement sécurisé
- Monitoring et alertes
- Procédures d'urgence
- Continuité de service et sauvegardes
- Conformité réglementaire
- Checklist de validation
1. Résumé exécutif
1.1 Présentation
RPA Vision V3 est une solution d'automatisation robotisée des processus (RPA) basée sur la vision par ordinateur. Conçue pour les environnements exigeants (santé, finance, administration), elle intègre nativement des mécanismes de sécurité enterprise-grade.
1.2 Modèle de déploiement
IMPORTANT : Solution 100% On-Premise
RPA Vision V3 est une solution "boîte noire" entièrement autonome :
| Caractéristique | Description |
|---|---|
| Déploiement | 100% on-premise, aucune connexion externe requise |
| Dépendances | Aucun service cloud, aucun outil externe |
| Données | Restent exclusivement sur l'infrastructure client |
| Base de données | Accès en lecture seule uniquement |
| Mises à jour | Package distribué hors-ligne, installé manuellement |
| Air-gap | Compatible environnements déconnectés |
Aucune donnée ne quitte l'infrastructure du client.
1.3 Points clés sécurité
| Domaine | Capacité | Niveau |
|---|---|---|
| Authentification | Tokens HMAC-SHA256 + RBAC | ✅ Enterprise |
| Chiffrement | AES-256-CBC + PBKDF2 | ✅ Enterprise |
| Audit | JSONL rotatif + 8 types d'événements | ✅ Enterprise |
| Protection API | Rate limiting + IP allowlist | ✅ Enterprise |
| Validation entrées | SQL/NoSQL/XSS protection | ✅ Enterprise |
| Déploiement | 100% on-premise, air-gap compatible | ✅ Enterprise |
1.4 Certifications et conformité
- RGPD : Compliant by design
- IA Act européen : Architecture compatible
- ISO 27001 : Contrôles implémentés
- HDS : En préparation (si déploiement santé)
Document contractuel : Un Plan d'Assurance Sécurité (PAS) sera fourni pour chaque déploiement client.
2. Architecture de sécurité
2.1 Vue d'ensemble
┌─────────────────────────────────────────────────────────────┐
│ COUCHE PRÉSENTATION │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ VWB Frontend│ │ Agent Chat │ │ Dashboard │ │
│ │ (3000) │ │ (5002) │ │ (5004) │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
└─────────┼────────────────┼────────────────┼─────────────────┘
│ │ │
┌─────────┼────────────────┼────────────────┼─────────────────┐
│ ▼ ▼ ▼ │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ MIDDLEWARE SÉCURITÉ │ │
│ │ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │ │
│ │ │IP Allow│ │ Auth │ │ Rate │ │ Audit │ │ │
│ │ │ list │ │ Tokens │ │ Limit │ │ Log │ │ │
│ │ └────────┘ └────────┘ └────────┘ └────────┘ │ │
│ └──────────────────────────────────────────────────────┘ │
│ COUCHE API (5000) │
└─────────────────────────────────────────────────────────────┘
│
┌─────────┼───────────────────────────────────────────────────┐
│ ▼ │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ VALIDATION ENTRÉES │ │
│ │ • SQL Injection • Path Traversal │ │
│ │ • NoSQL Injection • XSS Prevention │ │
│ └──────────────────────────────────────────────────────┘ │
│ COUCHE MÉTIER │
└─────────────────────────────────────────────────────────────┘
│
┌─────────┼───────────────────────────────────────────────────┐
│ ▼ │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ STOCKAGE CHIFFRÉ │ │
│ │ • AES-256-CBC • PBKDF2 (100k iterations) │ │
│ │ • Rotation clés • Fichiers permissions 0600 │ │
│ └──────────────────────────────────────────────────────┘ │
│ COUCHE DONNÉES │
└─────────────────────────────────────────────────────────────┘
2.2 Modules de sécurité
| Module | Fichier | Lignes | Responsabilité |
|---|---|---|---|
| Configuration | core/security/security_config.py |
312 | Validation config production |
| Tokens | core/security/api_tokens.py |
519 | Auth RBAC HMAC-SHA256 |
| Audit | core/security/audit_log.py |
408 | Logging JSONL |
| Rate Limit | core/security/rate_limiter.py |
400 | Token bucket algorithm |
| IP Allowlist | core/security/ip_allowlist.py |
372 | Whitelist CIDR |
| Validation | core/security/input_validator.py |
326 | Sanitisation entrées |
| Middleware | core/security/flask_security.py |
257 | Intégration Flask |
| Chiffrement | server/storage_encrypted.py |
100 | AES-256-CBC |
Total : 3,318+ lignes de code sécurité
3. Authentification et autorisation
3.1 Système de tokens
Types de tokens
| Type | Rôle | Permissions | Usage |
|---|---|---|---|
| Admin | ADMIN |
Lecture + Écriture | Opérations complètes |
| Read-Only | READ_ONLY |
Lecture seule | Consultation, reporting |
| Anonymous | ANON |
Aucune | Endpoints publics uniquement |
Caractéristiques techniques
- Algorithme signature : HMAC-SHA256
- Expiration : Configurable (défaut 24h)
- Révocation : Dynamique, sans redémarrage
- Stockage : Mémoire uniquement (pas de persistence tokens)
Sources de tokens acceptées
1. Header: Authorization: Bearer <token>
2. Header: X-API-Token: <token>
3. Header: X-Admin-Token: <token> (rétrocompatibilité)
4. Cookie: rpa_token=<token>
5. Query: ?token=<token> (converti en cookie httponly)
3.2 Matrice RBAC
| Endpoint | Anonymous | Read-Only | Admin |
|---|---|---|---|
/health, /metrics |
✅ | ✅ | ✅ |
GET /api/workflows/* |
❌ | ✅ | ✅ |
POST /api/workflows/* |
❌ | ❌ | ✅ |
GET /api/analytics/* |
❌ | ✅ | ✅ |
POST /api/execute |
❌ | ❌ | ✅ |
/admin/* |
❌ | ❌ | ✅ |
3.3 Configuration
# Tokens d'authentification
RPA_TOKEN_ADMIN=<token_admin_64_chars_min>
RPA_TOKEN_READONLY=<token_readonly_64_chars_min>
# Clé de signature
TOKEN_SECRET_KEY=<clé_32_chars_min_complexe>
# Expiration
TOKEN_EXPIRY_HOURS=24
# Mode obligatoire
API_KEY_REQUIRED=true
4. Protection des données
4.1 Chiffrement au repos
Algorithme
| Paramètre | Valeur |
|---|---|
| Algorithme | AES-256-CBC |
| Dérivation clé | PBKDF2-HMAC-SHA256 |
| Itérations | 100,000 |
| Taille clé | 256 bits |
| IV | 16 bytes aléatoires par fichier |
| Padding | PKCS7 |
Format fichier chiffré
[Salt 16 bytes][IV 16 bytes][Ciphertext PKCS7-padded]
Configuration
# Mot de passe de chiffrement (32+ caractères)
ENCRYPTION_PASSWORD=<mot_de_passe_complexe_32_chars_min>
# Ou fichier de clé externe
ENCRYPTION_KEY_FILE=/secure/path/to/keyfile
4.2 Données chiffrées
- Sessions utilisateur
- Captures d'écran
- Workflows contenant des données sensibles
- Logs d'exécution détaillés
4.3 Données NON chiffrées (par design)
- Index FAISS (embeddings anonymisés)
- Métriques agrégées
- Logs d'audit (pour SIEM)
5. Traçabilité et audit
5.1 Format de log
Format : JSONL (JSON Lines) - 1 événement par ligne
{
"timestamp": "2026-01-19T10:30:00.123456Z",
"event_type": "API_ACCESS",
"message": "GET /api/workflows successful",
"user_id": "user_12345",
"ip_address": "192.168.1.xxx",
"endpoint": "/api/workflows",
"method": "GET",
"user_agent": "Mozilla/5.0...",
"token_hash": "a1b2c3d4...",
"success": true,
"metadata": {
"response_time_ms": 45,
"response_status": 200
}
}
5.2 Types d'événements
| Type | Description | Criticité |
|---|---|---|
AUTHENTICATION |
Connexion/déconnexion | Haute |
AUTHORIZATION |
Vérification permissions | Haute |
API_ACCESS |
Appel API | Moyenne |
SECURITY_VIOLATION |
Tentative non autorisée | Critique |
RATE_LIMIT_EXCEEDED |
Dépassement quota | Moyenne |
IP_BLOCKED |
IP rejetée | Haute |
TOKEN_VALIDATION |
Validation token | Moyenne |
SYSTEM_EVENT |
Événement système | Variable |
5.3 Configuration audit
# Répertoire des logs
AUDIT_LOG_DIR=/var/log/rpa-vision/audit
# Rotation
AUDIT_LOG_MAX_SIZE=10485760 # 10 MB
AUDIT_LOG_MAX_FILES=10 # Conservation 10 fichiers
# Anonymisation
AUDIT_HASH_SENSITIVE=true # Hash données sensibles
5.4 Intégration SIEM
Les logs JSONL sont compatibles avec :
- Splunk
- ELK Stack (Elasticsearch, Logstash, Kibana)
- Graylog
- Azure Sentinel
- AWS CloudWatch
Exemple Logstash :
input {
file {
path => "/var/log/rpa-vision/audit/*.jsonl"
codec => json
}
}
6. Contrôle d'accès réseau
6.1 IP Allowlist
Fonctionnalités
- Support IPv4 et IPv6
- Notation CIDR (ex:
192.168.1.0/24) - Gestion dynamique (ajout/suppression runtime)
- Support reverse proxy (X-Forwarded-For)
Configuration
# Liste blanche IP (séparées par virgules)
ALLOWED_IPS=127.0.0.1/32,192.168.0.0/16,10.0.0.0/8
# Proxies de confiance
TRUSTED_PROXIES=172.16.0.0/12
# Activer headers proxy
ENABLE_PROXY_HEADERS=true
# Logger les IP bloquées
LOG_BLOCKED_IPS=true
6.2 Rate Limiting
Algorithme Token Bucket
| Paramètre | Défaut | Description |
|---|---|---|
| RPM | 60 | Requêtes par minute |
| Burst | 10 | Pic autorisé |
Configuration par endpoint
# Défaut global
DEFAULT_RATE_LIMIT_RPM=60
DEFAULT_RATE_LIMIT_BURST=10
# Par endpoint
RATE_LIMIT_ADMIN_API=30:5 # 30/min, burst 5
RATE_LIMIT_WORKFLOWS=120:10 # 120/min, burst 10
RATE_LIMIT_EXECUTE=30:5 # 30/min, burst 5
RATE_LIMIT_UPLOAD=10:2 # 10/min, burst 2
Headers de réponse
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1705661400
Retry-After: 30 (si 429)
7. Protection contre les attaques
7.1 Injection SQL
Patterns détectés :
SELECT,INSERT,UPDATE,DELETE,DROP,CREATE,ALTERUNIONbased attacks- Commentaires SQL (
--,#,/* */) - Échappement quotes
Action : Requête rejetée avec code 400
7.2 Injection NoSQL
Patterns détectés :
- Opérateurs MongoDB (
$where,$regex,$ne,$gt,$in) - Fonctions JavaScript (
function(),eval())
Action : Requête rejetée avec code 400
7.3 XSS (Cross-Site Scripting)
Protection :
- Échappement HTML automatique
- Suppression caractères de contrôle
- Content-Security-Policy headers
7.4 Path Traversal
Protection :
- Validation chemins contre répertoires autorisés
- Rejet de
..,~, liens symboliques externes
7.5 Validation des entrées
# Configuration
STRICT_INPUT_VALIDATION=true # Mode strict en production
LOG_SENSITIVE_DATA=false # Ne pas logger données sensibles
MAX_JSON_SIZE=10485760 # 10 MB max
MAX_STRING_LENGTH=10000 # 10k caractères max
8. Déploiement sécurisé
8.1 Prérequis
| Composant | Version minimale |
|---|---|
| Python | 3.10+ |
| Node.js | 18+ |
| OS | Ubuntu 22.04+ / RHEL 8+ |
| RAM | 8 GB minimum |
| Stockage | 50 GB SSD |
8.2 Variables d'environnement requises
# ===== OBLIGATOIRES EN PRODUCTION =====
# Environnement
ENVIRONMENT=production
# Authentification
RPA_TOKEN_ADMIN=<64_chars_minimum>
RPA_TOKEN_READONLY=<64_chars_minimum>
TOKEN_SECRET_KEY=<32_chars_complexe>
API_KEY_REQUIRED=true
# Chiffrement
ENCRYPTION_PASSWORD=<32_chars_complexe>
SECRET_KEY=<32_chars_complexe>
# Réseau
ALLOWED_IPS=<liste_ip_autorisées>
# ===== RECOMMANDÉES =====
# Sécurité
STRICT_INPUT_VALIDATION=true
LOG_SENSITIVE_DATA=false
AUDIT_HASH_SENSITIVE=true
# Rate limiting
DEFAULT_RATE_LIMIT_RPM=60
DEFAULT_RATE_LIMIT_BURST=10
# Audit
AUDIT_LOG_DIR=/var/log/rpa-vision/audit
AUDIT_LOG_MAX_SIZE=10485760
AUDIT_LOG_MAX_FILES=10
8.3 Permissions fichiers
# Répertoire application
chmod 750 /opt/rpa-vision
chown -R rpa-user:rpa-group /opt/rpa-vision
# Fichiers de configuration
chmod 600 /opt/rpa-vision/.env
chmod 600 /opt/rpa-vision/config/*.json
# Logs
chmod 750 /var/log/rpa-vision
chmod 640 /var/log/rpa-vision/audit/*.jsonl
# Données chiffrées
chmod 700 /opt/rpa-vision/data
8.4 Reverse Proxy (recommandé)
Nginx configuration :
server {
listen 443 ssl http2;
server_name rpa.example.com;
ssl_certificate /etc/ssl/certs/rpa.crt;
ssl_certificate_key /etc/ssl/private/rpa.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
# Headers sécurité
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Strict-Transport-Security "max-age=31536000" always;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
9. Monitoring et alertes
9.1 Métriques Prometheus
Endpoint : GET /metrics
Métriques disponibles :
# Requêtes HTTP
http_requests_total{method="GET",endpoint="/api/workflows",status="200"}
http_request_duration_seconds{endpoint="/api/workflows"}
# Sécurité
security_blocks_total{type="ip_block"}
security_blocks_total{type="auth_fail"}
security_blocks_total{type="rate_limit"}
# Rate limiting
rate_limit_remaining{endpoint="/api/workflows"}
9.2 Alertes recommandées
| Alerte | Condition | Sévérité |
|---|---|---|
| Auth failures spike | > 10 échecs/min | Critique |
| IP blocks spike | > 5 blocs/min | Haute |
| Rate limit exceeded | > 20 dépassements/min | Moyenne |
| Security violation | Tout événement | Critique |
| API errors spike | > 5% erreurs 5xx | Haute |
9.3 Dashboards Grafana
Import les dashboards depuis /docs/grafana/ :
rpa-security-overview.jsonrpa-api-performance.jsonrpa-audit-analysis.json
10. Procédures d'urgence
10.1 Kill-Switch
Activation immédiate (bloque tout sauf health/admin) :
# Via variable d'environnement
export RPA_KILL_SWITCH=1
systemctl restart rpa-vision
# Via fichier (sans redémarrage)
echo '{"enabled": true, "reason": "Security incident", "timestamp": "'$(date -Iseconds)'"}' \
> /opt/rpa-vision/data/runtime/kill_switch.json
Désactivation :
export RPA_KILL_SWITCH=0
# ou
rm /opt/rpa-vision/data/runtime/kill_switch.json
10.2 Demo-Safe Mode
Mode lecture seule (bloque toutes les écritures) :
export DEMO_SAFE=1
systemctl restart rpa-vision
10.3 Révocation de token
from core.security.api_tokens import revoke_token
# Révoquer un token spécifique
revoke_token("compromised_token_hash")
# Révoquer tous les tokens d'un utilisateur
revoke_all_user_tokens("user_id")
10.4 Blocage IP d'urgence
from core.security.ip_allowlist import get_allowlist
allowlist = get_allowlist()
# Retirer une IP compromise
allowlist.remove_allowed_ip("compromised.ip.address")
10.5 Contacts d'urgence
| Rôle | Contact | Escalade |
|---|---|---|
| Administrateur système | admin@example.com | Immédiat |
| RSSI | rssi@example.com | < 15 min |
| Support éditeur | support@rpa-vision.com | < 1h |
11. Continuité de service et sauvegardes
11.1 Politique de continuité
Note importante : RPA Vision V3 n'est pas un système vital pour l'établissement. En cas d'indisponibilité, les processus peuvent être exécutés manuellement.
Approche SLA simple (pas de PCA/PRA complet) :
| Engagement | Valeur | Description |
|---|---|---|
| Disponibilité cible | 99% | Hors maintenance planifiée |
| Temps de réponse support | < 24h | Jours ouvrés |
| Temps de résolution | < 72h | Incidents critiques |
| Maintenance planifiée | Préavis 48h | Communication client |
11.2 Sauvegardes - Responsabilité client
Les sauvegardes sont sous la responsabilité de l'établissement.
Le Dashboard intègre des fonctionnalités de téléchargement pour faciliter cette tâche :
API de sauvegarde disponibles
| Endpoint | Description | Format |
|---|---|---|
GET /api/backup/stats |
Statistiques des données | JSON |
POST /api/backup/full |
Backup complet | ZIP |
GET /api/backup/workflows |
Workflows uniquement | ZIP |
GET /api/backup/correction-packs |
Correction packs | ZIP |
GET /api/backup/config |
Configuration (sanitisée) | ZIP |
GET /api/logs/download |
Logs d'audit | ZIP |
Fréquence recommandée
| Type de données | Fréquence | Responsable |
|---|---|---|
| Workflows | Quotidien | Client |
| Correction Packs | Hebdomadaire | Client |
| Configuration | Après chaque modification | Client |
| Logs d'audit | Selon politique SIEM | Client |
Procédure de sauvegarde
# Via Dashboard UI
1. Connectez-vous au Dashboard (http://localhost:5001)
2. Section "Sauvegardes"
3. Cliquez sur "Télécharger backup complet"
# Via API (script automatisable)
curl -o backup_$(date +%Y%m%d).zip \
-H "Authorization: Bearer $RPA_TOKEN_ADMIN" \
http://localhost:5001/api/backup/full
11.3 Export des modèles entraînés (Opt-in)
Fonctionnalité optionnelle pour partager les apprentissages avec l'éditeur (amélioration continue).
| Caractéristique | Description |
|---|---|
| Données exportées | Embeddings FAISS, patterns de correction |
| Anonymisation | ✅ Aucune donnée brute, aucun screenshot |
| Consentement | Explicite, opt-in uniquement |
| Bénéfice client | Amélioration des performances |
API export modèles
# Télécharger les modèles entraînés
curl -o models_$(date +%Y%m%d).zip \
-H "Authorization: Bearer $RPA_TOKEN_ADMIN" \
http://localhost:5001/api/backup/trained-models
Note
: Ces fichiers contiennent uniquement des vecteurs numériques (embeddings) et des statistiques agrégées. Aucune donnée personnelle ou capture d'écran n'est incluse.
11.4 Mises à jour système
Distribution hors-ligne : Les mises à jour sont fournies sous forme de packages ZIP.
API gestion des versions
| Endpoint | Description |
|---|---|
GET /api/version |
Version actuelle |
GET /api/version/system-info |
Information système |
GET /api/version/check-update |
Vérifier mise à jour disponible |
POST /api/version/create-backup |
Créer point de restauration |
GET /api/version/backups |
Lister points de restauration |
POST /api/version/upload-update |
Uploader package mise à jour |
Procédure de mise à jour
# 1. Créer un point de restauration
curl -X POST -H "Authorization: Bearer $RPA_TOKEN_ADMIN" \
-H "Content-Type: application/json" \
-d '{"label": "avant_mise_a_jour_3.1.0"}' \
http://localhost:5001/api/version/create-backup
# 2. Télécharger le package depuis le portail éditeur (hors-ligne)
# Le fichier update_3.1.0.zip contient update_manifest.json
# 3. Uploader le package
curl -X POST -H "Authorization: Bearer $RPA_TOKEN_ADMIN" \
-F "file=@update_3.1.0.zip" \
http://localhost:5001/api/version/upload-update
# 4. Vérifier et appliquer (redémarrage requis)
curl http://localhost:5001/api/version/check-update
systemctl restart rpa-vision
11.5 Rollback en cas de problème
En cas de problème après mise à jour, restaurer depuis un point de restauration :
# Lister les backups disponibles
curl -H "Authorization: Bearer $RPA_TOKEN_ADMIN" \
http://localhost:5001/api/version/backups
# Restaurer (procédure manuelle)
# 1. Arrêter le service
systemctl stop rpa-vision
# 2. Restaurer depuis le backup
cd /opt/rpa-vision
tar -xzf /path/to/backup_3.0.0_avant_mise_a_jour_3.1.0.tar.gz
# 3. Redémarrer
systemctl start rpa-vision
12. Conformité réglementaire
12.1 RGPD
| Exigence | Implémentation |
|---|---|
| Minimisation données | Seules données nécessaires collectées |
| Droit à l'oubli | API de suppression disponible |
| Portabilité | Export JSON/YAML |
| Consentement | Configurable par workflow |
| Registre traitements | Logs d'audit |
| DPO notification | Alertes configurables |
12.2 HDS (Hébergeur Données Santé)
| Exigence | Statut |
|---|---|
| Chiffrement données santé | ✅ AES-256 |
| Traçabilité accès | ✅ Audit JSONL |
| Authentification forte | ✅ Tokens HMAC |
| Cloisonnement | ✅ Isolation par workflow |
| Plan de continuité | ⏳ À documenter |
| Audit externe | ⏳ À planifier |
12.3 ISO 27001
| Contrôle | Référence | Statut |
|---|---|---|
| Politique sécurité | A.5 | ✅ |
| Gestion actifs | A.8 | ✅ |
| Contrôle accès | A.9 | ✅ |
| Cryptographie | A.10 | ✅ |
| Sécurité opérations | A.12 | ✅ |
| Sécurité communications | A.13 | ✅ |
| Gestion incidents | A.16 | ⏳ |
| Conformité | A.18 | ⏳ |
13. Checklist de validation
13.1 Pré-déploiement
- Clés générées avec entropie suffisante (32+ chars)
- ENCRYPTION_PASSWORD configuré (non-défaut)
- SECRET_KEY configuré (non-défaut)
- TOKEN_SECRET_KEY configuré
- RPA_TOKEN_ADMIN généré
- RPA_TOKEN_READONLY généré
- ALLOWED_IPS configuré (pas de 0.0.0.0/0)
- ENVIRONMENT=production
- STRICT_INPUT_VALIDATION=true
- LOG_SENSITIVE_DATA=false
- Certificats TLS valides
- Reverse proxy configuré
13.2 Post-déploiement
- Test authentification admin
- Test authentification read-only
- Test rejet token invalide
- Test IP non-autorisée bloquée
- Test rate limiting actif
- Test kill-switch fonctionnel
- Logs audit générés
- Métriques Prometheus exposées
- Alertes configurées
- Backup procédures testées
13.3 Vérification automatique
from core.security import check_security_requirements
result = check_security_requirements()
print(result)
# {
# "production_environment": True,
# "encryption_password_set": True,
# "encryption_password_secure": True,
# "secret_key_set": True,
# "secret_key_secure": True,
# "logging_secure": True,
# "input_validation_strict": True
# }
13.4 Commande de validation
cd /opt/rpa-vision
./scripts/validate_security.sh
# Output attendu:
# ✅ Environment: production
# ✅ Encryption: configured
# ✅ Authentication: enabled
# ✅ IP Allowlist: active
# ✅ Rate Limiting: active
# ✅ Audit Logging: active
# ✅ All security checks passed
Annexes
A. Glossaire
| Terme | Définition |
|---|---|
| RBAC | Role-Based Access Control |
| HMAC | Hash-based Message Authentication Code |
| PBKDF2 | Password-Based Key Derivation Function 2 |
| JSONL | JSON Lines (1 objet JSON par ligne) |
| SIEM | Security Information and Event Management |
| HDS | Hébergeur de Données de Santé |
B. Références
C. Historique des révisions
| Version | Date | Auteur | Modifications |
|---|---|---|---|
| 1.0 | 19/01/2026 | Équipe RPA Vision | Version initiale |
| 1.1 | 19/01/2026 | Équipe RPA Vision | Ajout section 11 (continuité service, sauvegardes, export modèles, mises à jour, rollback). Clarification modèle on-premise. Précisions PAS et SLA. |
Document généré automatiquement - RPA Vision V3 Classification : Confidentiel - Usage interne