Configura los roles de BigQuery sharing

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

Roles de IAM de BigQuery sharing

En las siguientes secciones, se describen los roles predefinidos de BigQuery sharing. 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, BigQuery sharing proporciona el rol Analytics Hub Admin (roles/analyticshub.admin) que puedes otorgar para un Google Cloud proyecto o intercambio de datos. Este rol permite a los usuarios hacer lo siguiente:

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

Con este rol, te conviertes en un administrador de BigQuery sharing.

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 visualizador

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.

    Con este rol, te conviertes en un suscriptor de BigQuery sharing.

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

    Con este rol, te conviertes en un visualizador de BigQuery sharing.

Rol de propietario de la suscripción a Analytics Hub

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

Con este rol, te conviertes en un propietario de la suscripción a BigQuery sharing.

Otorga roles de IAM de BigQuery sharing

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

  • Proyecto. Si otorgas un rol para un proyecto, se aplica a todos los intercambios de datos y las fichas de ese proyecto.
  • Intercambio de datos. Si otorgas un rol para un intercambio de datos, se aplica a todas las fichas de ese intercambio de datos.
  • Ficha. Si otorgas un rol para una ficha, 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 Administrador de IAM de proyectos (roles/resourcemanager.projectIamAdmin) en ese proyecto. Para otorgar los roles predefinidos de Identity and Access Management de BigQuery sharing para un proyecto, selecciona una de las siguientes opciones.

Console

  1. Ve al IAM del proyecto.

    Ir a IAM

  2. Haz clic en Grant access.

  3. En el campo Nuevas entidades, 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 a los Google Cloud recursos, agrega una vinculación de rol condicional.

  6. Guarda los cambios.

    Puedes borrar y actualizar los administradores del proyecto con el mismo panel de IAM.

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: el proyecto, por ejemplo, my-project-1.
  • PRINCIPAL: una identidad válida a la que deseas otorgar el rol. Por ejemplo:

    • Dirección de 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 projects.getIamPolicy método.

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

    Reemplaza PROJECT_ID por el proyecto, por ejemplo, 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 del proyecto, usa el project.setIamPolicy método. 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 Google Cloud consola, ve a la página Sharing (Analytics Hub).

    Ir a Sharing (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 Nuevos principales, 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 accedieron.

  7. En el menú Selecciona un rol, selecciona Analytics Hub y, luego, selecciona 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) muestra 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 mixtas puede causar 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 los roles de intercambio de datos con el mismo panel de IAM.

Otorga el rol para una ficha

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

Console

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

    Ir a Sharing (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 Nuevos principales, 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, selecciona 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.

    Sharing muestra 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 mixtas puede causar 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 los roles de la ficha con el mismo panel de IAM.

¿Qué sigue?