Passer au contenu principal

Gérer les utilisateurs et les rôles Harbor

Le service managé Container Registry (Harbor) fournit un compte administrateur lors de la création. Pour une gestion fine des accès, créez des utilisateurs supplémentaires et configurez les permissions par projet.

note

L'API Numspot permet uniquement de gérer le mot de passe administrateur. La création d'utilisateurs et la gestion des permissions s'effectuent via l'interface Harbor ou l'API Harbor.

Se connecter à Harbor

Avant de gérer les utilisateurs, connectez-vous à l'interface Harbor :

  1. Récupérez le mot de passe administrateur (voir Récupérer le mot de passe) ;
  2. Accédez à https://registry-{registryId}.hcp.cloudgouv-eu-west-1.numspot.com ;
  3. Connectez-vous avec admin et le mot de passe.

Types d'utilisateurs

Administrateur système

  • Accès complet à toutes les fonctions ;
  • Gestion des utilisateurs, projets et configuration système ;
  • Accès à tous les projets.

Utilisateur standard

  • Accès aux projets selon les permissions attribuées ;
  • Opérations push/pull selon le rôle dans le projet.

Compte robot

  • Utilisateur pour l'automatisation (CI/CD, Kubernetes) ;
  • Permissions définies par projet ;
  • Secret token au lieu de mot de passe.

Pour plus de détails sur les comptes robot, consultez Comptes robot.

Créer un utilisateur

Via l'interface Harbor

  1. Connectez-vous en tant qu'administrateur ;
  2. Accédez à AdministrationUsers ;
  3. Cliquez sur New User ;
  4. Renseignez les champs :
ChampDescription
UsernameNom d'utilisateur unique
EmailAdresse email
Real NameNom complet (optionnel)
PasswordMot de passe
Confirm PasswordConfirmation du mot de passe
CommentsCommentaires (optionnel)
  1. Cliquez sur OK.

Via API

curl -X POST "https://registry-{registryId}.hcp.cloudgouv-eu-west-1.numspot.com/api/v2.0/users" \
-u "admin:{password}" \
-H "Content-Type: application/json" \
-d '{
"username": "dev-user",
"email": "dev@example.com",
"realname": "Developer User",
"password": "SecurePassword123!",
"comment": "Developer account"
}'

Gérer les projets

Créer un projet

Via l'interface Harbor

  1. Cliquez sur New Project ;
  2. Renseignez :
ChampDescription
Project NameNom du projet
Access LevelPublic ou Private
QuotaLimite de stockage (optionnel)
  1. Cliquez sur OK.

Via API

curl -X POST "https://registry-{registryId}.hcp.cloudgouv-eu-west-1.numspot.com/api/v2.0/projects" \
-u "admin:{password}" \
-H "Content-Type: application/json" \
-d '{
"project_name": "my-project",
"public": false,
"metadata": {
"public": "false"
}
}'

Lister les projets

curl -X GET "https://registry-{registryId}.hcp.cloudgouv-eu-west-1.numspot.com/api/v2.0/projects" \
-u "admin:{password}"

Rôles et permissions

Niveaux de rôle

RôlePermissions
GuestLire les images et les métadonnées
DeveloperPush/Pull des images, lire les logs
MasterGérer les membres, configurer le projet, push/pull
AdminAdministration complète du projet
Limited GuestLire les images dans certains dépôts uniquement

Attribuer un rôle à un utilisateur

Via l'interface Harbor

  1. Accédez au projet ;
  2. Cliquez sur Members ;
  3. Cliquez sur Add User ;
  4. Entrez le nom d'utilisateur ou l'email ;
  5. Sélectionnez le rôle ;
  6. Cliquez sur OK.

Via API

curl -X POST "https://registry-{registryId}.hcp.cloudgouv-eu-west-1.numspot.com/api/v2.0/projects/{project_id}/members" \
-u "admin:{password}" \
-H "Content-Type: application/json" \
-d '{
"role_id": 2,
"member_user": {
"username": "dev-user"
}
}'
role_idRôle
1Limited Guest
2Guest
3Developer
4Master
5Admin

Modifier un utilisateur

Modifier les informations

Via l'interface Harbor

  1. Accédez à AdministrationUsers ;
  2. Sélectionnez l'utilisateur ;
  3. Cliquez sur Edit ;
  4. Modifiez les informations ;
  5. Cliquez sur OK.

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 '{
"email": "new-email@example.com",
"realname": "New Name"
}'

Changer le mot de passe

Via l'interface Harbor

  1. Accédez à AdministrationUsers ;
  2. Sélectionnez l'utilisateur ;
  3. Cliquez sur Change Password ;
  4. Entrez le nouveau mot de passe.

Via API

curl -X PUT "https://registry-{registryId}.hcp.cloudgouv-eu-west-1.numspot.com/api/v2.0/users/{user_id}/password" \
-u "admin:{password}" \
-H "Content-Type: application/json" \
-d '{
"old_password": "{old_password}",
"new_password": "{new_password}"
}'

Définir un administrateur

Pour accorder ou révoquer les privilèges administrateur :

curl -X PUT "https://registry-{registryId}.hcp.cloudgouv-eu-west-1.numspot.com/api/v2.0/users/{user_id}/sysadmin" \
-u "admin:{password}" \
-H "Content-Type: application/json" \
-d '{
"sysadmin_flag": true
}'

Gérer les permissions

Lister les membres d'un projet

Via l'interface Harbor

  1. Accédez au projet ;
  2. Cliquez sur Members.

Via API

curl -X GET "https://registry-{registryId}.hcp.cloudgouv-eu-west-1.numspot.com/api/v2.0/projects/{project_id}/members" \
-u "admin:{password}"

Modifier le rôle d'un membre

Via l'interface Harbor

  1. Accédez au projet → Members ;
  2. Sélectionnez le membre ;
  3. Changez le rôle ;
  4. Cliquez sur OK.

Via API

curl -X PUT "https://registry-{registryId}.hcp.cloudgouv-eu-west-1.numspot.com/api/v2.0/projects/{project_id}/members/{member_id}" \
-u "admin:{password}" \
-H "Content-Type: application/json" \
-d '{
"role_id": 3
}'

Retirer un membre d'un projet

Via l'interface Harbor

  1. Accédez au projet → Members ;
  2. Sélectionnez le membre ;
  3. Cliquez sur Delete.

Via API

curl -X DELETE "https://registry-{registryId}.hcp.cloudgouv-eu-west-1.numspot.com/api/v2.0/projects/{project_id}/members/{member_id}" \
-u "admin:{password}"

Désactiver ou supprimer un utilisateur

Désactiver un utilisateur

La désactivation empêche temporairement la connexion :

Via l'interface Harbor

  1. Accédez à AdministrationUsers ;
  2. Sélectionnez l'utilisateur ;
  3. 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
}'

Réactiver un utilisateur

Pour réactiver l'accès :

Via l'interface Harbor

  1. Accédez à AdministrationUsers ;
  2. Sélectionnez l'utilisateur désactivé ;
  3. Cliquez sur Enable.

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": false
}'

Supprimer un utilisateur

avertissement

La suppression est irréversible. L'historique des opérations de l'utilisateur est conservé.

Via l'interface Harbor

  1. Accédez à AdministrationUsers ;
  2. Sélectionnez l'utilisateur ;
  3. Cliquez sur Delete ;
  4. Confirmez la suppression.

Via API

curl -X DELETE "https://registry-{registryId}.hcp.cloudgouv-eu-west-1.numspot.com/api/v2.0/users/{user_id}" \
-u "admin:{password}"

Audit des accès

Lister tous les utilisateurs

curl -X GET "https://registry-{registryId}.hcp.cloudgouv-eu-west-1.numspot.com/api/v2.0/users" \
-u "admin:{password}"

Lister les administrateurs système

curl -X GET "https://registry-{registryId}.hcp.cloudgouv-eu-west-1.numspot.com/api/v2.0/users" \
-u "admin:{password}" | jq '.[] | select(.sysadmin_flag == true)'

Exporter les permissions

#!/bin/bash
REGISTRY="registry-{registryId}.hcp.cloudgouv-eu-west-1.numspot.com"
AUTH="admin:password"

echo "=== Export des permissions Harbor ==="
echo ""
echo "Projets et membres :"

for project in $(curl -s -X GET "https://$REGISTRY/api/v2.0/projects" -u "$AUTH" | jq -r '.[] | @base64'); do
project_json=$(echo $project | base64 --decode)
project_id=$(echo $project_json | jq -r '.project_id')
project_name=$(echo $project_json | jq -r '.name')

echo ""
echo "Projet: $project_name (ID: $project_id)"
curl -s -X GET "https://$REGISTRY/api/v2.0/projects/$project_id/members" -u "$AUTH" | jq '.[] | {username: .entity_name, role_id: .role_id, role_name: .role_name}'
done

Vérification des accès sensibles

  • Projets publics : Quels projets sont accessibles publiquement ?
  • Administrateurs : Qui a les droits admin système ?
  • Comptes robot actifs : Quels comptes robot sont utilisés ?

Bonnes pratiques

Principe du moindre privilège

  • Accordez les permissions minimales nécessaires ;
  • Utilisez le rôle Guest pour les utilisateurs en lecture seule ;
  • Limitez les rôles Admin et Master.

Organisation des projets

Type de projetPermissions recommandées
ProductionRestricted - Master/Admin uniquement
StagingDeveloper pour l'équipe de dev
PublicDeveloper pour push, accès public pour pull

Rotation des identifiants

  • Changez régulièrement les mots de passe des utilisateurs ;
  • Rafraîchissez les secrets des comptes robot ;
  • Révoquez les accès inutilisés.

Audit régulier

  • Revue mensuelle des accès aux projets sensibles ;
  • Suppression des comptes inactifs ;
  • Vérification des comptes robot expirés.

Limitations

ActionSupport
Récupérer le mot de passe adminVia l'API Numspot
Créer des utilisateursVia Harbor UI ou API Harbor
Gérer les permissionsVia Harbor UI ou API Harbor
Créer des projetsVia Harbor UI ou API Harbor
Configurer les quotasVia Harbor UI ou API Harbor
astuce

Automatisez la gestion des utilisateurs avec des scripts utilisant l'API Harbor. Intégrez la gestion des accès dans vos processus de provisioning des environnements.