Permission de monter à bord ? Ship : le registry docker apprivoisé.

Si vous avez déjà opéré un registre Docker vous avez certainement été confronté à son extrême simplicité : un dépôt d'image. Pour l'utiliser, dans un contexte "entreprise", nous avons besoin de contrôler les accès au registre et à ses différents dépôts.

Permission de monter à bord ? Ship : le registry docker apprivoisé.

Il existe quelques autres solutions :
-  utiliser celui de GitLab, mais c'est compliqué de mélanger GitLab et un registry, les utilisateurs cibles ne sont pas forcément les mêmes.
-  envisager http://port.us.org/, mais bien que soutenu par Suse, le projet a été abandonné.
-  déployer https://goharbor.io/, mais pour nous qui aimons les outils simples c'était trop "usine à gaz".

Ship, la permission de monter à bord.

Dans notre métier, nous avons besoin de vous distribuer des images, celles de nos programmes "on-premises" ou les applications que nous développons pour vous.

Certainement une problématique que vous avez aussi en interne.

Cela nous a amenés à développer Ship, un outil simple et efficace, pour la gestion d'un Registry Docker en mode entreprise.

Public/privé

La première utilité de Ship est de permettre un accès public/privé aux images. Cela permet de rendre disponibles facilement les images de base et d'utiliser un :

FROM registry.educ.cloud/base-image

Les comptes globaux

Ils permettent de donner un accès à tous les dépôts du registre avec les droits suivants : push, pull et delete.
Les comptes globaux permettent aussi de définir des comptes projets. Par exemple si nous avons les dépôts sous la forme projet/image :
- guest/client
- guest/server
Nous pouvons définir un utilisateur :
- login:hashpassword@guest/*:pull,push

Les comptes de dépôts

Ils permettent de donner accès à un dépôt unique du registre avec les droits suivants : push, pull et delete.

Connexion au registre et authentification

Un registre docker : Docker Registry V2 propose plusieurs modes d'authentification dont un nommé token. Quand ce mode est activé, pour chaque requête effectuée au registre, celui-ci vérifie la présence et la validité d'un token d'autorisation, grâce à un certificat. S'il est absent ou invalide, il demande au client de s'en procurer un auprès du serveur de token : Ship !

Si le dépôt demandé est public, Ship fournit un token au client pour ce dépôt et le client l'utilise pour obtenir l'accès au dépôt (public = pull uniquement).

Si le dépôt demandé est privé, Ship s'inquiète de savoir si l'utilisateur est authentifié, pour cela il vérifie la présence d'un token dans la demande de l'utilisateur. Si tel est le cas, il vérifie les droits d'accès de l'utilisateur au dépôt demandé et distribue ou non un token d'autorisation.

Si l'utilisateur n'est pas authentifié, il lui est demandé de se connecter à l'aide d'un couple login/mot de passe créé dans Ship pour un compte global ou de dépôt.

Comment utiliser Ship ?

Si vous êtes un établissement du supérieur, vous pouvez GRATUITEMENT utiliser Ship en mode SaaS depuis https://ship.educ.cloud.
Il suffit de nous fournir le nom de votre établissement et un mail de contact. Afin que nous puissions créer votre organisation et générer les clés de chiffrement, notamment le certificat qui permettra à votre registre de communiquer avec Ship.

Si vous avez des besoins particuliers : "on-premises", adaptation, n'hésitez pas à nous contacter : contact@educ.cloud