Configurer des comptes de service App Engine

Les applications App Engine nécessitent un compte de service pour accéder à d'autres services Google Cloud et exécuter des tâches.

Il existe deux types de comptes de service dans App Engine. Vous pouvez configurer n'importe quel compte de service de votre projet Cloud en tant que compte de service par défaut ou par version au niveau de l'application :

  • Compte de service par défaut au niveau de l'application : ce compte de service est utilisé pour tous vos services déployés lorsque vous ne configurez pas de compte de service par version. Vous pouvez choisir d'attribuer un compte de service que vous avez créé ou d'utiliser le compte de service par défaut créé automatiquement lors du déploiement initial d'un service dans votre projet Cloud. Par exemple, le compte de service App Engine par défaut (PROJECT_ID@appspot.gserviceaccount.com).

  • Compte de service sépcifique à une version : compte de service configuré en tant qu'identité pour une version spécifique de votre service déployé. Lorsque vous déployez une version existante ou nouvelle, vous pouvez spécifier un compte de service qui agit en tant qu'identité de cette version. Par exemple, si une version nécessite des autorisations différentes de celles du compte de service par défaut au niveau de l'application, vous pouvez attribuer un compte de service spécifique à cette version.

Afficher les comptes de service configurés

Pour afficher le compte de service par défaut actuel au niveau de l'application, exécutez la commande gcloud app describe.

Pour afficher le compte de service utilisé par une version déployée, procédez comme suit :

gcloud

Exécutez la commande gcloud app versions describe :

  gcloud app versions describe VERSION_ID --service=SERVICE_NAME

Remplacez :

  • VERSION_ID par l'ID de la version ;
  • SERVICE_NAME par le nom du service que vous avez créé.

Console

  1. Accédez à l'onglet Versions d'App Engine dans la console. Accéder à la page "Versions"
  2. Recherchez l'adresse e-mail du compte de service App Engine spécifique à la version. Exemple : SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Attribuer un compte de service par défaut au niveau de l'application

Par défaut, le compte de service par défaut au niveau de l'application est le compte de service PROJECT_ID@appspot.gserviceaccount.com créé automatiquement. Vous pouvez configurer un autre compte de service en tant que compte de service par défaut au niveau de l'application à l'aide de Google Cloud CLI, de la console Google Cloud ou de l'API Admin.

Spécifier un compte de service par défaut au niveau de l'application lors de sa création

Au cours du processus initial de création de l'application App Engine, vous pouvez choisir de configurer un compte de service que vous avez créé ou d'utiliser le compte de service PROJECT_ID@appspot.gserviceaccount.com créé automatiquement comme compte de service par défaut.

Pour créer une application App Engine et configurer un compte de service par défaut au niveau de l'application, vous pouvez utiliser l'une des options suivantes :

gcloud

Exécutez la commande gcloud app create :

gcloud app create --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Remplacez :

  • SERVICE_ACCOUNT_NAME par le nom du compte de service que vous avez créé ;
  • PROJECT_ID par l'ID du projet Google Cloud auquel vous souhaitez attribuer le compte de service.

Console

  1. Accédez à la page App Engine.

    Accéder à App Engine

  2. Créez un projet Google Cloud.

  3. Dans la section Créer une application, sélectionnez un compte de service dans Identité et accès à l'API.

Mettre à jour le compte de service par défaut au niveau de l'application

Pour mettre à jour le compte de service par défaut au niveau de l'application, vous pouvez utiliser l'une des méthodes suivantes :

gcloud

Exécutez la commande gcloud app update.

    gcloud app update --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Remplacez :

  • SERVICE_ACCOUNT_NAME par le nom du compte de service que vous avez créé ;
  • PROJECT_ID par l'ID du projet Google Cloud auquel vous souhaitez attribuer le compte de service.

Chaque nouvelle version que vous déployez ici utilise le nouveau compte de service par défaut au niveau de l'application, sauf si vous attribuez explicitement un compte de service spécifique à cette version.

Console

  1. Accédez à l'onglet Paramètres des applications d'App Engine, puis cliquez sur Modifier les paramètres de l'application.

    Accéder à la page "Paramètres de l'application"

  2. Choisissez un compte de service par défaut au niveau de l'application dans Sélectionner un compte de service, puis cliquez sur Enregistrer.

    Vous êtes redirigé vers l'onglet Paramètres des applications, où s'affiche l'adresse e-mail du compte de service par défaut au niveau de l'application que vous avez mis à jour. Exemple : SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

    Chaque nouvelle version que vous déployez ici utilise le nouveau compte de service par défaut au niveau de l'application, sauf si vous attribuez explicitement un compte de service spécifique à cette version.

Effectuer un déploiement à l'aide d'un compte de service spécifique à une version

Vous ne pouvez définir un compte de service spécifique à une version que pendant le déploiement de nouvelles versions. L'utilisation d'un compte de service spécifique à une version vous permet d'accorder des droits différents aux versions de l'application en fonction des tâches spécifiques qu'elles effectuent, et d'éviter d'en accorder plus que nécessaire.

Vous devez disposer d'un compte de service existant avant de déployer votre application.

Définir un compte de service spécifique à une version

gcloud

Exécutez la commande gcloud app deploy :

  gcloud app deploy --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Remplacez :

  • SERVICE_ACCOUNT_NAME par le nom du compte de service que vous avez créé ;
  • PROJECT_ID par l'ID du projet Google Cloud auquel vous souhaitez attribuer le compte de service.

app.yaml

Dans votre fichier app.yaml, spécifiez votre compte de service en ajoutant l'élément service_account :

service_account: SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Remplacez :

  • SERVICE_ACCOUNT_NAME par le nom du compte de service que vous avez créé ;
  • PROJECT_ID par l'ID du projet Google Cloud auquel vous souhaitez attribuer le compte de service.

Compte de service App Engine par défaut

Le compte de service App Engine par défaut est créé automatiquement lorsque vous utilisez App Engine.

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.

Pour savoir comment attribuer des rôles aux comptes de service et à d'autres comptes principaux, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Pour modifier les autorisations, ou supprimer et restaurer vos comptes de service, consultez la page Créer et gérer des comptes de service.