Utiliser des comptes de service gérés par l'utilisateur

Les applications App Engine nécessitent un compte de service pour pouvoir accéder à d'autres services Google Cloudet exécuter des tâches. Par défaut, le compte de service App Engine par défaut est utilisé comme identité de votre application App Engine. Vous pouvez également spécifier un autre compte de service géré par l'utilisateur à utiliser comme identité pour une version spécifique de votre application App Engine. Cela vous permet d'accorder des droits différents à chaque version, en fonction des tâches spécifiques qu'elle effectue, et d'éviter d'en accorder plus que nécessaire.

Ce guide explique comment spécifier un compte de service différent géré par l'utilisateur lors du déploiement d'une nouvelle version. Si vous n'avez pas besoin de créer un compte de service distinct lorsque vous déployez une version spécifique de votre application ; vous pouvez continuer à utiliser le compte de service par défaut en ne spécifiant aucun compte de service.

Créer un compte de service géré par l'utilisateur

Pour créer un compte de service géré par l'utilisateur, consultez ces instructions. Lorsque vous définissez les rôles IAM (Identity and Access Management) à attribuer à votre compte de service, vous pouvez consulter la section Rôles accordant l'accès à App Engine.

Si vous devez passer en revue les concepts IAM avant de créer votre compte de service, consultez les guides Présentation des concepts IAM et Comptes de service.

Une fois que vous avez créé votre compte de service géré par l'utilisateur, vous pouvez mettre à jour le compte de service par défaut au niveau de l'application en utilisant 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 après cette mise à jour 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 après cette mise à jour 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.

Spécifier un compte de service lors du déploiement de votre application

gcloud

Exécutez la commande gcloud app deploy et spécifiez votre compte de service :

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

appengine-web.xml

Dans votre fichier appengine-web.xml, spécifiez votre compte de service en ajoutant l'élément <service-account> :

<service-account>SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com</service-account>

Étapes suivantes

Suivez les bonnes pratiques d'utilisation des comptes de service.