Aller au contenu

Comptes robots

Un compte robot est un identifiant automatisé, dédié à un projet, permettant à des outils (pipelines CI/CD, scripts, serveurs de déploiement…) de pull et/ou push des images sans utiliser votre compte personnel.

Pourquoi utiliser un compte robot ?

  • Sécurité : on accorde au robot uniquement les permissions strictement nécessaires (par ex. pull seul).
  • Indépendance : le robot ne dépend pas de votre session SSO ni de votre CLI secret personnel, qui peut changer.
  • Révocabilité : on peut désactiver ou supprimer un robot sans impacter votre compte.

C'est la méthode recommandée pour l'intégration GitLab CI/CD.

Créer un compte robot

Il faut être Maintainer ou Project Admin du projet.

  1. Ouvrez votre projet > onglet Robot Accounts
  2. Cliquez sur NEW ROBOT ACCOUNT
  3. Renseignez :
    • un nom (ex. gitlab-ci) et une description facultative
    • une date d'expiration (ou Never Expired)
    • les permissions (voir ci-dessous)
  4. Validez

Création d'un compte robot

Choisir les permissions

Les permissions sont accordées par ressource (Repository, Artifact, Tag, Scan…) et par action (Pull, Push, List, Read…). N'accordez au robot que ce dont il a réellement besoin.

Besoin Ressource → Action à cocher
Récupérer des images (docker pull) Repository → Pull
Pousser des images (docker push) Repository → Push (+ Pull)
Lister les dépôts Repository → List
Lister et lire les artefacts Artifact → List + Artifact → Read
Lister les tags Tag → List

Push implique Pull

La permission Push Repository doit toujours être accompagnée de la permission Pull Repository.

Robot pour un pipeline GitLab

En général, un même robot sert à la fois à pull/push dans le pipeline et à alimenter la vue Harbor Registry de l'intégration GitLab. Accordez-lui dans ce cas :

  • RepositoryPull, Push, List
  • ArtifactList, Read
  • TagList

Les actions List/Read sont distinctes de Pull/Push : un robot qui peut pousser des images ne peut pas pour autant lister le contenu du projet tant que ces permissions ne sont pas explicitement cochées.

Nom du robot

Le compte robot est nommé selon le schéma :

robot$<projet>+<nom>

Par exemple, un robot gitlab-ci dans le projet mon-projet aura pour identifiant robot$mon-projet+ci.

Récupérer le secret

À la création, Harbor affiche une seule fois le secret du robot.

Copiez le secret immédiatement

Harbor ne stocke pas le secret en clair : il est impossible de le récupérer ultérieurement. Copiez-le (ou téléchargez-le) et conservez-le dans un endroit sûr (gestionnaire de secrets, variable CI/CD masquée…). En cas de perte, régénérez-le (bouton > Refresh Secret).

Création d'un compte robot

Utiliser un compte robot

L'utilisation est identique à un docker login classique, avec l'identifiant du robot et son secret :

docker login registry.isima.fr -u 'robot$mon-projet+gitlab-ci' -p '<SECRET_DU_ROBOT>'

En script ou en CI

Passez le secret via l'entrée standard plutôt qu'en argument :

echo "$ROBOT_SECRET" | docker login registry.isima.fr -u 'robot$mon-projet+gitlab-ci' --password-stdin

Attention au caractère $ dans le nom du robot : entourez-le de guillemets simples pour éviter qu'il soit interprété par le shell.

Gérer les comptes robots

Depuis l'onglet Robot Accounts, vous pouvez à tout moment :

  • Désactiver / réactiver un robot
  • Modifier ses permissions ou son expiration
  • Régénérer son secret (Refresh Secret) — l'ancien secret est alors invalidé
  • Supprimer le robot

Pour aller plus loin