[{"data":1,"prerenderedAt":799},["ShallowReactive",2],{"article-fr-\u002Fkubernetes\u002Fdecret-2018-062-kubernetes-gap":3,"article-sibling-fr-\u002Fkubernetes\u002Fdecret-2018-062-kubernetes-gap":407,"surround-fr-\u002Fkubernetes\u002Fdecret-2018-062-kubernetes-gap":759,"related-fr-\u002Fkubernetes\u002Fdecret-2018-062-kubernetes-gap":764},{"id":4,"title":5,"body":6,"date":385,"description":386,"draft":387,"extension":388,"img":389,"meta":390,"navigation":391,"path":392,"seo":393,"slug":394,"stem":395,"tags":396,"topics":402,"__hash__":406},"content\u002Fkubernetes\u002F1.decret-2018-062-kubernetes-gap.fr.md","Décret 2018-062 et Kubernetes : le gap entre le texte et l'implémentation",{"type":7,"value":8,"toc":368},"minimark",[9,13,16,21,24,27,30,33,37,40,47,53,59,73,79,85,91,95,98,175,178,182,185,190,193,200,207,218,222,228,231,234,237,241,244,247,250,253,257,260,263,266,270,273,285,291,297,307,311,314,320,323,327,365],[10,11,12],"p",{},"Une plateforme de calcul qui héberge des données togolaises doit respecter un corpus juridique précis : la loi 2017-007 sur les transactions électroniques, son Décret d'application 2018-062, la loi 2019-014 sur la protection des données à caractère personnel, et les règles de cybersécurité de l'Arrêté 2022-040 pris par l'ANCY. Le problème n'est pas que ces textes soient laxistes. Le problème est qu'ils ont été écrits avec une image en tête : un serveur physique dans un datacenter, ou au mieux une machine virtuelle avec une adresse, un disque, un emplacement. Kubernetes ne fonctionne pas comme ça. Un pod naît, meurt et renaît ailleurs en quelques secondes. Un volume est provisionné à la demande par un pilote CSI et peut changer de zone. Un « Operator » n'est pas une entreprise, c'est un bout de code qui réconcilie un état désiré.",[10,14,15],{},"Cet article regarde ce décalage de face. Pour chaque obligation pertinente, je cherche son équivalent Kubernetes natif, puis j'isole les endroits où l'équivalence casse. L'angle est juridico-technique, pas un how-to : le lecteur visé est autant un juriste data protection qu'un ingénieur plateforme. Une précision utile d'emblée : ceci est une analyse d'ingénierie, pas un conseil juridique. Et une seconde, plus subtile : le Décret 2018-062 vise en premier lieu les prestataires de services de confiance (signature, certification, horodatage, archivage électronique). J'assume ici une lecture extensive, en traitant ses obligations comme un référentiel raisonnable pour toute plateforme qui héberge et traite des données, tout en signalant à chaque fois où cette extension est une interprétation et non la lettre du texte.",[17,18,20],"h2",{"id":19},"un-texte-écrit-pour-le-serveur-pas-pour-le-pod","Un texte écrit pour le serveur, pas pour le pod",[10,22,23],{},"Il faut nommer précisément le décalage de modèle mental, parce que c'est lui qui crée tous les gaps qui suivent.",[10,25,26],{},"Le droit raisonne en termes d'entités stables et localisables. Un prestataire est « établi sur le territoire national » (Décret 2018-062, art. 58). Des données sont « conservées » pendant une durée. Un prestataire dispose d'un « plan d'arrêt d'activité » (art. 58). Toutes ces notions supposent implicitement qu'il existe un lieu, un serveur, un actif que l'on peut pointer du doigt et auditer.",[10,28,29],{},"Kubernetes dissout ces points d'ancrage. Le pod est éphémère par conception : le scheduler le place sur un nœud selon la capacité disponible à l'instant t, le tue quand une sonde de vivacité échoue, et en recrée un ailleurs. L'adresse IP change à chaque redémarrage. Le stockage se scinde en deux : l'éphémère, qui disparaît avec le pod, et le persistant, qui vit dans un PersistentVolume dont l'emplacement physique dépend du provisionneur. La responsabilité se répartit entre l'équipe applicative, l'équipe plateforme, et le fournisseur du cluster managé. Il n'y a plus un serveur : il y a un état désiré et une boucle de réconciliation.",[10,31,32],{},"Le texte n'a pas prévu cette abstraction. Ce n'est pas un reproche fait au législateur de 2018, c'est un constat : la conformité ne consiste plus à cocher « le serveur est au Togo », elle consiste à reconstruire, au-dessus d'une infrastructure mouvante, les garanties que le texte supposait acquises par la stabilité du matériel.",[17,34,36],{"id":35},"les-obligations-réelles-article-par-article","Les obligations réelles, article par article",[10,38,39],{},"Avant de cartographier, il faut être exact sur ce que les textes disent vraiment, car plusieurs intuitions courantes sont fausses.",[10,41,42,46],{},[43,44,45],"strong",{},"Traçabilité et journalisation."," L'article 41 du Décret 2018-062 impose aux prestataires de conserver « au moins pendant une durée d'un an » les données permettant d'identifier qui a contribué à un contenu. Le texte cite explicitement « l'adresse IP des points de connexion à distance » et « la trace horodatée des sessions ouvertes pour chaque service utilisé ». L'Arrêté 2022-040 renforce cela pour les opérateurs de services essentiels avec un contrôle dédié à la journalisation des événements (D1.1.1).",[10,48,49,52],{},[43,50,51],{},"Sécurité."," L'article 44 du décret demande de « protéger les données transmises contre tout accès non autorisé ». L'article 52 va plus loin : « mesures techniques et organisationnelles adéquates pour gérer les risques », d'un niveau « proportionné au degré de risque », avec notification de tout incident de sécurité « dans un délai de vingt-quatre heures » à l'organe de contrôle et, le cas échéant, à l'autorité chargée de la protection des données. C'est une obligation de moyens proportionnés, pas une liste de contrôles techniques figés.",[10,54,55,58],{},[43,56,57],{},"Protection des données personnelles."," L'article 50 du décret renvoie explicitement à la loi 2019-014 : le stockage et le traitement des données à caractère personnel s'effectuent « dans le respect de la protection des données à caractère personnel ». La loi 2019-014 définit le responsable du traitement, le sous-traitant, et l'Instance de protection des données à caractère personnel qui contrôle. Son article 20 impose que le sous-traitant apporte « des garanties suffisantes », soit lié par un contrat écrit, et n'agisse que « sur la seule instruction du responsable du traitement ». Son article 19 pose le principe de confidentialité et de sécurité.",[10,60,61,64,65,69,70,72],{},[43,62,63],{},"Continuité."," L'article 58 du décret exige que les enregistrements pertinents soient « accessibles pour une durée de douze mois ",[66,67,68],"span",{},"..."," aux fins notamment de ",[66,71,68],{}," assurer la continuité du service », et que le prestataire dispose « d'un plan actualisé d'arrêt d'activité permettant d'assurer la continuité du service et vérifié par l'organe de contrôle ». L'Arrêté 2022-040 en fait un domaine entier, la résilience des activités (R1).",[10,74,75,78],{},[43,76,77],{},"Intégrité et réversibilité."," L'article 69 du décret, sur l'archivage, demande d'empêcher « toute modification des données conservées », de « détecter les opérations, normales ou frauduleuses », et de « permettre l'identification des auteurs de telles opérations », le tout horodaté et accessible aux seules personnes autorisées. L'article 71 impose la réversibilité : à la demande, restituer, transférer à un autre prestataire, ou détruire définitivement les données.",[10,80,81,84],{},[43,82,83],{},"Localisation."," C'est ici que l'intuition est la plus trompeuse. Le Décret 2018-062 n'impose pas une résidence des données sur le sol togolais. Il ancre l'établissement du prestataire « sur le territoire national » (art. 58) et le contrôle territorial de l'organe de régulation. La contrainte de localisation réelle vient d'ailleurs : l'article 28 de la loi 2019-014 encadre le transfert de données à caractère personnel « vers un pays tiers », qui n'est permis que si cet État « assure un niveau de protection suffisant » et après information préalable de l'Instance qui rend un avis motivé. La question n'est donc pas « les données sont-elles au Togo », mais « les données franchissent-elles une frontière vers un pays inadéquat, et l'ai-je déclaré ».",[10,86,87,90],{},[43,88,89],{},"Chiffrement au repos."," Aucun de ces textes n'écrit noir sur blanc « chiffrement des données au repos ». Le décret parle de protéger « contre tout accès non autorisé » (art. 44) et de mesures « proportionnées au risque » (art. 52). L'Arrêté 2022-040 a un contrôle sur la réglementation du contrôle cryptographique (G3.1.5), mais formulé par renvoi : les contrôles cryptographiques « doivent être utilisés conformément aux lois et règlements pertinents ». Le chiffrement au repos est donc une exigence implicite, déduite de l'obligation de sécurité, jamais une prescription littérale.",[17,92,94],{"id":93},"cartographie-chaque-obligation-et-son-équivalent-kubernetes","Cartographie : chaque obligation et son équivalent Kubernetes",[10,96,97],{},"Pour une bonne partie de ces obligations, Kubernetes offre une réponse native. C'est important à établir avant de parler des gaps, parce que la plateforme n'est pas en faillite de conformité : elle couvre naturellement plusieurs exigences.",[99,100,101,114],"table",{},[102,103,104],"thead",{},[105,106,107,111],"tr",{},[108,109,110],"th",{},"Obligation (texte)",[108,112,113],{},"Équivalent Kubernetes natif",[115,116,117,131,139,151,159,167],"tbody",{},[105,118,119,123],{},[120,121,122],"td",{},"Journalisation des accès (Décret art. 41, Arrêté D1.1.1)",[120,124,125,126,130],{},"Audit logs du ",[127,128,129],"code",{},"kube-apiserver"," via une audit policy, expédiés vers un backend d'agrégation",[105,132,133,136],{},[120,134,135],{},"Sécurité proportionnée au risque (Décret art. 52)",[120,137,138],{},"RBAC, NetworkPolicy, Pod Security Admission, admission controllers, gestion des ServiceAccounts",[105,140,141,144],{},[120,142,143],{},"Continuité du service (Décret art. 58, Arrêté R1)",[120,145,146,147,150],{},"PodDisruptionBudget, réplicas multiples, ",[127,148,149],{},"podAntiAffinity",", health probes, topologie multi-zone",[105,152,153,156],{},[120,154,155],{},"Intégrité et détection (Décret art. 69)",[120,157,158],{},"Images immuables signées, systèmes de fichiers en lecture seule, admission policies, audit trail",[105,160,161,164],{},[120,162,163],{},"Réversibilité des données (Décret art. 71)",[120,165,166],{},"Backups et restauration (Velero), export de PersistentVolume, snapshots CSI",[105,168,169,172],{},[120,170,171],{},"Confidentialité (Décret art. 44, 45)",[120,173,174],{},"Chiffrement TLS en transit, Secrets, RBAC restrictif, isolation par namespace",[10,176,177],{},"Sur le papier, la couverture est correcte. Les audit logs répondent au besoin de trace, les PodDisruptionBudget et l'anti-affinité répondent au besoin de continuité, RBAC et NetworkPolicy matérialisent la sécurité proportionnée. Un ingénieur plateforme peut légitimement dire « Kubernetes sait faire tout ça ». Le piège, c'est que cette couverture est vraie au niveau de l'infrastructure et fausse au niveau de la donnée. C'est exactement là que se logent les gaps.",[17,179,181],{"id":180},"les-vrais-gaps","Les vrais gaps",[10,183,184],{},"Un gap, ici, n'est pas une fonctionnalité manquante de Kubernetes. C'est un endroit où la réponse native de l'outil ne recouvre pas l'obligation juridique, parce que les deux ne parlent pas du même objet. Le texte parle de données identifiées et localisées ; Kubernetes répond au niveau des ressources et des API. Voici les quatre décalages qui comptent.",[186,187,189],"h3",{"id":188},"résidence-des-données-contre-stockage-éphémère-et-volumes-dynamiques","Résidence des données contre stockage éphémère et volumes dynamiques",[10,191,192],{},"L'article 28 de la loi 2019-014 fait dépendre la légalité d'un transfert de la destination géographique des données. Or Kubernetes est conçu pour rendre cette destination fluide.",[10,194,195,196,199],{},"Un PersistentVolume est provisionné par une StorageClass, elle-même adossée à un pilote CSI qui parle au backend de stockage réel. Dans un cluster managé chez un hyperscaler, ce backend est un service régional : le volume vit dans une zone, et selon la configuration, la réplication de ce service peut copier les blocs vers une autre région pour la durabilité. Rien dans le manifeste applicatif ne rend cette géographie visible. Un développeur qui écrit ",[127,197,198],{},"storageClassName: standard"," ne sait pas, et n'a aucune raison de savoir, dans quel pays atterrissent physiquement ses octets.",[10,201,202,203,206],{},"Le stockage éphémère aggrave le flou. Les fichiers temporaires, les caches, les ",[127,204,205],{},"emptyDir"," vivent sur le disque du nœud qui héberge le pod à cet instant. Le scheduler choisit ce nœud dynamiquement. Si le pool de nœuds s'étend sur plusieurs zones, voire plusieurs régions dans les architectures les plus élastiques, une donnée personnelle peut transiter par un nœud situé hors du périmètre déclaré, le temps d'un traitement, sans qu'aucune trace applicative ne le consigne.",[10,208,209,210,213,214,217],{},"Le gap est double. D'abord, le texte n'a jamais défini la résidence des données pour un système où la donnée n'a pas de lieu fixe : il présumait la stabilité du serveur. Ensuite, même si l'on interprète l'article 28 comme s'appliquant à ces mouvements, Kubernetes ne fournit aucun mécanisme natif qui déclare, contrôle et journalise le franchissement de frontière au niveau de la donnée. La ",[127,211,212],{},"topologySpreadConstraints"," ou le ",[127,215,216],{},"nodeAffinity"," peuvent contraindre le placement, mais ce sont des outils d'ordonnancement, pas des garanties de conformité auditable.",[186,219,221],{"id":220},"traçabilité-des-accès-aux-données-personnelles-en-multi-tenant","Traçabilité des accès aux données personnelles en multi-tenant",[10,223,224,225,227],{},"L'article 41 du décret veut la trace horodatée des accès, et l'article 69 veut « l'identification des auteurs » des opérations sur les données. L'audit log du ",[127,226,129],{}," semble répondre. Il ne répond qu'à moitié.",[10,229,230],{},"L'audit du serveur d'API journalise les actions sur les objets Kubernetes : qui a créé un pod, modifié un Secret, listé les ConfigMaps. C'est une trace au niveau du plan de contrôle. Mais l'obligation juridique porte sur l'accès aux données à caractère personnel, qui se produit au niveau applicatif, à l'intérieur du conteneur, quand le code lit une ligne dans une base ou un objet dans un bucket. Cet accès-là est invisible pour l'audit de l'API : Kubernetes ne voit pas les requêtes SQL que fait votre application.",[10,232,233],{},"Le multi-tenant brouille encore l'imputabilité. Dans un cluster partagé, l'isolation passe par les namespaces, mais plusieurs équipes, plusieurs applications, parfois plusieurs clients cohabitent. Les identités techniques, les ServiceAccounts, sont partagées entre les réplicas d'un même déploiement : quand trois pods d'un même service accèdent à des données, ils présentent la même identité. Un service mesh qui ajoute des sidecars, un pooler de connexions qui mutualise les accès à la base sous une seule identité de service, et la chaîne entre l'utilisateur humain et l'octet lu se rompt. La trace existe, mais elle s'arrête à la frontière du cluster ou à l'identité de service, là où le juriste attend l'identification d'un auteur.",[10,235,236],{},"Le gap : la traçabilité native de Kubernetes est une traçabilité d'infrastructure. La traçabilité exigée par les articles 41 et 69 est une traçabilité de la donnée. Combler l'écart demande de l'instrumentation applicative que la plateforme ne fournit pas d'elle-même.",[186,238,240],{"id":239},"opérateur-juridique-contre-operator-kubernetes","« Opérateur » juridique contre Operator Kubernetes",[10,242,243],{},"Le mot « opérateur » est un faux ami parfait, et le télescopage est plus qu'une curiosité de vocabulaire.",[10,245,246],{},"Au sens juridique, l'opérateur ou le prestataire est une personne, physique ou morale, qui porte des obligations et une responsabilité. L'article 47 du décret rend le prestataire « responsable des dommages causés intentionnellement ou par négligence », et présume même cette responsabilité pour un prestataire qualifié. La loi 2019-014 distingue le responsable du traitement, qui décide, et le sous-traitant, qui exécute sur instruction (art. 20). Ce sont des rôles imputables.",[10,248,249],{},"Au sens Kubernetes, un Operator est un pattern logiciel : un controller associé à une ou plusieurs CustomResourceDefinition, qui observe l'état du cluster et le réconcilie vers un état désiré. Un Operator de base de données peut, de sa propre initiative, décider de faire un failover, de restaurer un backup, de supprimer et recréer un volume, de déplacer une charge d'un nœud à un autre. Autrement dit, du code prend des décisions qui touchent des données personnelles, sans intervention humaine, sur la base d'une boucle de réconciliation.",[10,251,252],{},"Le gap est un vide d'imputabilité. Quand un Operator déclenche une restauration qui écrase des données, ou un rééquilibrage qui déplace un volume vers une zone non prévue, qui est le responsable au sens de l'article 47 ? L'éditeur de l'Operator ? L'équipe qui l'a déployé ? L'organisation qui exploite le cluster ? Le droit suppose une chaîne de responsabilité entre des personnes ; Kubernetes insère un agent autonome dans cette chaîne, et le texte n'a pas de case pour lui. Ce n'est pas un problème que l'on résout avec un manifeste : c'est un problème de gouvernance qu'il faut expliciter par contrat et par documentation.",[186,254,256],{"id":255},"chiffrement-au-repos-etcd-secrets-et-volumes","Chiffrement au repos : etcd, Secrets et volumes",[10,258,259],{},"L'obligation de protéger les données « contre tout accès non autorisé » (art. 44) se heurte à un défaut de configuration bien connu de Kubernetes.",[10,261,262],{},"Trois surfaces méritent l'attention. D'abord etcd, le magasin clé-valeur qui contient tout l'état du cluster, y compris les Secrets. Par défaut, selon la distribution, etcd peut stocker ces données sans chiffrement au niveau applicatif : quiconque accède au disque ou à une sauvegarde d'etcd lit les Secrets en clair. Ensuite les Secrets Kubernetes eux-mêmes, dont le nom prête à confusion : un Secret n'est pas chiffré, il est encodé en base64, ce qui n'offre aucune confidentialité. Enfin les PersistentVolumes, dont le chiffrement dépend entièrement du backend de stockage et de sa configuration, pas de Kubernetes.",[10,264,265],{},"Le gap ici est double : côté droit, l'obligation de chiffrement au repos est implicite, déduite de l'article 44 et du contrôle cryptographique G3.1.5 de l'Arrêté 2022-040, jamais énoncée comme telle ; côté outil, le comportement par défaut ne satisfait pas cette obligation implicite. La rencontre des deux flous produit un risque réel : une organisation peut croire ses Secrets protégés parce qu'ils s'appellent « Secrets », et se trouver en défaut d'une obligation qu'aucun texte n'a formulée explicitement mais que tout auditeur sérieux exigera.",[17,267,269],{"id":268},"patterns-dimplémentation-pour-combler-les-gaps","Patterns d'implémentation pour combler les gaps",[10,271,272],{},"L'analyse n'a de valeur que si elle débouche sur des réponses. Voici, gap par gap, des patterns pour reconstruire au-dessus de Kubernetes les garanties que le texte supposait acquises. L'objectif reste conceptuel : ce sont des directions, pas des recettes de déploiement.",[10,274,275,278,279,281,282,284],{},[43,276,277],{},"Ancrer la résidence des données."," Contraindre le placement avec ",[127,280,216],{}," et ",[127,283,212],{}," pour maintenir les charges qui traitent des données personnelles dans des zones cartographiées. Choisir des StorageClass dont on connaît et documente la géographie physique, en désactivant la réplication interrégionale non désirée. Surtout, tenir un registre de traitement qui déclare, pour chaque volume et chaque flux, où les données résident et vers quels pays elles peuvent transiter, afin de rendre l'article 28 vérifiable au lieu de subi.",[10,286,287,290],{},[43,288,289],{},"Rendre la traçabilité applicative."," Compléter l'audit du serveur d'API par une journalisation au niveau de la donnée : la base de données journalise les accès, l'application émet des événements d'accès aux données personnelles avec une identité d'utilisateur réelle, pas seulement une identité de service. Éviter la mutualisation aveugle des identités : propager l'identité de l'utilisateur de bout en bout plutôt que de la dissoudre dans un pool de connexions. Un moteur de politique comme OPA Gatekeeper peut imposer que les charges qui touchent des données sensibles portent les labels et l'instrumentation requis.",[10,292,293,296],{},[43,294,295],{},"Expliciter la responsabilité des Operators."," Traiter chaque Operator autonome comme un maillon de la chaîne de responsabilité et le documenter comme tel : quel Operator peut agir sur quelles données, avec quelles permissions RBAC minimales, sous la responsabilité de quelle équipe. Restreindre les actions destructrices, exiger des garde-fous pour les opérations qui déplacent ou effacent des données, et consigner ces décisions dans le registre de gouvernance. Le pattern n'est pas technique, il est organisationnel : redonner un nom humain à chaque action automatique.",[10,298,299,302,303,306],{},[43,300,301],{},"Chiffrer au repos, explicitement."," Activer l'",[127,304,305],{},"EncryptionConfiguration"," du serveur d'API pour chiffrer les Secrets dans etcd, idéalement adossée à un KMS externe plutôt qu'à une clé locale. Traiter les Secrets Kubernetes comme un mécanisme de distribution, pas de protection, et envisager un gestionnaire de secrets dédié ou des sealed secrets. Activer le chiffrement au niveau du backend de stockage pour les PersistentVolumes. Documenter ces choix pour transformer une obligation implicite en preuve auditable.",[17,308,310],{"id":309},"limites-de-lanalyse-et-questions-ouvertes","Limites de l'analyse et questions ouvertes",[10,312,313],{},"Cette analyse repose sur une extension que je dois assumer clairement. Le Décret 2018-062 vise en premier lieu les prestataires de services de confiance : signature électronique, certification, horodatage, archivage. Appliquer ses obligations à une plateforme de calcul générique est une lecture raisonnable, mais c'est une interprétation, pas la lettre du texte. Un juriste pourrait défendre un périmètre plus étroit, limité aux cas où la plateforme rend effectivement un service de confiance.",[10,315,316,317,319],{},"Plusieurs questions restent ouvertes. L'articulation exacte entre le décret, la loi 2019-014 et l'Arrêté 2022-040 mérite une lecture croisée par un praticien du droit togolais, notamment sur la qualification d'une plateforme en opérateur de services essentiels au sens de l'Arrêté. La notion de transfert de l'article 28 appliquée à des mouvements intra-cluster, éphémères et automatiques, n'a pas, à ma connaissance, été tranchée : un ",[127,318,205],{}," qui touche brièvement un nœud d'une autre zone constitue-t-il un transfert au sens de la loi ? Enfin, la responsabilité des actions autonomes d'un Operator est un angle mort commun à beaucoup de cadres juridiques écrits avant l'automatisation déclarative, pas seulement au cadre togolais.",[10,321,322],{},"Le fond de l'affaire tient en une phrase. Ces textes ne sont pas mauvais : ils sont écrits pour un monde où l'infrastructure était stable et localisable. Kubernetes a rendu l'infrastructure mouvante, et la conformité consiste désormais à reconstruire, couche par couche, les garanties que la stabilité du matériel offrait gratuitement. Le travail n'est pas de contourner le texte, c'est de le traduire dans un modèle qu'il n'avait pas anticipé.",[17,324,326],{"id":325},"sources","Sources",[328,329,330,341,349,357],"ul",{},[331,332,333,334],"li",{},"Décret n°2018-062\u002FPR portant réglementation des transactions et services électroniques au Togo, ",[335,336,340],"a",{"href":337,"rel":338},"https:\u002F\u002Farcep.tg\u002Fwp-content\u002Fuploads\u002F2020\u002F11\u002FDecret_2018_062_PR_portant_reglementation_des_transactions_services_electronique.pdf",[339],"nofollow","ARCEP",[331,342,343,344],{},"Loi n°2017-007 relative aux transactions électroniques, ",[335,345,348],{"href":346,"rel":347},"https:\u002F\u002Fnumerique.gouv.tg\u002Fimportante-mise-a-jour-de-la-loi-n2017-007-du-22-juin-2017-relative-aux-transactions-electroniques\u002F",[339],"numerique.gouv.tg",[331,350,351,352],{},"Loi n°2019-014 du 29 octobre 2019 relative à la protection des données à caractère personnel, ",[335,353,356],{"href":354,"rel":355},"https:\u002F\u002Fjo.gouv.tg\u002Fsites\u002Fdefault\u002Ffiles\u002FJO\u002FJOS_29_10_2019-64E%20ANNEE-N%C2%B026%20TER.pdf",[339],"Journal Officiel",[331,358,359,360],{},"Arrêté n°2022-040\u002FPMRT portant adoption des règles de cybersécurité en République togolaise, ",[335,361,364],{"href":362,"rel":363},"https:\u002F\u002Fcert.tg\u002Fwp-content\u002Fuploads\u002F2022\u002F07\u002F20220705-Arrete-n%C2%B0-2022-040-PMRT-portant-adoption-des-regles-de-cybersecurite-en-Republique-togolaise.pdf",[339],"CERT Togo",[10,366,367],{},"Ceci est une analyse d'ingénierie et non un conseil juridique. Pour toute décision de conformité, consultez un praticien du droit togolais de la protection des données.",{"title":369,"searchDepth":370,"depth":370,"links":371},"",2,[372,373,374,375,382,383,384],{"id":19,"depth":370,"text":20},{"id":35,"depth":370,"text":36},{"id":93,"depth":370,"text":94},{"id":180,"depth":370,"text":181,"children":376},[377,379,380,381],{"id":188,"depth":378,"text":189},3,{"id":220,"depth":378,"text":221},{"id":239,"depth":378,"text":240},{"id":255,"depth":378,"text":256},{"id":268,"depth":370,"text":269},{"id":309,"depth":370,"text":310},{"id":325,"depth":370,"text":326},"2026-07-23","Le Décret 2018-062, qui précise l'application de la loi togolaise 2017-007 sur les transactions électroniques, impose des obligations de sécurité, de traçabilité, de conservation et de continuité. Mais ces obligations ont été rédigées avec un modèle mental de serveur physique ou de VM. Kubernetes introduit des pods éphémères, un scheduling dynamique, des volumes provisionnés à la volée et des Operators. Cet article cartographie chaque obligation vers son équivalent Kubernetes natif, expose les vrais gaps où l'outil ne répond pas au texte, et propose des patterns d'implémentation. Angle juridico-technique, pas un tutoriel.",false,"md","https:\u002F\u002Fres.cloudinary.com\u002Fdpdwhd6ka\u002Fimage\u002Fupload\u002Ff_auto,q_auto\u002Fv1\u002FBlog\u002Fimages\u002Fhbcudyxllyjvbkjxvs7g",{},true,"\u002Fkubernetes\u002Fdecret-2018-062-kubernetes-gap.fr",{"title":5,"description":386},"decret-2018-062-kubernetes-compliance-gap","kubernetes\u002F1.decret-2018-062-kubernetes-gap.fr",[397,398,399,400,401],"Compliance","Kubernetes","Data-Protection","Togo","Governance",[403,404,405],"kubernetes","platform-engineering","security","giUBJEnw9NTMXxnsdzhNnvkvc4FebdJj8lx55QukSFo",{"id":408,"title":409,"body":410,"date":385,"description":751,"draft":387,"extension":388,"img":389,"meta":752,"navigation":391,"path":753,"seo":754,"slug":394,"stem":755,"tags":756,"topics":757,"__hash__":758},"content\u002Fkubernetes\u002F1.decret-2018-062-kubernetes-gap.md","Decree 2018-062 and Kubernetes: The Gap Between the Text and the Implementation",{"type":7,"value":411,"toc":737},[412,415,418,422,425,428,431,434,438,441,447,453,459,471,477,483,489,493,496,563,566,570,573,577,580,586,592,601,605,611,614,617,620,624,627,630,633,636,640,643,646,649,653,656,668,674,680,689,693,696,702,705,707,734],[10,413,414],{},"A compute platform that hosts Togolese data has to satisfy a precise body of law: law 2017-007 on electronic transactions, its implementing Decree 2018-062, law 2019-014 on the protection of personal data, and the cybersecurity rules of the 2022-040 order issued by the ANCY. The problem is not that these texts are lax. The problem is that they were written with one image in mind: a physical server in a datacenter, or at best a virtual machine with an address, a disk, a location. Kubernetes does not work that way. A pod is born, dies and is reborn elsewhere in seconds. A volume is provisioned on demand by a CSI driver and can change zone. An \"Operator\" is not a company, it is a piece of code that reconciles a desired state.",[10,416,417],{},"This article looks that mismatch in the face. For each relevant obligation I look for its native Kubernetes equivalent, then I isolate the places where the equivalence breaks. The angle is legal-technical, not a how-to: the intended reader is as much a data protection lawyer as a platform engineer. One useful caveat up front: this is an engineering analysis, not legal advice. And a second, subtler one: Decree 2018-062 primarily targets trust service providers (signature, certification, timestamping, electronic archiving). I take an extensive reading here, treating its obligations as a reasonable baseline for any platform that hosts and processes data, while flagging each time where that extension is an interpretation and not the letter of the text.",[17,419,421],{"id":420},"a-text-written-for-the-server-not-for-the-pod","A text written for the server, not for the pod",[10,423,424],{},"The mental-model mismatch has to be named precisely, because it is what creates every gap that follows.",[10,426,427],{},"The law reasons in terms of stable, locatable entities. A provider is \"established on the national territory\" (Decree 2018-062, art. 58). Data is \"retained\" for a duration. A provider has a \"wind-down plan\" (art. 58). All these notions implicitly assume there is a place, a server, an asset you can point at and audit.",[10,429,430],{},"Kubernetes dissolves those anchors. The pod is ephemeral by design: the scheduler places it on a node according to the capacity available at time t, kills it when a liveness probe fails, and recreates one elsewhere. The IP address changes at every restart. Storage splits in two: the ephemeral kind, which vanishes with the pod, and the persistent kind, which lives in a PersistentVolume whose physical location depends on the provisioner. Responsibility spreads across the application team, the platform team, and the managed cluster provider. There is no longer a server: there is a desired state and a reconciliation loop.",[10,432,433],{},"The text did not anticipate this abstraction. That is not a reproach to the lawmaker of 2018, it is an observation: compliance is no longer a matter of ticking \"the server is in Togo\", it is a matter of rebuilding, on top of a shifting infrastructure, the guarantees the text assumed were granted by the stability of the hardware.",[17,435,437],{"id":436},"the-real-obligations-article-by-article","The real obligations, article by article",[10,439,440],{},"Before mapping anything, we have to be exact about what the texts actually say, because several common intuitions are wrong.",[10,442,443,446],{},[43,444,445],{},"Traceability and logging."," Article 41 of Decree 2018-062 requires providers to retain, \"for at least a duration of one year\", the data that identifies who contributed to a content. The text explicitly names \"the IP address of remote connection points\" and \"the timestamped trace of sessions opened for each service used\". The 2022-040 order reinforces this for operators of essential services with a control dedicated to event logging (D1.1.1).",[10,448,449,452],{},[43,450,451],{},"Security."," Article 44 of the decree requires protecting transmitted data \"against any unauthorized access\". Article 52 goes further: \"adequate technical and organizational measures to manage risks\", at a level \"proportionate to the degree of risk\", with notification of any security incident \"within twenty-four hours\" to the supervisory body and, where relevant, to the data protection authority. This is an obligation of proportionate means, not a frozen checklist of technical controls.",[10,454,455,458],{},[43,456,457],{},"Personal data protection."," Article 50 of the decree explicitly defers to law 2019-014: the storage and processing of personal data is carried out \"in compliance with the protection of personal data\". Law 2019-014 defines the data controller, the processor, and the Personal Data Protection Authority (the Instance) that supervises. Its article 20 requires the processor to offer \"sufficient guarantees\", to be bound by a written contract, and to act \"only on the instruction of the data controller\". Its article 19 states the principle of confidentiality and security.",[10,460,461,464,465,467,468,470],{},[43,462,463],{},"Continuity."," Article 58 of the decree requires the relevant records to be \"accessible for a duration of twelve months ",[66,466,68],{}," for the purpose notably of ",[66,469,68],{}," ensuring the continuity of the service\", and that the provider hold \"an up-to-date wind-down plan ensuring the continuity of the service and verified by the supervisory body\". The 2022-040 order makes it a whole domain, business continuity and resilience (R1).",[10,472,473,476],{},[43,474,475],{},"Integrity and reversibility."," Article 69 of the decree, on archiving, requires preventing \"any modification of the retained data\", \"detecting operations, normal or fraudulent\", and \"allowing the identification of the authors of such operations\", all timestamped and accessible only to authorized persons. Article 71 mandates reversibility: on request, return, transfer to another provider, or definitively destroy the data.",[10,478,479,482],{},[43,480,481],{},"Localization."," This is where intuition is most misleading. Decree 2018-062 does not impose data residence on Togolese soil. It anchors the provider's establishment \"on the national territory\" (art. 58) and the territorial control of the regulator. The real localization constraint comes from elsewhere: article 28 of law 2019-014 frames the transfer of personal data \"to a third country\", which is permitted only if that State \"ensures a sufficient level of protection\" and after prior notice to the Instance, which issues a reasoned opinion. So the question is not \"is the data in Togo\", it is \"does the data cross a border into an inadequate country, and did I declare it\".",[10,484,485,488],{},[43,486,487],{},"Encryption at rest."," None of these texts writes \"encryption of data at rest\" in black and white. The decree speaks of protecting \"against any unauthorized access\" (art. 44) and of measures \"proportionate to the risk\" (art. 52). The 2022-040 order has a control on the regulation of cryptographic controls (G3.1.5), but phrased by reference: cryptographic controls \"must be used in accordance with the relevant laws and regulations\". Encryption at rest is therefore an implicit requirement, deduced from the security obligation, never a literal prescription.",[17,490,492],{"id":491},"the-mapping-each-obligation-and-its-kubernetes-equivalent","The mapping: each obligation and its Kubernetes equivalent",[10,494,495],{},"For a good part of these obligations, Kubernetes offers a native answer. That is important to establish before talking about gaps, because the platform is not in compliance bankruptcy: it naturally covers several requirements.",[99,497,498,508],{},[102,499,500],{},[105,501,502,505],{},[108,503,504],{},"Obligation (text)",[108,506,507],{},"Native Kubernetes equivalent",[115,509,510,520,528,539,547,555],{},[105,511,512,515],{},[120,513,514],{},"Access logging (Decree art. 41, Order D1.1.1)",[120,516,517,519],{},[127,518,129],{}," audit logs via an audit policy, shipped to an aggregation backend",[105,521,522,525],{},[120,523,524],{},"Security proportionate to risk (Decree art. 52)",[120,526,527],{},"RBAC, NetworkPolicy, Pod Security Admission, admission controllers, ServiceAccount management",[105,529,530,533],{},[120,531,532],{},"Service continuity (Decree art. 58, Order R1)",[120,534,535,536,538],{},"PodDisruptionBudget, multiple replicas, ",[127,537,149],{},", health probes, multi-zone topology",[105,540,541,544],{},[120,542,543],{},"Integrity and detection (Decree art. 69)",[120,545,546],{},"Signed immutable images, read-only filesystems, admission policies, audit trail",[105,548,549,552],{},[120,550,551],{},"Data reversibility (Decree art. 71)",[120,553,554],{},"Backup and restore (Velero), PersistentVolume export, CSI snapshots",[105,556,557,560],{},[120,558,559],{},"Confidentiality (Decree art. 44, 45)",[120,561,562],{},"TLS encryption in transit, Secrets, restrictive RBAC, namespace isolation",[10,564,565],{},"On paper the coverage is decent. Audit logs answer the need for a trace, PodDisruptionBudget and anti-affinity answer the need for continuity, RBAC and NetworkPolicy materialize proportionate security. A platform engineer can legitimately say \"Kubernetes can do all of that\". The trap is that this coverage is true at the infrastructure level and false at the data level. That is exactly where the gaps live.",[17,567,569],{"id":568},"the-real-gaps","The real gaps",[10,571,572],{},"A gap, here, is not a missing Kubernetes feature. It is a place where the tool's native answer does not cover the legal obligation, because the two do not talk about the same object. The text talks about identified and located data; Kubernetes answers at the level of resources and APIs. Here are the four mismatches that matter.",[186,574,576],{"id":575},"data-residence-versus-ephemeral-storage-and-dynamic-volumes","Data residence versus ephemeral storage and dynamic volumes",[10,578,579],{},"Article 28 of law 2019-014 makes the legality of a transfer depend on the geographic destination of the data. Yet Kubernetes is designed to make that destination fluid.",[10,581,582,583,585],{},"A PersistentVolume is provisioned by a StorageClass, itself backed by a CSI driver that talks to the real storage backend. In a managed cluster at a hyperscaler, that backend is a regional service: the volume lives in a zone, and depending on configuration, the replication of that service can copy the blocks to another region for durability. Nothing in the application manifest makes this geography visible. A developer who writes ",[127,584,198],{}," does not know, and has no reason to know, in which country their bytes physically land.",[10,587,588,589,591],{},"Ephemeral storage makes the blur worse. Temporary files, caches, ",[127,590,205],{}," volumes live on the disk of the node hosting the pod at that instant. The scheduler picks that node dynamically. If the node pool spans several zones, or even several regions in the most elastic architectures, a piece of personal data can transit through a node located outside the declared perimeter, for the duration of a processing step, without any application trace recording it.",[10,593,594,595,597,598,600],{},"The gap is twofold. First, the text never defined data residence for a system where data has no fixed place: it presumed the stability of the server. Second, even if you read article 28 as applying to these movements, Kubernetes provides no native mechanism that declares, controls and logs a border crossing at the data level. ",[127,596,212],{}," or ",[127,599,216],{}," can constrain placement, but those are scheduling tools, not auditable compliance guarantees.",[186,602,604],{"id":603},"traceability-of-access-to-personal-data-in-multi-tenant-clusters","Traceability of access to personal data in multi-tenant clusters",[10,606,607,608,610],{},"Article 41 of the decree wants the timestamped trace of access, and article 69 wants \"the identification of the authors\" of operations on the data. The ",[127,609,129],{}," audit log seems to answer. It only answers halfway.",[10,612,613],{},"The API server audit logs actions on Kubernetes objects: who created a pod, modified a Secret, listed the ConfigMaps. It is a trace at the control-plane level. But the legal obligation is about access to personal data, which happens at the application level, inside the container, when the code reads a row in a database or an object in a bucket. That access is invisible to the API audit: Kubernetes does not see the SQL queries your application makes.",[10,615,616],{},"Multi-tenancy blurs accountability further. In a shared cluster, isolation goes through namespaces, but several teams, several applications, sometimes several customers coexist. Technical identities, ServiceAccounts, are shared across the replicas of a single deployment: when three pods of the same service access data, they present the same identity. A service mesh that adds sidecars, a connection pooler that funnels database access under a single service identity, and the chain between the human user and the byte read is broken. The trace exists, but it stops at the cluster boundary or at the service identity, exactly where the lawyer expects the identification of an author.",[10,618,619],{},"The gap: Kubernetes native traceability is an infrastructure traceability. The traceability required by articles 41 and 69 is a data traceability. Closing the gap requires application instrumentation that the platform does not provide on its own.",[186,621,623],{"id":622},"legal-operator-versus-kubernetes-operator","Legal \"operator\" versus Kubernetes Operator",[10,625,626],{},"The word \"operator\" is a perfect false friend, and the collision is more than a vocabulary curiosity.",[10,628,629],{},"In the legal sense, the operator or provider is a person, natural or legal, who carries obligations and liability. Article 47 of the decree makes the provider \"liable for damages caused intentionally or by negligence\", and even presumes that liability for a qualified provider. Law 2019-014 distinguishes the data controller, who decides, from the processor, who executes on instruction (art. 20). These are accountable roles.",[10,631,632],{},"In the Kubernetes sense, an Operator is a software pattern: a controller paired with one or more CustomResourceDefinition, which watches the cluster state and reconciles it toward a desired state. A database Operator can, on its own initiative, decide to fail over, restore a backup, delete and recreate a volume, move a workload from one node to another. In other words, code makes decisions that touch personal data, without human intervention, on the basis of a reconciliation loop.",[10,634,635],{},"The gap is an accountability void. When an Operator triggers a restore that overwrites data, or a rebalancing that moves a volume to an unplanned zone, who is the responsible party in the sense of article 47? The Operator's vendor? The team that deployed it? The organization that runs the cluster? The law assumes a chain of responsibility between persons; Kubernetes inserts an autonomous agent into that chain, and the text has no slot for it. This is not a problem you solve with a manifest: it is a governance problem that has to be made explicit by contract and by documentation.",[186,637,639],{"id":638},"encryption-at-rest-etcd-secrets-and-volumes","Encryption at rest: etcd, Secrets and volumes",[10,641,642],{},"The obligation to protect data \"against any unauthorized access\" (art. 44) collides with a well-known Kubernetes default.",[10,644,645],{},"Three surfaces deserve attention. First etcd, the key-value store that holds all the cluster state, including Secrets. By default, depending on the distribution, etcd can store this data without application-level encryption: anyone who accesses the disk or a backup of etcd reads the Secrets in clear. Second, Kubernetes Secrets themselves, whose name is misleading: a Secret is not encrypted, it is base64-encoded, which offers no confidentiality. Third, PersistentVolumes, whose encryption depends entirely on the storage backend and its configuration, not on Kubernetes.",[10,647,648],{},"The gap here is double: on the legal side, the encryption-at-rest obligation is implicit, deduced from article 44 and the cryptographic control G3.1.5 of the 2022-040 order, never stated as such; on the tool side, the default behavior does not satisfy that implicit obligation. The meeting of the two ambiguities produces a real risk: an organization can believe its Secrets protected because they are called \"Secrets\", and find itself in breach of an obligation that no text spelled out explicitly but that any serious auditor will demand.",[17,650,652],{"id":651},"implementation-patterns-to-close-the-gaps","Implementation patterns to close the gaps",[10,654,655],{},"The analysis is only worth something if it leads to answers. Here, gap by gap, are patterns to rebuild on top of Kubernetes the guarantees the text assumed were granted. The goal stays conceptual: these are directions, not deployment recipes.",[10,657,658,661,662,664,665,667],{},[43,659,660],{},"Anchor data residence."," Constrain placement with ",[127,663,216],{}," and ",[127,666,212],{}," to keep workloads that process personal data in mapped zones. Choose StorageClasses whose physical geography you know and document, disabling unwanted cross-region replication. Above all, keep a processing register that declares, for each volume and each flow, where data resides and to which countries it may transit, so that article 28 becomes verifiable instead of endured.",[10,669,670,673],{},[43,671,672],{},"Make traceability application-level."," Complement the API server audit with data-level logging: the database logs access, the application emits personal-data access events with a real user identity, not just a service identity. Avoid blind identity pooling: propagate the user identity end to end rather than dissolving it into a connection pool. A policy engine like OPA Gatekeeper can enforce that workloads touching sensitive data carry the required labels and instrumentation.",[10,675,676,679],{},[43,677,678],{},"Make Operator responsibility explicit."," Treat every autonomous Operator as a link in the chain of responsibility and document it as such: which Operator can act on which data, with which minimal RBAC permissions, under which team's responsibility. Restrict destructive actions, require guardrails for operations that move or erase data, and record these decisions in the governance register. The pattern is not technical, it is organizational: give a human name back to every automatic action.",[10,681,682,685,686,688],{},[43,683,684],{},"Encrypt at rest, explicitly."," Enable the API server's ",[127,687,305],{}," to encrypt Secrets in etcd, ideally backed by an external KMS rather than a local key. Treat Kubernetes Secrets as a distribution mechanism, not a protection one, and consider a dedicated secrets manager or sealed secrets. Enable storage-backend encryption for PersistentVolumes. Document these choices to turn an implicit obligation into auditable proof.",[17,690,692],{"id":691},"limits-of-the-analysis-and-open-questions","Limits of the analysis and open questions",[10,694,695],{},"This analysis rests on an extension I have to own clearly. Decree 2018-062 primarily targets trust service providers: electronic signature, certification, timestamping, archiving. Applying its obligations to a generic compute platform is a reasonable reading, but it is an interpretation, not the letter of the text. A lawyer could defend a narrower perimeter, limited to cases where the platform actually delivers a trust service.",[10,697,698,699,701],{},"Several questions stay open. The exact articulation between the decree, law 2019-014 and the 2022-040 order deserves a cross-reading by a Togolese legal practitioner, notably on whether a platform qualifies as an operator of essential services in the sense of the order. The notion of transfer in article 28, applied to intra-cluster, ephemeral and automatic movements, has not, to my knowledge, been settled: does an ",[127,700,205],{}," briefly touching a node in another zone constitute a transfer in the sense of the law? Finally, the responsibility for the autonomous actions of an Operator is a blind spot common to many legal frameworks written before declarative automation, not only to the Togolese one.",[10,703,704],{},"The heart of the matter fits in one sentence. These texts are not bad: they are written for a world where infrastructure was stable and locatable. Kubernetes made infrastructure shifting, and compliance now consists of rebuilding, layer by layer, the guarantees that hardware stability used to grant for free. The work is not to circumvent the text, it is to translate it into a model it never anticipated.",[17,706,326],{"id":325},[328,708,709,715,721,728],{},[331,710,711,712],{},"Decree n°2018-062\u002FPR regulating electronic transactions and services in Togo, ",[335,713,340],{"href":337,"rel":714},[339],[331,716,717,718],{},"Law n°2017-007 on electronic transactions, ",[335,719,348],{"href":346,"rel":720},[339],[331,722,723,724],{},"Law n°2019-014 of 29 October 2019 on the protection of personal data, ",[335,725,727],{"href":354,"rel":726},[339],"Official Journal",[331,729,730,731],{},"Order n°2022-040\u002FPMRT adopting cybersecurity rules in the Togolese Republic, ",[335,732,364],{"href":362,"rel":733},[339],[10,735,736],{},"This is an engineering analysis, not legal advice. For any compliance decision, consult a Togolese data protection practitioner.",{"title":369,"searchDepth":370,"depth":370,"links":738},[739,740,741,742,748,749,750],{"id":420,"depth":370,"text":421},{"id":436,"depth":370,"text":437},{"id":491,"depth":370,"text":492},{"id":568,"depth":370,"text":569,"children":743},[744,745,746,747],{"id":575,"depth":378,"text":576},{"id":603,"depth":378,"text":604},{"id":622,"depth":378,"text":623},{"id":638,"depth":378,"text":639},{"id":651,"depth":370,"text":652},{"id":691,"depth":370,"text":692},{"id":325,"depth":370,"text":326},"Decree 2018-062, which implements Togo's law 2017-007 on electronic transactions, imposes obligations on security, traceability, retention and continuity. But those obligations were written with a physical server or VM in mind. Kubernetes introduces ephemeral pods, dynamic scheduling, volumes provisioned on the fly, and Operators. This article maps each obligation to its native Kubernetes equivalent, exposes the real gaps where the tool does not answer the text, and proposes implementation patterns. A legal-technical angle, not a tutorial.",{},"\u002Fkubernetes\u002Fdecret-2018-062-kubernetes-gap",{"title":409,"description":751},"kubernetes\u002F1.decret-2018-062-kubernetes-gap",[397,398,399,400,401],[403,404,405],"H3dKNTrj26CcXgihxtPHuvsgrAdRpW-jytIP4n8Yg4Y",[760,763],{"title":761,"path":762},"Déployer une API Express.js avec Docker","\u002Fdocker\u002Fdeploy-expressjs-api-using-docker.fr",null,[765,778,791],{"path":766,"title":767,"description":768,"date":769,"tags":770,"topics":775},"\u002Fbackend\u002Fload-balancing\u002Fload-balancing-algorithms.fr","Algorithmes de load balancing : chacun repare le defaut du precedent","Repartir des requetes sur N serveurs sonne comme un one-liner : choisir un serveur, envoyer la requete. Puis un backend est plus lent, ou plus gros, ou tient une session, et le choix naif s'effondre. On parcourt les algorithmes classiques comme une chaine ou chacun existe pour reparer l'angle mort du precedent : round robin, pondere, least connections, power of two choices, et consistent hashing, en Go, jusqu'a la panne que tous les tutos oublient.","2026-07-20",[771,772,773,774],"Load-Balancing","Go","Distributed-Systems","Resilience",[776,777,404],"backend","resilience",{"path":779,"title":780,"description":781,"date":782,"tags":783,"topics":789},"\u002Fsecurity\u002Fauthz\u002Frbac-to-rebac.fr","De RBAC a ReBAC : migrer un systeme de roles vers OpenFGA sans coupure","Les roles marchent, jusqu'au jour ou quelqu'un dit 'partage juste ce document avec juste cette personne'. Ce jour-la, RBAC atteint ses limites. Voici la migration pratique : mapper les tables de roles vers des tuples de relation, faire tourner OpenFGA en shadow a cote de vos controles SQL, backfiller sans risque, puis seulement debloquer le partage par objet et la hierarchie que les roles n'ont jamais pu offrir. Avec les pieges dont personne ne parle.","2026-07-19",[784,785,786,787,788],"Authorization","ReBAC","RBAC","OpenFGA","Migration",[790,776,404],"authz",{"path":792,"title":793,"description":794,"date":795,"tags":796,"topics":798},"\u002Fsecurity\u002Fauthz\u002Fzanzibar-explained.fr","Zanzibar demystifie : comment Google repond a 'cet utilisateur a-t-il le droit ?'","L'autorisation ressemble a un if d'une ligne, jusqu'a ce qu'on l'execute dix millions de fois par seconde sur tous les produits de Google. Zanzibar est le systeme qui a rendu cette question rapide, coherente et globale. On part du controle de permission naif pour arriver au controle d'acces base sur les relations, au modele de tuples, a la coherence avec les zookies, et aux heritiers open source comme OpenFGA que vous pouvez utiliser des aujourd'hui.","2026-07-18",[784,785,797,773,787],"Security",[790,776,404],1784806165900]