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 vous explique comment accorder et révoquer l'accès à votre API à l'aide du la console Google Cloud ou la Google Cloud CLI.

Cloud Endpoints utilise les rôles 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 IAM de chaque membre.

Accorder l'accès

console Google Cloud

  1. Dans la console Google Cloud, accédez à Points de terminaison > Page "Services" pour votre 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 Autorisations.
  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 :
    • Client du service : ce rôle contient les autorisations nécessaires à un utilisateur non membre du projet pour afficher et activer l'API dans son propre projet. Si vous avez créé un portail pour votre API, ce rôle permet à ses utilisateurs d'accéder à ce portail.
    • Contrôleur du service : ce rôle contient les autorisations permettant d'appeler les méthodes check et report dans l'API Service Infrastructurependant l'exécution.
    • É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.

    Pour en savoir plus sur ce rôle, consultez la page Contrôle des accès à l'API Service Management. Bien que la console Google Cloud vous permette de sélectionner d'autres rôles, ces rôles ne sont pas utiles pour gérer votre API.

  6. Cliquez sur Ajouter pour ajouter le membre au rôle 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 aux points de terminaison > la page Services de la console Google Cloud. 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 la Google Cloud CLI est installée, ouvrez un 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 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 Points de terminaison > la page Services de la console Google Cloud. 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 IAM précédemment attribué à un membre.

console Google Cloud

  1. Dans la console Google Cloud, accédez à Points de terminaison > Page Services pour votre 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 affiché, cliquez sur  Autorisations.
  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 ().
  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é la CLI gcloud, 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.

Étapes suivantes

Découvrez les points suivants :