Aller 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.

remarque

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://reg-{registryIdPrefix}.space-{spaceIdPrefix}.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 à Administration → Users ;
  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://reg-{registryIdPrefix}.space-{spaceIdPrefix}.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://reg-{registryIdPrefix}.space-{spaceIdPrefix}.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://reg-{registryIdPrefix}.space-{spaceIdPrefix}.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://reg-{registryIdPrefix}.space-{spaceIdPrefix}.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 à Administration → Users ;
  2. Sélectionnez l'utilisateur ;
  3. Cliquez sur Edit ;
  4. Modifiez les informations ;
  5. Cliquez sur OK.

Via API​

curl -X PUT "https://reg-{registryIdPrefix}.space-{spaceIdPrefix}.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 à Administration → Users ;
  2. Sélectionnez l'utilisateur ;
  3. Cliquez sur Change Password ;
  4. Entrez le nouveau mot de passe.

Via API​

curl -X PUT "https://reg-{registryIdPrefix}.space-{spaceIdPrefix}.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://reg-{registryIdPrefix}.space-{spaceIdPrefix}.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://reg-{registryIdPrefix}.space-{spaceIdPrefix}.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://reg-{registryIdPrefix}.space-{spaceIdPrefix}.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://reg-{registryIdPrefix}.space-{spaceIdPrefix}.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 à Administration → Users ;
  2. Sélectionnez l'utilisateur ;
  3. Cliquez sur Disable.

Via API​

curl -X PUT "https://reg-{registryIdPrefix}.space-{spaceIdPrefix}.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 à Administration → Users ;
  2. Sélectionnez l'utilisateur désactivé ;
  3. Cliquez sur Enable.

Via API​

curl -X PUT "https://reg-{registryIdPrefix}.space-{spaceIdPrefix}.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​

attention

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

Via l'interface Harbor​

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

Via API​

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

Audit des accès​

Utilisez l'API Harbor pour auditer les utilisateurs, les projets, les membres et les comptes robot.

Lister tous les utilisateurs

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

Lister les administrateurs système

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

Lister les projets

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

Lister les projets publics

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

Lister les membres d'un projet

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

Lister les comptes robot

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

Exporter les permissions par projet

#!/bin/bash
REGISTRY="reg-{registryIdPrefix}.space-{spaceIdPrefix}.hcp.cloudgouv-eu-west-1.numspot.com"
AUTH="admin:password"

echo "=== Export des permissions Harbor ==="
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érifier les accès sensibles

  • Projets publics : identifiez les projets avec public: true.
  • Administrateurs système : listez les utilisateurs avec sysadmin_flag == true.
  • Comptes robot actifs : vérifiez les comptes robot et leurs dates d'expiration.

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.