Comment l’isolation des conteneurs affecte-t-elle l’accès de Home Assistant aux ressources ?

Eva Wong est la rédactrice technique et bricoleuse résidente chez ZimaSpace. Geek depuis toujours, passionnée par les homelabs et les logiciels open source, elle se spécialise dans la traduction de concepts techniques complexes en guides accessibles et pratiques. Eva croit que l’auto-hébergement doit être amusant, pas intimidant. À travers ses tutoriels, elle donne à la communauté les moyens de démystifier les configurations matérielles, depuis la construction de leur premier NAS jusqu’à la maîtrise des conteneurs Docker.

L’isolation des conteneurs limite l’accès de Home Assistant aux ressources en exigeant des montages, des mappages de périphériques, des chemins réseau, des utilisateurs et des capacités explicitement définis de part et d’autre de la frontière avec l’hôte.

Un conteneur peut voir un chemin nommé /config tout en ignorant tous les autres répertoires de l’hôte, et il peut atteindre des périphériques IP ordinaires sans parvenir à découvrir les services multicast. Les radios USB, les adaptateurs Bluetooth, les ports série, les ports inférieurs à 1024 et les fichiers appartenant à l’hôte ajoutent des vérifications de permissions distinctes. L’isolation améliore donc le confinement, mais chaque ressource requise doit franchir une frontière configurée délibérément.

Les montages définissent les fichiers persistants présents à l’intérieur

Un conteneur dispose de sa propre vue du système de fichiers. Les montages bind et les volumes nommés exposent certaines données de l’hôte ; ainsi, un chemin de conteneur apparemment valide peut pointer vers un volume vide, un montage en lecture seule ou un autre répertoire de l’hôte que l’opérateur ne prévoit.

Une analyse d’un déploiement Docker relie l’organisation du stockage à la stratégie de sauvegarde, faisant du mappage du stockage du conteneur le premier contrat d’accès à vérifier avant de diagnostiquer la configuration de Home Assistant ou le comportement de la base de données.

La persistance dépend de la source montée, et non de l’apparence inscriptible de la couche du conteneur. La recréation d’un conteneur peut supprimer les modifications non montées, même si elles fonctionnaient lors de l’exécution précédente.

Les identifiants utilisateur et les bits de mode s’appliquent toujours à travers le montage

Le noyau de l’hôte évalue la propriété et les permissions des fichiers montés. Un utilisateur de conteneur identifié numériquement peut différer du nom du compte sur l’hôte, ce qui entraîne des échecs de lecture, la création de fichiers de remplacement appartenant à root ou une base de données qui s’ouvre dans une image mais pas dans une autre.

Une analyse de la propriété explique pourquoi des noms identiques ne suffisent pas et pourquoi le mappage numérique des UID et GID dépend de valeurs numériques d’UID et de GID partagées de part et d’autre de la frontière.

L’exécution en mode privilégié peut masquer la différence, mais elle étend l’autorité bien au-delà du fichier concerné. La solution la plus sûre consiste à aligner la propriété et à n’accorder que les répertoires et les opérations réellement nécessaires à Home Assistant.

Le mode réseau contrôle la découverte et l’accessibilité

Le réseau en mode bridge fournit au conteneur une interface isolée et des ports translatés. Le réseau en mode host partage la pile réseau de l’hôte, ce qui peut simplifier la découverte multicast, les protocoles broadcast et les rappels, mais réduit la séparation réseau et peut créer des conflits de ports.

Une discussion consacrée à Home Assistant et à l’évitement du mode host montre que la frontière de découverte du conteneur peut être recréée avec un routage explicite ou des relais dans certains environnements, même si tous les protocoles de découverte ne se comportent pas de la même manière.

Si le contrôle direct par IP fonctionne mais que la découverte automatique échoue, les frontières multicast ou broadcast sont probablement en cause. Si les deux échouent, le routage, le pare-feu, le DNS ou la sélection d’adresse constituent des pistes plus probables que la découverte seule.

Les périphériques et les fonctionnalités du noyau nécessitent une délégation explicite

Les radios série USB, le Bluetooth, le GPIO, l’accélération matérielle et les opérations réseau de bas niveau dépendent des nœuds de périphériques de l’hôte, des pilotes du noyau, des groupes et des capacités. Mapper un chemin de périphérique est nécessaire, mais peut ne pas suffire lorsque les permissions ou la politique cgroup refusent l’accès.

Un compte rendu de déploiement Kubernetes montre comment l’orchestration ajoute des contraintes de stockage, de réseau et de périphériques, illustrant le fait que les contraintes d’isolation en couches augmentent avec chaque niveau d’isolation.

Ce mécanisme s’arrête en cas de défaillance du matériel ou du pilote. Si l’hôte lui-même ne peut pas utiliser la radio ou le périphérique, modifier les privilèges du conteneur ne fait qu’obscurcir le problème initial ; vérifiez l’accès depuis l’hôte avant d’étendre les autorisations du conteneur.

Auditez l’accès de l’hôte au processus

Répertoriez chaque chemin, port, domaine multicast, périphérique, UID, GID, capacité et dépendance nécessaires. Pour chacun, testez d’abord l’accès depuis l’hôte, inspectez ensuite le mappage du conteneur, puis testez avec l’identité réelle du processus du conteneur.

Le compromis entre l’hôte et le bridge compare les réseaux host et bridge pour Home Assistant et définit la limite de compromis à prendre en compte pour la partie réseau de l’audit.

Conservez l’ensemble minimal de permissions permettant de réussir les tests de lecture-écriture de la configuration, de persistance de la base de données, de contrôle des périphériques locaux, de découverte, de redémarrage et de sauvegarde-restauration. N’ajoutez un montage, un périphérique, un groupe ou une capacité que lorsque le test précédent a démontré qu’il s’agit de la frontière manquante.

Centre Tech & IA

Plus à lire

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.