Chiffrement des images de docker (de bout en bout); transport sur des canaux hors ligne

8

Nous développons et construisons des images de docker dans notre intranet et devons les déployer sur plusieurs hôtes qui nous appartiennent (développeurs, tests internes, tests externes, etc.). Certains d'entre eux sont sur notre intranet, d'autres sont accessibles pour des tiers sur Internet.

Le déploiement final se fait à l'intérieur de l'intranet du client sur plusieurs nœuds (production, différentes étapes de test). Ceux-ci sont derrière des pare-feu qui ne leur permettent pas régulièrement d'accéder à des choses en dehors de leur intranet, c'est-à-dire que certains d'entre eux peuvent être autorisés à accéder à un registre externe pour le déploiement, d'autres ne le peuvent pas et les images doivent être livrées manuellement via un téléchargement de logiciel obscur outil.

Je cherche un moyen d'avoir un registre sur Internet (éventuellement géré par nous-mêmes sur une machine virtuelle, de préférence pas) qui permet de stocker les images cryptées (de préférence GPG ou similaire, pas un simple mot de passe). Mais alors être capable de livrer plutôt simplement "la moitié" de la substance via un mécanisme de téléchargement manuellement. Le client est très paranoïaque, il est donc très important de maintenir le chiffrement de bout en bout.

Y a-t-il un outil qui me vient à l'esprit, qui est parfaitement capable de le gérer? Une solution consisterait à mettre en miroir le registre complet dans les locaux du client sur un hôte dédié, en conservant la partie de chiffrement intacte.

Une solution "standard" serait formidable, je serais réticent à pirater quelque chose ensemble s'il y a déjà quelque chose de maigre / léger / établi / stable.

EDIT (+ modifier le titre): Un schéma d'autorisation étendu comme celui proposé par Portus est un bon début, mais je recherche idéalement un cryptage de bout en bout des images réelles. Le client est ultra paranoïaque et ne fait que commencer avec Docker, les services basés sur le cloud, etc.

AnoE
la source
Merci, @ 030. Cette question que vous avez liée envisage de cacher les choses aux yeux des utilisateurs; ma question est de le cacher aux gens en cours de route (c'est-à-dire que je n'ai pas besoin de chiffrement à l'une ou l'autre extrémité, uniquement lors du transfert via un registre).
AnoE
D'accord. Donc, fondamentalement, vous recherchez SSL pour un registre de docker comme https pour un site Web?
030
@ 030, comme indiqué dans la question,I am looking for a way to have a registry [...] which allows the images to be stored encrypted (preferably GPG or similar, not a simple password).
AnoE

Réponses:

2

Google Container Registry est une option potentielle.

  1. Le registre est privé
  2. Les couches d'images sont stockées sur un compartiment Google Cloud Storage, qui est chiffré par Google (RSA) et peut être chiffré en plus avec une clé client (RSA)
  3. Le contrôle d'accès est granulaire jusqu'à chaque objet individuel stocké sur le compartiment GCS
  4. L'authentification côté client est appliquée via oauth2. Les clients configurent Docker pour utiliser le Google Cloud SDK en tant que gestionnaire d'informations d'identification
  5. Les images sont extraites via des connexions SSL

Le fait que le registre fasse partie de la plateforme cloud de Google signifie également que vous pouvez développer d'autres choses intéressantes. Par exemple, vous pouvez configurer une machine virtuelle pour servir de proxy inverse et configurer le pare-feu GCP pour autoriser uniquement 443 à partir d'un certain ensemble d'adresses IP (comme les bureaux de vos clients).

tazer84
la source
0

Jetez un œil à https://github.com/Senetas/crypto-cli

Il vous permet de crypter / décrypter des conteneurs lorsque vous poussez et tirez d'un dépôt public ou privé.

(Divulgation complète, je connais le gars qui l'a écrit)

Rubblesink
la source