Accorder et révoquer l'accès à l'API

Contrôler l'accès à une API fait partie intégrante du développement. Par exemple, lorsque vous testez l'API, vous pouvez être amené à automatiser le redéploiement des configurations Cloud Endpoints mises à jour à l'aide d'un compte de service doté de l'autorisation nécessaire. Par défaut, seul le propriétaire du projet peut gérer l'accès à une API. Cette page explique comment accorder et révoquer l'accès à l'API à l'aide de Cloud Console ou de l'outil de ligne de commande gcloud.

Cloud Endpoints utilise les rôles Cloud Identity and Access Management pour accorder et révoquer l'accès au niveau de l'API. Vous pouvez accorder et révoquer l'accès d'un utilisateur, d'un compte de service ou d'un groupe Google.

Les groupes Google constituent un moyen pratique d'accorder ou de révoquer l'accès d'un ensemble d'utilisateurs. Vous pouvez accorder ou révoquer l'accès pour un groupe entier à la fois, plutôt que d'effectuer cette action pour chaque compte de service ou utilisateur. Vous pouvez également ajouter et supprimer facilement des membres d'un groupe Google, au lieu d'accorder ou de révoquer le rôle Cloud IAM de chaque membre.

Accorder l'accès

Cloud Console

  1. Dans Cloud Console, accédez à la page Endpoints > Services du projet.

    Accédez à la page Services Endpoints

  2. Si vous avez plusieurs API, cliquez sur le nom de l'API.
  3. Si le panneau latéral Autorisations n'est pas ouvert, cliquez sur addAutorisations.
  4. Dans la zone Ajouter des membres, saisissez l'adresse e-mail d'un utilisateur, d'un compte de service ou d'un groupe Google.
  5. Dans la liste déroulante Sélectionner un rôle, cliquez sur Service Management, puis sélectionnez l'un des rôles suivants :
    • Éditeur pour la configuration de service : ce rôle contient les autorisations minimales requises par Service Management pour déployer une configuration Endpoints sur un service existant.
    • Administrateur Service Management : ce rôle contient les autorisations des rôles "Éditeur pour la configuration de service", "Client du service" et "Contrôleur du service", ainsi que les autorisations requises pour accorder l'accès à cette API à l'aide de gcloud ou des méthodes de programmation décrites sur la page Accorder, modifier et révoquer les accès à des ressources.

    Cloud Console permet de sélectionner d'autres rôles. Toutefois, ils ne sont pas utiles pour la gestion de l'API.

  6. Cliquez sur Ajouter pour ajouter le membre au rôle Cloud IAM spécifié.
  7. Répétez les étapes d'ajout de membres et de sélection du rôle autant que nécessaire.
  8. Les rôles Service Management ne permettent pas aux utilisateurs d'accéder à la page Endpoints > Services de Cloud Console. Pour autoriser les utilisateurs à accéder à la page Endpoints > Services, vous devez leur attribuer le rôle de Lecteur de projet ou un rôle supérieur pour le projet. Pour en savoir plus, consultez la page Accorder, modifier et révoquer les accès à des ressources.

gcloud

  1. Ouvrez Cloud Shell ou, si vous avez installé le SDK Cloud, ouvrez une fenêtre de terminal.
  2. Saisissez la commande gcloud applicable :
    • Pour accorder l'accès à un utilisateur, exécutez la commande suivante :
          gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
            --member='user:[EMAIL-ADDRESS]' \
            --role='[ROLE]'

      Pour le rôle, spécifiez l'un des rôles Cloud IAM suivants :

      • roles/servicemanagement.configEditor : ce rôle contient les autorisations minimales requises par Service Management pour déployer une configuration Endpoints sur un service existant.
      • roles/servicemanagement.admin : ce rôle contient les autorisations des rôles roles/servicemanagement.configEditor, roles/servicemanagement.serviceConsumer et roles/servicemanagement.serviceController, ainsi que les autorisations requises pour accorder l'accès à l'API à l'aide de gcloud ou des méthodes de programmation décrites sur la page Accorder, modifier et révoquer les accès à des ressources.

      Exemple :

          gcloud endpoints services add-iam-policy-binding example-service-name \
            --member='user:example-user@gmail.com' \
            --role='roles/servicemanagement.admin'

    • Pour accorder l'accès à un compte de service, exécutez la commande suivante :
          gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
            --member='serviceAccount:[EMAIL-ADDRESS]' \
            --role='[ROLE]'

      Exemple :

          gcloud endpoints services add-iam-policy-binding example-service-name \
            --member='serviceAccount:example-service-account@example-project.iam.gserviceaccount.com' \
            --role='roles/servicemanagement.configEditor'

    • Pour accorder l'accès à un groupe Google, exécutez la commande suivante :
          gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
            --member='group:[GROUP-NAME]@googlegroups.com' \
            --role='[ROLE]'

      Exemple :

          gcloud endpoints services add-iam-policy-binding example-service-name \
            --member='group:example-group@googlegroups.com' \
            --role='roles/servicemanagement.configEditor'

  3. Les rôles Service Management ne permettent pas aux utilisateurs d'accéder à la page Endpoints > Services de Cloud Console. Pour autoriser les utilisateurs à accéder à la page Endpoints > Services, vous devez leur attribuer le rôle de Lecteur de projet ou un rôle supérieur pour le projet. Pour en savoir plus, consultez la page Accorder, modifier et révoquer les accès à des ressources.

Révoquer l'accès

Pour révoquer l'accès à l'API, supprimez le rôle Cloud IAM précédemment attribué à un membre.

Cloud Console

  1. Dans Cloud Console, accédez à la page Endpoints > Services du projet.

    Accédez à la page Services Endpoints

  2. Si vous avez plusieurs API, cliquez sur le nom de l'API.
  3. Si le panneau latéral Autorisations n'est pas ouvert, cliquez sur addAutorisations.
  4. Recherchez le membre dont vous souhaitez révoquer l'accès. Vous pouvez cliquer sur la carte Rôle applicable pour afficher une liste des membres, ou saisir un nom ou un rôle dans la zone Rechercher des membres.
  5. Cliquez sur Supprimer (delete).
  6. Si vous souhaitez également révoquer l'accès d'un utilisateur à votre projet Google Cloud, consultez la page Accorder, modifier et révoquer les accès à des ressources pour en savoir plus.

gcloud

  1. Ouvrez Cloud Shell ou, si vous avez installé le SDK Cloud, ouvrez une fenêtre de terminal.
  2. Saisissez la commande gcloud applicable :
    • Pour révoquer l'accès d'un utilisateur, exécutez la commande suivante :
          gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
            --member='user:[EMAIL-ADDRESS]' \
            --role='[ROLE-NAME]'

      Exemple :

          gcloud endpoints services remove-iam-policy-binding example-service-name \
            --member='user:example-user@gmail.com' \
            --role='roles/editor'
    • Pour révoquer l'accès d'un compte de service, exécutez la commande suivante :
          gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
            --member='serviceAccount:[EMAIL-ADDRESS]' \
            --role='[ROLE-NAME]'

      Exemple :

          gcloud endpoints services remove-iam-policy-binding example-service-name \
            --member='serviceAccount:example-service-account@example-project.iam.gserviceaccount.com' \
            --role='roles/servicemanagement.configEditor'
    • Pour révoquer l'accès d'un groupe Google, exécutez la commande suivante :
          gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
                --member='group:[GROUP-NAME]@googlegroups.com' \
                --role='[ROLE-NAME]'

      Exemple :

          gcloud endpoints services remove-iam-policy-binding example-service-name \
                --member='group:example-group@googlegroups.com' \
                --role='roles/viewer'
  3. Si vous souhaitez également révoquer l'accès d'un utilisateur à votre projet Google Cloud, consultez la page Accorder, modifier et révoquer les accès à des ressources pour en savoir plus.

Étape suivante

Apprenez-en davantage sur :