Types de comptes de service

Les comptes de service peuvent être divisés en plusieurs catégories :

  • Comptes de service gérés par l'utilisateur, que vous créez et gérez vous-même
  • Agents de service, créés et gérés par Google Cloud

Cette page décrit comment chaque type de compte de service est créé et utilisé.

Comptes de service gérés par l'utilisateur

Les comptes de service gérés par l'utilisateur sont des comptes de service que vous créez dans vos projets. Vous pouvez mettre à jour, désactiver, activer et supprimer ces comptes de service à votre guise. Vous pouvez également gérer l'accès d'autres comptes principaux à ces comptes de service.

Vous pouvez créer des comptes de service gérés par l'utilisateur dans votre projet à l'aide de l'API Cloud IAM, de la console Google Cloud ou de Google Cloud CLI.

Par défaut, vous pouvez créer jusqu'à 100 comptes de service gérés par l'utilisateur dans un projet. Si ce quota ne répond pas à vos besoins, vous pouvez demander une augmentation de quota à l'aide de la console Google Cloud. Seuls les comptes de service créés par l'utilisateur sont comptabilisés dans ce quota. Les comptes de service par défaut et les agents de service ne le sont pas.

Lorsque vous créez un compte de service géré par l'utilisateur dans votre projet, vous choisissez un nom pour ce compte de service. Ce nom apparaît dans l'adresse e-mail qui identifie le compte de service, au format suivant :

service-account-name@project-id.iam.gserviceaccount.com

Pour savoir comment créer un compte de service, consultez la section Créer des comptes de service.

Comptes de service par défaut

Les comptes de service par défaut sont des comptes de service gérés par l'utilisateur qui sont créés automatiquement lorsque vous activez ou utilisez certains services Google Cloud. Ces comptes de service permettent au service de déployer des jobs qui accèdent à d'autres ressources Google Cloud. Vous êtes responsable de la gestion des comptes de service par défaut après leur création.

Si votre application s'exécute dans un environnement Google Cloud disposant d'un compte de service par défaut, elle peut utiliser les identifiants du compte de service par défaut pour appeler les API Google Cloud. Vous pouvez également créer votre propre compte de service géré par l'utilisateur et vous en servir pour vous authentifier. Pour en savoir plus, consultez Configurer les identifiants par défaut de l'application.

Selon la configuration de vos règles d'administration, le compte de service par défaut peut se voir attribuer automatiquement le rôle Éditeur sur votre projet. Nous vous recommandons vivement de désactiver l'attribution automatique des rôles en appliquant la contrainte de règle d'administration iam.automaticIamGrantsForDefaultServiceAccounts. Si vous avez créé votre organisation après le 3 mai 2024, cette contrainte est appliquée par défaut.

Si vous désactivez l'attribution automatique de rôles, vous devez choisir les rôles à attribuer aux comptes de service par défaut, puis attribuer ces rôles vous-même.

Si le compte de service par défaut dispose déjà du rôle Éditeur, nous vous recommandons de le remplacer par des rôles moins permissifs. Pour modifier les rôles du compte de service en toute sécurité, utilisez Policy Simulator pour voir l'impact de la modification, puis attribuez et révoquez les rôles appropriés.

Le tableau suivant répertorie les services qui créent des comptes de service par défaut :

Service Nom du compte de service Adresse e-mail
App Engine, et tout service Google Cloud utilisant App Engine Compte de service App Engine par défaut project-id@appspot.gserviceaccount.com
Compute Engine, et tout service Google Cloud utilisant Compute Engine Compute Engine default service account project-number-compute@developer.gserviceaccount.com

Agents de service

Certains services Google Cloud ont besoin d'accéder à vos ressources pour pouvoir agir en votre nom. Par exemple, lorsque vous exécutez un conteneur à l'aide de Cloud Run, le service doit avoir accès à tous les sujets Pub/Sub pouvant déclencher le conteneur.

Pour répondre à ce besoin, Google crée et gère des comptes de service pour de nombreux services Google Cloud. Ces comptes de service sont parfois appelés agents de service. Il est possible que des agents de service s'affichent dans la stratégie d'autorisation de votre projet, dans les journaux d'audit ou sur la page IAM de la console Google Cloud.

Les agents de service ne sont pas créés dans vos projets. Vous ne les verrez donc pas lorsque vous consulterez les comptes de service de vos projets. Vous ne pouvez pas y accéder directement.

Par défaut, les agents de service ne sont pas listés sur la page IAM de la console Google Cloud, même s'ils se sont vu attribuer un rôle sur votre projet. Pour afficher les attributions de rôles pour les agents de service, cochez la case Inclure les attributions de rôles fournies par Google.

Google Cloud propose les types d'agents de service suivants :

Agents de service spécifiques au service

La plupart des agents de service sont spécifiques à un service. Ils agissent au nom de services individuels. Dans de nombreux cas, ces agents de service sont nécessaires au bon fonctionnement des services. Par exemple, les agents de service permettent aux récepteurs Cloud Logging d'écrire des journaux dans les buckets Cloud Storage.

Chaque agent de service est associé à une ressource. Cette ressource est généralement un projet, un dossier ou une organisation, mais il peut également s'agir d'une ressource spécifique au service, par exemple une instance Cloud SQL. Cette ressource définit le champ d'application des actions de l'agent de service. Par exemple, si un agent de service est associé à un projet, il agit au nom d'un service pour le projet et ses ressources descendantes.

Vous pouvez déterminer le type de ressource auquel un agent de service est associé en consultant son adresse e-mail:

  • Si l'agent de service est associé à un projet, un dossier ou une organisation, son adresse e-mail contient l'ID numérique de ce projet, dossier ou organisation.
  • Si l'agent de service est associé à une ressource spécifique au service, son adresse e-mail contient un ID de projet numérique et un identifiant unique. L'ID de projet numérique indique à quel projet appartient la ressource à laquelle l'agent de service est associé. L'identifiant unique distingue l'agent de service des autres agents de service similaires du même projet.

Agent de service des API Google

La stratégie d'autorisation de votre projet est susceptible de faire référence à un compte de service nommé "Agent de service des API Google", avec une adresse e-mail au format suivant : project-number@cloudservices.gserviceaccount.com

Ce compte de service exécute des processus Google Cloud internes en votre nom. Le rôle Éditeur (roles/editor) lui est automatiquement attribué sur le projet.

Gestionnaire de rôles pour les agents de service

Vos journaux d'audit pour IAM peuvent faire référence au compte de service service-agent-manager@system.gserviceaccount.com.

Ce compte de service gère les rôles attribués aux autres agents de service. Il n'est visible que dans les journaux d'audit.

Par exemple, si vous utilisez une nouvelle API, Google Cloud peut créer automatiquement un agent de service et lui attribuer des rôles sur votre projet. L'attribution de ces rôles génère une entrée de journal d'audit, qui indique que service-agent-manager@system.gserviceaccount.com a défini la stratégie d'autorisation du projet.

Création de l'agent de service

Le délai exact de création d'un agent de service dépend du type de ressource auquel il est associé.

Les agents de service associés à une ressource spécifique au service sont créés lors de la création de la ressource. Pour en savoir plus sur l'identification et la configuration de ces agents de service, consultez la documentation de la ressource associée.

Les agents de service associés aux projets, dossiers et organisations sont créés en fonction de vos besoins, généralement lorsque vous utilisez un service pour la première fois. Si nécessaire, vous pouvez également demander à Google Cloud de créer des agents de service pour un service avant de l'utiliser. Pour en savoir plus, consultez la section Créer et attribuer des rôles aux agents de service.

Rôles d'agent de service

Certaines actions dans Google Cloud nécessitent que les agents de service créent des ressources et y accèdent en votre nom. Par exemple, lorsque vous créez un cluster Dataproc, l'agent de service Dataproc a besoin de l'autorisation de créer des instances Compute Engine dans votre projet pour créer le cluster.

Pour obtenir cet accès, les agents de service ont besoin de rôles IAM spécifiques. De nombreux agents de service au niveau du projet reçoivent automatiquement les rôles dont ils ont besoin. Les noms de ces rôles attribués automatiquement se terminent généralement par serviceAgent ou ServiceAgent. Pour les autres agents de service, vous devez leur attribuer des rôles afin que le service fonctionne correctement. Pour savoir quels agents de service se voient automatiquement attribuer des rôles, consultez la documentation de référence sur les agents de service.

Si vous demandez à Google Cloud de créer des agents de service avant d'utiliser un service, vous devez leur attribuer automatiquement les rôles qui leur sont généralement attribués. En effet, les agents de service créés à la requête d'un utilisateur ne reçoivent pas automatiquement de rôles. Si vous n'accordez pas ces rôles aux agents de service, certains services risquent de ne pas fonctionner correctement. Pour savoir comment attribuer ces rôles aux agents de service, consultez Créer et attribuer des rôles aux agents de service.

Agents de service principaux

Dans la documentation de référence sur les agents de service, certains agents de service sont identifiés en tant qu'agents de service principaux. Les agents de service principaux sont des agents de service dont l'adresse e-mail est renvoyée lorsque vous déclenchez la création d'un agent de service pour un service.

Journaux d'audit

Parfois, lorsqu'un utilisateur principal lance une opération, un agent de service exécute une action en son nom. Toutefois, lorsque vous examinez les journaux d'audit d'un agent de service, il peut être difficile de déterminer pour qui l'agent de service agissait et pourquoi.

Pour vous aider à comprendre le contexte des actions d'un agent de service, certains agents de service incluent des informations supplémentaires dans leurs journaux d'audit, comme la tâche à laquelle l'action est associée et le principal qui a créé la tâche.

Les agents de service suivants incluent ces informations supplémentaires dans leurs journaux d'audit :

Ces informations supplémentaires se trouvent dans le champ serviceDelegationHistory du journal d'audit, qui est imbriqué dans le champ authenticationInfo. Ce champ contient les informations suivantes :

  • Le compte d'utilisateur principal d'origine qui a créé la tâche
  • Agent de service qui a exécuté l'action
  • Service auquel appartient l'agent de service
  • ID du job.

Par exemple, supposons que example-user@example.com crée une tâche à l'aide de l'API BigQuery Connection. Cette tâche nécessite qu'un des agents de service de l'API BigQuery Connection exécute une action. Dans ce cas, le journal d'audit de l'action de l'agent de service contient un champ serviceDelegationHistory semblable à celui-ci :

{
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "authenticationInfo": {
      "principalEmail": "bqcx-442188550395-jujw@gcp-sa-bigquery-condel.iam.gserviceaccount.com",
      "serviceDelegationHistory": {
        "originalPrincipal": "user:my-user@example.com",
        "serviceMetadata": [
          {
            "principalSubject": "serviceAccount:bqcx-442188550395-jujw@gcp-sa-bigquery-condel.iam.gserviceaccount.com",
            "serviceDomain": "bigquery.googleapis.com",
          }
        ]
      }
    }
  }
}

Étape suivante

Faites l'essai

Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.

Essai gratuit