Principaux avantages
- Aucune consommation de licence : les comptes de service ne consomment ni licence utilisateur ni autre licence
- Clés API dédiées : identifiants sécurisés pour les flux de travail automatisés
- Attribution de l’utilisateur : possibilité d’attribuer les runs automatisés à des utilisateurs humains
- Prêt pour l’entreprise : conçu pour l’automatisation de Production à grande échelle
- Opérations déléguées : les comptes de service opèrent pour le compte de l’utilisateur ou de l’organisation qui les crée
Aperçu
- Limité à l’organisation : créés par les administrateurs de l’organisation, avec un accès à l’ensemble des Teams.
- À portée d’équipe : créés par les Administrateurs d’équipe, avec un accès limité à une équipe spécifique
- Pipelines CI/CD : journaliser automatiquement les runs d’entraînement de modèles depuis GitHub Actions, GitLab CI ou Jenkins
- Jobs planifiés : réentraînement nocturne de modèles, runs d’évaluation périodiques ou flux de travail de validation des données
- Surveillance de la production : journaliser les métriques d’inférence et les performances du modèle à partir des systèmes de production
- Notebooks Jupyter : notebooks partagés dans des environnements JupyterHub ou Google Colab
- Jobs Kubernetes : flux de travail automatisés exécutés dans des clusters K8s
- Airflow/Prefect/Dagster : outils d’orchestration de pipelines ML
Les comptes de service sont disponibles sur Cloud dédié, sur les instances autogérées avec une licence Enterprise, ainsi que pour les comptes entreprise sur le Cloud mutualisé.
Comptes de service limités à l’organisation
Créer un compte de service limité à l’organisation
- Connectez-vous à W&B, cliquez sur l’icône de votre profil, puis :
- Cloud dédié ou Autogéré : cliquez sur Tableau de bord de l’organisation, puis sur Comptes de service.
- Cloud mutualisé : cliquez sur Comptes de service.
- Cliquez sur Créer un compte de service.
- Saisissez un nom et sélectionnez une équipe par défaut.
- Cliquez sur Créer.
- Repérez le compte de service que vous venez de créer.
- Cliquez sur le menu d’action (
...), puis sur Créer une clé API. - Saisissez un nom pour la clé API, puis cliquez sur Créer.
- Copiez la clé API et conservez-la en lieu sûr.
- Cliquez sur Terminé.
Un compte de service limité à l’organisation nécessite qu’une équipe par défaut soit définie, même s’il a accès aux projets non restreints appartenant à toutes les équipes de l’organisation. Cela permet d’éviter qu’une charge de travail échoue si la variable
WANDB_ENTITY n’est pas définie dans l’environnement pour l’entraînement de votre modèle ou votre application d’IA générative. Pour utiliser un compte de service limité à l’organisation pour un projet d’une autre équipe, vous devez définir la variable d’environnement WANDB_ENTITY sur cette équipe.Comptes de service à portée d’équipe
Créer un compte de service à portée d’équipe
- Dans les paramètres de votre équipe, cliquez sur Service Accounts.
- Cliquez sur New Team Service Account.
- Saisissez un nom pour le compte de service.
- Définissez la méthode d’authentification sur Generate API key (par défaut). Si vous sélectionnez Federated Identity, le compte de service ne peut pas détenir de clés API.
- Cliquez sur Create.
- Repérez le compte de service que vous venez de créer.
- Cliquez sur le menu d’action (
...), puis sur Create API key. - Saisissez un nom pour la clé API, puis cliquez sur Create.
- Copiez la clé API et conservez-la en lieu sûr.
- Cliquez sur Done.
Créez des clés API supplémentaires pour un compte de service
- Accédez à l’onglet Service Accounts dans les paramètres de votre équipe ou de votre organisation.
- Recherchez le compte de service dans la liste.
- Cliquez sur le menu d’action (
...), puis sur Create API key. - Saisissez un nom pour la clé API, puis cliquez sur Create.
- Copiez immédiatement la clé API affichée et stockez-la en lieu sûr.
- Cliquez sur Done.
Supprimer une clé API de compte de service
- Accédez à Organization settings, puis cliquez sur API Keys.
- Repérez la clé API. La liste contient toutes les clés API appartenant à des comptes de service d’organisation et d’équipe. Vous pouvez effectuer une recherche ou appliquer un filtre par nom de clé ou ID, et trier selon n’importe quelle colonne.
- Cliquez sur le bouton Delete.
WANDB_USERNAME ou WANDB_USER_EMAIL ne fonctionne pas, sauf si l’utilisateur référencé fait partie de l’équipe parente du compte de service.
Comptes de service externes
Bonnes pratiques
- Utilisez un gestionnaire de secrets : stockez les clés API des comptes de service dans un système sécurisé de gestion des secrets (par ex. AWS Secrets Manager, HashiCorp Vault, Azure Key Vault) plutôt que dans des fichiers de configuration en texte brut.
- Principe du moindre privilège : créez des comptes de service à portée d’équipe lorsque c’est possible, plutôt que des comptes limités à l’organisation, afin de limiter l’accès aux seuls projets nécessaires.
- Un compte de service distinct par cas d’usage : créez des comptes de service séparés pour différents flux de travail d’automatisation (par ex. un pour le CI/CD, un autre pour le réentraînement planifié) afin d’améliorer la traçabilité et de permettre un contrôle d’accès granulaire.
- Audits réguliers : examinez périodiquement les comptes de service actifs et supprimez ceux qui ne sont plus utilisés. Consultez les journaux d’audit pour surveiller l’activité des comptes de service.
-
Gestion sécurisée des clés API :
- N’enregistrez jamais de clés API dans un système de contrôle de version
- Utilisez des variables d’environnement pour transmettre les clés aux applications
- Renouvelez les clés si elles sont accidentellement exposées
-
Conventions de nommage : utilisez des noms descriptifs qui indiquent la finalité du compte de service :
- Bon :
ci-model-training,nightly-eval-pipeline,prod-inference-monitor - À éviter :
service-account-1,test-sa,temp
- Bon :
-
attribution de l’utilisateur : lorsque plusieurs membres de l’équipe utilisent le même flux de travail d’automatisation, définissez
WANDB_USERNAMEouWANDB_USER_EMAILpour suivre qui a déclenché chaque run : -
Configuration de l’environnement : pour les comptes de service à portée d’équipe, définissez toujours
WANDB_ENTITYpour vous assurer que les runs sont enregistrés dans la bonne équipe : - Gestion des erreurs : mettez en place une gestion appropriée des erreurs et des alertes en cas d’échec de l’authentification afin d’identifier rapidement les problèmes liés aux identifiants du compte de service.
-
Documentation : tenez à jour une documentation indiquant :
- Quels comptes de service existent et à quoi ils servent
- Quels systèmes/flux de travail utilisent chaque compte de service
- Les coordonnées de l’équipe responsable de chaque compte
Dépannage
- Erreurs « Unauthorized » : vérifiez que la clé API est correctement définie et que le compte de service a accès au projet cible
- Runs qui n’apparaissent pas : vérifiez que
WANDB_ENTITYest défini avec le nom d’équipe correct - L’attribution de l’utilisateur ne fonctionne pas : assurez-vous que l’utilisateur spécifié dans
WANDB_USERNAMEest membre de l’équipe - Accès refusé aux projets restreints : ajoutez explicitement le compte de service à la liste d’accès du projet restreint