Configura roles de uso compartido de BigQuery

En este documento, se describen los roles de Identity and Access Management (IAM) que se usan para el uso compartido de BigQuery (anteriormente, Analytics Hub) y cómo otorgarlos a los usuarios. Para obtener más información, consulta Roles y permisos de uso compartido de BigQuery.

Roles de IAM para compartir datos en BigQuery

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

Rol Analytics Hub Admin

Para administrar intercambios de datos, el uso compartido de BigQuery proporciona el rol de administrador de Analytics Hub (roles/analyticshub.admin) que puedes otorgar para un Google Cloud proyecto o intercambio de datos. Este rol permite a los usuarios realizar las siguientes acciones:

  • Crear, actualizar y borrar intercambios de datos.
  • Crear, actualizar, borrar y compartir fichas.
  • Administrar los administradores de uso compartido de BigQuery, los administradores de fichas, los publicadores, los suscriptores y los visualizadores

Los usuarios con este rol se denominan administradores de uso compartido de BigQuery.

Roles Analytics Hub Publisher y Listing Admin

Para administrar fichas, Sharing proporciona los siguientes roles predefinidos que puedes otorgar para un proyecto, un intercambio de datos o una ficha:

Roles Analytics Hub Subscriber y Viewer

Para ver fichas e intercambios de datos y suscribirse a ellos, Sharing proporciona los siguientes roles predefinidos que puedes otorgar para un proyecto, un intercambio de datos o una ficha:

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

    Los usuarios con este rol se denominan suscriptores de uso compartido de BigQuery.

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

    Los usuarios con este rol se denominan visualizadores de uso compartido de BigQuery.

Rol de propietario de la suscripción a Analytics Hub

Para administrar suscripciones, Sharing proporciona el siguiente rol predefinido que puedes otorgar a nivel del proyecto:

Los usuarios con este rol se denominan propietarios de la suscripción al uso compartido de BigQuery.

Otorga roles de IAM de uso compartido de BigQuery

Según tu necesidad, puedes otorgar los roles de IAM en los siguientes niveles de la jerarquía de recursos:

  • Proyecto. Si otorgas a los usuarios un rol para un proyecto, este se aplica a todos los intercambios de datos y las fichas que contiene el proyecto.

  • Intercambio de datos. Si otorgas a los usuarios un rol para un intercambio de datos, este se aplicará a todas las fichas que contenga el intercambio de datos.

  • Ficha. Si otorgas a los usuarios un rol para una ficha, el rol se aplica solo a esa ficha específica.

Otorga el rol para un proyecto

Si deseas establecer políticas de IAM en un proyecto, debes tener el rol de administrador de IAM del proyecto (roles/resourcemanager.projectIamAdmin) en ese proyecto. Para otorgar los roles predefinidos de Identity and Access Management para compartir de BigQuery en un proyecto, selecciona una de las siguientes opciones.

Console

  1. Ve al IAM del proyecto.

    Ir a IAM

  2. Haz clic en Otorgar acceso.

  3. En el campo Nuevos principales, ingresa la dirección de correo electrónico de la identidad a la que deseas otorgar acceso. Por ejemplo:

    • Correo electrónico 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, mantén el puntero sobre Analytics Hub y selecciona uno de los siguientes roles:

    • Administrador de Analytics Hub
    • Administrador de fichas de Analytics Hub
    • Publicador de Analytics Hub
    • Suscriptor de Analytics Hub
    • Propietario de la suscripción a Analytics Hub
    • Visualizador de Analytics Hub
  5. Opcional: Para controlar aún más el acceso de los usuarios a los recursos de Google Cloud , agrega vinculaciones de funciones condicionales.

  6. Guarda los cambios.

Puedes borrar y actualizar administradores para un proyecto a través del mismo panel de IAM, que se explica en los pasos anteriores.

gcloud

Para otorgar 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'

Reemplaza lo siguiente:

  • PROJECT_ID: es el ID del proyecto, por ejemplo, my-project-1
  • PRINCIPAL: Una identidad válida a la que deseas otorgar la función.

    Por ejemplo:

    • Correo electrónico 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 existente con el método getIamPolicy correspondiente del recurso. Para los proyectos, usa el método projects.getIamPolicy.

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

    Reemplaza PROJECT_ID por el ID del proyecto para my-project-1.

  2. Para agregar los principales y sus roles asociados, edita la política con un editor de texto. Usa el siguiente formato para agregar miembros:

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

    Por ejemplo, para otorgar la función roles/analyticshub.admin a group:admins@example.com, agrega la siguiente vinculación a la política:

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

    Por ejemplo, para establecer una política a nivel de proyecto, usa el método project.setIamPolicy. En el cuerpo de la solicitud, proporciona la política de IAM actualizada del paso anterior.

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

    Reemplaza PROJECT_ID por el ID del proyecto.

Otorga el rol para un intercambio de datos

A fin de otorgar el rol para un intercambio de datos, sigue estos pasos:

Console

  1. En la consola de Google Cloud , ve a la página Uso compartido (Analytics Hub).

    Ir a Uso compartido (Analytics Hub)

  2. Haz clic en el nombre del intercambio de datos para el que deseas establecer permisos.

  3. Ve a la pestaña Detalles.

  4. Haz clic en Establecer permisos.

  5. Para agregar principales, haz clic en Agregar principal.

  6. En el campo Principales nuevos, agrega los IDs de correo electrónico a los que deseas otorgar acceso. También puedes usar allUsers para hacer que un recurso sea público y accesible para todos en Internet, o allAuthenticatedUsers para que solo sea accesible para los usuarios de Google que hayan accedido a su cuenta.

  7. En el menú Selecciona un rol, selecciona Analytics Hub y, luego, elige uno de los siguientes roles de Identity and Access Management (IAM):

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

API

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

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

    Reemplaza lo siguiente:

    • PROJECT_ID: es 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 del intercambio de datos.

    BigQuery sharing (anteriormente Analytics Hub) devuelve la política actual.

  2. Para agregar o quitar miembros y sus roles asociados de Identity and Access Management (IAM), edita la política con un editor de texto. Usa el siguiente formato para agregar miembros:

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

    Por ejemplo, para otorgar la función roles/analyticshub.subscriber a group:subscribers@example.com, agrega 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 IAM 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 de forma correcta, el cuerpo de la respuesta contendrá detalles de la ficha.

Cuando otorgas permisos a nivel del recurso, como en un intercambio de datos, debes usar letras minúsculas para la parte de la ubicación del nombre del recurso. El uso de valores en mayúsculas o con combinación de mayúsculas y minúsculas puede provocar errores Permission Denied.

  • Usa: projects/myproject/locations/us/dataExchanges/123
  • Evita: projects/myproject/locations/US/dataExchanges/123
  • Evita: projects/myproject/locations/Eu/dataExchanges/123

Puedes borrar y actualizar roles para un intercambio de datos a través del mismo panel de IAM, que se explica en los pasos anteriores.

Otorga el rol para una ficha

A fin de otorgar el rol para una ficha, sigue estos pasos:

Console

  1. En la consola de Google Cloud , ve a la página Uso compartido (Analytics Hub).

    Ir a Uso compartido (Analytics Hub)

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

  3. Haz clic en la ficha a la que deseas agregar usuarios.

  4. Haz clic en Establecer permisos.

  5. Para agregar principales, haz clic en Agregar principal.

  6. En el campo Principales nuevos, agrega los IDs de correo electrónico de la identidad a la que deseas otorgar acceso.

  7. En el menú Selecciona un rol, selecciona Analytics Hub y, luego, elige uno de los siguientes roles de Identity and Access Management (IAM):

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

API

  1. Lee la política existente con el método getIamPolicy de la lista 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
    

    Reemplaza lo siguiente:

    • PROJECT_ID: es 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 del intercambio de datos.
    • LISTING_ID: el ID de la ficha.

    El uso compartido devuelve la política actual.

  2. Para agregar o quitar miembros y sus roles asociados de Identity and Access Management (IAM), edita la política con un editor de texto. Usa el siguiente formato para agregar miembros:

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

    Por ejemplo, para otorgar la función roles/analyticshub.publisher a group:publishers@example.com, agrega 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 IAM 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 de forma correcta, el cuerpo de la respuesta contendrá detalles de la ficha.

Cuando otorgas permisos a nivel del recurso, como en una ficha, debes usar letras minúsculas para la parte de la ubicación del nombre del recurso. El uso de valores en mayúsculas o con combinación de mayúsculas y minúsculas puede provocar errores Permission Denied.

  • Usa: projects/myproject/locations/us/dataExchanges/123/listings/456
  • Evita: projects/myproject/locations/US/dataExchanges/123/listings/456
  • Evita: projects/myproject/locations/Eu/dataExchanges/123/listings/456

Puedes borrar y actualizar roles para una ficha a través del mismo panel de IAM, que se explica en los pasos anteriores.

¿Qué sigue?