À propos des comptes de service

Un compte de service est un type particulier de compte dans Google Cloud qui permet aux composants et aux applications d'un système d'interagir entre eux et avec d'autres API. Pour en savoir plus sur Google Cloud, consultez la section À propos des services Google Cloud.

Apigee hybrid utilise des comptes de service Google Cloud pour effectuer diverses tâches, y compris :

  • Envoyer les données des journaux et des métriques
  • Extraire des requêtes de trace
  • Se connecter à la passerelle d'API pour les requêtes API d'administration
  • Exécuter des sauvegardes
  • Télécharger les groupes de proxys

Alors qu'un compte de service peut effectuer toutes ces opérations, Apigee recommande de créer plusieurs comptes de service, chacun étant affecté à une tâche spécifique et disposant de son propre ensemble d'autorisations. Cela améliore la sécurité en cloisonnant l'accès, et en limitant le niveau et les droits d'accès de chaque compte de service. Comme pour les comptes utilisateur, ces autorisations sont appliquées en attribuant un ou plusieurs rôles au compte de service.

Pour fonctionner correctement, la solution Apigee hybride nécessite la création de plusieurs comptes de service. Chaque compte de service nécessite un ou plusieurs rôles qui lui permettent d'exécuter sa fonction.

Le tableau suivant décrit les comptes de service pour les composants hybrides :

Composant* Rôle Requis pour l'installation de base ? Description
apigee-cassandra Administrateur des objets de l'espace de stockage
roles/storage.objectAdmin
Autorise les sauvegardes Cassandra sur Google Cloud Storage, comme décrit sur la page Sauvegarde et récupération.
apigee-distributed-trace Agent Cloud Trace
roles/cloudtrace.agent
Permet au plan d'exécution hybride de participer à un traçage de requêtes distribué dans un format compatible avec des systèmes tels que Google Cloud Trace et Jaeger.
apigee-logger Rédacteur de journaux
roles/logging.logWriter
Permet de collecter des données de journalisation, comme décrit dans la section Journalisation. Obligatoire uniquement pour les installations de cluster autres que GKE.
apigee-mart Agent Apigee Connect
roles/apigeeconnect.Agent
Permet l'authentification du service MART. Le rôle Agent Apigee Connect lui permet de communiquer de manière sécurisée avec le processus Apigee Connect, comme décrit dans la section Utiliser Apigee Connect.
apigee-metrics Rédacteur de métriques Monitoring
roles/monitoring.metricWriter
Permet de collecter des données de métriques, comme décrit dans la section Présentation de la collecte de métriques.
apigee-org-admin Administrateur de l'organisation Apigee
roles/apigee.admin
Vous permet d'appeler les API getSyncAuthorization et setSyncAuthorization. Administrateur de l'organisation Apigee étant un rôle externe au plan d'exécution, vous ne pouvez pas attribuer ce rôle au compte de service avec l'outil create-service-account.
apigee-synchronizer Gestionnaire de synchronisateur Apigee
roles/apigee.synchronizerManager
Permet au synchronisateur de télécharger des groupes de proxys et des données de configuration d'environnement. Active également la fonctionnalité de trace.
apigee-udca Agent d'analyses Apigee
roles/apigee.analyticsAgent
Permet le transfert des données des traces, des analyses et d'état de déploiement vers le plan de gestion.
apigee-watcher Agent d'exécution Apigee
roles/apigee.runtimeAgent
Apigee Watcher extrait les changements virtuels des hôtes pour une organisation à partir du synchronisateur et effectue les modifications nécessaires pour configurer l'entrée Istio.
* Ce nom est utilisé dans le nom de fichier de la clé du compte de service téléchargée.

En plus de créer les comptes de service répertoriés dans cette table, vous téléchargez également leurs clés privées. Vous utiliserez ensuite ces clés pour générer des jetons d'accès afin de pouvoir accéder aux API Apigee.

Créer les comptes de service

Il existe plusieurs façons de créer des comptes de service, parmi lesquelles :

Chacune de ces options est décrite dans les sections suivantes.

Utiliser l'outil de création de compte de service

L'outil create-service-account (disponible après avoir téléchargé et développé apigeectl) crée des comptes de service hybrides spécifiques aux composants et attribue les rôles dont vous devez disposer. L'outil télécharge également automatiquement les clés de compte de service et les stocke sur votre ordinateur local dans le répertoire spécifié.

Pour créer des comptes de service avec l'outil create-service-account :

  1. Téléchargez et développez apigeectl si vous ne l'avez pas déjà fait, comme décrit dans la section Télécharger et installer apigeectl.
  2. Créez un répertoire pour stocker vos clés de compte de service. Exemple :
    mkdir ./service-accounts
  3. Exécutez les commandes suivantes :
    ./tools/create-service-account apigee-metrics ./service-accounts
    ./tools/create-service-account apigee-synchronizer ./service-accounts
    ./tools/create-service-account apigee-distributed-trace ./service-accounts
    ./tools/create-service-account apigee-udca ./service-accounts
    ./tools/create-service-account apigee-mart ./service-accounts
    ./tools/create-service-account apigee-cassandra ./service-accounts
    ./tools/create-service-account apigee-logger ./service-accounts

    Ces commandes créent la plupart des comptes requis et stockent leurs clés dans le répertoire ./service-accounts.

    Si ces commandes échouent, assurez-vous d'avoir référencé un répertoire existant dans lequel stocker les fichiers de clés.

    Pour en savoir plus sur l'utilisation de create-service-account, consultez la documentation de référence sur la création d'un compte de service.

Utiliser Google Cloud Console

Vous pouvez créer des comptes de service avec Google Cloud Console.

Pour créer des comptes de service avec Google Cloud Console, procédez comme suit :

  1. Ouvrez Google Cloud Console, puis connectez-vous avec le compte que vous avez créé à l'étape 1 : Créer un compte Google Cloud.
  2. Sélectionnez le projet que vous avez créé à l'étape 2 : Créer un projet Google Cloud.
  3. Sélectionnez IAM et administration > Comptes de service.

    La console affiche la vue Comptes de service. Cette vue contient la liste des comptes de service du projet. Dans la plupart des cas, aucun compte n'est encore répertorié. Toutefois, la liste peut contenir des comptes de service par défaut, selon la manière dont vous avez créé votre projet.

  4. Pour créer un compte de service, cliquez sur + Créer un compte de service en haut de la vue.

    La vue Détails du compte de service s'affiche.

  5. Dans le champ Nom du compte de service, saisissez le nom du compte de service.

    Apigee vous recommande d'utiliser un nom qui reflète le rôle du compte de service. Vous pouvez attribuer au compte de service le nom du composant qui l'utilise. Par exemple, spécifiez apigee-logger comme nom du compte de service Rédacteur de journaux.

    Pour en savoir plus sur les noms et les rôles des comptes de service, consultez la page Comptes de service et rôles utilisés par les composants hybrides.

    Lorsque vous saisissez un nom, Google Cloud génère automatiquement un ID de compte de service unique, structuré comme une adresse e-mail, comme illustré dans l'exemple suivant :

    Exemple d'ID apigee-logger@hybrid-42.iam.gserviceaccount.com

    Vous pouvez éventuellement ajouter une description dans le champ Description du compte de service. Les descriptions sont utiles pour vous rappeler quel compte de service particulier est utilisé.

  6. Cliquez sur Create (Créer).

    Google Cloud crée un compte de service et affiche la vue Autorisations de compte de service, comme illustré dans l'exemple suivant :

    Créer un compte de service sans autorisations sélectionnées

    Utilisez cette vue pour attribuer un rôle à votre nouveau compte de service.

  7. Cliquez sur la liste déroulante Sélectionner un rôle.
  8. Sélectionnez le rôle du compte de service, comme décrit dans la section Comptes de service et rôles utilisés par les composants hybrides. Si les rôles Apigee n'apparaissent pas dans la liste déroulante, actualisez la page.

    Par exemple, pour le composant de journalisation, sélectionnez le rôle Rédacteur de journaux.

    Si nécessaire, tapez du texte pour filtrer la liste des rôles par nom. Par exemple, pour ne répertorier que les rôles Apigee, saisissez Apigee dans le champ de filtre, comme illustré dans l'exemple suivant :

    Liste des autorisations de compte de service correspondant à Apigee

    Vous pouvez ajouter plusieurs rôles à un compte de service, mais Apigee vous recommande de n'en utiliser qu'un seul pour chacun des comptes de service recommandés. Pour modifier les rôles d'un compte de service après l'avoir créé, utilisez le panneau IAM et administration dans Google Cloud.

  9. Cliquez sur Continuer.

    Google Cloud affiche la vue Autoriser les utilisateurs à accéder à ce compte de service :

    Champs pour les rôles "Utilisateurs de compte de service" et "Administrateurs de compte de service", bouton "Créer une clé"

  10. Sous Créer une clé (facultatif), cliquez sur Create Key (Créer une clé).

    Google Cloud vous permet de télécharger une clé JSON ou P12 :

    Sélectionner le type de clé JSON ou P12

  11. Sélectionnez JSON (par défaut), puis cliquez sur Create (Créer).

    Google Cloud enregistre le fichier de clé au format JSON sur votre machine locale et affiche une confirmation une fois l'opération réussie, comme illustré dans l'exemple suivant :

    Exemple de fichier filename.json

    Vous utiliserez ensuite certaines des clés de compte de service pour configurer les services d'exécution hybride. Par exemple, lorsque vous configurez l'environnement d'exécution hybride, vous spécifiez l'emplacement des clés de compte de service à l'aide des propriétés SERVICE_NAME.serviceAccountPath.

    Ces clés permettent aux comptes de service d'obtenir des jetons d'accès qui permettent ensuite au compte de service d'effectuer des requêtes sur les API Apigee en votre nom. (Vous n'y êtes pas encore. Pour l'instant, notez où vous l'avez enregistrée.)

  12. Répétez les étapes 4 à 11 pour chaque compte de service répertorié dans la section Comptes de service et rôles utilisés par les composants hybrides (à l'exception du compte apigee-mart qui n'est associé à aucun rôle, donc ne lui attribuez pas de rôle).

    Lorsque vous avez terminé, vous devez disposer des comptes de service suivants (en plus des comptes par défaut, le cas échéant) :

    Liste des comptes de service. La colonne 1 est une zone de sélection, et la colonne 2 correspond à l'adresse e-mail, la colonne 3 à l'état, la colonne 4 au nom du compte de service

    Dans Google Cloud Console, les comptes de service sont indiqués par l'icône clé du côté gauche, demi-rectangle du côté droit, le tout souligné.

Après avoir créé un compte de service, si vous souhaitez ajouter ou supprimer un rôle, vous devez utiliser la vue IAM et administration. Vous ne pouvez pas gérer les rôles associés aux comptes de service dans la vue Comptes de service.

Utiliser les API de création de compte de service gcloud

Vous pouvez créer et gérer des comptes de service avec l'API Cloud Identity and Access Management.

Pour en savoir plus, consultez la page Créer et gérer des comptes de service.

Dépannage