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

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

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

  • Accordez à un utilisateur individuel ou à un compte de service l'accès à toutes les ressources d'un projet.
  • Accordez un accès partiel aux ressources 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 une description détaillée d'IAM et de ses fonctionnalités, consultez la documentation IAM.

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

Autorisations et rôles

Cette section présente un récapitulatif des autorisations et rôles pris en charge par l'API Admin.

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.
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 App Engine 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

Déployeur 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 d'autres services Google Cloud. Pour en savoir plus sur ces rôles de base, consultez la section 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 Google Cloud

Vous pouvez utiliser la console Google Cloud pour gérer le contrôle des accès de vos projets Google Cloud.

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

Pour accorder aux comptes principaux un accès à un projet Google Cloud et à ses ressources, consultez la section Accorder, modifier et révoquer les accès.

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 Google Cloud pour accorder à votre application un accès automatisé aux services Google Cloud. Par exemple, utilisez un compte de service pour permettre à un projet Google Cloud d'envoyer une requête HTTP à un autre projet Google Cloud à l'aide de l'API App Engine Admin.

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