Enumera las dependencias del servicio

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.

Muchos servicios Google Cloud necesitan otros servicios para funcionar. Cuando habilitas un servicio con la activación jerárquica de servicios, sus dependencias requeridas se agregan automáticamente a ConsumerPolicy. Un grupo de dependencias de servicio contiene estos servicios en los que se basa, y puedes enumerarlos para comprenderlos y administrarlos mejor.

En este documento, se muestra cómo usar Google Cloud CLI para enumerar las dependencias de servicios de 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 groups list-members bigquery.googleapis.com dependencies enumera los miembros del proyecto actual.

    Puedes recuperar el ID del proyecto actual:

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

    Si quieres obtener los permisos que necesitas para enumerar las dependencias de servicios, pídele a tu administrador que te otorgue el rol de IAM Visualizador de Service Usage (roles/serviceusage.serviceUsageViewer) 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 enumerar las dependencias de los servicios. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

    Permisos necesarios

    Se requieren los siguientes permisos para enumerar las dependencias de servicios:

    • Enumera los miembros del grupo de dependencias: serviceusage.groups.listMembers
    • Enumera los miembros del grupo de dependencias expandido: serviceusage.groups.listExpandedMembers

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

    Enumera los miembros del grupo de dependencias

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

    Proyecto

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

    Reemplaza lo siguiente:

    • SERVICE: Es el nombre del servicio para el que deseas enumerar los miembros.
    • GROUP: Es el nombre del grupo de dependencias del servicio para el que deseas enumerar los miembros. El grupo principal admitido es dependencies.
    • 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 groups list-members  SERVICE  GROUP \
        --folder=FOLDER_ID
    

    Reemplaza lo siguiente:

    • SERVICE: Es el nombre del servicio para el que deseas enumerar los miembros.
    • GROUP: Es el nombre del grupo de dependencias del servicio para el que deseas enumerar los miembros. El grupo principal admitido es dependencies.
    • FOLDER_ID: Es el Google Cloud ID de la carpeta.

    Organización

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

    Reemplaza lo siguiente:

    • SERVICE: Es el nombre del servicio para el que deseas enumerar los miembros.
    • GROUP: Es el nombre del grupo de dependencias del servicio para el que deseas enumerar los miembros. El grupo principal admitido es dependencies.
    • ORGANIZATION_ID: Es el Google Cloud ID del recurso de organización.

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

    Enumera los miembros expandidos del grupo de dependencias

    Puedes enumerar los miembros expandidos de un grupo de dependencias de servicio para un proyecto, una carpeta o una organización con el comando gcloud beta services groups list-expanded-members.

    Este comando devuelve una lista aplanada de todas las dependencias, incluidas las de los grupos anidados, para proporcionar una lista completa y combinada de todas las dependencias del servicio.

    Proyecto

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

    Reemplaza lo siguiente:

    • SERVICE: Es el nombre del servicio para el que deseas enumerar los miembros.
    • GROUP: Es el nombre del grupo de dependencias del servicio para el que deseas enumerar los miembros. El grupo principal admitido es dependencies.
    • 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 groups list-expanded-members SERVICE  GROUP \
        --folder=FOLDER_ID
    

    Reemplaza lo siguiente:

    • SERVICE: Es el nombre del servicio para el que deseas enumerar los miembros.
    • GROUP: Es el nombre del grupo de dependencias del servicio para el que deseas enumerar los miembros. El grupo principal admitido es dependencies.
    • FOLDER_ID: Es el Google Cloud ID de la carpeta.

    Organización

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

    Reemplaza lo siguiente:

    • SERVICE: Es el nombre del servicio para el que deseas enumerar los miembros.
    • GROUP: Es el nombre del grupo de dependencias del servicio para el que deseas enumerar los miembros. El grupo principal admitido es dependencies.
    • ORGANIZATION_ID: Es el Google Cloud ID del recurso de organización.

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

    Ejemplos

    Enumera los miembros directos del grupo de dependencias

    • Para enumerar las dependencias directas del servicio de BigQuery para el proyecto actual, haz lo siguiente:
      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.
      
      ...
    • Intento de 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.

    Cómo enumerar los miembros del grupo de dependencias expandido

    • A continuación, se muestra una lista de las dependencias expandidas del servicio de BigQuery para el 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

    ¿Qué sigue?