TL; DR - comment exécuter un miroir de registre docker (potentiellement non sécurisé) et faire confiance au contenu?Confiance dans le contenu du docker miroir
J'ai une série de périphériques exécutant des conteneurs docker sur un réseau fermé sans accès à Internet. Je suis en mesure d'attacher temporairement un ordinateur portable qui a déjà eu accès à Internet sur le réseau. L'objectif final est de mettre à jour les images de conteneur de chacun de ces périphériques sont en cours d'exécution.
je peux obtenir ce travail, en principe, par:
- Tirer à partir d'un registre Internet (hub Docker ou privé) à l'ordinateur portable.
- Exécution d'un registre sur l'ordinateur portable.
Poussant à ce registre avec
docker tag myorgname/trusttest:latest laptophostname:80/myorgname/trusttest:latest docker push laptophostname:80/myorgname/trusttest:latest
- Débranchement l'ordinateur portable de l'Internet et la connexion au réseau fermé.
Raconter les appareils à faire un
docker pull laptophostname:80/myorgname/trusttest:latest docker tag laptophostname:80/myorgname/trusttest:latest myorgname/trusttest:latest
et redémarrer leurs conteneurs avec la nouvelle image (comment je fais cela n'est pas particulièrement pertinent, disons simplement que je peux communiquer laptophostname
pour eux et ils fais le reste).
Ce qui est vraiment important, c'est que je l'utilise avec Docker Content Trust (notaire). Sinon, n'importe qui pourrait simplement se connecter au réseau et dire aux périphériques de commencer à exécuter du code arbitraire. Je peux également utiliser un serveur Notary sur l'ordinateur portable, et cela fonctionne bien, sauf que lorsque j'appuie l'image la plus récente de mon docker local sur mon ordinateur portable (étape 3 ci-dessus), il me demande de nouvelles clés de signature, c'est-à-dire qu'il donne au conteneur de nouvelles informations de confiance au lieu de simplement copier l'approbation créée par le développeur d'origine.
Pour le moment, j'ai le contrôle sur la machine utilisée pour faire la mise à jour (par exemple l'ordinateur portable) mais dans le futur cela peut ne pas être le cas, donc je ne veux pas de clé développeur. Notaire annonce que les miroirs non sécurisés sont un cas d'utilisation, alors comment puis-je le faire fonctionner avec docker?
EDIT
Cela peut ou peut ne pas être pertinent, mais l'idée est qu'un client achète un ou plusieurs de ces dispositifs à la fois et les ajoute au réseau en plusieurs étapes. J'ai besoin d'un moyen de fournir des mises à jour logicielles signées, d'où le plan original d'écrire une application pour agir comme un miroir de registre. Sans confiance dans le contenu, il serait facile de tromper les appareils pour exécuter des images.
BTW - notre Markdown n'est pas GitHub-aromatisé, donc triple-backticks ne formateront pas le contenu différemment que les simples (ils seulement la différence est que l'on peut utiliser des backticks simples littéraux en leur sein). –