Multitenant Storage¶
multitenant: true permet a un adapter storage de completer sa configuration
depuis le TenantContext courant.
Principe¶
La config versionnee contient les defaults non sensibles. Le resolver tenant fournit les coordonnees propres au tenant: bucket, container, prefixe ou credentials cloud.
| Text Only | |
|---|---|
Chaque adapter lit uniquement sa tranche de contexte: s3, azure-blob ou
gcs.
Exemple De Contexte¶
En production, le contexte est normalement pose par le pipeline d'auth ou par un resolver tenant, pas directement dans le use case.
Coordonnees Attendues¶
| Adapter | Coordonnees tenant |
|---|---|
s3 |
bucket_name, prefix, region_name (region), endpoint_url, force_path_style, profile_name, aws_access_key_id (access_key_id), aws_secret_access_key (secret_access_key), aws_session_token (session_token) |
azure-blob |
account_url, blob_service_url, container_name, container, prefix, connection_string, conn_str, account_key, storage_account_key, sas_token, use_default_credential, default_credential, managed_identity |
gcs |
bucket_name, prefix, project_id, project, credentials_path, service_account_file, credentials_json, service_account_json, credentials_json_b64, service_account_json_b64 |
Les alias existent pour faciliter l'integration avec un Vault deja structure.
Strategies D'isolation¶
| Strategie | Quand l'utiliser |
|---|---|
| bucket/container par tenant | forte isolation IAM/RBAC, lifecycle et quotas par tenant |
| prefixe par tenant | mutualisation simple, a condition de policies tres bornees |
| credentials par tenant | comptes ou roles differents selon client |
| volume ou deploiement filesystem par tenant | dev ou on-prem avec isolation par runtime |
La strategie doit etre coherente avec les contraintes de suppression, audit, facturation et restauration.
Points D'attention¶
- Ne pas melanger les fichiers de plusieurs tenants dans un prefixe partage sans policy explicite.
- Ne pas construire la cible tenant depuis une donnee utilisateur non verifiee.
- Stocker les credentials tenant dans Vault ou un secret manager, jamais dans Git.
- Tester chaque tenant avec une cle de smoke isolee, par exemple
smoke/<tenant-id>/health.txt.
Suite¶
Lire Securite, puis la page du provider utilise: S3, Azure Blob ou GCS.