Administra la habilitación de servicios

La activación jerárquica de servicios te permite administrar la habilitación de servicios que se heredan a través de la jerarquía de recursos Google Cloud . Para obtener más información, consulta la descripción general.

En este documento, se muestra cómo usar Google Cloud CLI para administrar la habilitación de servicios en proyectos, carpetas y organizaciones.

Antes de comenzar

  1. 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.
  2. Install the Google Cloud CLI.

  3. Si usas un proveedor de identidad externo (IdP), primero debes Acceder a la gcloud CLI con tu identidad federada.

  4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  5. 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 the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with 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_ID with your Google Cloud project name.

  6. Si usas un proyecto existente para esta guía, verifica que tengas los permisos necesarios para completarla. Si creaste un proyecto nuevo, ya tienes los permisos necesarios.

  7. Verify that billing is enabled for your Google Cloud project.

  8. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable serviceusage.googleapis.com
  9. Install the Google Cloud CLI.

  10. Si usas un proveedor de identidad externo (IdP), primero debes Acceder a la gcloud CLI con tu identidad federada.

  11. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  12. 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 the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with 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_ID with your Google Cloud project name.

  13. Si usas un proyecto existente para esta guía, verifica que tengas los permisos necesarios para completarla. Si creaste un proyecto nuevo, ya tienes los permisos necesarios.

  14. Verify that billing is enabled for your Google Cloud project.

  15. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable serviceusage.googleapis.com
  16. Si no indicas el recurso Google Cloud que deseas administrar, los comandos de este documento se establecerán de forma predeterminada en el proyecto actual. Por ejemplo, gcloud beta services list --enabled devuelve una lista de los servicios habilitados para el proyecto actual.

    Puedes recuperar el ID del proyecto actual:

    gcloud config list --format='text(core.project)'
  17. Roles obligatorios

    Si deseas obtener los permisos que necesitas para administrar la habilitación de servicios, pídele a tu administrador que te otorgue el rol de IAM Administrador de Service Usage (roles/serviceusage.serviceUsageAdmin) en tu recurso de destino. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

    Este rol predefinido contiene los permisos necesarios para administrar la habilitación de servicios. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

    Permisos necesarios

    Se requieren los siguientes permisos para administrar la habilitación de servicios:

    • Enumera los servicios:
      • serviceusage.effectivepolicy.get
      • serviceusage.services.list
      • serviceusage.services.get
    • Habilita los servicios:
      • serviceusage.consumerpolicy.get
      • serviceusage.consumerpolicy.update
      • serviceusage.groups.listExpandedMembers
    • Inhabilita los servicios:
      • serviceusage.consumerpolicy.get
      • serviceusage.consumerpolicy.update
      • serviceusage.consumerpolicy.analyze

    También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

    Enumera servicios

    Puedes enumerar las APIs y los servicios de Google que están habilitados o disponibles para un proyecto, una carpeta o una organización con el comando gcloud beta services list.

    La habilitación y la disponibilidad del servicio se pueden heredar de los recursos antecesores. Los servicios habilitados de un recurso incluyen los servicios que están habilitados en el recurso en sí y en todos los recursos superiores.

    Proyecto

    gcloud beta services list --enabled \
        --project=PROJECT_ID
    

    Reemplaza PROJECT_ID por el Google Cloud ID del proyecto. También puedes omitir la marca para usar el proyecto actual de forma predeterminada.

    Carpeta

    gcloud beta services list --enabled \
        --folder=FOLDER_ID
    

    Reemplaza FOLDER_ID por el Google Cloud ID de tu carpeta.

    Organización

    gcloud beta services list --enabled \
        --organization=ORGANIZATION_ID
    

    Reemplaza ORGANIZATION_ID por el ID del recurso de tu organizaciónGoogle Cloud .

    Ten en cuenta lo siguiente:

    • Debes especificar una de las siguientes marcas:

      • --available para enumerar los servicios que se pueden habilitar para el consumo.
      • --enabled para enumerar los servicios que están habilitados para el consumo.
    • Puedes usar otras marcas para filtrar y limitar los servicios que se muestran.

    Habilita los servicios

    Puedes habilitar uno o más servicios para un proyecto, una carpeta o una organización con el comando gcloud beta services enable.

    Este comando actualiza el ConsumerPolicy en el recurso de destino. Para obtener más información, consulta Administra políticas para consumidores.

    Proyecto

    gcloud beta services enable SERVICE \
        --project=PROJECT_ID
    

    Reemplaza lo siguiente:

    • SERVICE: Es el nombre del servicio que deseas habilitar. Para habilitar varios servicios, usa nombres de servicios separados por espacios. Por ejemplo, el siguiente comando habilita los servicios de claves de API y BigQuery: gcloud beta services enable apikeys.googleapis.com bigquery.googleapis.com.
    • PROJECT_ID: Es el Google Cloud ID del proyecto. También puedes omitir la marca para usar el proyecto actual de forma predeterminada.

    Carpeta

    gcloud beta services enable SERVICE \
        --folder=FOLDER_ID
    

    Reemplaza lo siguiente:

    • SERVICE: Es el nombre del servicio que deseas habilitar. Para habilitar varios servicios, usa nombres de servicio separados por espacios, por ejemplo: gcloud beta services enable apikeys.googleapis.com bigquery.googleapis.com.
    • FOLDER_ID: Es el Google Cloud ID de la carpeta.

    Organización

    gcloud beta services enable SERVICE \
        --organization=ORGANIZATION_ID
    

    Reemplaza lo siguiente:

    • SERVICE: Es el nombre del servicio que deseas habilitar. Para habilitar varios servicios, usa nombres de servicio separados por espacios, por ejemplo: gcloud beta services enable apikeys.googleapis.com bigquery.googleapis.com.
    • ORGANIZATION_ID: Es el Google Cloud ID del recurso de organización.

    Marcas compatibles:

    • --async para que se muestre de inmediato, sin necesidad de esperar a que se complete la operación en curso.

    • --skip-dependency para omitir la habilitación de cualquier dependencia de servicio De lo contrario, todas las dependencias de servicio están habilitadas de forma predeterminada.

      Puedes inspeccionar las dependencias de los servicios. Para obtener más información, consulta Cómo enumerar las dependencias del servicio.

    • --validate-only para validar la habilitación sin realizar la operación.

    Ten en cuenta lo siguiente:

    • Si intentas habilitar un servicio que ya está habilitado, recibirás un error que indica que el servicio ya está habilitado y presente en la política del consumidor. (Si el servicio ya está habilitado, pero sus dependencias no, el comando se ejecutará correctamente).

    • Si habilitas un servicio a nivel de la carpeta o la organización, es posible que la restricción de la política de la organización constraints/serviceuser.services no funcione como se espera. En cambio, te recomendamos que uses la restricción Restrict Resource Service Usage. Para obtener más información, consulta Cómo restringir el uso de recursos.

    • Google Cloud Crea y administra cuentas de servicio para muchos Google Cloud servicios. Estas cuentas de servicio se conocen como agentes de servicio. Si encuentras un error service account not found, es posible que debas crear un agente de servicio con el comando gcloud beta services identity create.

    Inhabilita servicios

    Puedes inhabilitar uno o más servicios para un proyecto, una carpeta o una organización con el comando gcloud beta services disable.

    Este comando actualiza el ConsumerPolicy en el recurso de destino. Para obtener más información, consulta Administra políticas para consumidores.

    Proyecto

    gcloud beta services disable SERVICE \
        --project=PROJECT_ID
    

    Reemplaza lo siguiente:

    • SERVICE: Es el nombre del servicio que deseas inhabilitar. Para inhabilitar varios servicios, usa nombres de servicio separados por espacios, por ejemplo: gcloud beta services disable apikeys.googleapis.com bigquery.googleapis.com.
    • PROJECT_ID: Es el Google Cloud ID del proyecto. También puedes omitir la marca para usar el proyecto actual de forma predeterminada.

    Carpeta

    gcloud beta services disable SERVICE \
        --folder=FOLDER_ID
    

    Reemplaza lo siguiente:

    • SERVICE: Es el nombre del servicio que deseas inhabilitar. Para inhabilitar varios servicios, usa nombres de servicio separados por espacios, por ejemplo: gcloud beta services disable apikeys.googleapis.com bigquery.googleapis.com.
    • FOLDER_ID: Es el Google Cloud ID de la carpeta.

    Organización

    gcloud beta services disable SERVICE \
        --organization=ORGANIZATION_ID
    

    Reemplaza lo siguiente:

    • SERVICE: Es el nombre del servicio que deseas inhabilitar. Para inhabilitar varios servicios, usa nombres de servicio separados por espacios, por ejemplo: gcloud beta services disable apikeys.googleapis.com bigquery.googleapis.com.
    • ORGANIZATION_ID: Es el Google Cloud ID del recurso de organización.

    Marcas compatibles:

    • --async para que se muestre de inmediato, sin necesidad de esperar a que se complete la operación en curso.

    • --bypass-api-usage-check para omitir las verificaciones de uso De lo contrario, el sistema devolverá un error si el servicio que deseas inhabilitar se usó en los últimos 30 días o se habilitó en los últimos 3 días.

    • Puedes especificar una de las siguientes marcas:

      • --bypass-dependency-service-check para omitir la verificación de dependencias: Los servicios habilitados que dependan del servicio que estás inhabilitando permanecerán habilitados.
      • --disable-dependency-services para continuar con la inhabilitación del servicio y de los servicios habilitados que dependen del servicio que estás inhabilitando

      Puedes inspeccionar las dependencias de los servicios. Para obtener más información, consulta Cómo enumerar las dependencias del servicio.

    • --force para continuar incluso si hay servicios habilitados que dependen del servicio, o si el servicio se usó en los últimos 30 días o se habilitó en los últimos 3 días. También se inhabilitarán los servicios dependientes.

      Las marcas --bypass-api-usage-check, --bypass-dependency-service-check y --disable-dependency-services tienen prioridad sobre la marca --force.

      Usar las marcas --disable-dependency-services y --bypass-api-usage-check equivale a usar la marca --force. El servicio y sus dependencias se inhabilitan sin verificar su uso.

    • --validate-only para validar la inhabilitación sin realizar la operación.

    Ejemplos

    Habilita un servicio

    • Habilitar el servicio de BigQuery sin sus dependencias:
      gcloud beta services enable bigquery.googleapis.com --skip-dependency

      Resultado:

      Operation [operations/ucpat.p39-581601899707-73a57d57-aa46-4d0b-a5ee-57034a42f2b3] complete. Result: {
            "@type":"type.googleapis.com/google.api.serviceusage.with Hierarchical Service Activationbeta.ConsumerPolicy",
            "createTime":"2025-01-31T20:17:37.272343Z",
            "enableRules":[
                {
                    "services":[
                        "services/apikeys.googleapis.com",
                        "services/compute.googleapis.com",
                        "services/oslogin.googleapis.com",
                        "services/serviceusage.googleapis.com",
                        "services/bigquery.googleapis.com"
                    ]
                }
            ],
            "etag":"W/\"W9nsVJK0V1m7ee7tM7pFDg==\"",
            "name":"projects/PROJECT_ID/consumerPolicies/default",
            "updateTime":"2025-09-11T23:05:22.758394Z"
        }
    • Habilita el servicio de BigQuery con sus dependencias:
      gcloud beta services enable bigquery.googleapis.com

      Resultado:

      Operation [operations/ucpat.p39-581601899707-73192b0f-053c-46ee-911a-7eca6b8fe899] complete. Result: {
            "@type":"type.googleapis.com/google.api.serviceusage.with Hierarchical Service Activationbeta.ConsumerPolicy",
            "createTime":"2025-01-31T20:17:37.272343Z",
            "enableRules":[
                {
                    "services":[
                        "services/apikeys.googleapis.com",
                        "services/compute.googleapis.com",
                        "services/oslogin.googleapis.com",
                        "services/serviceusage.googleapis.com",
                        "services/cloudresourcemanager.googleapis.com",
                        "services/dataplex.googleapis.com",
                        "services/bigquery.googleapis.com",
                        "services/bigquerystorage.googleapis.com",
                        "services/bigqueryconnection.googleapis.com",
                        "services/analyticshub.googleapis.com",
                        "services/bigquerymigration.googleapis.com",
                        "services/dataform.googleapis.com",
                        "services/bigquerydatapolicy.googleapis.com",
                        "services/bigquerydatatransfer.googleapis.com",
                        "services/bigqueryreservation.googleapis.com"
                    ]
                }
            ],
            "etag":"W/\"FDXMAIdsBW7BrXjL7oP6FA==\"",
            "name":"projects/PROJECT_ID/consumerPolicies/default",
            "updateTime":"2025-09-12T19:44:23.675769Z"
        }

    Inhabilita un servicio

    • Intento de inhabilitar el servicio de BigQuery con dependencias activas:
      gcloud beta services disable bigquery.googleapis.com

      Mensaje de error:

      ERROR: (gcloud.beta.services.disable) The services are depended on by the following active service(s) {"bigquery.googleapis.com": ["services/bigquerystorage.googleapis.com"]} . Please remove the active dependent services or provide the --disable-dependency-services flag to disable them, or --bypass-dependency-service-check to ignore this check.
    • Intento de inhabilitar el servicio de BigQuery con uso reciente:
      gcloud beta services disable bigquery.googleapis.com --disable-dependency-services

      Mensaje de error:

      ERROR: (gcloud.beta.services.disable) The operation "operations/ucpat.p39-581601899707-d35c2e2b-d2a3-47af-a1c0-033ed65df236" resulted in a failure "The services bigquery.googleapis.com,bigquerystorage.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.
    • Inhabilita el servicio de BigQuery y sus dependencias, y omite la verificación de uso:
      gcloud beta services disable bigquery.googleapis.com --disable-dependency-services --bypass-api-usage-check

      Resultado:

      Operation [operations/ucpat.p39-581601899707-5c02aa04-7ad7-4eb6-a6a1-dc68653bcdb4] complete. Result: {
          "@type":"type.googleapis.com/google.api.serviceusage.v2beta.ConsumerPolicy",
          "createTime":"2025-01-31T20:17:37.272343Z",
          "enableRules":[
              {
                  "services":[
                      "services/analyticshub.googleapis.com",
                      "services/apikeys.googleapis.com",
                      "services/bigqueryconnection.googleapis.com",
                      "services/bigquerydatapolicy.googleapis.com",
                      "services/bigquerydatatransfer.googleapis.com",
                      "services/bigquerymigration.googleapis.com",
                      "services/bigqueryreservation.googleapis.com",
                      "services/cloudresourcemanager.googleapis.com",
                      "services/compute.googleapis.com",
                      "services/dataform.googleapis.com",
                      "services/dataplex.googleapis.com",
                      "services/oslogin.googleapis.com",
                      "services/serviceusage.googleapis.com"
                  ]
              }
          ],
          "etag":"W/\"TqbPaELDHlZQOj7As1P06g==\"",
          "name":"projects/PROJECT_ID/consumerPolicies/default",
          "updateTime":"2025-09-30T21:39:40.746125Z"
      }

    ¿Qué sigue?