Harbor : registre d'artefacts cloud-native
Mise à jour :

Harbor s’est imposé comme le registre d’artefacts cloud-native de référence. Bien plus qu’un simple registre d’images de conteneurs, Harbor (version 2.14 en 2025) gère désormais les Helm charts, les SBOM (Software Bill of Materials) et même les modèles d’IA via l’intégration CloudNativeAI. Projet CNCF graduated, Harbor offre aux équipes DevSecOps une plateforme robuste pour le stockage, la distribution et la sécurisation des artefacts dans les pipelines CI/CD modernes.
Fonctionnalités d’Harbor
Harbor offre un ensemble complet de fonctionnalités pour la gestion sécurisée des artefacts cloud-native. Ces fonctionnalités répondent aux exigences des environnements DevSecOps modernes.
Gestion multi-artefacts
Harbor gère désormais bien plus que des images de conteneurs :
- Images de conteneurs : Docker, OCI, images multi-architectures
- Helm charts : stockage et distribution des charts Kubernetes
- SBOM (depuis v2.11) : génération et stockage des Software Bill of Materials pour la traçabilité et la conformité
- Artefacts IA/ML (depuis v2.13) : support CloudNativeAI (CNAI) pour stocker et versionner des modèles d’intelligence artificielle
Sécurité et scan de vulnérabilités
Harbor intègre Trivy comme scanner de vulnérabilités par défaut. Chaque artefact poussé peut être automatiquement scanné pour détecter les CVE connues. Les politiques de sécurité permettent de bloquer le pull d’images vulnérables.
Contrôle d’accès et authentification moderne
- RBAC : gestion fine des droits par projet, avec rôles personnalisables
- OIDC avec PKCE : intégration SSO moderne (Keycloak, Azure AD, Okta)
- LDAP/Active Directory : authentification d’entreprise
- Robot accounts : comptes de service pour les pipelines CI/CD
Réplication et haute disponibilité
Harbor supporte la réplication d’artefacts entre registres (push/pull), facilitant les architectures multi-datacenter et hybrid cloud. Les adaptateurs de réplication permettent de synchroniser avec d’autres registres (Docker Hub, GCR, ECR, ACR, Quay…).
Audit et conformité
Depuis les versions récentes, Harbor propose :
- Logs d’audit détaillés : suivi de toutes les actions (push, pull, delete)
- Content Trust : signature des images avec Notary
- Politiques de rétention : nettoyage automatique des anciens tags
- Quotas : limitation de l’espace de stockage par projet
Historique
Harbor a débuté comme un projet interne chez VMware, conçu pour répondre aux besoins spécifiques de gestion et de sécurité des images de conteneurs au sein de l’entreprise. À l’époque, les solutions existantes ne répondaient pas entièrement aux exigences de sécurité, de performance et de gestion à grande échelle. Harbor a été développé pour combler ce vide, offrant une plateforme robuste et sécurisée pour la gestion des images de conteneurs.
Au fil du temps, Harbor a gagné en popularité et en reconnaissance dans la communauté des développeurs et des administrateurs systèmes, principalement pour sa capacité à sécuriser efficacement les images de conteneurs. En réponse à cette demande croissante, VMware a décidé de rendre Harbor open source, permettant ainsi à une communauté plus large de contribuer au projet et de l’améliorer.
Ce passage à l’open source a marqué un tournant pour Harbor. Le projet a été adopté par la Cloud Native Computing Foundation (CNCF), un organisme qui soutient des projets clés dans l’écosystème des technologies cloud natives. L’inclusion d’Harbor dans le giron de la CNCF a renforcé sa crédibilité et sa visibilité, attirant encore plus de contributeurs et d’utilisateurs.
L’évolution d’Harbor a été marquée par plusieurs mises à jour majeures, qui ont introduit de nouvelles fonctionnalités et améliorations, telles que la gestion fine des accès, le scan des vulnérabilités, la réplication des images et la compatibilité avec d’autres outils et standards de l’écosystème cloud natif.
Aujourd’hui, Harbor est reconnu comme une solution de référence pour la gestion sécurisée des images de conteneurs. Son histoire témoigne de l’importance d’une communauté active et engagée dans le développement de solutions open source répondant aux besoins changeants des professionnels du DevOps et de la sécurité informatique.
Installation et Configuration d’Harbor
Harbor peut être installé de deux manières :
- Docker Compose : idéal pour les environnements de test ou les petites installations (VM, serveur dédié)
- Helm sur Kubernetes : recommandé pour la production et les environnements cloud-native
Prérequis système
Configuration matérielle et logicielle requise :
| Ressource | Minimum | Recommandé |
|---|---|---|
| CPU | 2 cores | 4 cores |
| RAM | 4 Go | 8 Go |
| Disque | 40 Go | 160 Go |
Logiciels requis :
- Docker Engine 20.10.10+ ou supérieur
- Docker Compose v1.18+ ou Docker Compose v2 (plugin docker-compose)
- OpenSSL (pour la génération de certificats)
Ports réseau à ouvrir :
| Port | Protocole | Usage |
|---|---|---|
| 443 | HTTPS | Portail Harbor et API (défaut) |
| 80 | HTTP | Redirection vers HTTPS |
| 4443 | HTTPS | Docker Content Trust (optionnel) |
Téléchargement et Installation
Téléchargez l’installeur depuis le dépôt officiel GitHub ↗. Deux options :
- Online installer : léger, télécharge les images depuis Docker Hub
- Offline installer : contient les images pré-construites (recommandé pour les environnements isolés)
# Télécharger Harbor v2.14.0cd /optwget https://github.com/goharbor/harbor/releases/download/v2.14.0/harbor-offline-installer-v2.14.0.tgz
# Vérifier l'intégrité (optionnel mais recommandé)wget https://github.com/goharbor/harbor/releases/download/v2.14.0/harbor-offline-installer-v2.14.0.tgz.ascgpg --keyserver hkps://keyserver.ubuntu.com --receive-keys 644FF454C0B4115Cgpg -v --keyserver hkps://keyserver.ubuntu.com --verify harbor-offline-installer-v2.14.0.tgz.asc
# Extraire l'archivetar xzvf harbor-offline-installer-v2.14.0.tgzcd harborConfiguration de Harbor
Copiez le template de configuration et éditez-le :
cp harbor.yml.tmpl harbor.ymlvi harbor.ymlParamètres essentiels à configurer dans harbor.yml :
# Configuration file of Harbor
# Nom d'hôte ou IP publique (jamais localhost)hostname: registry.example.com
# Configuration HTTPS (obligatoire en production)https: port: 443 certificate: /chemin/vers/cert.pem private_key: /chemin/vers/key.pem
# Mot de passe admin (à changer impérativement)harbor_admin_password: VotreMotDePasseSecurise
# Répertoire de stockage des donnéesdata_volume: /data
# Configuration de Trivy pour le scan de vulnérabilitéstrivy: ignore_unfixed: false security_check: vuln,config,secret skip_update: false insecure: falseLancement de l’Installation
Lancez le script d’installation avec l’option --with-trivy pour activer le
scan de vulnérabilités :
# Installation avec Trivy (recommandé)sudo ./install.sh --with-trivy
# Ou installation basique sans Trivysudo ./install.shLe script vérifie les prérequis, génère les fichiers de configuration et démarre les conteneurs Docker.
Une fois l’installation terminée, le message suivant s’affiche :
✔ ----Harbor has been installed and started successfully.----Vous pouvez accéder à l’interface web d’Harbor via https://registry.example.com
(ou l’URL configurée dans hostname).
Installation via Helm (Kubernetes)
Pour un déploiement sur Kubernetes, utilisez le chart Helm officiel :
# Ajouter le dépôt Helm Harborhelm repo add harbor https://helm.goharbor.iohelm repo update
# Installer Harbor avec persistence et ingresshelm install harbor harbor/harbor \ --namespace harbor \ --create-namespace \ --set expose.type=ingress \ --set expose.ingress.hosts.core=harbor.example.com \ --set expose.tls.enabled=true \ --set externalURL=https://harbor.example.com \ --set persistence.enabled=true \ --set trivy.enabled=trueConsultez la documentation Helm Harbor ↗ pour les options avancées (HA, stockage S3, Redis externe…).
Premier accès et configuration initiale
Lors du premier accès à Harbor, connectez-vous avec les identifiants par défaut :
- Utilisateur :
admin - Mot de passe :
Harbor12345

Dans les projets, créez le projet monprojet
Gestion des Images de Conteneurs avec Harbor
La gestion des images de conteneurs dans Harbor est un processus qui allie simplicité et sécurité. Pour illustrer cela, nous allons détailler l’intégration d’une image de conteneur simple, en commençant par la création de l’image avec un Dockerfile, puis son stockage dans Harbor.
Création d’une Image de Conteneur Simple
Dockerfile Basique: Commençons par créer un Dockerfile simple pour une application web basique. Voici un exemple de Dockerfile qui installe un serveur web Nginx.
# Utilisation d'une image de base NginxFROM nginx:alpine
# Copie d'un fichier HTML personnalisé dans le serveur webCOPY index.html /usr/share/nginx/html/
# Exposition du port 80EXPOSE 80index.html:
Créez un fichier index.html simple. Par exemple:
<!DOCTYPE html><html><head> <title>Bienvenue sur mon site web</title></head><body> <h1>Ceci est une page d'accueil servie par Nginx dans un conteneur Docker!</h1></body></html>Construire et Taguer l’Image
-
Construire l’Image: Ouvrez un terminal et naviguez vers le dossier contenant le Dockerfile et le fichier
index.html. Exécutez la commande suivante pour construire l’image :Terminal window docker build -t monserveurweb:0.1 . -
Taguer l’Image pour Harbor: Après la construction, taguez l’image pour votre registre Harbor.
Terminal window docker tag monserveurweb:0.1 registry.harbor.local/monprojet/monserveurweb:0.1
Pousser l’Image vers Harbor
-
Connexion à Harbor: Connectez-vous à votre registre Harbor en utilisant Docker CLI.
Terminal window docker login registry.harbor.local 10:38:18Username: adminPassword:WARNING! Your password will be stored unencrypted in /home/bob/.docker/config.json.Configure a credential helper to remove this warning. Seehttps://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin SucceededEntrez vos identifiants Harbor lorsque vous y êtes invité.
-
Pousser l’Image: Une fois connecté, poussez l’image vers Harbor.
Terminal window docker push registry.harbor.local/monprojet/monserveurweb:0.1The push refers to repository [registry.harbor.local/monprojet/monserveurweb]9bb0e6b909e4: Pusheda34b395c0ca3: Pushed5e728486380e: Pushedb968c967e155: Pushed92ef9174e989: Pushed28c7b3c0b176: Pushedfbed1f6990ee: Pusheddd731ddf52be: Pushed9fe9a137fd00: Pushed0.1: digest: sha256:aacd787ab58757a824fa0b50ccdf89a63a5ed159b33ecd2149bac089fd1d43f2 size: 2196
Gestion dans Harbor
Une fois l’image poussée vers Harbor :
- Scan automatique avec Trivy : Harbor utilise Trivy pour scanner l’image et détecter les vulnérabilités (CVE). Le scan peut être déclenché automatiquement à chaque push ou manuellement.
- Consultation des résultats : dans l’interface web, visualisez les tags, les métadonnées, le SBOM généré et les résultats du scan de sécurité.
- Politiques de sécurité : configurez des règles pour bloquer le pull d’images contenant des vulnérabilités critiques.
- Déploiement : utilisez l’image dans vos environnements en référençant son tag Harbor.

Harbor et la CI/CD
L’intégration d’Harbor dans les pipelines de CI/CD (Continuous Integration/Continuous Deployment) joue un rôle important dans l’automatisation et la sécurisation des processus de déploiement des applications conteneurisées.
Intégration avec les Outils de CI/CD
Harbor peut être intégré avec divers outils de CI/CD tels que Jenkins, GitLab CI et Github Actions. Cette intégration permet d’automatiser le processus de construction, de test et de déploiement des images de conteneurs.
- Automatisation du Pipeline: Dans un pipeline CI/CD, les images de conteneurs sont automatiquement construites et poussées vers Harbor à chaque commit dans le système de contrôle de version. Ceci assure que les images sont constamment mises à jour et prêtes pour le déploiement.
- Scans de Sécurité Automatisés: Lorsqu’une image est poussée vers Harbor, elle peut être automatiquement scannée pour détecter des vulnérabilités, garantissant ainsi que seules les images sécurisées sont déployées dans les environnements de production.
Exemple de Workflow CI/CD avec Harbor
- Développement et Commit: Un développeur fait des modifications au code source et effectue un commit dans le système de contrôle de version.
- Déclenchement du Pipeline CI: Le commit déclenche le pipeline CI, où le code est construit et testé. Si les tests réussissent, une image de conteneur est construite.
- Push vers Harbor: La nouvelle image est poussée vers Harbor, où elle est stockée dans le registre de conteneurs.
- Scannage des Vulnérabilités: Harbor scanne automatiquement l’image pour des vulnérabilités. Si des problèmes sont détectés, ils sont signalés pour correction.
- Déploiement: Une fois l’image approuvée et sécurisée, elle est automatiquement déployée dans l’environnement de production ou de test, selon le pipeline.
Conclusion
Harbor s’est imposé comme le registre d’artefacts cloud-native de référence pour les équipes DevSecOps. Au-delà du simple stockage d’images, il offre un écosystème complet : scan de vulnérabilités avec Trivy, génération de SBOM pour la traçabilité, support des artefacts IA/ML, et intégration native dans les pipelines CI/CD.
Son architecture modulaire et ses options de déploiement (Docker Compose ou Helm/Kubernetes) le rendent adaptable à tous les environnements, du lab au multi-datacenter en production.
Pour aller plus loin
Après avoir maîtrisé Harbor, complétez votre expertise :
- Scan de vulnérabilités : Approfondissez avec Trivy pour scanner images, IaC et SBOM
- Supply Chain : Signez vos images avec Cosign
- Orchestration : Déployez vos images avec Kubernetes
- CI/CD : Intégrez Harbor dans GitLab CI ou GitHub Actions
Ressources
| Ressource | Description |
|---|---|
| Site Officiel ↗ | Page projet Harbor |
| Documentation v2.14 ↗ | Documentation officielle |
| GitHub ↗ | Code source et releases |
| Helm Chart ↗ | Chart Helm officiel |