Créer des comptes de service pour l'accès API et automatisé
Un compte de service est un type de compte spécial utilisé par les consumers API, l'accès à des serveurs distants, des scripts ou d'autres entités automatisées
Objectif
Un compte de service est un type de compte spécial utilisé par les consumers API, l'accès à des serveurs distants, des scripts ou d'autres entités automatisées, plutôt que par une personne physique.
Sur Data Platform, les comptes de service sont généralement utilisés pour deux raisons :
- En externe, pour authentifier une entité distante ayant besoin d'accéder au projet via une clé API et une clé secrète
- En interne, pour authentifier les jobs du projet. Par exemple, un compte de service peut être rattaché à un workflow du Data Processing Engine, de sorte que lors de son exécution, le job puisse s'authentifier en tant que compte de service. Les rôles du compte de service contrôlent les ressources auxquelles le job peut accéder.
Ils se trouvent dans l'onglet Service Accounts de l'Identity Access Manager. Sur Data Platform, chaque compte de service est identifié par son nom technique, qui doit lui être propre.
Notez que les comptes de service n'existent QUE dans l'IAM du projet.
Gérer les comptes de service de votre projet
Un compte de service peut se voir attribuer des rôles de l'IAM du projet permettant à toute entité associée (qu'il s'agisse d'entités externes ou de jobs internes) d'accéder à des ressources. Le compte de service est utilisé comme identité de l'entité associée, et les rôles du compte de service contrôlent les ressources auxquelles l'entité peut accéder.
Cela permet notamment de restreindre le niveau d'accès d'un job du Data Processing Engine déclenché par CRON ou d'une API distante ayant besoin d'accéder aux données sur Data Platform.
Il existe deux types de comptes de service :
- Comptes de service par défaut, générés par Data Platform : ils sont générés lors de la création du projet afin que les services de base puissent fonctionner immédiatement, comme le Default Project Service Account
- Comptes de service gérés par l'utilisateur : ils sont créés par les utilisateurs de Data Platform
Compte de service par défaut
Le Default Project Service Account est un compte de service généré par Data Platform automatiquement lors de la création du projet. Il est utilisé par défaut par tous les jobs du Data Processing Engine pour l'authentification et le contrôle d'accès. Ce compte de service ne peut pas être supprimé.
Tout utilisateur d'un projet peut toujours emprunter l'identité de ce compte de service dans le Data Processing Engine.
Il est impossible de restreindre l'emprunt d'identité de ce compte de service par les utilisateurs authentifiés dans l'IAM du projet. Si vous souhaitez éviter une éventuelle élévation de privilèges, vous devez réduire les permissions de rôle accordées à ce compte de service par défaut.
Par défaut, à la création du projet, le Default Project Service Account dispose d'un accès Admin dans le projet.
Créer un nouveau compte de service
Pour ajouter un compte de service dans votre projet, cliquez sur New service account.
Saisissez un nom et une adresse e-mail pour le compte de service.
L'adresse e-mail sera utilisée pour envoyer la clé API et la clé secrète nécessaires à l'authentification de l'entité distante.
Ajouter des comptes de service à un groupe Attribuer un rôle à un compte de service
Utiliser un compte de service en interne pour des jobs
Tous les jobs du Data Processing Engine utilisent des comptes de service pour l'authentification et le contrôle d'accès de la charge de travail. Ainsi, tout utilisateur capable d'exécuter ce job peut essentiellement emprunter l'identité du compte de service (et obtenir ses accès) à travers la charge de travail exécutée.
Le compte de service d'un job ne peut actuellement pas être modifié. Cette fonctionnalité arrive bientôt !
Par défaut, les jobs sont configurés pour utiliser le Default Project Service Account. Il est impossible de restreindre l'emprunt d'identité de ce compte de service par les utilisateurs, donc pour éviter une éventuelle élévation de privilèges (dans le cas où certains de vos utilisateurs ne devraient pas pouvoir tout accéder), vous devez veiller à retirer les permissions inutiles sur ce compte de service.
Pour ce faire, ouvrez la page du Default Project Service Account, retirez tous les groupes et rôles liés à ce compte de service, ajoutez les rôles/groupes de base nécessaires pour le compte de service, puis enregistrez. Les permissions de base pour qu'un job du Data Processing Engine puisse s'exécuter sans erreur sont les suivantes :
Data Manager | * | ReadData Processing Engine | * | ReadData Processing Engine | * | Writeest optionnel et n'est nécessaire que si la mise à jour des métadonnées (comme le nombre de lignes dans une table) est souhaitée à la fin de l'exécution du job
Data Store | Bucket | Read, avec une condition sur le bucket dpe
Utiliser un compte de service en externe
Chaque fois que vous devez déclencher des jobs spécifiques (comme le lancement de workflows) depuis l'extérieur de Data Platform, vous devrez générer une clé API et une clé secrète pour vous authentifier.
Générer des clés API et secrètes pour les comptes de service
Aller plus loin
Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.
Posez vos questions, faites-nous part de vos commentaires et interagissez directement avec l’équipe qui développe la Data Platform sur le canal Discord dédié.
Si vous avez besoin d'une assistance concernant vos services OVHcloud, créez une demande depuis notre centre d'aide.
Rejoignez notre communauté d'utilisateurs.