Introduction
Parseable, un lac de données d'observabilité conçu sur des principes fondamentaux, offre un support robuste pour les architectures multi-locataires d'entreprise ainsi que des mécanismes de sécurité complets. Ce document détaille comment déployer Parseable dans des environnements de production afin d'assurer l'isolation des données, leur sécurité et le contrôle d'accès, permettant aux entreprises de bâtir une plateforme de gestion de journaux fiable.
Architecture multi-locataire : équilibre entre isolation et partage
L'architecture multi-locataire de Parseable adopte une conception à couches qui garantit une isolation totale des données entre les locataires tout en maximisant l'utilisation des ressources. La logique centrale de gestion des locataires réside dans src/tenants/mod.rs, fournissant une triple protection via l'isolation des espaces de noms, le stockage et le calcul.
Modèles d'isolation des locataires
Parseable prend en charge trois modèles d'isolation, adaptables aux besoins de l'entreprise :
- Isolation complète : chaque locataire dispose de son propre chemin de stockage et de ressources de calcul dédiées, idéal pour les scénarios exigeant une sécurité maximale.
- Stockage partagé avec isolation des métadonnées : un cluster de stockage partagé mais avec une séparation stricte des données via les métadonnées, offrant un compromis entre sécurité et efficacité.
- Isolation logique : isolation implémentée par espaces de noms, adaptée aux déploiements à moyenne échelle.
Le mode d'isolation peut être configuré via le paramètre isolationModeLocataire dans le fichier helm/values.yaml.
Bonnes pratiques de sécurité
Parseable propose une défense en profondeur, couvrant la sécurité du cycle de vie complet des données, depuis l'authentification jusqu'au stockage.
Contrôle d'accès basé sur les rôles (RBAC)
Un système RBAC granulaire est mis en œuvre, dont l'implémentation se trouve dans src/rbac/. Quatre rôles prédéfinis sont disponibles :
- Administrateur : accès complet à toutes les ressources.
- Administrateur de locataire : gestion complète des ressources d'un locataire spécifique.
- Analyste : droits en lecture seule sur les données pour l'analyse.
- Utilisateur en lecture seule : accès restreint à un sous-ensemble défini de données.
La gestion des rôles et des politiques s'effectue via l'API définie dans src/handlers/http/gestion_acces.rs, permettant d'appliquer le principe du moindre privilège.
Chiffrement des données et sécurité des transmissions
Parseable assure la protection des données au repos et en transit :
- Chiffrement en transit : les communications API utilisent par défaut le chiffrement TLS/SSL. La configuration se trouve dans
src/handlers/http/accepteur_ssl.rs. - Chiffrement au repos : possibilité de chiffrer les champs sensibles des données stockées, avec l'implémentasion dans
src/stockage/.
Pour un déploiement de production, il est recommandé de configurer des comptes de service appropriés via helm/templates/compte_service.yaml et d'activer le module de chiffrement.
Déploiement de niveau entreprise : étapes
Préparation de l'environnement
Prérequis :
- Cluster Kubernetes v1.21 ou ultérieur
- Helm v3.8 ou ultérieur
- Support de stockage persistant (ex. : AWS EBS, GCP PD, Azure Disk)
- Nœuds avec au moins 4 Go de RAM et 2 cœurs CPU
Le script scripts/verification_dependances.sh peut aider à vérifier et installer les dépendances nécessaires.
Déploiement rapide avec Helm
Parseable fournit un chart Helm complet. Exemple de commande de déploiement :
git clone https://github.com/parseable/parseable.git
cd parseable/chart_helm
helm install parseable-release . -f valeurs.yaml \
--set isolationModeLocataire=complete \
--set rbac.active=true \
--set stockage.taille=100Gi
Les options de configuration détaillées sont documentées dans valeurs.yaml, incluant les ressources, le stockage et la sécurité.
Vérification post-déploiement
Pour valider le déploiement :
- Vérifier l'état des Pods :
kubectl get pods -l app=parseable - Tester l'endpoint de santé :
kubectl port-forward svc/parseable 8080:80puiscurl http://localhost:8080/sante - Lister les locataires initiaux :
kubectl exec -it <nom-du-pod> -- parseable locataire lister
La logique du vérificateur de santé réside dans src/handlers/http/verification_sante.rs.
Optimisation des performances et extensibilité
Configuration du stockage
Pour améliorer les performances en entreprise, ajustez ces paramètres dans valeurs.yaml :
stockage.politiqueRetention: définir la durée de rétention des données.stockage.compression.activee: activer la compression pour réduire l'espace de stockage.stockage.taillePartition: ajuster la taille des partitions pour l'équilibre requête/performance.
Extensibilité horizontale
Pour gérer l'augmentation du volume de données :
- Augmenter les nœuds Ingestion : ```
helm upgrade parseable-release . --set ingestion.replicas=3
- Augmenter les nœuds Requête : ```
helm upgrade parseable-release . --set requete.replicas=2
L'architecture extensible est définie dans chart_helm/templates/etatsfulset-ingestion.yaml et etatsfulset-requete.yaml.
Défis courants et solutions
Migration des données d'un locataire
Utilisez les outils CLI intégrés pour exporter/importer les données :
# Exporter les données d'un locataire
kubectl exec -it <pod> -- parseable locataire exporter <nom-locataire> -o /tmp/donnees_export
# Importer vers un nouveau locataire
kubectl exec -it <pod> -- parseable locataire importer <nouveau-locataire> -i /tmp/donnees_export
Cette fonctionnalité est implémentée dans src/cli.rs.
Audit et conformité
Parseable enregistre toutes les opérations critiques dans un journal d'audit. Interrogation exemple :
GET /api/v1/journaux/_audit/query?q=select * from _audit where action = 'suppression'
L'implémentation de l'audit se trouve dans src/handlers/http/registre_activite.rs.
Conclusion
L'architecture multi-locataire et les caractéristiques de sécurité de Parseable fournissent une base solide pour les déploiements d'entreprise. En configurant adéquatement les modes d'isolation, en appliquant les contrôles d'accès RBAC, en activant le chiffrement et en suivant les bonnes pratiques décrites, les entreprises peuvent déployer une plateforme de gestion de journaux sécurisée, performante et évolutive. Pour plus d'informations sur les mises à jour et le support, consultez le fichier GUIDE_CONTRIBUTION.md du projet.