Controla el acceso a las tablas y vistas

En este documento, se describe cómo usar la LCA de las tablas de BigQuery para controlar el acceso a las tablas y vistas. Si deseas obtener una descripción general de la LCA de las tablas de BigQuery, consulta Introducción a los controles de acceso a tablas.

Después de crear una tabla o vista, puedes establecer su política de las siguientes maneras:

  • Mediante Cloud Console
  • Mediante el comando bq set-iam-policy
  • Mediante una llamada al método tables.setIamPolicy

Puedes usar la LCA de las tablas de BigQuery para configurar el acceso a las vistas lógicas y a las vistas autorizadas a nivel del conjunto de datos. Una vista lógica también puede hacer referencia a otras tablas y vistas de origen que compartiste mediante la LCA de las tablas de BigQuery.

Antes de comenzar

  1. Crea la tabla o la vista que deseas usar con la LCA de las tablas de BigQuery.

  2. Otorga la función de propietario de datos de BigQuery (roles/bigquery.dataOwner) o administrador de BigQuery (roles/bigquery.admin) a la persona que realizará los pasos de este tema.

  3. Para obtener más información sobre las políticas de administración de identidades y accesos (IAM), consulta Información sobre las políticas y el tema de referencia Política.

Crea una política de acceso

Para crear una política de acceso en una tabla o vista, sigue estos pasos:

Console

  1. Abre la página de BigQuery en Cloud Console.

    Ir a Cloud Console

  2. En el panel de navegación, en la sección Recursos, selecciona tu proyecto.

  3. Selecciona el conjunto de datos que contenga la tabla o vista.

  4. Selecciona la tabla o vista.

  5. Si deseas modificar el acceso de una tabla, haz clic en Compartir tabla. Si modificas el acceso de una vista, haz clic en Compartir vista.

  6. Se abrirá la página Permisos de la tabla o Ver permisos. En Agregar miembros (Add members), ingresa la dirección de correo electrónico del usuario que recibirá acceso a la tabla o a la vista.

  7. En el menú desplegable Selecciona una función, selecciona la función que deseas otorgar al usuario. A continuación, se muestra cómo otorgar la función de visualizador de datos de BigQuery (BigQuery Data Viewer) (roles/bigquery.dataViewer) a joe@example.com.

    Permisos de la tabla

  8. Haz clic en Listo.

bq

  1. Recupera la política existente en un archivo local.

    bq get-iam-policy \
     project-id:dataset.table_or_view \
     > policy.json
    

    En el ejemplo anterior, se ilustra lo siguiente:

    • project-id es el ID del proyecto.
    • dataset es el nombre del conjunto de datos que contiene el recurso (tabla o vista) que deseas actualizar.
    • table_or_view es el nombre del recurso que deseas actualizar.

    A continuación, se presentan más ejemplos de la identificación de una tabla o vista y el redireccionamiento del resultado de la política a un archivo:

    • bq get-iam-policy dataset1.table1 > policy.json
    • bq get-iam-policy --project_id=project1 -t dataset1.table1 > policy.json
    • bq get-iam-policy project1:dataset1.table1 > policy.json
  2. Si aún no agregaste miembros a la política, el archivo policy.json contendrá un valor etag y ningún otro campo. Si deseas obtener más información para dar formato al archivo policy.json, consulta Información sobre las políticas.

  3. Para agregar el primer miembro, agrega un campo bindings a la política. Por ejemplo, para otorgar la función de visualizador de datos de BigQuery (roles/bigquery.dataViewer) a joe@example.com, ejecuta el siguiente comando:

    "bindings": [
     {
       "members": [
         "user:joe@example.com"
       ],
       "role": "roles/bigquery.dataViewer"
     }
    ]
    

    Si necesitas agregar más miembros a una vinculación existente, solo agrega el miembro. En este ejemplo, se muestra cómo otorgar a jane@example.com la función de visualizador de datos de BigQuery (roles/bigquery.dataViewer) para una vinculación que ya existe.

    "members": [
           "user:joe@example.com",
           "user:jane@example.com"
         ],
         "role": "roles/bigquery.dataViewer"
       }
    
  4. Actualiza la política.

    bq set-iam-policy \
     project-id:dataset.table_or_view \
     policy.json
    

    Para obtener información sobre las versiones de esquema de las políticas de IAM, consulta Versiones de políticas.

API

  1. Llama a tables.getIamPolicy para recuperar la política actual.

  2. Edita la política para agregar miembros o vinculaciones. Consulta el ejemplo de bq sobre el formato de la política.

  3. Llama a tables.setIamPolicy para escribir la política nueva.

Para obtener información sobre las versiones de esquema de las políticas de IAM, consulta Versiones de políticas.

Actualiza una política de acceso

Para actualizar una política de acceso en una tabla o vista, sigue estos pasos:

Console

  1. Abre la página de BigQuery en Cloud Console.

    Ir a Cloud Console

  2. En el panel de navegación, en la sección Recursos, selecciona tu proyecto.

  3. Selecciona el conjunto de datos que contenga la tabla o vista.

  4. Selecciona la tabla o vista.

  5. Si deseas modificar el acceso de una tabla, haz clic en Compartir tabla. Si modificas el acceso de una vista, haz clic en Compartir vista.

  6. Se abrirá la página Permisos de la tabla o Ver permisos.

    • Usa la misma técnica que se muestra en Crea una política de acceso si deseas agregar miembros nuevos.

    • Si deseas quitar el acceso de un usuario, búscalo mediante el campo Buscar miembros. Para cada grupo en el que desees quitar al usuario, expande el grupo y, luego, haz clic en el botón Borrar  del usuario.

    • Si deseas cambiar la membresía de un grupo para un usuario, realiza adiciones o eliminaciones como se describe en los 2 pasos anteriores.

  7. Repite el proceso según sea necesario si deseas agregar, modificar o quitar el acceso de otros usuarios. Cuando termines, haz clic en Listo.

bq

  1. Recupera la política existente en un archivo local.

    bq get-iam-policy --format=prettyjson \
     project-id:dataset.table_or_view \
     > policy.json
    

    En el ejemplo anterior, se ilustra lo siguiente:

    • project-id es el ID del proyecto.
    • dataset es el nombre del conjunto de datos que contiene la tabla que deseas actualizar.
    • table_or_view es el nombre de la tabla o vista que deseas actualizar.

    A continuación, se presentan más ejemplos de la identificación de una tabla o vista y el redireccionamiento del resultado de la política a un archivo:

    • bq get-iam-policy dataset1.table1 > policy.json
    • bq get-iam-policy --project_id=project1 -t dataset1.table1 > policy.json
    • bq get-iam-policy project1:dataset1.table1 > policy.json
  2. Modifica policy.json según sea necesario.

    Si deseas obtener más información para dar formato al archivo policy.json, consulta Información sobre las políticas.

    Para obtener información sobre las versiones de esquema de las políticas de IAM, consulta Versiones de políticas.

  3. Actualiza la política.

    bq set-iam-policy \
     project-id:dataset.table_or_view \
     policy.json
    

API

  1. Llama a tables.getIamPolicy para recuperar la política actual.

  2. Edita la política para agregar miembros o vinculaciones.

    Para obtener más información sobre el formato de una política, consulta el tema de referencia Política.

  3. Llama a tables.setIamPolicy para escribir la política actualizada.

Para obtener más información sobre las políticas de administración de identidades y accesos, consulta Información sobre las políticas y el tema de referencia Política.

Próximos pasos