Zone des instances de provider : celle du consommateur, plus de zone default fictive #2
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Constat
Un service qui ne déclare pas de zone, dont les providers livrés (
providers/postgresql.loaf,providers/redis.loaf), est placé dans une zonedefaultmême quand les patrons de la stack ne la définissent pas :Flows.zone_ofen fabrique une, de niveaudefault. Les flux, les règles de pare-feu et le placement (hamac.lp,zone_of/2) raisonnent alors sur une zone hors du treillis, alors que la spécification (manifest-spec.typ, « Zone et flux ») demande E042 pour une zone que les patrons ne définissent pas.Exemple : dans
examples/hr-stack,hr_api(zonerh) consomme une instance depostgresql, qui se retrouve en zonedefault.Contrainte du treillis
Une instance de provider contient les données de son consommateur. Dans le modèle Bell-LaPadula, elle porte donc exactement l'étiquette du consommateur (même niveau, mêmes catégories) : plus sensible, le consommateur ne pourrait plus la lire (lecture vers le haut, E040) ; moins sensible, les données descendraient vers une zone moins protégée. Hamac crée une instance par consommation, ce qui permet de respecter cette règle.
Proposition
default(E042 sinon), comme le dit déjà la spécification.hamac0.3.0) :data_zone namedans le bloczoned'un patron, pour les architectures en tiers (base dans un segment de données séparé par sa propre frontière). La zone de données doit porter la même étiquette que la zone (règle::errordu vocabulaire).hamac0.3.0) :zone nameà côté deprovider, limité à une zone de même étiquette que le consommateur.Les points 1 et 2 ne changent pas le vocabulaire ; 3 et 4 font passer le module
hamacen 0.3.0 et demandent la mise à jour de la spécification (« Patrons », « Stack », catalogue).