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 :

  • Repository → Pull, Push, List
  • Artifact → List, Read
  • Tag → List

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✯