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.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 , plusservicemanagement.services.bind servicemanagement.services.check servicemanagement.services.create servicemanagement.services.delete servicemanagement.services.quota servicemanagement.services.report servicemanagement.services.update |
roles/owner |
Toutes les autorisations de roles/editor , plusservicemanagement.services.getIamPolicy servicemanagement.services.setIamPolicy |
roles/servicemanagement.admin |
monitoring.timeSeries.list resourcemanager.folders.get resourcemanager.folders.list resourcemanager.organizations.get resourcemanager.projects.get resourcemanager.projects.list serviceconsumermanagement.consumers.get serviceconsumermanagement.quota.get serviceconsumermanagement.quota.update serviceconsumermanagement.tenancyu.addResource serviceconsumermanagement.tenancyu.create serviceconsumermanagement.tenancyu.delete serviceconsumermanagement.tenancyu.list serviceconsumermanagement.tenancyu.removeResource servicemanagement.services.bind servicemanagement.services.check servicemanagement.services.create servicemanagement.services.delete servicemanagement.services.get servicemanagement.services.getIamPolicy servicemanagement.services.list servicemanagement.services.quota servicemanagement.services.report servicemanagement.services.setIamPolicy servicemanagement.services.update serviceusage.quotas.get serviceusage.services.get |
roles/servicemanagement.configEditor |
servicemanagement.services.get servicemanagement.services.update |
roles/servicemanagement.reporter |
servicemanagement.services.report |
roles/servicemanagement.serviceConsumer |
servicemanagement.services.bind |
roles/servicemanagement.serviceController |
servicemanagement.services.check servicemanagement.services.get 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 la console Google Cloud, de l'API Service Management et de la Google Cloud CLI.
Gérer les accès avec la console Google Cloud
Ouvrez la page "Endpoints" dans la console Google Cloud.
- Cliquez sur le service pour lequel vous souhaitez gérer l'accès.
- Cliquez sur le lien "AUTORISATIONS" en haut de la page. Ceci active et désactive le panneau d'informations.
- 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 de la gcloud CLI
La CLI gcloud 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