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
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
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
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
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
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 :