Configura una cuenta de servicio de Google Cloud para Looker Studio

Una cuenta de servicio es un tipo especial de Cuenta de Google que representa a un usuario no humano que puede autenticarse y tener autorización para acceder a los datos de las APIs y los productos de Google. En lugar de delegar el acceso con las credenciales del propietario o requerir que los lectores de informes individuales tengan acceso a los datos con las credenciales del lector, Looker Studio puede usar una cuenta de servicio para acceder a los datos.

Nota: Las credenciales de la cuenta de servicio solo están disponibles para las fuentes de datos de BigQuery.

Obtén más información sobre las cuentas de servicio.

Beneficios de usar una cuenta de servicio con Looker Studio

Usar una cuenta de servicio en lugar de las credenciales de un usuario individual proporciona los siguientes beneficios:

  • Las fuentes de datos que usan credenciales de cuentas de servicio no se interrumpirán si el creador deja tu empresa.
  • Las credenciales de la cuenta de servicio admiten el acceso a los datos ubicados detrás de los perímetros de los Controles del servicio de VPC que usan políticas de dispositivos.
  • Las funciones automatizadas, como los correos electrónicos y las extracciones de datos programados, funcionan con fuentes de datos que se encuentran detrás de un perímetro de Controles del servicio de VPC. (Consulta la sección Límites para conocer una advertencia importante).
  • Puedes crear reglas de entrada y salida para permitir que la cuenta de servicio acceda a los recursos y clientes protegidos por los perímetros de servicio, y viceversa.

Roles obligatorios

  • Para obtener el agente de servicio de Looker Studio, debes ser usuario de Google Workspace o Cloud Identity.
  • Para configurar una cuenta de servicio, debes tener el rol de Administrador de cuenta de servicio (roles/iam.serviceAccountAdmin) o Creador de cuentas de servicio (roles/iam.serviceAccountCreator) en tu proyecto Google Cloud . Obtén más información sobre los roles de cuentas de servicio.
  • Para configurar la cuenta de servicio de modo que acceda a una tabla o un conjunto de datos de BigQuery, debes tener el rol de propietario de datos de BigQuery (roles/bigquery.dataOwner) en la tabla o el conjunto de datos, o bien otro rol que te otorgue el permiso bigquery.datasets.setIamPolicy.

Instrucciones de configuración

Para configurar una cuenta de servicio que proporcione acceso a los datos de BigQuery, sigue estos pasos:

  1. Obtén el agente de servicio de Looker Studio. En este paso, copiarás la dirección de correo electrónico del agente de servicio para que puedas usarla en el siguiente paso. Looker Studio crea esta dirección automáticamente para ti.
  2. Crea una cuenta de servicio para Looker Studio. En este paso, crearás el usuario no humano que accederá a los datos.
  3. Permite que el agente de servicio de Looker Studio acceda a tu cuenta de servicio. En este paso, otorgarás al agente de servicio el rol requerido en la cuenta de servicio.
  4. Otorga roles de usuario. En este paso, otorgarás a tus usuarios el rol requerido para que puedan crear fuentes de datos que usen credenciales de cuentas de servicio.
  5. Habilita la cuenta de servicio para que acceda a tus datos de BigQuery. En este paso, otorgarás a la cuenta de servicio el rol requerido para que pueda acceder a una tabla o un conjunto de datos de BigQuery.

Paso 1: Obtén el agente de servicio de Looker Studio

Para permitir que la cuenta de servicio acceda a tus datos, deberás proporcionar el agente de servicio de Looker Studio para tu organización. Puedes obtener el agente de servicio en una página de ayuda de Looker Studio:

  1. Navega a la página de ayuda del agente de servicio de Looker Studio.
  2. Copia la dirección de correo electrónico del agente de servicio que se muestra en esa página.

Paso 2: Crea una cuenta de servicio para Looker Studio

Consulta la documentación de IAM para obtener instrucciones sobre cómo crear una cuenta de servicio.Google Cloud Puedes usar la consola de Google Cloud o la línea de comandos de Cloud Shell para crear la cuenta de servicio.

Console

  1. En la consola de Google Cloud , ve a la página Crear cuenta de servicio.

    Ve a Crear cuenta de servicio

  2. Selecciona un proyecto.
  3. Ingresa un nombre de cuenta de servicio para mostrar en la consola de Google Cloud .

    La consola de Google Cloud genera un ID de cuenta de servicio basado en este nombre. Si es necesario, edita el ID ahora. No podrás cambiar el ID más adelante.

  4. Opcional: Ingresa una descripción para la cuenta de servicio.
  5. Haz clic en CREAR Y CONTINUAR.
  6. En Permisos, otorga a la cuenta de servicio el rol de IAM de Usuario de trabajos de BigQuery en el proyecto que contiene los datos a los que deseas conectarte en Looker Studio. Ten en cuenta que podría ser diferente del proyecto en el que creaste la cuenta de servicio.
  7. Haz clic en Continuar.
  8. En el campo Rol de los usuarios de la cuenta de servicio, agrega los usuarios que pueden usar esta cuenta de servicio para proporcionar credenciales para sus fuentes de datos. Si no quieres agregar usuarios ahora, puedes hacerlo más adelante siguiendo las instrucciones que se indican en Otorga roles de usuario.
  9. Haz clic en LISTO para guardar la cuenta de servicio y volver a la página de la lista de cuentas de servicio de tu proyecto.

gcloud

Sigue los pasos generales que se indican en Cloud Shell en Crea y administra cuentas de servicio.

  1. Abre Cloud Shell.
  2. Si es necesario, selecciona un proyecto.
  3. Para crear la cuenta de servicio, ejecuta el comando gcloud iam service-accounts create. Puedes usar el nombre de la cuenta, la descripción y el nombre visible que elijas.

Ejemplo:

gcloud iam service-accounts create looker-studio-service-account \
--description="Use for Looker Studio access to BigQuery"  \
--display-name="LS_BQ"
  1. Para acceder a los datos de BigQuery en el proyecto Google Cloud que deseas usar con Looker Studio, otorga a la cuenta de servicio el permisobigquery.jobs.createen ese proyecto. Puedes otorgar el rol de IAM Usuario de trabajos de BigQuery para otorgar este permiso.

    Además, otorga a la cuenta de servicio bigquery.tables.getData y bigquery.tables.get permisos en el proyecto o el conjunto de datos que quieras usar con Looker Studio. Puedes otorgar el rol de Visualizador de datos de BigQuery (roles/bigquery.dataViewer) para otorgar estos permisos.

    Para otorgar estos roles, ejecuta el comando gcloud projects add-iam-policy-binding. En los siguientes ejemplos, reemplaza PROJECT_ID por el ID de tu proyecto.

    Ejemplo: Otorga el rol de usuario de trabajo de BigQuery

    gcloud projects add-iam-policy-binding PROJECT_ID\
    --member ="serviceAccount:looker-studio-service-account@PROJECT_ID.iam.gserviceaccount.com" \
    --role="roles/bigquery.jobUser"
    

    Ejemplo: Otorga el rol de visualizador de datos de BigQuery

    gcloud projects add-iam-policy-bindingPROJECT_ID\
    --member ="serviceAccount:looker-studio-service-account@PROJECT_ID.iam.gserviceaccount.com" \
    --role="roles/bigquery.dataViewer"
    

Paso 3: Permite que el agente de servicio de Looker Studio acceda a tu cuenta de servicio

Para permitir que el agente de servicio de Looker Studio acceda a los datos con la cuenta de servicio, otórgale el rol de Creador de tokens de cuenta de servicio (roles/iam.serviceAccountTokenCreator).

Console

  1. Vuelve a la Google Cloud lista de cuentas de servicio de la consola.
  2. Haz clic en la cuenta de servicio de Looker Studio que acabas de crear en la lista para seleccionarla.
  3. Haz clic en Principales con acceso.
  4. Haz clic en person_add OTORGAR ACCESO.
  5. En Agregar principales a PROJECT_ID, pega el correo electrónico del agente de servicio de Looker Studio (que copiaste en el paso 1) en el cuadro Principales nuevos. (La dirección de tu agente de servicio se ve así: SERVICE_AGENT_NAME@PROJECT_ID.iam.gserviceaccount.com).
  6. Selecciona un rol que le otorgue al agente de servicio el permiso iam.serviceAccounts.getAccessToken. Por ejemplo, puedes usar el rol Creador de tokens de cuenta de servicio, pero también puedes usar cualquier rol personalizado que otorgue este permiso.
  7. Haz clic en GUARDAR.

gcloud

Ejecuta el comando gcloud iam service-accounts add-iam-policy-binding. En el siguiente ejemplo, reemplaza ORG_ID por el ID de tu organización.

Ejemplo:

gcloud iam service-accounts add-iam-policy-binding looker-studio-service-account@PROJECT_ID.iam.gserviceaccount.com \
--member="service-ORG_ID@gcp-sa-datastudio.iam.gserviceaccount.com" \
--role="roles/iam.serviceAccountTokenCreator"

Paso 4: Otorga roles de usuario

Los usuarios de Looker Studio que crearán o editarán fuentes de datos deben tener un rol que incluya el permiso iam.serviceAccounts.actAs, como el rol de usuario de cuenta de servicio (roles/iam.serviceAccountUser). Puedes otorgar este rol en el proyecto o en una cuenta de servicio individual, pero te recomendamos que lo otorgues solo en la cuenta de servicio. Para obtener instrucciones, consulta Administra el robo de identidad de cuentas de servicio.

Te recomendamos que no otorgues a los usuarios que no son agente de servicio el rol de Creador de tokens de cuentas de servicio, ya que no es necesario para Looker Studio.

Console

  1. Navega a la lista de cuentas de servicio de la consola.
  2. Haz clic en la cuenta de servicio de Looker Studio en la lista para seleccionarla.
  3. Haz clic en Principales con acceso.
  4. Haz clic en person_add OTORGAR ACCESO.
  5. En Add principals and roles for Service Account, ingresa las direcciones de correo electrónico de tus usuarios en el cuadro New principals.
  6. Selecciona la función Usuario de cuenta de servicio.
  7. Haz clic en GUARDAR.

gcloud

Para otorgar el rol de Usuario de cuenta de servicio, ejecuta el comando gcloud projects add-iam-policy-binding. En los siguientes ejemplos, reemplaza PROJECT_ID por el ID de tu proyecto y USER_EMAIL por una o más direcciones de correo electrónico válidas (separa varias entradas con comas).

Ejemplo:

gcloud iam service-accounts add-iam-policy-binding  looker-studio-service-account@PROJECT_ID.iam.gserviceaccount.com  \
--member="user:USER_EMAIL" \
--role="roles/iam.serviceAccountUser"

Paso 5: Habilita la cuenta de servicio para acceder a tus datos de BigQuery

Para permitir que Looker Studio acceda a tus datos, otorga el rol de Visualizador de datos de BigQuery a la cuenta de servicio a nivel de la tabla o del conjunto de datos. No recomendamos otorgar acceso a la cuenta de servicio a nivel del proyecto.

Console

Para otorgar acceso a una tabla, sigue estos pasos:

  1. Copia la dirección de correo electrónico del agente de servicio de Looker Studio, como se describió anteriormente en el paso 1. Obtén el agente de servicio de Looker Studio.
  2. Navega a la Google Cloud lista de cuentas de servicio de la consola.
  3. Navega a BigQuery y abre un proyecto.
  4. Haz clic en la flecha de expansión para expandir un conjunto de datos.
  5. Selecciona una tabla.
  6. En la barra de herramientas, haz clic en person_add COMPARTIR.
  7. En el panel que se abre a la derecha, haz clic en person_add AGREGAR PRINCIPAL.
  8. En el cuadro Principales nuevas, pega la dirección de correo electrónico del agente de servicio de Looker Studio.
  9. Selecciona el rol Visualizador de datos de BigQuery.
  10. Haz clic en GUARDAR.

Para otorgar acceso a un conjunto de datos, sigue estos pasos:

  1. Copia la dirección de correo electrónico del agente de servicio de Looker Studio, como se describió anteriormente en el paso 1. Obtén el agente de servicio de Looker Studio.
  2. Navega a la Google Cloud lista de cuentas de servicio de la consola.
  3. Navega a BigQuery, abre un proyecto y, luego, busca el conjunto de datos.
  4. Haz clic en el menú de opciones .
  5. Haz clic en Abrir.
  6. En la barra de herramientas, haz clic en person_add Permisos de uso compartido.
  7. En el panel que se abre a la derecha, haz clic en person_add AGREGAR PRINCIPAL.
  8. En el cuadro Principales nuevas, pega la dirección de correo electrónico del agente de servicio de Looker Studio.
  9. Selecciona el rol Visualizador de datos de BigQuery.
  10. Haz clic en GUARDAR.

gcloud

Te recomendamos que uses las instrucciones de la consola Google Cloud para otorgar acceso a los datos. Para otorgar acceso a los datos con la herramienta de línea de comandos bq, consulta Cómo controlar el acceso a los conjuntos de datos en la documentación de BigQuery.

Proporciona las cuentas de servicio de Looker Studio a tus usuarios de Looker Studio

Los usuarios de Looker Studio deberán saber qué cuenta de servicio usar cuando creen fuentes de datos. Como no hay forma de ver la lista de cuentas de servicio disponibles desde Looker Studio, debes proporcionar esta información a través de la documentación, el sitio web interno o el correo electrónico de tu organización.

Crea una fuente de datos que use credenciales de cuenta de servicio

Para crear fuentes de datos que usen credenciales de cuentas de servicio, los usuarios de Looker Studio pueden seguir los mismos pasos básicos que para otros tipos de credenciales de datos:

  1. Crea o edita una fuente de datos de BigQuery.
  2. En la barra de herramientas, haz clic en Credenciales de datos.
  3. Selecciona Credenciales de cuenta de Servicio.
  4. Ingresa la dirección de correo electrónico de tu cuenta de servicio en el cuadro.
  5. Haz clic en Actualizar.

Edita una fuente de datos que usa credenciales de cuenta de servicio

Cuando alguien edita una fuente de datos que usa credenciales de cuenta de servicio, Looker Studio verifica si tiene permiso para usar la cuenta de servicio. Si no lo hacen, la fuente de datos cambiará para usar las credenciales de esa persona.

Consulta quién usa la cuenta de servicio para acceder a los datos

Puedes consultar los registros de auditoría de las cuentas de servicio en la consola de Google Cloud . Debes habilitar los registros de auditoría de IAM para la actividad de acceso a los datos si deseas recibir registros de auditoría para las cuentas de servicio.

Ejemplo de situación de cuenta de servicio

Supongamos que quieres asegurarte de que los usuarios de Looker Studio de tu empresa solo tengan acceso a los datos de la filial de su país. Una solución es crear una cuenta de servicio para cada país y otorgarles permiso a los usuarios de Looker Studio de ese país para que actúen como la cuenta de servicio.

Configuración de ejemplo

En este ejemplo, crearás tres cuentas de servicio: una para el Reino Unido, una para Francia y otra para Alemania. Luego, asignarás como principales a tu agente de servicio y a los usuarios que quieras que puedan crear fuentes de datos que usen la cuenta de servicio. También asignarás los roles adecuados a cada uno.

Cuenta de servicio del Reino Unido

service-account-1@example-org-uk-example-project.iam.gserviceaccount.com

Principales del Reino Unido

Principales Funciones

service-org-12345@gcp-sa-datastudio.iam.gserviceaccount.com

Este es el agente de servicio.

Service Account Token Creator
Usuario 1 Service Account User
Usuario 2 Service Account User

Cuenta de servicio de Francia

service-account-1@example-org-fr-example-project.iam.gserviceaccount.com

Principales de Francia

Principales Funciones

service-org-12345@gcp-sa-datastudio.iam.gserviceaccount.com

Este es el agente de servicio.

Service Account Token Creator
Usuario 3 Service Account User
Usuario 4 Service Account User

Cuenta de servicio de Alemania

service-account-1@example-org-de-example-project.iam.gserviceaccount.com

Principales de Alemania

Principales Funciones

service-org-12345@gcp-sa-datastudio.iam.gserviceaccount.com

Este es el agente de servicio.

Service Account Token Creator
Usuario 5 Service Account User
Usuario 6 Service Account User

Errores

En esta sección, se explican los errores que pueden ver los creadores de fuentes de datos y los usuarios de informes de Looker Studio cuando intentan usar una cuenta de servicio. En la mayoría de los casos, estos errores tienen la misma causa raíz: una configuración incorrecta o incompleta de la cuenta de servicio.

Falta el rol de agente de servicio

Mensajes

  • Al agente de servicio de Looker Studio le falta el permiso iam.serviceAccounts.getAccessToken para este servicio.
  • Al agente de servicio que usa la cuenta de servicio de esta fuente de datos le falta el rol "Creador de tokens de cuenta de servicio".

Causa

No se le otorgó al agente de servicio el rol de Creador de tokens de cuenta de servicio (o algún otro rol que incluya el permiso iam.serviceAccounts.getAccessToken).

Solución

Otorga el rol de Creador de tokens de cuenta de servicio al agente de servicio.

Sin acceso a los datos

Mensaje

Esta cuenta de servicio no puede acceder al conjunto de datos subyacente.

Causas

  • No se otorgó acceso a la cuenta de servicio a los datos del proyecto.
  • El proyecto de facturación está conectado a un proyecto al que la cuenta de servicio no tiene acceso.

Solución

Como mínimo, otorga el rol de Visualizador de datos de BigQuery a tu cuenta de servicio en la tabla, el conjunto de datos o el proyecto subyacentes.

Falta el rol del usuario

Mensaje

No tienes permiso para usar esta cuenta de servicio.

Causa

El usuario no se agregó como principal a la cuenta de servicio con el rol de usuario de cuenta de servicio.

Solución

Otorga el rol de usuario de cuenta de servicio al usuario en la cuenta de servicio.

El agente de servicio no está disponible para la cuenta

Mensajes

  • No se pueden generar agentes de servicio para esta cuenta. Vuelve a intentarlo con una cuenta administrada de Google Workspace o Cloud Identity.
  • Las credenciales del agente de servicio solo están disponibles para las organizaciones administradas por Google Workspace o Cloud Identity. Usa otra cuenta para usar esta función.

Causa

El usuario intenta usar una Cuenta de Google estándar (de usuario consumidor) para acceder a datos controlados por una cuenta de servicio.

Solución

Usar una cuenta de Google Workspace o Cloud Identity para acceder a los datos

No se puede usar el agente de servicio en el diálogo de credenciales

Mensaje

Los agentes del servicio de Looker Studio no se pueden usar para conectarse directamente a los datos. En su lugar, usa una cuenta de servicio.

Solución

Los agentes de servicio y las cuentas de servicio son diferentes. Ingresa una cuenta de servicio en el diálogo de credenciales. Puedes encontrar la lista de cuentas de servicio disponibles en la consola de Google Cloud o en Cloud Shell:

Console

  1. Navega a la página Google Cloud Platform > IAM y administración > Cuentas de servicio.
  2. Si es necesario, selecciona un proyecto.
  3. En la página Cuentas de servicio del proyecto, busca la cuenta de servicio que Looker Studio usará para acceder a tus datos de BigQuery.
  4. Copia la dirección de correo electrónico de esa cuenta.

gcloud

  1. Abre Cloud Shell.
  2. Si es necesario, selecciona un proyecto.
  3. Para enumerar las cuentas de servicio a las que tienes acceso, ejecuta el comando gcloud iam service-accounts list.

Ejemplo:

gcloud iam service-accounts list

Límites

  • Las credenciales de la cuenta de servicio solo están disponibles para las fuentes de datos de BigQuery. Los límites de IAM se aplican a las cuentas de servicio.
  • Es posible que los cambios en los permisos de la cuenta de servicio tarden unos minutos en reflejarse en Looker Studio.
  • La entrega de correos electrónicos programada no funciona con datos protegidos con niveles de acceso basados en IP con Controles del servicio de VPC. (Esto se debe a que Looker Studio no pasa la dirección IP del destinatario del correo electrónico cuando este ve el informe).