Contrôle des accès à l'API Service Management

L'API Service Management fait appel à Cloud IAM (Cloud Identity and Access Management) pour contrôler l'accès aux services gérés et à leurs ressources enfants. Cette page décrit les ressources, les rôles et les autorisations IAM fournis par l'API Service Management, et explique comment les utiliser pour contrôler les accès.

Ressources IAM

IAM applique des stratégies IAM sur les ressources pour contrôler qui peut effectuer quelles actions sur les ressources. L'API Service Management utilise les ressources suivantes pour fournir ses fonctionnalités :

Vous aurez besoin d'autorisations différentes pour utiliser et gérer différentes ressources. Pour en savoir plus, consultez les sections suivantes.

Autorisations IAM

Les appels à l'API Service Management nécessitent que l'appelant dispose des autorisations IAM nécessaires sur les ressources cibles.

Le tableau suivant répertorie les autorisations qui s'appliquent aux services :

Autorisation Description
servicemanagement.services.delete Supprimer des services
servicemanagement.services.get Lire des services
servicemanagement.services.create Créer des services dans les projets
servicemanagement.services.list Répertorier des services dans les projets
servicemanagement.services.update Mettre à jour des services
servicemanagement.services.bind Afficher et activer le service pour les projets contrôlés par l'appelant
servicemanagement.services.setIamPolicy Définir la stratégie d'accès IAM pour les services
servicemanagement.services.getIamPolicy Lire la stratégie d'accès IAM pour les services
servicemanagement.services.check Vérifier l'état du client de service. Consultez services.check.
servicemanagement.services.quota Allouer un quota à un client de service. Consultez services.allocateQuota.
servicemanagement.services.report Signaler l'utilisation du service. Consultez services.report.

Le tableau suivant indique les autorisations requises pour chaque méthode de l'API Service Management, le cas échéant. Ces informations sont également disponibles dans la documentation de référence de l'API :

Méthode Autorisations requises
services.delete servicemanagement.services.delete sur l'élément service_name spécifié.
services.disable Sur le projet : serviceusage.services.disable
services.enable Sur le projet : serviceusage.services.enable
Sur le service : servicemanagement.services.bind
services.get servicemanagement.services.get sur l'élément service_name spécifié.
services.getConfig servicemanagement.services.get sur l'élément service_name spécifié.
services.undelete servicemanagement.services.delete sur l'élément service_name spécifié.
services.configs.create servicemanagement.services.update sur l'élément service_name spécifié.
services.configs.get servicemanagement.services.get sur l'élément service_name spécifié.
services.configs.list servicemanagement.services.get sur l'élément service_name spécifié.
services.configs.submit servicemanagement.services.update sur l'élément service_name spécifié.
services.rollouts.create servicemanagement.services.update sur l'élément service_name spécifié.
services.rollouts.get servicemanagement.services.get sur l'élément service_name spécifié.
services.rollouts.list servicemanagement.services.get sur l'élément service_name spécifié.

Rôles IAM

Avec la gestion de l'authentification et des accès, les autorisations sont accordées en associant des utilisateurs aux rôles. Pour plus de détails, consultez la page Comprendre les rôles.

Le tableau suivant répertorie les rôles qui s'appliquent aux services :

Rôle Permissions
roles/viewer servicemanagement.services.get
servicemanagement.services.list
roles/editor Toutes les autorisations de roles/viewer, plus

servicemanagement.services.delete
servicemanagement.services.create
servicemanagement.services.update
servicemanagement.services.bind
servicemanagement.services.check
servicemanagement.services.quota
servicemanagement.services.report
roles/owner Toutes les autorisations de roles/editor, plus

servicemanagement.services.setIamPolicy
servicemanagement.services.getIamPolicy
roles/servicemanagement.configEditor servicemanagement.services.get
servicemanagement.services.update
roles/servicemanagement.serviceConsumer servicemanagement.services.bind
roles/servicemanagement.serviceController servicemanagement.services.get
servicemanagement.services.check
servicemanagement.services.quota
servicemanagement.services.report

Gérer des règles

IAM évalue les stratégies de manière hiérarchique: une ressource enfant hérite toujours de la stratégie de son parent. Pour l'API Service Management, chaque service géré est une ressource enfant de son projet producteur de services. Par conséquent, les rôles attribués dans le projet producteur de services s'appliquent à tous les services gérés appartenant au projet. Consultez la page Gérer les stratégies pour obtenir des instructions sur l'attribution de rôles au niveau du projet.

Vous pouvez également gérer la stratégie IAM pour un service individuel. Les sections suivantes décrivent comment gérer les rôles de niveau de service à l'aide de Google Cloud Console, de l'API Service Management et du SDK Google Cloud.

Gérer les accès avec Google Cloud Console

  1. Ouvrez la page Endpoints dans Google Cloud Console.

    Accéder à la page "Endpoints"

  2. Cliquez sur le service pour lequel vous souhaitez gérer l'accès.
  3. Cliquez sur le lien "AUTORISATIONS" en haut de la page. Ceci active et désactive le panneau d'informations.
  4. Dans le panneau d'informations, vous pouvez afficher la liste des membres actuels, ajouter d'autres membres et supprimer des membres pour n'importe quel rôle attribué au niveau du service.

Gérer les accès à l'aide du SDK Cloud

Le SDK Cloud comprend des commandes gcloud endpoints services qui permettent de gérer les stratégies IAM pour les services gérés :

  • endpoints services get-iam-policy
    • Affiche la stratégie IAM du service.
  • endpoints services check-iam-policy
    • Vérifie la stratégie IAM du service.
  • endpoints services add-iam-policy-binding
    • Ajoute un membre à un rôle.
  • endpoints services remove-iam-policy-binding
    • Supprime un membre d'un rôle.

Exemple :

# Show the IAM policy of service "endpointsapis.appspot.com".
gcloud endpoints services get-iam-policy endpointsapis.appspot.com

# The above command may produce an output similar to this:
bindings:
- members:
  - user:email1@gmail.com
  - group:group1@googlegroups.com
  role: roles/servicemanagement.serviceConsumer

# Add a user to "roles/servicemanagement.serviceConsumer" role.
gcloud endpoints services add-iam-policy-binding endpointsapis.appspot.com --member "user:email1@gmail.com" --role "roles/servicemanagement.serviceConsumer"

# Add a group to "roles/servicemanagement.serviceConsumer" role.
gcloud endpoints services add-iam-policy-binding endpointsapis.appspot.com --member "group:group1@googlegroups.com" --role "roles/servicemanagement.serviceConsumer"

# Remove a user from "roles/servicemanagement.serviceConsumer" role.
gcloud endpoints services remove-iam-policy-binding endpointsapis.appspot.com --member "user:email1@gmail.com" --role "roles/servicemanagement.serviceConsumer"

# Remove a group from "roles/servicemanagement.serviceConsumer" role.
gcloud endpoints services remove-iam-policy-binding endpointsapis.appspot.com --member "group:group1@googlegroups.com" --role "roles/servicemanagement.serviceConsumer"

Gérer les accès à l'aide de l'API Service Management

L'API Service Management inclut l'API IAM Policy pour la gestion des stratégies au niveau du service et du client. Vous pouvez tester les méthodes API à l'aide de la commande gcurl. Consultez la page Premiers pas pour accéder à la procédure de configuration initiale.

Exemple :

# View the current IAM policy on service "endpointsapis.appspot.com".
gcurl -d '{}' https://servicemanagement.googleapis.com/v1/services/endpointsapis.appspot.com:getIamPolicy

# View the current IAM policy on service "endpointsapis.appspot.com" and consumer "12345".
gcurl -d '{}' https://servicemanagement.googleapis.com/v1/services/endpointsapis.appspot.com/consumers/12345:getIamPolicy