À 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 pour les environnements de production 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. Les noms indiqués pour chaque compte de service sont les noms par défaut. Vous pouvez utiliser les noms de votre choix. Toutefois, ces noms doivent être faciles à identifier pour chaque compte.

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-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-runtime Aucun rôle requis Autorise l'environnement d'exécution Apigee hybrid à se connecter aux services Google et aux services personnalisés sur Google Cloud, tels que Google Authentication, Google Cloud Trace et Jaeger.
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.

Pour les environnements de production, de test et de démonstration, vous pouvez éventuellement utiliser un seul compte de service avec tous les rôles. Cette méthode n'est pas recommandée pour les environnements de production.

Composant* Rôle Requis pour l'installation de base ? Description
apigee-non-prod Agent Apigee Analytics, Agent Apigee Connect, Administrateur d'organisation Apigee, Agent d'exécution Apigee, Gestionnaire de synchronisateur Apigee, Agent Cloud Trace, Rédacteur de journaux, Rédacteur de métriques Monitoring, Administrateur d'objets de stockage Ou tous les comptes de service requis ci-dessus Un seul compte de service pour les environnements de démonstration ou de test. Consultez la section Installer, Partie 2, Étape 5 : Créer des comptes de service.

Outre la création des comptes de service listés dans ce tableau, vous allez utiliser les clés privées de chaque compte pour générer des jetons d'accès afin de pouvoir accéder aux API Apigee. L'outil create-service-account télécharge automatiquement les fichiers de clé dans un répertoire sur votre ordinateur local lorsqu'il crée ou met à jour les comptes de service.

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 create-service-account

L'outil create-service-account est disponible une fois que vous avez téléchargé et développé les charts Helm Apigee hybrid. Vous trouverez l'outil create-service-account dans le répertoire suivant :

APIGEE_HELM_CHARTS_HOME/
└── apigee-operator/
    └── etc/
        └── tools/
            └── create-service-account

create-service-account crée des comptes de service hybrides spécifiques aux composants et attribue les rôles requis pour vous. L'outil télécharge également automatiquement les clés de compte de service et les stocke sur votre ordinateur local.

Par exemple, la commande suivante crée tous les comptes de service individuels distincts pour un environnement de production, attribue les rôles IAM appropriés à chaque compte de service, et télécharge chaque fichier de clé privée des comptes dans le répertoire ./service-accounts :

./tools/create-service-account --env prod

La commande suivante crée un seul compte de service nommé apigee-non-prod disposant de tous les rôles IAM pour tous les composants hybrides, adapté aux environnements de démonstration et de test, mais pas aux environnements de production :

./tools/create-service-account --env non-prod

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 un compte de service avec Google Cloud Console et générer une clé pour le compte de service, procédez comme suit :

  1. Créez un compte de service :

    1. Dans Cloud Console, accédez à la page Comptes de service.

      Accéder à la page "Comptes de service"

    2. Sélectionnez votre projet.
    3. Cliquez sur Créer un compte de service.
    4. Dans le champ Nom du compte de service, saisissez un nom. Cloud Console remplit le champ ID du compte de service en fonction de ce nom.

      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.

    5. Facultatif : Dans le champ Description du compte de service, saisissez une description du compte de service. Les descriptions sont utiles pour vous rappeler quel compte de service particulier est utilisé.
    6. Cliquez sur Créer et continuer.
    7. Cliquez sur le champ Sélectionner un rôle et sélectionnez un rôle, 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, saisissez 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.

      Vous pouvez ajouter plusieurs rôles à un compte de service, mais Apigee 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 sa création, utilisez la page IAM de Cloud Console.

    8. 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é"

    9. 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

    10. 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.)

    11. 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