Contrôle des accès

Vous pouvez contrôler les accès en définissant des rôles au niveau du projet GCP. Pour déterminer le niveau d'accès au projet Google Cloud Platform et à ses ressources, attribuez un rôle à un membre du projet GCP ou à un compte de service.

Vous pouvez utiliser des rôles primitifs lorsque vous travaillez sur des projets plus petits aux besoins moins complexes. Pour contrôler les accès de façon plus précise, utilisez les rôles IAM (Identity and Access Management), qui incluent les rôles App Engine prédéfinis. Pour en savoir plus sur la solution IAM, consultez la documentation relative.

Pour en savoir plus sur l'attribution de rôles, consultez la page Accorder l'accès aux projets.

Pour obtenir des informations détaillées sur les autorisations accordées aux rôles IAM prédéfinis, jusqu'au niveau d'appel de méthode, consultez la section Rôles dans la documentation relative à l'API Admin.

Rôles primitifs

Pour les applications App Engine, le rôle d'un membre d'un projet GCP contrôle également les actions autorisées des outils de ligne de commande utilisés pour déployer et gérer les applications.

Rôle Autorisations sur la console GCP Autorisations sur les outils
Owner Obligatoire pour créer des applications App Engine. Inclut tous les droits du lecteur et de l'éditeur, ainsi que la possibilité d'afficher le code source déployé, d'inviter des utilisateurs, de modifier les rôles des utilisateurs et de supprimer une application. Dispose des droits d'administrateur pour toutes les ressources du projet. Obligatoire pour créer des applications App Engine. Permet de déployer le code d'application et de mettre à jour toutes les configurations.
Editor Permet d'afficher les informations relatives à l'application et de modifier ses paramètres. Dispose des droits d'administrateur pour toutes les ressources du projet. Permet de déployer le code de l'application et de mettre à jour les index/files d'attente/tâches Cron.
Viewer Permet d'afficher les informations relatives à l'application. Dispose des droits d'administrateur pour toutes les ressources du projet. Permet de demander des journaux.

Rôles App Engine prédéfinis

Les rôles prédéfinis pour App Engine vous offrent des options de contrôle des accès plus précises. Chaque rôle est répertorié avec son utilisateur cible dans le tableau suivant. Le tableau de comparaison vous permet d'afficher l'ensemble des capacités de chaque rôle.

Rôle Fonctions Utilisateur cible
Administrateur App Engine Accès en lecture/écriture/modification à l'ensemble de la configuration et des paramètres de l'application.
  • Propriétaire/administrateur de l'application
  • Ingénieur d'astreinte
  • Administrateur système
Administrateur de services App Engine
  • Accès en lecture seule à l'ensemble de la configuration et des paramètres de l'application.
  • Accès en écriture aux paramètres au niveau du service et de la version, y compris la configuration du trafic.
  • Ce rôle ne permet pas de déployer des versions d'applications. Pour en savoir plus, consultez la section relative à la séparation des tâches ci-dessous.
  • Ingénieur de versions
  • DevOps
  • Ingénieur d'astreinte
  • Administrateur système
Utilisateur à l'origine du déploiement App Engine
  • Accès en lecture seule à l'ensemble de la configuration et des paramètres de l'application.
  • Accès en écriture pour ne déployer et ne créer qu'une nouvelle version.
  • Suppression des anciennes versions qui ne diffusent pas le trafic.
  • Ce rôle ne permet pas de modifier une version existante ni de modifier la configuration du trafic.

Consultez la section relative aux déploiements ci-dessous pour en savoir plus sur les rôles obligatoires.

  • Compte de déploiement
  • Ingénieur de versions
Lecteur App Engine Accès en lecture seule à l'ensemble de la configuration et des paramètres de l'application.
  • Utilisateur ayant besoin de visibilité sur l'application, mais pas de la modifier.
  • Tâche d'audit pour vérifier si la configuration d'App Engine est conforme aux règles.
Lecteur de codes App Engine Accès en lecture seule à l'ensemble de la configuration, des paramètres et du code source déployé de l'application.
  • Utilisateur ayant besoin de visibilité sur l'application et sur son code source, mais pas de les modifier.
  • Utilisateur DevOps ayant besoin de diagnostiquer les problèmes de production.

Matrice de comparaison des rôles prédéfinis

Le tableau suivant compare de manière exhaustive les capacités de chaque rôle App Engine prédéfini.

Capacité Administrateur App Engine Administrateur de services App Engine Utilisateur à l'origine du déploiement App Engine Lecteur App Engine Lecteur de codes App Engine
Répertorier l'ensemble des services, versions et instances Oui Oui Oui Oui Oui
Afficher l'ensemble des paramètres d'application, de service, de version et d'instance Oui Oui Oui Oui Oui
Afficher les métriques de l'environnement d'exécution telles que l'utilisation des ressources, les informations de charge et les informations relatives aux erreurs Oui Oui Oui Oui Oui
Afficher le code source de l'application Non Non Non Non Oui
Déployer une nouvelle version de l'application Oui Non Oui Non Non
Répartir ou migrer le trafic Oui Oui Non Non Non
Démarrer et arrêter une version Oui Oui Non Non Non
Supprimer une version Oui Oui Oui Non Non
Supprimer un service dans son intégralité Oui Oui Non Non Non
Arrêter une instance Oui Non Non Non Non
Désactiver et réactiver l'application App Engine Oui Non Non Non Non
Accéder aux gestionnaires dont l'accès est limité avec login:admin Oui Non Non Non Non
Mettre à jour les règles de distribution Oui Non Non Non Non
Mettre à jour les paramètres DoS Oui Non Non Non Non
Mettre à jour l'expiration des cookies par défaut Oui Non Non Non Non
Mettre à jour les URL de provenance Oui Non Non Non Non
Mettre à jour les expéditeurs autorisés de l'API Email Oui Non Non Non Non

Pour en savoir plus sur les autorisations IAM spécifiques accordées par chaque rôle, consultez la section Rôles dans la documentation relative à l'API Admin.

Déployer avec des rôles prédéfinis

Le rôle "Utilisateur à l'origine du déploiement App Engine" est recommandé pour le compte utilisateur qui n'est responsable que du déploiement de la nouvelle version d'une application. Le rôle "Administrateur App Engine" est une alternative qui inclut des droits d'administrateur supplémentaires, y compris la possibilité de déployer des versions.

Chacun de ces deux rôles accorde au compte utilisateur l'autorisation de se servir de l'API Admin pour déployer des applications. Pour accorder l'autorisation d'utiliser les commandes gcloud ou d'autres outils App Engine, vous devez également attribuer au compte utilisateur le rôle "Administrateur de l'espace de stockage".

Pour savoir précisément comment accorder les autorisations nécessaires, consultez la section Déployer à l'aide de rôles IAM.

Séparer les tâches de déploiement et de routage du trafic

De nombreuses entreprises préfèrent séparer la tâche liée au déploiement d'une version d'application de celle liée à l'augmentation progressive du trafic vers la version nouvellement créée. Chaque tâche est alors confiée à différents postes. Les rôles "Utilisateur à l'origine du déploiement App Engine" et "Administrateur de services App Engine" permettent de procéder à cette séparation :

  • Rôle "Utilisateur à l'origine du déploiement App Engine" : les comptes utilisateur sont limités au déploiement de nouvelles versions et à la suppression des anciennes versions qui ne diffusent pas le trafic. Le compte utilisateur disposant du rôle "Utilisateur à l'origine du déploiement App Engine" ne pourra pas configurer le trafic sur une version, ni modifier les paramètres au niveau de l'application tels que les règles de distribution ou le domaine d'authentification.

  • Rôle "Administrateur de services App Engine" : les comptes utilisateur ne peuvent pas déployer la nouvelle version d'une application, ni modifier les paramètres au niveau de l'application. Toutefois, ces comptes disposent des droits nécessaires à la modification des propriétés des versions et services existants, y compris le choix des versions pouvant diffuser le trafic. Le rôle "Administrateur de services App Engine" est idéal pour un service opérationnel/informatique qui gère l'augmentation progressive du trafic sur des versions récemment déployées.

Autorisations que les rôles prédéfinis n'accordent PAS

Aucun des rôles prédéfinis ci-dessus n'accorde l'accès aux actions suivantes :

  • Créer des applications App Engine
  • Afficher et télécharger les journaux d'application
  • Afficher les graphiques Monitoring dans la console GCP
  • Activer et désactiver la facturation
  • Définir une limite de dépense quotidienne (notion anciennement connue sous le terme de "budget") pour App Engine et afficher le montant dépensé en dollars
  • Afficher et modifier les domaines personnalisés et les certificats SSL importés
  • Exécuter des analyses de sécurité dans Cloud Security Scanner
  • Accéder à la configuration ou aux données stockées dans Datastore, Memcache, Cloud Search, dans les files d'attente de tâches ou dans tout autre produit de stockage Cloud Platform

Compte de service pour App Engine

Une fois que vous avez créé une application App Engine, le compte de service App Engine par défaut est créé et utilisé en tant qu'identité du service App Engine. Le compte de service App Engine par défaut est associé au projet GCP et exécute des tâches pour le compte des applications exécutées dans App Engine.

Par défaut, ce compte dispose du rôle "Éditeur" dans le projet. Ainsi, tout compte utilisateur disposant des autorisations suffisantes pour déployer des modifications dans le projet GCP peut également exécuter du code avec un accès en lecture/écriture à toutes les ressources de ce projet.

Modifier les autorisations des comptes de service

Vous pouvez modifier les autorisations accordées aux comptes de service depuis la console GCP. Par exemple, vous pouvez rétrograder les autorisations utilisées par le compte de service App Engine par défaut en remplaçant son rôle "Éditeur" par le ou les rôles qui correspondent le mieux aux besoins d'accès de l'application App Engine.

Pour modifier les autorisations accordées aux comptes de service, procédez comme suit :

  1. Ouvrez la console GCP.

    Accéder à la page Autorisations

  2. Dans la liste "Membres", repérez l'identifiant du compte de service App Engine par défaut.

    Le compte de service App Engine par défaut utilise l'identifiant du membre, au format suivant :
    YOUR_PROJECT_ID@appspot.gserviceaccount.com

  3. Vous pouvez ensuite modifier les rôles accordés au compte de service à l'aide du menu déroulant.

Utiliser le compte de service

  • Si vous souhaitez renommer ou créer des clés pour les comptes de service, y compris le compte de service App Engine par défaut, accédez à la page "Comptes de service" de la console GCP pour afficher et modifier les comptes :

    Accéder à la page "Comptes de service"

  • Pour exécuter des commandes du SDK Cloud à l'aide d'un compte de service, y compris l'un des outils de développement du SDK Cloud, vous devez d'abord activer l'API Google App Engine Admin dans le projet Google Cloud Platform. La bibliothèque d'API de la console GCP vous permet de gérer l'ensemble des API et des services du projet GCP :

    Accéder à la page "Bibliothèque d'API"

Restaurer un compte de service par défaut supprimé

Si vous supprimez le compte de service App Engine par défaut, l'application App Engine risque de s'interrompre et de ne plus pouvoir accéder à d'autres services GCP, tels que Cloud Datastore.

Vous pouvez restaurer un compte de service App Engine par défaut supprimé à l'aide de la commande gcloud beta app repair ci-dessous :

# Set your gcloud project
gcloud config set project <project-id>

# Restore your default service account
gcloud beta app repair
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Environnement standard App Engine pour Python