Gestire le norme per i consumatori
L'attivazione gerarchica dei servizi consente di gestire l'abilitazione dei servizi ereditata tramite la gerarchia delle risorse Google Cloud . Per saperne di più, consulta la panoramica.
ConsumerPolicy è una risorsa dell'API Service Usage che si trova a ogni livello della gerarchia di risorseGoogle Cloud . Questa risorsa, sempre denominata default,
contiene enableRules che definiscono i servizi abilitati. Anziché
attivare o disattivare un servizio specifico, puoi modificare la risorsa ConsumerPolicy. Quando un nome di servizio è presente nell'elenco, il servizio è abilitato a quel livello della gerarchia.
Questo documento mostra come utilizzare Google Cloud CLI per gestire le policy per i consumatori per progetti, cartelle e organizzazioni.
Prima di iniziare
- 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.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
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.
-
Se utilizzi un progetto esistente per questa guida, verifica di disporre delle autorizzazioni necessarie per completare la guida. Se hai creato un nuovo progetto, disponi già delle autorizzazioni necessarie.
-
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.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
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.
-
Se utilizzi un progetto esistente per questa guida, verifica di disporre delle autorizzazioni necessarie per completare la guida. Se hai creato un nuovo progetto, disponi già delle autorizzazioni necessarie.
-
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
- Se non indichi la risorsa Google Cloud che vuoi gestire, i comandi in questo documento vengono impostati per impostazione predefinita sul progetto corrente. Ad esempio,
gcloud beta services policies get --policy-name=defaultrestituisce la policy consumer per il progetto corrente.Puoi recuperare l'ID progetto attuale:
gcloud config list --format='text(core.project)'
-
Recupera una policy per i consumatori:
serviceusage.consumerpolicy.get -
Aggiorna una policy per i consumatori:
-
serviceusage.consumerpolicy.analyze -
serviceusage.consumerpolicy.update
-
-
Acquisisci una policy efficace:
serviceusage.effectivepolicy.get -
Controlla se un servizio è abilitato:
serviceusage.values.test PROJECT_ID: il tuo Google Cloud ID progetto. In alternativa, ometti il flag per impostare come predefinito il progetto corrente.OUTPUT_FILE: (facoltativo) il percorso di un file di output in cui è possibile salvare i contenuti delle norme per i consumatori. I formati di file supportati sono JSON e YAML.FOLDER_ID: il tuo Google Cloud ID cartella.OUTPUT_FILE: (facoltativo) il percorso di un file di output in cui è possibile salvare i contenuti delle norme per i consumatori. I formati di file supportati sono JSON e YAML.ORGANIZATION_ID: l'Google Cloud ID risorsa organizzazione.OUTPUT_FILE: (facoltativo) il percorso di un file di output in cui è possibile salvare i contenuti delle norme per i consumatori. I formati di file supportati sono JSON e YAML.--bypass-api-usage-checkper ignorare i controlli di utilizzo. In caso contrario, il sistema restituisce un errore se uno dei servizi che vuoi disattivare è stato utilizzato negli ultimi 30 giorni o attivato negli ultimi 3 giorni.--bypass-dependency-checkper ignorare il controllo delle dipendenze. Quando aggiungi un servizio, tutte le dipendenze del servizio devono essere presenti nel criterio. Quando rimuovi un servizio, nessun altro servizio nella policy può dipendere da esso. In caso contrario, l'aggiornamento non va a buon fine e viene restituito un errore.--validate-onlyper convalidare l'aggiornamento senza eseguire l'operazione.Per ottenere un modello YAML per il file delle norme, prima recupera le norme per i consumatori e utilizza il flag
--output-fileper salvare le norme in un file. Quindi, modifica questo file e utilizzalo come input per il comando di aggiornamento. Modello di esempio:name: projects/PROJECT_ID/consumerPolicies/default enableRules: services: - services/SERVICE - ... - ...Sostituisci quanto segue:
PROJECT_ID: il tuo Google Cloud ID progetto. Altri nomi di risorse supportati seguono un formato simile, ad esempio:folders/FOLDER_ID/consumerPolicies/default.SERVICE: il nome del servizio, ad esempio:bigquery.googleapis.com.
PROJECT_ID: il tuo Google Cloud ID progetto. In alternativa, ometti il flag per impostare come predefinito il progetto corrente.VIEW:BASICper recuperare un insieme limitato di metadati oFULLper recuperare l'insieme completo di metadati, incluso il punto in cui ogni servizio è stato attivato nella gerarchia. Il valore predefinito èBASIC.FOLDER_ID: il tuo Google Cloud ID cartella.VIEW:BASICper recuperare un insieme limitato di metadati oFULLper recuperare l'insieme completo di metadati, incluso il punto in cui ogni servizio è stato attivato nella gerarchia. Il valore predefinito èBASIC.ORGANIZATION_ID: l'Google Cloud ID risorsa organizzazione.VIEW:BASICper recuperare un insieme limitato di metadati oFULLper recuperare l'insieme completo di metadati, incluso il punto in cui ogni servizio è stato attivato nella gerarchia. Il valore predefinito èBASIC.SERVICE: il nome del servizio che vuoi controllare.PROJECT_ID: il tuo Google Cloud ID progetto. In alternativa, ometti il flag per impostare come predefinito il progetto corrente.SERVICE: il nome del servizio che vuoi controllare.FOLDER_ID: il tuo Google Cloud ID cartella.SERVICE: il nome del servizio che vuoi controllare.ORGANIZATION_ID: l'Google Cloud ID risorsa organizzazione.- Recupero delle norme per i consumatori per il progetto attuale:
gcloud beta services policies get
Output:
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=="
- Aggiornamento della policy consumer riuscito:
gcloud beta services policies update --consumer-policy-file=/tmp/test.yaml
Output:
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" }
- Aggiornamento senza esito dei criteri consumer:
gcloud beta services policies update --consumer-policy-file=/tmp/test.json
Messaggio di errore:
ERROR: (gcloud.beta.services.policies.update) Invalid consumer_policy_file format. Please provide path to a yaml file.
- Tentativo di aggiornamento delle norme per i consumatori quando il servizio è stato utilizzato o attivato di recente:
gcloud beta services policies update --consumer-policy-file=/tmp/test.yaml
Output:
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..."
- Aggiornamento delle norme per i consumatori quando il servizio è stato utilizzato o attivato di recente ignorando il controllo dell'utilizzo:
gcloud beta services policies update --consumer-policy-file=/tmp/test.yaml --bypass-api-usage-check
Output:
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" }
- Recupero della visualizzazione
BASICdella norma vigente per il progetto attuale:gcloud beta services policies get-effective
Output:
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
- Recupero della visualizzazione
FULLdella norma effettiva per il progetto attuale:gcloud beta services policies get-effective --view=FULL
Output:
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'] ...
- Controllo dello stato del servizio di chiavi API abilitate per il progetto corrente:
gcloud beta services policies test-enabled apikeys.googleapis.com
Output:
Service apikeys.googleapis.com is ENABLED for resource projects/test-project Hierarchical Service Activation. - Controllo dello stato del servizio App Hub disattivato per il progetto corrente:
gcloud beta services policies test-enabled apphub.googleapis.com
Output:
Service apphub.googleapis.com is NOT ENABLED for resource projects/test-project Hierarchical Service Activation. - Per attivare e disattivare i servizi, consulta Gestire l'abilitazione dei servizi.
- Per esaminare le dipendenze del servizio, vedi Elencare le dipendenze del servizio.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per gestire le policy dei consumatori, chiedi all'amministratore di concederti il ruolo IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin) sulla risorsa di destinazione.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene le autorizzazioni necessarie per gestire le policy per i consumatori. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per gestire le policy per i consumatori sono necessarie le seguenti autorizzazioni:
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Recupera una policy consumer
Puoi recuperare ConsumerPolicy per un progetto, una cartella o un'organizzazione utilizzando il comando gcloud beta services policies get.
Questo comando restituisce il valore enableRules impostato a quel livello di risorsa esatto e non le regole ereditate. Per una visualizzazione più completa che includa le regole ereditate, puoi
recuperare le norme effettive. È supportato solo il nome del criterio default.
Progetto
gcloud beta services policies get --policy-name=default \
--project=PROJECT_ID \
--output-file=OUTPUT_FILE
Sostituisci quanto segue:
Cartella
gcloud beta services policies get --policy-name=default \
--folder=FOLDER_ID \
--output-file=OUTPUT_FILE
Sostituisci quanto segue:
Organizzazione
gcloud beta services policies get --policy-name=default \
--organization=ORGANIZATION_ID \
--output-file=OUTPUT_FILE
Sostituisci quanto segue:
Aggiorna una policy consumer
Puoi aggiornare un ConsumerPolicy utilizzando il comando
gcloud beta services policies update. In questo modo puoi sostituire la policy attuale e utilizzare un file YAML per aggiornare
molti servizi abilitati contemporaneamente.
Questo comando non attiva automaticamente
le dipendenze del servizio.
Devi elencare esplicitamente tutte le dipendenze del servizio nel file di input. Puoi utilizzare
il flag --validate-only per visualizzare l'anteprima delle modifiche prima di applicarle.
gcloud beta services policies update --consumer-policy-file=PATH_TO_CONSUMER_POLICY
Sostituisci PATH_TO_CONSUMER_POLICY con il percorso del file YAML che contiene la policy per i consumatori, ad esempio:
gcloud beta services policies update --consumer-policy-file=/path/to/the/file.yaml
Flag supportati:
Tieni presente quanto segue:
Ottenere una policy efficace
Puoi recuperare la policy effettiva per una risorsa utilizzando il comando
gcloud beta services policies get-effective.
Il criterio effettivo combina ConsumerPolicy della risorsa con i criteri
di tutti i suoi antenati. In questo modo, puoi visualizzare tutti i servizi abilitati, inclusi quelli abilitati direttamente sulla risorsa e quelli ereditati
dai relativi antenati.
Progetto
gcloud beta services policies get-effective --project=PROJECT_ID \
--view=VIEW
Sostituisci quanto segue:
Cartella
gcloud beta services policies get-effective --folder=FOLDER_ID \
--view=VIEW
Sostituisci quanto segue:
Organizzazione
gcloud beta services policies get-effective --organization=ORGANIZATION_ID \
--view=VIEW
Sostituisci quanto segue:
Controllare se un servizio è abilitato
Puoi controllare se un servizio è abilitato su una risorsa utilizzando il comando
gcloud beta services policies test-enabled.
Quando controlla lo stato di un servizio, questo comando considera la policy effettiva e la gerarchia completa delle risorse. Google Cloud
Progetto
gcloud beta services policies test-enabled SERVICE \
--project=PROJECT_ID
Sostituisci quanto segue:
Cartella
gcloud beta services policies test-enabled SERVICE \
--folder=FOLDER_ID
Sostituisci quanto segue:
Organizzazione
gcloud beta services policies test-enabled SERVICE \
--organization=ORGANIZATION_ID
Sostituisci quanto segue: