Mostrar dependencias de servicios

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.

Muchos Google Cloud servicios necesitan otros servicios para funcionar. Cuando habilitas un servicio mediante la activación jerárquica de servicios, sus dependencias obligatorias se añaden automáticamente al ConsumerPolicy. Un grupo de dependencias de servicios contiene estos servicios de los que depende, que puedes enumerar para entenderlos y gestionarlos mejor.

En este documento se explica cómo usar la CLI de Google Cloud para enumerar las dependencias de servicios de proyectos, carpetas y organizaciones.

Antes de empezar

  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 utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud 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 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.

  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 utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud 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 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.

  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 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 groups list-members bigquery.googleapis.com dependencies muestra los miembros del proyecto actual.

    Puedes obtener el ID del proyecto actual:

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

    Para obtener los permisos que necesitas para enumerar las dependencias de servicios, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Lector de Uso de Servicio (roles/serviceusage.serviceUsageViewer) 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 enumerar las dependencias de los servicios. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

    Permisos obligatorios

    Para enumerar las dependencias de servicios, se necesitan los siguientes permisos:

    • Lista los miembros del grupo de dependencias: serviceusage.groups.listMembers
    • Lista de miembros de grupos de dependencias ampliados: serviceusage.groups.listExpandedMembers

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

    Mostrar los miembros de un grupo de dependencias

    Puedes enumerar los miembros directos de un grupo de dependencias de servicios de un proyecto, una carpeta o una organización mediante el comando gcloud beta services groups list-members.

    Proyecto

    gcloud beta services groups list-members  SERVICE GROUP \
        --project=PROJECT_ID
    

    Haz los cambios siguientes:

    • SERVICE: el nombre del servicio del que quieras listar los miembros.
    • GROUP: el nombre del grupo de dependencias de servicios cuyos miembros quieres enumerar. El grupo principal admitido es dependencies.
    • PROJECT_ID: tu Google Cloud ID de proyecto. También puedes omitir la marca para usar el proyecto actual de forma predeterminada.

    Carpeta

    gcloud beta services groups list-members  SERVICE  GROUP \
        --folder=FOLDER_ID
    

    Haz los cambios siguientes:

    • SERVICE: el nombre del servicio del que quieras listar los miembros.
    • GROUP: el nombre del grupo de dependencias de servicios cuyos miembros quieres enumerar. El grupo principal admitido es dependencies.
    • FOLDER_ID: tu Google Cloud ID de carpeta.

    Organización

    gcloud beta services groups list-members  SERVICE  GROUP \
        --organization=ORGANIZATION_ID
    

    Haz los cambios siguientes:

    • SERVICE: el nombre del servicio del que quieras listar los miembros.
    • GROUP: el nombre del grupo de dependencias de servicios cuyos miembros quieres enumerar. El grupo principal admitido es dependencies.
    • ORGANIZATION_ID: tu Google Cloud ID de recurso de organización.

    Puedes usar otras marcas para filtrar y limitar los miembros que se muestran.

    Mostrar los miembros de un grupo de dependencias ampliado

    Puedes enumerar los miembros ampliados de un grupo de dependencias de servicios de un proyecto, una carpeta o una organización mediante el comando gcloud beta services groups list-expanded-members.

    Este comando devuelve una lista combinada de todas las dependencias, incluidas las de los grupos anidados, para proporcionar una lista completa de todas las dependencias de servicios.

    Proyecto

    gcloud beta services groups list-expanded-members SERVICE GROUP \
        --project=PROJECT_ID
    

    Haz los cambios siguientes:

    • SERVICE: el nombre del servicio del que quieras listar los miembros.
    • GROUP: el nombre del grupo de dependencias de servicios cuyos miembros quieres enumerar. El grupo principal admitido es dependencies.
    • PROJECT_ID: tu Google Cloud ID de proyecto. También puedes omitir la marca para usar el proyecto actual de forma predeterminada.

    Carpeta

    gcloud beta services groups list-expanded-members SERVICE  GROUP \
        --folder=FOLDER_ID
    

    Haz los cambios siguientes:

    • SERVICE: el nombre del servicio del que quieras listar los miembros.
    • GROUP: el nombre del grupo de dependencias de servicios cuyos miembros quieres enumerar. El grupo principal admitido es dependencies.
    • FOLDER_ID: tu Google Cloud ID de carpeta.

    Organización

    gcloud beta services groups list-expanded-members SERVICE  GROUP \
        --organization=ORGANIZATION_ID
    

    Haz los cambios siguientes:

    • SERVICE: el nombre del servicio del que quieras listar los miembros.
    • GROUP: el nombre del grupo de dependencias de servicios cuyos miembros quieres enumerar. El grupo principal admitido es dependencies.
    • ORGANIZATION_ID: tu Google Cloud ID de recurso de organización.

    Puedes usar otras marcas para filtrar y limitar los miembros que se muestran.

    Ejemplos

    Listar los miembros de un grupo de dependencias directas

    • Lista de dependencias directas del servicio de BigQuery del proyecto actual:
      gcloud beta services groups list-members bigquery.googleapis.com dependencies

      Resultado:

      NAME: services/analyticshub.googleapis.com
      REASON: BigQuery depends on this group to allow users to exchange data and analytics assets.
      
      NAME: services/bigquery.googleapis.com
      REASON: The service representing BigQuery which owns this dependency group and depends on the other members of this group.
      
      NAME: services/bigqueryconnection.googleapis.com
      REASON: BigQuery depends on this group to allow users to manage connections to external data sources.
      
      NAME: services/bigquerydatapolicy.googleapis.com
      REASON: BigQuery depends on this group to allow users to manage their data policies.
      
      ...
    • Se intenta enumerar las dependencias del servicio de claves de API sin un grupo de dependencias de servicio correspondiente:
      gcloud beta services groups list-members apikeys.googleapis.com dependencies --project=test-project

      Resultado:

      Listed 0 items.

    Lista de miembros de grupos de dependencias ampliados

    • Lista de dependencias ampliadas del servicio de BigQuery del proyecto actual:
      gcloud beta services groups list-expanded-members bigquery.googleapis.com dependencies

      Resultado:

      services/analyticshub.googleapis.com
      services/bigquery.googleapis.com
      services/bigqueryconnection.googleapis.com
      services/bigquerydatapolicy.googleapis.com
      services/bigquerydatatransfer.googleapis.com
      services/bigquerymigration.googleapis.com
      services/bigqueryreservation.googleapis.com
      services/bigquerystorage.googleapis.com
      services/cloudresourcemanager.googleapis.com
      services/dataform.googleapis.com
      services/dataplex.googleapis.com

    Siguientes pasos