Le stockage objet S3 auto-hébergé ne se limite pas à MinIO, et le passage de MinIO en édition communautaire réduite pousse à regarder ailleurs. Ce comparatif confronte MinIO, SeaweedFS, RustFS, Garage et Ceph RGW sur les fonctions S3, avec un axe central : l'authentification (OIDC) et le contrôle d'accès par préfixe de bucket. Chaque ligne de la matrice a été vérifiée en lab (marquée [lab]) ou tranchée par la documentation officielle ([doc]) quand l'infrastructure l'imposait. Public : personnes qui doivent choisir une brique de stockage objet auto-hébergée.
Les guides de mise en œuvre de chaque solution sont référencés en fin de page : ce comparatif ne remplace pas la pratique, il aide à choisir.
Recommandation rapide
Section intitulée « Recommandation rapide »| Votre besoin | La solution |
|---|---|
| S3 + OIDC + droits par préfixe, licence permissive | SeaweedFS (Apache 2.0, modèle IAM complet) |
| S3 + OIDC + préfixe, écosystème le plus documenté | MinIO (mais voir le risque édition communautaire) |
| Déjà un cluster Ceph ou besoin de stockage unifié | Ceph RGW |
| S3 léger, géo-distribué, sans besoin d'IAM avancé | Garage |
| Évaluation d'un moteur S3 en Rust (pas la production) | RustFS (alpha) |
Le critère décisif : authentification et droits par préfixe
Section intitulée « Le critère décisif : authentification et droits par préfixe »C'est le besoin qui départage réellement ces solutions. Mettre un S3 en frontal d'utilisateurs implique souvent de fédérer l'authentification (OIDC via Keycloak, Authentik...) et de cloisonner chaque équipe dans son préfixe d'un bucket partagé, avec des identifiants temporaires (STS AssumeRoleWithWebIdentity) plutôt que des clés permanentes.
| Capacité | MinIO | SeaweedFS | RustFS | Ceph RGW | Garage |
|---|---|---|---|---|---|
Droits par préfixe (policy + s3:prefix) | ✅ [lab] | ✅ [lab] | ✅ [lab] | ✅ [doc] | ❌ [lab] |
| Fédération OIDC | ✅ [lab] | ✅ [lab] | ✅ [lab] | ✅ [doc] | ❌ |
STS AssumeRoleWithWebIdentity | ✅ [lab] | ✅ [lab] | ✅ [lab] | ✅ [doc] | ❌ |
| Identifiants statiques par bucket | ✅ | ✅ | ✅ | ✅ | ✅ (seul modèle) |
Les quatre premières solutions délivrent le flux complet OIDC → STS → accès scopé au préfixe, prouvé en lab (jeton Keycloak échangé contre des identifiants temporaires cloisonnés à equipe-a/, refusés sur equipe-b/). Garage en est volontairement dépourvu : son modèle est clé → bucket avec des droits lecture/écriture/propriétaire, sans préfixe ni OIDC. Ce n'est pas un défaut, c'est son parti pris de simplicité.
Le socle S3 : tout le monde ou presque
Section intitulée « Le socle S3 : tout le monde ou presque »Sur les fonctions S3 classiques, les moteurs à IAM sont très proches. Ce n'est donc pas le socle qui différencie, mais le modèle d'accès ci-dessus et la maturité.
| Feature | MinIO | SeaweedFS | RustFS | Ceph RGW | Garage |
|---|---|---|---|---|---|
| API S3 (put/get/list/multipart/copy) | ✅ [lab] | ✅ [lab] | ✅ [lab] | ✅ [lab] | ✅ [lab] (pas de copy-object) |
| Versioning + restauration | ✅ [lab] | ✅ [lab] | ✅ [lab] | ✅ [lab] | ❌ [lab] |
| Object Lock / WORM | ✅ [lab] | ✅ [lab] | ✅ [lab] | ✅ [lab] | ❌ [lab] |
| Lifecycle | ✅ [lab] | ✅ [lab] | ✅ [lab] | ✅ [lab] | ❌ [lab] |
| Presigned URLs | ✅ [lab] | ✅ [lab] | ✅ [lab] | ✅ [lab] | ✅ [lab] |
| SSE-S3 (avec backend de clés) | ✅ [lab] | ✅ [config] | ✅ [config] | ✅ [doc] | ❌ |
| CORS | ✅ [config] | ✅ [lab] | ✅ [lab] | ✅ [lab] | ❌ |
| Site web statique | ✅ [config] | ❌ | ✅ [lab] | ✅ [doc] | ✅ [lab] |
| Réplication | ✅ | ✅ | partielle | ✅ multisite | ✅ géo-distrib natif |
| Notifications d'événements | ✅ [lab] | ✅ [doc] | ❌ | ✅ [lab] | ❌ |
Le cas MinIO : édition communautaire réduite
Section intitulée « Le cas MinIO : édition communautaire réduite »MinIO reste techniquement excellent, mais son édition open source a été appauvrie en mai 2025 : la console d'administration web a été retirée du produit libre (il ne reste qu'un explorateur d'objets), l'administration graphique complète étant réservée au produit commercial AIStor (à partir de ~96 k$/an). Le serveur reste sous AGPLv3 et pleinement fonctionnel, et la CLI mc admin conserve toute la gestion (utilisateurs, politiques, OIDC, chiffrement) : pour un déploiement piloté en IaC, MinIO fait toujours le job.
Le vrai risque est stratégique : la trajectoire de dé-priorisation du libre entame la confiance, ce qui a fait naître le fork communautaire OpenMaxIO. Si ce risque est rédhibitoire pour vous, SeaweedFS (Apache 2.0) offre le même modèle d'accès sans dépendre d'un éditeur, et Ceph RGW est un standard soutenu par une fondation.
Quelle solution pour quel cas
Section intitulée « Quelle solution pour quel cas »- SeaweedFS : le meilleur compromis pour un S3 auto-hébergé avec OIDC et droits par préfixe sous licence permissive. Modèle IAM complet (STS, bucket policies), performant, sans risque d'éditeur. Un peu plus de composants à opérer (master, volume, filer, S3).
- MinIO : le plus poli et documenté, idéal si vous acceptez le pilotage CLI/IaC et le risque de l'édition communautaire. Installation simple, écosystème riche.
- Ceph RGW : incontournable si vous faites déjà du Ceph ou visez un stockage unifié (objet, bloc, fichier) à grande échelle. Puissant mais exigeant à opérer.
- Garage : parfait pour un S3 léger et géo-distribué (sauvegardes, Nextcloud, sites statiques, multi-sites). Périmètre volontairement restreint : ni préfixe, ni OIDC, ni versioning.
- RustFS : moteur S3 en Rust, compatible MinIO (jusqu'à l'OIDC/STS), prometteur mais en alpha : à réserver à l'évaluation, pas à la production.
À retenir
Section intitulée « À retenir »- Le socle S3 (versioning, WORM, lifecycle, multipart) est couvert par presque tous : ce n'est pas le critère décisif.
- Le critère qui départage est le modèle d'accès : MinIO, SeaweedFS, RustFS et Ceph RGW font OIDC + STS + droits par préfixe ; Garage non (clé/bucket seulement).
- Une feature « absente » cache souvent une configuration native (KMS pour SSE, TLS pour SSE-C, méthode propre pour website/réplication).
- MinIO reste fonctionnel mais son édition communautaire est réduite (console retirée, AGPLv3) : arbitrez le risque stratégique.
- Pour du licence-clean avec OIDC/préfixe, SeaweedFS est le premier choix ; Ceph RGW si vous êtes déjà dans l'écosystème Ceph.