Sécuriser l'authentification Harbor
Le service managé Container Registry (Harbor) intègre des mécanismes de sécurité pour protéger l'accès aux images et aux projets. Cette page présente les bonnes pratiques pour sécuriser l'authentification, notamment dans un contexte de conformité SecNumCloud.
Connexions sécurisées TLS
Toutes les communications avec Harbor sont chiffrées avec TLS (Transport Layer Security).
Vérifier le chiffrement TLS
# Vérifier que le registry utilise HTTPS
curl -v https://registry-{registryId}.hcp.cloudgouv-eu-west-1.numspot.com/v2/
Docker avec TLS
Docker utilise automatiquement TLS pour les connexions HTTPS :
docker login registry-{registryId}.hcp.cloudgouv-eu-west-1.numspot.com
Authentification forte et conformité SecNumCloud
Pour répondre aux exigences SecNumCloud en matière d'authentification forte, combinez plusieurs couches de sécurité.
Architecture multi-facteurs recommandée
| Facteur | Mécanisme | Protection |
|---|---|---|
| Ce que vous savez | Mot de passe admin ou token robot | Authentification Harbor |
| Ce que vous possédez | Accès VPN | Couche réseau |
| Ce que vous êtes | Contrôle d'accès réseau (IP, VPC) | Périmètre de sécurité |
Configuration recommandée pour environnements sensibles
-
Accès via réseau privé : Connectez-vous au registry via un VPN ou un VPC (Virtual Private Cloud) ;
-
Restriction des IP : Limitez l'accès aux plages d'adresses IP autorisées ;
-
Utilisation de comptes robot : Préférez les comptes robot aux identifiants admin pour l'automatisation.
Authentification multi-facteurs (MFA)
Harbor ne dispose pas de MFA natif configurable via l'API Numspot. Pour implémenter une authentification multi-facteurs, utilisez une architecture en couches.
Approche MFA recommandée
| Couche | Mécanisme | Facteur |
|---|---|---|
| Couche 1 | Mot de passe ou token robot | Ce que vous savez |
| Couche 2 | VPN avec MFA | Ce que vous possédez |
| Couche 3 | Certificat client | Ce que vous possédez |
| Couche 4 | Restriction IP/VPC | Ce que vous êtes |
Configuration MFA via bastion
Pour implémenter le MFA, déployez une architecture sécurisée :
-
Bastion avec MFA :
- Déployez un bastion avec authentification forte (TOTP, clé hardware) ;
- Configurez l'accès au registry uniquement via le bastion.
-
Accès via VPN avec MFA :
- Configurez un VPN avec authentification MFA ;
- Limitez l'accès au registry aux clients connectés au VPN.
Architecture MFA type
[Utilisateur/Docker]
→ [VPN avec MFA]
→ [Bastion/Proxy]
→ [Container Registry Harbor]
Configuration Docker avec proxy
Pour accéder au registry via un proxy avec MFA :
# Configurer Docker pour utiliser le proxy
export HTTP_PROXY=http://bastion:3128
export HTTPS_PROXY=http://bastion:3128
# Connexion au registry
docker login registry-{registryId}.hcp.cloudgouv-eu-west-1.numspot.com
L'authentification multi-facteurs native Harbor n'est pas actuellement configurable via l'API Numspot. Pour une authentification forte, utilisez le contrôle d'accès au niveau réseau (VPN, bastion).
Politique de mots de passe
Mot de passe administrateur
Le mot de passe administrateur est généré automatiquement lors de la création du Container Registry.
Pour récupérer le mot de passe, consultez Récupérer le mot de passe.
Bonnes pratiques
- Ne partagez jamais le mot de passe administrateur ;
- Utilisez les comptes robot pour l'automatisation ;
- Changez le mot de passe régulièrement via l'interface Harbor.
Créer un mot de passe robuste
Pour les utilisateurs additionnels créés dans Harbor :
- Longueur minimale de 12 caractères ;
- Combinaison de lettres majuscules, minuscules, chiffres et caractères spéciaux ;
- Exclusion des mots du dictionnaire et des informations personnelles.
Gestion des utilisateurs Harbor
Types d'utilisateurs
| Type | Description | Cas d'usage |
|---|---|---|
| Administrateur | Accès complet | Administration système |
| Utilisateur | Accès aux projets | Développeurs, ops |
| Compte robot | Automatisation | CI/CD, déploiements |
Créer un utilisateur (via interface Harbor)
- Connectez-vous à l'interface Harbor ;
- Accédez à Administration → Users ;
- Cliquez sur New User ;
- Renseignez les informations :
- Username
- Password
- Cliquez sur OK.
Pour plus de détails sur les comptes robot, consultez Comptes robot.
Gestion des permissions par projet
Niveaux de permission
| Role | Permissions |
|---|---|
| Guest | Lecture seule sur les images |
| Developer | Push/Pull des images |
| Master | Gestion des membres, configuration du projet |
| Admin | Administration complète du projet |
Attribuer des permissions
- Accédez au projet ;
- Cliquez sur Members ;
- Ajoutez un utilisateur ou groupe ;
- Sélectionnez le rôle approprié.
Audit des connexions
Harbor journalise les événements d'authentification et les opérations sur les images.
Événements journalisés
| Événement | Description |
|---|---|
| Connexion réussie | Authentification utilisateur |
| Échec d'authentification | Tentatives avec identifiants invalides |
| Push/Pull d'images | Opérations sur les dépôts |
| Création/Suppression | Opérations sur les projets et ressources |
Consulter les logs d'audit
- Connectez-vous en tant qu'administrateur ;
- Accédez à Administration → Audit Log ;
- Filtrez par :
- Utilisateur
- Opération
- Période
- Projet
Via API
curl -X GET "https://registry-{registryId}.hcp.cloudgouv-eu-west-1.numspot.com/api/v2.0/logs" \
-u "admin:{password}"
Protection contre les attaques
Limitation des tentatives
Harbor applique des protections contre les attaques par force brute :
- Verrouillage temporaire après échecs répétés ;
- Rate limiting sur les opérations sensibles.
Harbor n'applique pas de blocage automatique configurable après un nombre défini d'échecs de connexion. Pour un blocage automatique, utilisez un pare-feu applicatif.
Détection des anomalies
Surveillez les comportements suspects dans les logs d'audit :
- Multiples échecs de connexion ;
- Push d'images depuis des IP inhabituelles ;
- Tentatives d'accès à des projets non autorisés.
Bloquer un utilisateur en cas d'utilisation abusive
Si vous détectez une activité suspecte ou un compte compromis, vous pouvez bloquer immédiatement l'accès.
Désactiver un utilisateur
Via l'interface Harbor
- Accédez à Administration → Users ;
- Sélectionnez l'utilisateur ;
- Cliquez sur Disable.
Via API
curl -X PUT "https://registry-{registryId}.hcp.cloudgouv-eu-west-1.numspot.com/api/v2.0/users/{user_id}" \
-u "admin:{password}" \
-H "Content-Type: application/json" \
-d '{
"disabled": true
}'
Désactiver un compte robot
Via l'interface Harbor
- Accédez au projet → Robots ;
- Sélectionnez le compte robot ;
- Cliquez sur Disable.
Via API
curl -X PUT "https://registry-{registryId}.hcp.cloudgouv-eu-west-1.numspot.com/api/v2.0/projects/{project_id}/robots/{robot_id}" \
-u "admin:{password}" \
-H "Content-Type: application/json" \
-d '{
"disable": true
}'
Révoquer les permissions d'un utilisateur
- Accédez au projet ;
- Cliquez sur Members ;
- Supprimez l'utilisateur du projet.
Vérifier le statut d'un utilisateur
curl -X GET "https://registry-{registryId}.hcp.cloudgouv-eu-west-1.numspot.com/api/v2.0/users/{user_id}" \
-u "admin:{password}"