Configurar roles de uso compartido de BigQuery

En este documento se describen los roles de Gestión de Identidades y Accesos (IAM) para compartir datos de BigQuery (antes Analytics Hub) y cómo concederlos. Para obtener más información, consulta Roles y permisos de uso compartido de BigQuery.

Roles de gestión de identidades y accesos para compartir BigQuery

En las siguientes secciones se describen los roles de uso compartido predefinidos de BigQuery. Puedes asignar estos roles a los usuarios para que realicen varias tareas en tus intercambios de datos y fichas.

Rol de administrador de Analytics Hub

Para gestionar intercambios de datos, la función de compartir de BigQuery proporciona el rol Administrador de Analytics Hub (roles/analyticshub.admin) que puede asignar a un Google Cloud proyecto o intercambio de datos. Este rol permite a los usuarios hacer lo siguiente:

  • Crear, actualizar y eliminar intercambios de datos.
  • Crear, actualizar, eliminar y compartir fichas.
  • Gestionar administradores de uso compartido de BigQuery, administradores de fichas, editores, suscriptores y lectores.

Con este rol, se convertirá en administrador de uso compartido de BigQuery.

Roles de editor y administrador de fichas de Analytics Hub

Para gestionar fichas, Sharing ofrece los siguientes roles predefinidos que puedes asignar a un proyecto, un intercambio de datos o una ficha:

Roles de suscriptor y lector de Analytics Hub

Para ver y suscribirse a fichas e intercambios de datos, la función Compartir proporciona los siguientes roles predefinidos que puede asignar a un proyecto, un intercambio de datos o una ficha:

  • Rol de suscriptor de Analytics Hub (roles/analyticshub.subscriber), que permite a los usuarios ver y suscribirse a fichas.

    Con este rol, te conviertes en suscriptor de uso compartido de BigQuery.

  • Rol Lector de Analytics Hub (roles/analyticshub.viewer), que permite a los usuarios ver fichas y permisos de intercambio de datos.

    Con este rol, se convierte en lector de recursos compartidos de BigQuery.

Rol de propietario de la suscripción de Analytics Hub

Para gestionar suscripciones, la función Compartir ofrece el siguiente rol predefinido que puedes conceder a nivel de proyecto:

Con este rol, te conviertes en propietario de la suscripción de uso compartido de BigQuery.

Asignar roles de gestión de identidades y accesos para compartir en BigQuery

En función de tus necesidades, puedes asignar los roles de gestión de identidades y accesos en los siguientes niveles de la jerarquía de recursos:

  • Proyecto: Si asignas un rol a un proyecto, se aplicará a todos los intercambios de datos y fichas de ese proyecto.
  • Intercambio de datos. Si asigna un rol a un intercambio de datos, se aplicará a todas las fichas de ese intercambio.
  • Ficha. Si asignas un rol a una ficha, solo se aplicará a esa ficha concreta.

Asignar el rol a un proyecto

Si quieres definir políticas de gestión de identidades y accesos en un proyecto, debes tener el rol Administrador de gestión de identidades y accesos de proyectos (roles/resourcemanager.projectIamAdmin) en ese proyecto. Para conceder los roles de gestión de identidades y accesos predefinidos de BigQuery sharing a un proyecto, selecciona una de las siguientes opciones.

Consola

  1. Ve a Gestión de identidades y accesos del proyecto.

    Ir a IAM

  2. Haz clic en Conceder acceso.

  3. En el campo Nuevos principales, introduce la dirección de correo de la identidad a la que quieras conceder acceso. Por ejemplo:

    • Correo de la cuenta de Google: test-user@gmail.com
    • Grupo de Google: admins@googlegroups.com
    • Cuenta de servicio: server@example.gserviceaccount.com
    • Dominio de Google Workspace: example.com
  4. En la lista Selecciona un rol, coloca el puntero sobre Centro de analíticas y selecciona uno de los siguientes roles:

    • Administrador de Analytics Hub
    • Administrador de fichas de Analytics Hub
    • Editor de Analytics Hub
    • Suscriptor de Analytics Hub
    • Propietario de la suscripción a Analytics Hub
    • Lector de Analytics Hub
  5. Opcional: Para controlar aún más el acceso a los Google Cloud recursos, añade un enlace de rol condicional.

  6. Guarda los cambios.

    Puedes eliminar y actualizar administradores de proyectos con el mismo panel de gestión de identidades y accesos.

gcloud

Para asignar roles a nivel de proyecto, usa el comando gcloud projects add-iam-policy-binding:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='PRINCIPAL' \
    --role='roles/analyticshub.admin'

Haz los cambios siguientes:

  • PROJECT_ID: el proyecto (por ejemplo, my-project-1).
  • PRINCIPAL: una identidad válida a la que quieras asignar el rol. Por ejemplo:

    • Dirección de correo de la cuenta de Google: user:user@gmail.com
    • Grupo de Google: group:admins@googlegroups.com
    • Cuenta de servicio: serviceAccount:server@example.gserviceaccount.com
    • Dominio de Google Workspace: domain:example.com

API

  1. Lee la política actual con el método getIamPolicy del recurso. En el caso de los proyectos, utiliza el método projects.getIamPolicy.

    POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
    

    Sustituye PROJECT_ID por el proyecto. Por ejemplo, my-project-1.

  2. Para añadir principales y sus roles asociados, edita la política con un editor de texto. Utiliza el siguiente formato para añadir miembros:

    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com

    Por ejemplo, para asignar el rol roles/analyticshub.admin a group:admins@example.com, añade la siguiente vinculación a la política:

    {
     "members": [
       "group:admins@example.com"
     ],
     "role":"roles/analyticshub.admin"
    }
    
  3. Escribe la política actualizada con el método setIamPolicy.

    Por ejemplo, para definir una política a nivel de proyecto, usa el método project.setIamPolicy. En el cuerpo de la solicitud, proporciona la política de gestión de identidades y accesos actualizada del paso anterior.

    POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
    

    Sustituye PROJECT_ID por el ID del proyecto.

Conceder el rol para un intercambio de datos

Para conceder el rol a un intercambio de datos, sigue estos pasos:

Consola

  1. En la Google Cloud consola, vaya a la página Compartir (Analytics Hub).

    Ir a Compartir (Analytics Hub)

  2. Haga clic en el nombre del intercambio de datos para el que quiera definir permisos.

  3. Ve a la pestaña Detalles.

  4. Haz clic en Establecer permisos.

  5. Para añadir principales, haz clic en Añadir principal.

  6. En el campo Nuevos principales, añade los IDs de correo a los que quieras dar acceso. También puedes usar allUsers para hacer que un recurso sea público y accesible para todos los usuarios de Internet, o allAuthenticatedUsers para que solo puedan acceder a él los usuarios de Google que hayan iniciado sesión.

  7. En el menú Selecciona un rol, selecciona Centro de analíticas y, a continuación, selecciona uno de los siguientes roles de Gestión de Identidades y Accesos (IAM):

    • Administrador de Analytics Hub
    • Administrador de fichas de Analytics Hub
    • Editor de Analytics Hub
    • Suscriptor de Analytics Hub
    • Propietario de la suscripción a Analytics Hub
    • Lector de Analytics Hub
  8. Haz clic en Guardar.

API

  1. Lee la política actual con el método de lista getIamPolicy mediante el método projects.locations.dataExchanges.getIamPolicy:

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID:getIamPolicy
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto (por ejemplo, my-project-1).
    • LOCATION: la ubicación de tu intercambio de datos. Usa letras minúsculas.
    • DATAEXCHANGE_ID: el ID de intercambio de datos.

    La función de compartir de BigQuery (antes Analytics Hub) devuelve la política actual.

  2. Para añadir o quitar miembros y sus roles de gestión de identidades y accesos (IAM) asociados, edita la política con un editor de texto. Utiliza el siguiente formato para añadir miembros:

    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com

    Por ejemplo, para asignar el rol roles/analyticshub.subscriber a group:subscribers@example.com, añade la siguiente vinculación a la política:

    {
     "members": [
       "group:subscribers@example.com"
     ],
     "role":"roles/analyticshub.subscriber"
    }
    
  3. Escribe la política actualizada mediante el método projects.locations.dataExchanges.setIamPolicy. En el cuerpo de la solicitud, proporciona la política de gestión de identidades y accesos actualizada del paso anterior.

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID:setIamPolicy
    

    En el cuerpo de la solicitud, proporciona los detalles de la ficha. Si la solicitud se realiza correctamente, el cuerpo de la respuesta contiene los detalles de la ficha.

Cuando concedas permisos a nivel de recurso, como en un intercambio de datos, debes usar letras minúsculas en la parte de la ubicación del nombre del recurso. Si se usan valores en mayúsculas o con una combinación de mayúsculas y minúsculas, se pueden producir errores Permission Denied.

  • Usar: projects/myproject/locations/us/dataExchanges/123
  • Qué debes evitar: projects/myproject/locations/US/dataExchanges/123
  • Qué debes evitar: projects/myproject/locations/Eu/dataExchanges/123

Puede eliminar y actualizar roles de intercambio de datos mediante el mismo panel de gestión de identidades y accesos.

Conceder el rol de una ficha

Para conceder el rol a una ficha, sigue estos pasos:

Consola

  1. En la Google Cloud consola, vaya a la página Compartir (Analytics Hub).

    Ir a Compartir (Analytics Hub)

  2. Haga clic en el nombre del intercambio de datos que contiene la ficha.

  3. Haga clic en la ficha a la que quiera añadir usuarios.

  4. Haz clic en Establecer permisos.

  5. Para añadir principales, haz clic en Añadir principal.

  6. En el campo Nuevos principales, añade los IDs de correo de la identidad a la que quieras conceder acceso.

  7. En el menú Selecciona un rol, selecciona Centro de analíticas y, a continuación, selecciona uno de los siguientes roles de Gestión de Identidades y Accesos (IAM):

    • Administrador de Analytics Hub
    • Administrador de fichas de Analytics Hub
    • Editor de Analytics Hub
    • Suscriptor de Analytics Hub
    • Propietario de la suscripción a Analytics Hub
    • Lector de Analytics Hub
  8. Haz clic en Guardar.

API

  1. Lee la política actual con el método de lista getIamPolicy mediante el método projects.locations.dataExchanges.listings.getIamPolicy:

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID:getIamPolicy
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto (por ejemplo, my-project-1).
    • LOCATION: la ubicación del intercambio de datos que contiene la ficha. Usa letras minúsculas.
    • DATAEXCHANGE_ID: el ID de intercambio de datos.
    • LISTING_ID: el ID de la ficha.

    Al compartir, se devuelve la política actual.

  2. Para añadir o quitar miembros y sus roles de gestión de identidades y accesos (IAM) asociados, edita la política con un editor de texto. Utiliza el siguiente formato para añadir miembros:

    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com

    Por ejemplo, para asignar el rol roles/analyticshub.publisher a group:publishers@example.com, añade la siguiente vinculación a la política:

    {
     "members": [
       "group:publishers@example.com"
     ],
     "role":"roles/analyticshub.publisher"
    }
    
  3. Escribe la política actualizada mediante el método projects.locations.dataExchanges.listings.setIamPolicy. En el cuerpo de la solicitud, proporciona la política de gestión de identidades y accesos actualizada del paso anterior.

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING-ID:setIamPolicy
    

    En el cuerpo de la solicitud, proporciona los detalles de la ficha. Si la solicitud se realiza correctamente, el cuerpo de la respuesta contiene los detalles de la ficha.

Cuando concedas permisos a nivel de recurso, como en un anuncio, debes usar letras minúsculas en la parte de la ubicación del nombre del recurso. Si se usan valores en mayúsculas o con una combinación de mayúsculas y minúsculas, se pueden producir errores Permission Denied.

  • Usar: projects/myproject/locations/us/dataExchanges/123/listings/456
  • Qué debes evitar: projects/myproject/locations/US/dataExchanges/123/listings/456
  • Qué debes evitar: projects/myproject/locations/Eu/dataExchanges/123/listings/456

Puede eliminar y actualizar roles de fichas mediante el mismo panel de gestión de identidades y accesos.

Siguientes pasos