Contrôler les accès dans l'API Admin

L'API Admin de Google App Engine utilise Cloud IAM (Google Cloud Identity and Access Management) pour le contrôle des accès.

Dans l'API Admin de Google App Engine, le contrôle des accès peut être configuré au niveau du projet. L'accès aux projets GCP et aux ressources qu'ils contiennent peut être accordé à des comptes utilisateur, des domaines, des groupes ou des comptes de service. Exemple :

  • Accordez l'accès à toutes les ressources d'un projet à un membre en particulier ou à tous les membres d'un compte de service.
  • Accordez l'accès par rôle, plutôt qu'à l'intégralité du projet, afin de limiter les capacités fournies aux membres du projet. Par exemple, l'accès en lecture seule aux ressources ou la possibilité de déployer de nouvelles versions, mais pas de configurer le trafic sur ces versions.

Pour obtenir une description détaillée des services IAM et de leurs fonctionnalités, consultez la documentation relative à Google Cloud Identity and Access Management.

Pour appeler une méthode de l'API Admin, l'utilisateur doit disposer des autorisations requises. Consultez la section suivante pour obtenir une liste de toutes les autorisations et de tous les rôles compatibles avec l’API Admin.

Autorisations et rôles

Les autorisations et les rôles compatibles avec les services IAM de l'API Admin sont récapitulés ci-dessous.

Pour plus d'informations sur les rôles associés à App Engine, consultez la page Contrôle des accès App Engine.

Autorisations requises

Le tableau suivant répertorie les autorisations dont l'appelant doit disposer pour appeler chaque méthode :

Méthode Autorisations requises
apps.create appengine.applications.create sur la ressource Application demandée. Requiert les autorisations associées au rôle de propriétaire sur le projet GCP.
apps.get appengine.applications.get sur la ressource Application demandée.
apps.patch appengine.applications.update sur la ressource Application demandée.
apps.repair appengine.applications.update sur la ressource Application demandée.
apps.authorizedCertificates.create appengine.applications.update sur la ressource Application demandée.
apps.authorizedCertificates.delete appengine.applications.update sur la ressource Application demandée.
apps.authorizedCertificates.get appengine.applications.get sur la ressource Application demandée.
apps.authorizedCertificates.list appengine.applications.get sur la ressource Application demandée.
apps.authorizedCertificates.patch appengine.applications.update sur la ressource Application demandée.
apps.authorizedDomains.list appengine.applications.get sur la ressource Application demandée.
apps.domainMappings.create appengine.applications.update sur la ressource Application demandée.
apps.domainMappings.delete appengine.applications.update sur la ressource Application demandée.
apps.domainMappings.get appengine.applications.get sur la ressource Application demandée.
apps.domainMappings.list appengine.applications.get sur la ressource Application demandée.
apps.domainMappings.patch appengine.applications.update sur la ressource Application demandée.
apps.locations.get appengine.applications.get sur la ressource Application demandée.
apps.locations.list appengine.applications.get sur la ressource Application demandée.
apps.operations.get appengine.applications.get sur la ressource Application demandée.
apps.operations.list appengine.applications.get sur la ressource Application demandée.
apps.services.delete appengine.services.delete sur la ressource Service demandée.
apps.services.get appengine.services.get sur la ressource Service demandée.
apps.services.list appengine.services.list sur la ressource Application demandée.
apps.services.patch appengine.services.update sur la ressource Service demandée.
apps.services.versions.create appengine.versions.create sur la ressource Service demandée.
apps.services.versions.delete appengine.versions.delete sur la ressource Version demandée.
apps.services.versions.get appengine.versions.get sur la ressource Version demandée.
apps.services.versions.list appengine.versions.list sur la ressource Service demandée.
apps.services.versions.patch appengine.versions.update sur la ressource Version demandée.
apps.services.versions.instances.debug appengine.instances.enableDebug sur la ressource Instance demandée.
apps.services.versions.instances.delete appengine.instances.delete sur la ressource Instance demandée.
apps.services.versions.instances.get appengine.instances.get sur la ressource Instance demandée.
apps.services.versions.instances.list appengine.instances.list sur la ressource Version demandée.

Rôles

Dans le tableau suivant, vous trouverez le récapitulatif des rôles IAM relatifs à l'API Admin, ainsi que la liste de toutes les autorisations incluses dans chaque rôle. Notez que chaque autorisation est applicable à un type de ressource particulier.

Rôle Autorisations associées

Administrateur App Engine

/roles/appengine.appAdmin

Accès en lecture/écriture/modification à l'ensemble de la configuration et des paramètres de l'application.

appengine.applications.disable

appengine.applications.get
appengine.applications.update
appengine.instances.delete
appengine.instances.enableDebug
appengine.instances.get
appengine.instances.list
appengine.instances.update

appengine.operations.cancel

appengine.operations.delete

appengine.operations.get
appengine.operations.list
appengine.runtimes.actAsAdmin
appengine.services.delete
appengine.services.get
appengine.services.list
appengine.services.update
appengine.versions.create
appengine.versions.delete
appengine.versions.get
appengine.versions.list
appengine.versions.update
resourcemanager.projects.get
resourcemanager.projects.list

Utilisateur à l'origine du déploiement App Engine

/roles/appengine.deployer

Accès en lecture seule à l'ensemble de la configuration et des paramètres de l'application.

Accès en écriture seulement pour créer une version. Ce rôle ne permet pas de modifier des versions existantes, sauf pour supprimer des versions ne recevant pas de trafic. Ce rôle ne permet pas de configurer le trafic vers une version.

appengine.applications.get
appengine.instances.get
appengine.instances.list
appengine.operations.get
appengine.operations.list
appengine.services.create

appengine.services.get
appengine.services.list
appengine.versions.create
appengine.versions.delete
appengine.versions.get
appengine.versions.list
resourcemanager.projects.get
resourcemanager.projects.list

Administrateur de services App Engine

/roles/appengine.serviceAdmin

Accès en lecture seule à l'ensemble de la configuration et des paramètres de l'application.

Accès en écriture aux paramètres de niveau de service et de version, y compris à la configuration du trafic. Ce rôle ne permet pas de déployer des versions d'applications.

appengine.applications.get
appengine.instances.delete
appengine.instances.get
appengine.instances.list
appengine.operations.get
appengine.operations.list
appengine.services.delete
appengine.services.get
appengine.services.list
appengine.services.update
appengine.versions.delete
appengine.versions.get
appengine.versions.list
appengine.versions.update
resourcemanager.projects.get
resourcemanager.projects.list

Lecteur App Engine

/roles/appengine.appViewer

Accès en lecture seule à l'ensemble de la configuration et des paramètres de l'application.

appengine.applications.get
appengine.instances.get
appengine.instances.list
appengine.operations.get
appengine.operations.list
appengine.services.get
appengine.services.list
appengine.versions.get
appengine.versions.list
resourcemanager.projects.get
resourcemanager.projects.list

Lecteur de codes App Engine

/roles/appengine.codeViewer

Accès en lecture seule à l'ensemble de la configuration, des paramètres et du code source déployé de l'application.

appengine.applications.get
appengine.instances.get
appengine.instances.list
appengine.operations.get
appengine.operations.list
appengine.services.get
appengine.services.list
appengine.versions.get
appengine.versions.getFileContents
appengine.versions.list
resourcemanager.projects.get
resourcemanager.projects.list

Notez que les rôles roles/owner, roles/editor et roles/viewer incluent également des autorisations pour les autres services Google Cloud Platform. Pour plus d'informations sur ces rôles primitifs, consultez la page Contrôle des accès.

Autorisations non disponibles pour les rôles personnalisés

Si vous souhaitez configurer l'accès au-delà des rôles IAM prédéfinis, vous pouvez créer un rôle personnalisé. Toutefois, les autorisations suivantes ne sont pas disponibles pour les rôles personnalisés :

  • appengine.applications.disable
  • appengine.applications.list
  • appengine.instances.update
  • appengine.operations.cancel
  • appengine.operations.delete
  • appengine.services.create

Ces autorisations ne sont nécessaires pour aucune opération.

Contrôler les accès via la console GCP

La console GCP vous permet de gérer le contrôle des accès de vos projets GCP.

Définir les contrôles d'accès à l'échelle du projet

Pour accorder aux membres l'accès à un projet GCP et à ses ressources, consultez la page Attribuer, modifier et révoquer les accès des membres du projet.

Définir les contrôles d'accès au niveau du compte de service

Vous pouvez créer un compte de service dans un projet GCP pour attribuer à votre application un accès automatisé aux services GCP. Par exemple, utilisez un compte de service pour permettre à un projet GCP d'envoyer une requête HTTP à un autre projet GCP à l'aide de l'API Admin de Google App Engine.

Pour créer des comptes de service et attribuer les accès, consultez les articles suivants relatifs à IAM :

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

API App Engine Admin