Gérer les règles relatives aux consommateurs
L'activation hiérarchique des services vous permet de gérer l'activation des services héritée de la hiérarchie des ressources Google Cloud . Pour en savoir plus, consultez la présentation.
ConsumerPolicy est une ressource de l'API Service Usage qui se trouve à chaque niveau de la hiérarchie des ressourcesGoogle Cloud . Cette ressource, toujours nommée default, contient les enableRules qui définissent les services activés. Au lieu d'activer ou de désactiver un service spécifique, vous pouvez modifier la ressource ConsumerPolicy. Lorsqu'un nom de service figure dans sa liste, le service est activé à ce niveau de hiérarchie.
Ce document explique comment utiliser la Google Cloud CLI pour gérer les règles de consommateur pour les projets, les dossiers et les organisations.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Install the Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Si vous utilisez un projet existant pour ce guide, vérifiez que vous disposez des autorisations nécessaires pour suivre les instructions. Si vous avez créé un projet, vous disposez déjà des autorisations requises.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Service Usage API:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable serviceusage.googleapis.com
-
Install the Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Si vous utilisez un projet existant pour ce guide, vérifiez que vous disposez des autorisations nécessaires pour suivre les instructions. Si vous avez créé un projet, vous disposez déjà des autorisations requises.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Service Usage API:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable serviceusage.googleapis.com
- Si vous n'indiquez pas la ressource Google Cloud que vous souhaitez gérer, les commandes de ce document sont définies par défaut sur le projet actuel. Par exemple,
gcloud beta services policies get --policy-name=defaultrenvoie la stratégie du consommateur pour le projet actuel.Vous pouvez récupérer l'ID du projet actuel :
gcloud config list --format='text(core.project)'
-
Obtenir une règle de consommateur :
serviceusage.consumerpolicy.get -
Mettre à jour une règle destinée aux consommateurs :
-
serviceusage.consumerpolicy.analyze -
serviceusage.consumerpolicy.update
-
-
Obtenir une règle appliquée :
serviceusage.effectivepolicy.get -
Vérifiez si un service est activé :
serviceusage.values.test PROJECT_ID: ID de votre projetGoogle Cloud . Vous pouvez également omettre l'indicateur pour utiliser le projet actuel par défaut.OUTPUT_FILE: (facultatif) chemin d'accès à un fichier de sortie dans lequel le contenu de la règle relative aux consommateurs peut être enregistré. Les formats de fichiers acceptés sont JSON et YAML.FOLDER_ID: l'Google Cloud ID de votre dossier.OUTPUT_FILE: (facultatif) chemin d'accès à un fichier de sortie dans lequel le contenu de la règle relative aux consommateurs peut être enregistré. Les formats de fichiers acceptés sont JSON et YAML.ORGANIZATION_ID: Google Cloud ID de ressource de votre organisation.OUTPUT_FILE: (facultatif) chemin d'accès à un fichier de sortie dans lequel le contenu de la règle relative aux consommateurs peut être enregistré. Les formats de fichiers acceptés sont JSON et YAML.--bypass-api-usage-checkpour contourner les vérifications d'utilisation. Sinon, le système renvoie une erreur si l'un des services que vous souhaitez désactiver a été utilisé au cours des 30 derniers jours ou activé au cours des trois derniers jours.--bypass-dependency-checkpour contourner la vérification des dépendances. Lorsque vous ajoutez un service, toutes les dépendances de service doivent figurer dans la règle. Lorsque vous supprimez un service, aucun autre service de la règle ne peut en dépendre. Sinon, la mise à jour échoue et une erreur est renvoyée.--validate-onlypour valider la mise à jour sans effectuer l'opération.Pour obtenir un modèle YAML pour le fichier de stratégie, commencez par récupérer la stratégie du consommateur et utilisez l'indicateur
--output-filepour enregistrer la stratégie dans un fichier. Modifiez ensuite ce fichier et utilisez-le comme entrée pour la commande de mise à jour. Exemple de modèle :name: projects/PROJECT_ID/consumerPolicies/default enableRules: services: - services/SERVICE - ... - ...Remplacez les éléments suivants :
PROJECT_ID: ID de votre projetGoogle Cloud . Les autres noms de ressources compatibles suivent un format semblable, par exemple :folders/FOLDER_ID/consumerPolicies/default.SERVICE: nom du service, par exemplebigquery.googleapis.com.
PROJECT_ID: ID de votre projetGoogle Cloud . Vous pouvez également omettre l'indicateur pour utiliser le projet actuel par défaut.VIEW:BASICpour récupérer un ensemble limité de métadonnées ouFULLpour récupérer l'ensemble complet des métadonnées, y compris l'emplacement où chaque service a été activé dans la hiérarchie. La valeur par défaut estBASIC.FOLDER_ID: l'Google Cloud ID de votre dossier.VIEW:BASICpour récupérer un ensemble limité de métadonnées ouFULLpour récupérer l'ensemble complet des métadonnées, y compris l'emplacement où chaque service a été activé dans la hiérarchie. La valeur par défaut estBASIC.ORGANIZATION_ID: Google Cloud ID de ressource de votre organisation.VIEW:BASICpour récupérer un ensemble limité de métadonnées ouFULLpour récupérer l'ensemble complet des métadonnées, y compris l'emplacement où chaque service a été activé dans la hiérarchie. La valeur par défaut estBASIC.SERVICE: nom du service que vous souhaitez vérifier.PROJECT_ID: ID de votre projetGoogle Cloud . Vous pouvez également omettre l'indicateur pour utiliser le projet actuel par défaut.SERVICE: nom du service que vous souhaitez vérifier.FOLDER_ID: l'Google Cloud ID de votre dossier.SERVICE: nom du service que vous souhaitez vérifier.ORGANIZATION_ID: Google Cloud ID de ressource de votre organisation.- Récupérer la stratégie client pour le projet actuel :
gcloud beta services policies get
Résultat :
name: projects/PROJECT_ID/consumerPolicies/default enableRules: services: - services/apikeys.googleapis.com - services/compute.googleapis.com - services/oslogin.googleapis.com - services/serviceusage.googleapis.com updateTime: 2025-09-11T23:05:22.758394Z createTime: 2025-01-31T20:17:37.272343Z etag: W/"W9nsVJK0V1m7ee7tM7pFDg=="
- Mise à jour réussie de la règle destinée aux consommateurs :
gcloud beta services policies update --consumer-policy-file=/tmp/test.yaml
Résultat :
Operation [operations/ucpat.p39-581601899707-86fe7e37-c7f9-4624-90c4-d54754d57eed] complete. Result: { "@type":"type.googleapis.com/google.api.serviceusage.v2beta.ConsumerPolicy", "createTime":"1970-01-01T00:00:00Z", "enableRules":[ { "services":[ "services/apikeys.googleapis.com" ] } ], "name":"projects/PROJECT_ID/consumerPolicies/default", "updateTime":"1970-01-01T00:00:00Z" }
- Échec de la mise à jour de la règle pour les consommateurs :
gcloud beta services policies update --consumer-policy-file=/tmp/test.json
Message d'erreur :
ERROR: (gcloud.beta.services.policies.update) Invalid consumer_policy_file format. Please provide path to a yaml file.
- Tentative de mise à jour de la règle relative aux consommateurs lorsque le service a été utilisé ou activé récemment :
gcloud beta services policies update --consumer-policy-file=/tmp/test.yaml
Résultat :
The operation "operations/ucpat.p39-581601899707-4884bdb0-d899-49ac-9c83-38457950ef33" resulted in a failure "The services apikeys.googleapis.com have usage in the last 30 days or were enabled in the past 3 days. Please specify force if you want to proceed with the destructive policy change. Help Token: AVSZLmtCfGwMm4oHmOyExdDEFRQ0pFiBrl879nbZlY2JkfVzeU63u66ApXYr6MIEAoig..."
- Mise à jour de la règle pour les consommateurs lorsque le service a été utilisé ou activé récemment en ignorant la vérification de l'utilisation :
gcloud beta services policies update --consumer-policy-file=/tmp/test.yaml --bypass-api-usage-check
Résultat :
Operation [operations/ucpat.p39-581601899707-8ffda670-ed04-4776-8d43-d2f8e1817e00] complete. Result: { "@type":"type.googleapis.com/google.api.serviceusage.v2beta.ConsumerPolicy", "createTime":"1970-01-01T00:00:00Z", "enableRules":[ { "services":[ "services/serviceusage.googleapis.com" ] } ], "name":"projects/PROJECT_ID/consumerPolicies/default", "updateTime":"1970-01-01T00:00:00Z" }
- Récupération de la vue
BASICde la règle en vigueur pour le projet actuel :gcloud beta services policies get-effective
Résultat :
EnabledRules: Services: - services/apikeys.googleapis.com - services/compute.googleapis.com - services/computescanning.googleapis.com - services/containeranalysis.googleapis.com - services/containerscanning.googleapis.com - services/gkebackup.googleapis.com - services/osconfig.googleapis.com - services/oslogin.googleapis.com - services/serviceusage.googleapis.com
- Récupération de la vue
FULLde la règle en vigueur pour le projet actuel :gcloud beta services policies get-effective --view=FULL
Résultat :
EnabledRules: Services: - services/apikeys.googleapis.com - services/compute.googleapis.com - services/computescanning.googleapis.com - services/containeranalysis.googleapis.com - services/containerscanning.googleapis.com - services/gkebackup.googleapis.com - services/osconfig.googleapis.com - services/oslogin.googleapis.com - services/serviceusage.googleapis.com Metadata of effective policy: EnabledService: services/apikeys.googleapis.com EnabledPolicies: ['projects/PROJECT_ID/consumerPolicies/default'] EnabledService: services/bcidcloudenforcer-pa.googleapis.com EnabledPolicies: ['folders/FOLDER_ID/consumerPolicies/default'] EnabledService: services/compute.googleapis.com EnabledPolicies: ['projects/PROJECT_ID/consumerPolicies/default'] ...
- Vérification de l'état du service de clés API activé pour le projet en cours :
gcloud beta services policies test-enabled apikeys.googleapis.com
Résultat :
Service apikeys.googleapis.com is ENABLED for resource projects/test-project Hierarchical Service Activation. - Vérifier l'état du service App Hub désactivé pour le projet actuel :
gcloud beta services policies test-enabled apphub.googleapis.com
Résultat :
Service apphub.googleapis.com is NOT ENABLED for resource projects/test-project Hierarchical Service Activation. - Pour activer et désactiver des services, consultez Gérer l'activation des services.
- Pour inspecter les dépendances de service, consultez Lister les dépendances de service.
Rôles requis
Pour obtenir les autorisations nécessaires pour gérer les règles des consommateurs, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin) sur votre ressource cible.
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient les autorisations requises pour gérer les règles des consommateurs. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour gérer les règles destinées aux consommateurs :
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Obtenir une règle pour un consommateur
Vous pouvez récupérer le ConsumerPolicy d'un projet, d'un dossier ou d'une organisation à l'aide de la commande gcloud beta services policies get.
Cette commande renvoie le enableRules défini au niveau exact de la ressource, et non les règles héritées. Pour obtenir une vue plus complète incluant les règles héritées, vous pouvez récupérer la stratégie en vigueur. Seul le nom de règle default est accepté.
Projet
gcloud beta services policies get --policy-name=default \
--project=PROJECT_ID \
--output-file=OUTPUT_FILE
Remplacez les éléments suivants :
Dossier
gcloud beta services policies get --policy-name=default \
--folder=FOLDER_ID \
--output-file=OUTPUT_FILE
Remplacez les éléments suivants :
Organisation
gcloud beta services policies get --policy-name=default \
--organization=ORGANIZATION_ID \
--output-file=OUTPUT_FILE
Remplacez les éléments suivants :
Mettre à jour une règle de consommateur
Vous pouvez mettre à jour un ConsumerPolicy à l'aide de la commande gcloud beta services policies update. Cela vous permet de remplacer la règle actuelle et d'utiliser un fichier YAML pour mettre à jour plusieurs services activés à la fois.
Cette commande n'active pas automatiquement les dépendances de service.
Vous devez lister explicitement toutes les dépendances de service dans le fichier d'entrée. Vous pouvez utiliser l'indicateur --validate-only pour prévisualiser les modifications avant de les appliquer.
gcloud beta services policies update --consumer-policy-file=PATH_TO_CONSUMER_POLICY
Remplacez PATH_TO_CONSUMER_POLICY par le chemin d'accès au fichier YAML contenant la règle du consommateur, par exemple :
gcloud beta services policies update --consumer-policy-file=/path/to/the/file.yaml
Indicateurs compatibles :
Veuillez noter les points suivants :
Obtenir une règle appliquée
Vous pouvez récupérer la stratégie effective d'une ressource à l'aide de la commande gcloud beta services policies get-effective.
La stratégie applicable combine le ConsumerPolicy de la ressource avec les stratégies de tous ses ancêtres. Vous obtenez ainsi une vue complète de tous les services activés, y compris ceux activés directement sur la ressource et ceux hérités de ses ancêtres.
Projet
gcloud beta services policies get-effective --project=PROJECT_ID \
--view=VIEW
Remplacez les éléments suivants :
Dossier
gcloud beta services policies get-effective --folder=FOLDER_ID \
--view=VIEW
Remplacez les éléments suivants :
Organisation
gcloud beta services policies get-effective --organization=ORGANIZATION_ID \
--view=VIEW
Remplacez les éléments suivants :
Vérifier si un service est activé
Vous pouvez vérifier si un service est activé sur une ressource à l'aide de la commande gcloud beta services policies test-enabled.
Lorsque vous vérifiez l'état d'un service, cette commande tient compte du règlement effectif et de l'intégralité de la hiérarchie des ressources Google Cloud .
Projet
gcloud beta services policies test-enabled SERVICE \
--project=PROJECT_ID
Remplacez les éléments suivants :
Dossier
gcloud beta services policies test-enabled SERVICE \
--folder=FOLDER_ID
Remplacez les éléments suivants :
Organisation
gcloud beta services policies test-enabled SERVICE \
--organization=ORGANIZATION_ID
Remplacez les éléments suivants :