Gestionar políticas para consumidores
La activación jerárquica de servicios te permite gestionar la habilitación de servicios que se hereda a través de la Google Cloud jerarquía de recursos. Para obtener más información, consulta el resumen.
El ConsumerPolicy es un recurso de la API Uso de Servicio que se encuentra en cada nivel de la jerarquía de recursosGoogle Cloud . Este recurso, que siempre se llama default, contiene los enableRules que definen qué servicios están habilitados. En lugar de habilitar o inhabilitar un servicio específico, puedes modificar el recurso ConsumerPolicy. Cuando el nombre de un servicio está en su lista, el servicio se habilita en ese nivel de jerarquía.
En este documento se explica cómo usar la CLI de Google Cloud para gestionar las políticas de consumidor de proyectos, carpetas y organizaciones.
Antes de empezar
- 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 utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente 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.
-
Si vas a usar un proyecto que ya tengas para seguir esta guía, verifica que tienes los permisos necesarios para completarla. Si has creado un proyecto, ya tienes los permisos necesarios.
-
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 utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente 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.
-
Si vas a usar un proyecto que ya tengas para seguir esta guía, verifica que tienes los permisos necesarios para completarla. Si has creado un proyecto, ya tienes los permisos necesarios.
-
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 no indicas el Google Cloud recurso que quieres gestionar, los comandos de este documento se aplicarán de forma predeterminada al proyecto actual. Por ejemplo,
gcloud beta services policies get --policy-name=defaultdevuelve la política de consumidor del proyecto actual.Puedes obtener el ID del proyecto actual:
gcloud config list --format='text(core.project)'
-
Obtener una política de consumidor:
serviceusage.consumerpolicy.get -
Actualizar una política de consumidor:
-
serviceusage.consumerpolicy.analyze -
serviceusage.consumerpolicy.update
-
-
Obtener una política en vigor:
serviceusage.effectivepolicy.get -
Comprobar si un servicio está habilitado:
serviceusage.values.test PROJECT_ID: tu Google Cloud ID de proyecto. También puedes omitir la marca para usar el proyecto actual de forma predeterminada.OUTPUT_FILE: (opcional) la ruta a un archivo de salida donde se puede guardar el contenido de la política de consumidor. Los formatos de archivo admitidos son JSON y YAML.FOLDER_ID: tu Google Cloud ID de carpeta.OUTPUT_FILE: (opcional) la ruta a un archivo de salida donde se puede guardar el contenido de la política de consumidor. Los formatos de archivo admitidos son JSON y YAML.ORGANIZATION_ID: el Google Cloud ID de recurso de tu organización.OUTPUT_FILE: (opcional) la ruta a un archivo de salida donde se puede guardar el contenido de la política de consumidor. Los formatos de archivo admitidos son JSON y YAML.--bypass-api-usage-checkpara omitir las comprobaciones de uso. De lo contrario, el sistema devolverá un error si alguno de los servicios que quieres inhabilitar se ha usado en los últimos 30 días o se ha habilitado en los últimos 3 días.--bypass-dependency-checkpara omitir la comprobación de dependencias. Cuando añadas un servicio, todas las dependencias de servicio deben estar presentes en la política. Cuando se elimina un servicio, ningún otro servicio de la política puede depender de él. De lo contrario, la actualización no se completará y se devolverá un error.--validate-onlypara validar la actualización sin realizar la operación.Para obtener una plantilla YAML del archivo de política, primero recupera la política de consumidor y usa la marca
--output-filepara guardar la política en un archivo. A continuación, modifique este archivo y úselo como entrada para el comando de actualización. Plantilla de ejemplo:name: projects/PROJECT_ID/consumerPolicies/default enableRules: services: - services/SERVICE - ... - ...Haz los cambios siguientes:
PROJECT_ID: tu Google Cloud ID de proyecto. Otros nombres de recursos admitidos siguen un formato similar. Por ejemplo:folders/FOLDER_ID/consumerPolicies/default.SERVICE: el nombre del servicio. Por ejemplo:bigquery.googleapis.com.
PROJECT_ID: tu Google Cloud ID de proyecto. También puedes omitir la marca para usar el proyecto actual de forma predeterminada.VIEW:BASICpara obtener un conjunto limitado de metadatos oFULLpara obtener el conjunto completo de metadatos, incluido el lugar en el que se habilitó cada servicio en la jerarquía. El valor predeterminado esBASIC.FOLDER_ID: tu Google Cloud ID de carpeta.VIEW:BASICpara obtener un conjunto limitado de metadatos oFULLpara obtener el conjunto completo de metadatos, incluido el lugar en el que se habilitó cada servicio en la jerarquía. El valor predeterminado esBASIC.ORGANIZATION_ID: el Google Cloud ID de recurso de tu organización.VIEW:BASICpara obtener un conjunto limitado de metadatos oFULLpara obtener el conjunto completo de metadatos, incluido el lugar en el que se habilitó cada servicio en la jerarquía. El valor predeterminado esBASIC.SERVICE: el nombre del servicio que quieras consultar.PROJECT_ID: tu Google Cloud ID de proyecto. También puedes omitir la marca para usar el proyecto actual de forma predeterminada.SERVICE: el nombre del servicio que quieras consultar.FOLDER_ID: tu Google Cloud ID de carpeta.SERVICE: el nombre del servicio que quieras consultar.ORGANIZATION_ID: el Google Cloud ID de recurso de tu organización.- Obteniendo la política de consumidor del proyecto actual:
gcloud beta services policies get
Resultado:
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=="
- Política de consumidor actualizada correctamente:
gcloud beta services policies update --consumer-policy-file=/tmp/test.yaml
Resultado:
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" }
- No se ha podido actualizar la política de consumidor:
gcloud beta services policies update --consumer-policy-file=/tmp/test.json
Mensaje de error:
ERROR: (gcloud.beta.services.policies.update) Invalid consumer_policy_file format. Please provide path to a yaml file.
- Intentar actualizar la política de consumidor cuando el servicio se ha usado o habilitado recientemente:
gcloud beta services policies update --consumer-policy-file=/tmp/test.yaml
Resultado:
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..."
- Actualizar la política de consumidor cuando el servicio se haya usado o habilitado recientemente sin comprobar el uso:
gcloud beta services policies update --consumer-policy-file=/tmp/test.yaml --bypass-api-usage-check
Resultado:
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" }
- Recuperando la vista
BASICde la política aplicable al proyecto actual:gcloud beta services policies get-effective
Resultado:
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
- Se obtiene la vista
FULLde la política aplicable al proyecto actual:gcloud beta services policies get-effective --view=FULL
Resultado:
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'] ...
- Comprobando el estado del servicio de claves de API habilitadas del proyecto actual:
gcloud beta services policies test-enabled apikeys.googleapis.com
Resultado:
Service apikeys.googleapis.com is ENABLED for resource projects/test-project Hierarchical Service Activation. - Para comprobar el estado del servicio App Hub inhabilitado en el proyecto actual, sigue estos pasos:
gcloud beta services policies test-enabled apphub.googleapis.com
Resultado:
Service apphub.googleapis.com is NOT ENABLED for resource projects/test-project Hierarchical Service Activation. - Para habilitar e inhabilitar servicios, consulta Gestionar la habilitación de servicios.
- Para inspeccionar las dependencias de servicios, consulta Lista de dependencias de servicios.
Roles obligatorios
Para obtener los permisos que necesitas para gestionar las políticas de consumidor,
pide a tu administrador que te conceda el
rol de gestión de identidades y accesos Administrador de Uso de Servicio (roles/serviceusage.serviceUsageAdmin)
en el recurso de destino.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para gestionar las políticas de consumidor. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:
Permisos obligatorios
Para gestionar las políticas de consumidor, se necesitan los siguientes permisos:
También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.
Obtener una política de consumidor
Puedes obtener el ConsumerPolicy de un proyecto, una carpeta o una organización mediante el comando gcloud beta services policies get.
Este comando devuelve el conjunto enableRules definido en ese nivel de recurso exacto, y no las reglas heredadas. Para obtener una vista más completa que incluya las reglas heredadas, puedes consultar la política vigente. Solo se admite el nombre de la política default.
Proyecto
gcloud beta services policies get --policy-name=default \
--project=PROJECT_ID \
--output-file=OUTPUT_FILE
Haz los cambios siguientes:
Carpeta
gcloud beta services policies get --policy-name=default \
--folder=FOLDER_ID \
--output-file=OUTPUT_FILE
Haz los cambios siguientes:
Organización
gcloud beta services policies get --policy-name=default \
--organization=ORGANIZATION_ID \
--output-file=OUTPUT_FILE
Haz los cambios siguientes:
Actualizar una política de consumidor
Puedes actualizar un ConsumerPolicy con el comando
gcloud beta services policies update. De esta forma, puedes sustituir la política actual y usar un archivo YAML para actualizar muchos servicios habilitados a la vez.
Este comando no habilita automáticamente las dependencias de servicio.
Debes enumerar explícitamente todas las dependencias de servicio en el archivo de entrada. Puedes usar la marca --validate-only para previsualizar los cambios antes de aplicarlos.
gcloud beta services policies update --consumer-policy-file=PATH_TO_CONSUMER_POLICY
Sustituye PATH_TO_CONSUMER_POLICY por la ruta del archivo YAML que contiene la política de consumidor. Por ejemplo:
gcloud beta services policies update --consumer-policy-file=/path/to/the/file.yaml
Marcas admitidas:
Ten en cuenta lo siguiente:
Obtener una política eficaz
Para obtener la política efectiva de un recurso, usa el comando
gcloud beta services policies get-effective.
La política efectiva combina el ConsumerPolicy del recurso con las políticas de todos sus ancestros. De esta forma, obtendrás una vista completa de todos los servicios habilitados, incluidos los que se han habilitado directamente en el recurso y los que ha heredado de sus antecesores.
Proyecto
gcloud beta services policies get-effective --project=PROJECT_ID \
--view=VIEW
Haz los cambios siguientes:
Carpeta
gcloud beta services policies get-effective --folder=FOLDER_ID \
--view=VIEW
Haz los cambios siguientes:
Organización
gcloud beta services policies get-effective --organization=ORGANIZATION_ID \
--view=VIEW
Haz los cambios siguientes:
Comprobar si un servicio está habilitado
Para comprobar si un servicio está habilitado en un recurso, usa el comando
gcloud beta services policies test-enabled.
Al comprobar el estado de un servicio, este comando tiene en cuenta la política efectiva y la jerarquía de recursos completa de Google Cloud .
Proyecto
gcloud beta services policies test-enabled SERVICE \
--project=PROJECT_ID
Haz los cambios siguientes:
Carpeta
gcloud beta services policies test-enabled SERVICE \
--folder=FOLDER_ID
Haz los cambios siguientes:
Organización
gcloud beta services policies test-enabled SERVICE \
--organization=ORGANIZATION_ID
Haz los cambios siguientes: