Cómo compartir reglas de los Controles del servicio de VPC

En este documento, se describen las reglas de entrada y salida que necesitas para permitir que los publicadores y suscriptores en BigQuery sharing (anteriormente Analytics Hub) accedan a los datos de los proyectos que tienen perímetros de Controles del servicio de VPC. En este documento, se da por hecho que tienes conocimientos sobre los perímetros de Controles del servicio de VPC, los conjuntos de datos compartidos, los intercambios de datos, listas y conjuntos de datos vinculados.

Un proyecto de emisor es el proyecto de red o cliente Google Cloud que inicia la solicitud, como una consulta en SQL o un comando de Google Cloud CLI.

Crea un intercambio de datos

En el siguiente diagrama, los proyectos que contienen el intercambio de datos y el conjunto de datos compartido se encuentran en diferentes perímetros de servicio:

Regla de los Controles del servicio de VPC cuando se crea un intercambio de datos.

Figura 1. Reglas de los Controles del servicio de VPC para crear un intercambio de datos.

En la figura 1, se etiquetan los siguientes componentes:

  • Llamador: Es un administrador de uso compartido de BigQuery.
  • Proyecto R: Es el proyecto que realiza la llamada.
  • Proyecto E: Aloja el intercambio de datos y las fichas.

Como administrador de BigQuery sharing, cuando creas un intercambio de datos en un proyecto diferente al proyecto de llamada, debes agregar las siguientes reglas de entrada y salida:

Proyecto Regla
Proyecto R Regla de salida del proyecto E
Proyecto E (intercambio de datos) Regla de entrada del proyecto R

Crea una ficha

En el siguiente diagrama, los proyectos que contienen el intercambio de datos y el conjunto de datos compartido se encuentran en diferentes perímetros de servicio:

Regla de los Controles del servicio de VPC cuando se crea una lista.

Figura 2. Reglas de los Controles del servicio de VPC para crear una lista.

En la figura 2, se etiquetan los siguientes componentes:

  • Llamador: Es un administrador o publicador de uso compartido de BigQuery.
  • Proyecto R: Es el proyecto que realiza la llamada.
  • Proyecto E: Aloja el intercambio de datos y las fichas.
  • Proyecto S: Aloja el conjunto de datos compartido.

Cuando creas una lista en un intercambio de datos que se encuentra en un proyecto diferente al del conjunto de datos compartido, debes agregar las siguientes reglas de entrada y salida para permitir que los publicadores de uso compartido de BigQuery creen una lista:

Proyecto Regla
Proyecto R

Regla de salida del proyecto E

Regla de salida del proyecto S

Proyecto E (intercambio de datos)

Regla de salida del proyecto S

Regla de entrada del proyecto R

Proyecto S (conjunto de datos compartidos)

Regla de salida del proyecto E

Regla de entrada del proyecto R

Suscríbete a una ficha

En el siguiente diagrama, los proyectos que contienen la lista y el conjunto de datos vinculados para esa lista se encuentran en diferentes perímetros de servicio:

Regla de los Controles del servicio de VPC cuando se suscribe a una lista.

Figura 3. Reglas de los Controles del servicio de VPC para suscribirse a una ficha.

En la figura 3, se etiquetan los siguientes componentes:

  • Llamador: Es un suscriptor de BigQuery sharing.
  • Proyecto R: Es el proyecto que realiza la llamada.
  • Proyecto E: Aloja el intercambio de datos y las fichas.
  • Proyecto L: Aloja el conjunto de datos vinculado.

Como suscriptor de BigQuery sharing, cuando te suscribes a una lista en un intercambio de datos que se encuentra en un proyecto diferente al de tu proyecto, debes agregar las siguientes reglas de entrada y salida:

Proyecto Regla
Proyecto R

Regla de salida del proyecto E

Regla de salida del proyecto L

Proyecto E (lista)

Regla de salida del proyecto L

Regla de entrada del proyecto R

Proyecto L (conjunto de datos vinculados)

Regla de salida del proyecto E

Regla de entrada del proyecto R

Actualiza una ficha

Cuando actualizas una ficha, por ejemplo, para modificar su política de exportación restringida, BigQuery sharing utiliza un trabajador en segundo plano para propagar estos cambios a los conjuntos de datos vinculados asociados. Si tu proyecto Google Cloud está protegido por un perímetro de Controles del servicio de VPC con restricciones basadas en IP, es posible que se bloquee el trabajador en segundo plano que se origina en la infraestructura de Google, lo que impedirá que el conjunto de datos vinculado se sincronice correctamente.

Para permitir que el trabajador en segundo plano actualice el conjunto de datos vinculado, debes configurar de forma explícita tus reglas de entrada o salida para permitir que el usuario principal o la cuenta de servicio principal que ejecuta la llamada a la API omitan las restricciones basadas en IP.

Para modificar la política de entrada en el perímetro del proyecto suscriptor, agrega una regla de entrada que permita que la principal que llama acceda al servicio bigquery.googleapis.com desde cualquier dirección IP de origen (*):

ingressFrom:
  sources:
    - accessLevel: "*"
  identities:
    - "user:CALLING_USER_EMAIL"
    - "serviceAccount:AUTOMATION_SA_EMAIL"
ingressTo:
  resources:
    - "projects/SUBSCRIBER_PROJECT_NUMBER"
  operations:
    - serviceName: "bigquery.googleapis.com"
      methodSelectors:
        - method: "*"

Como alternativa, para modificar la política de salida en el perímetro del publicador, verifica que la identidad de llamada se haya agregado de forma explícita en la lista identities de la regla de salida dirigida al proyecto del suscriptor:

egressFrom:
  identities:
    - "user:CALLING_USER_EMAIL"
    - "serviceAccount:AUTOMATION_SA_EMAIL"
egressTo:
  resources:
    - "projects/SUBSCRIBER_PROJECT_NUMBER"
  operations:
    - serviceName: "bigquery.googleapis.com"
      methodSelectors:
        - method: "*"

Reemplaza lo siguiente:

  • CALLING_USER_EMAIL: Es la dirección de correo electrónico del usuario que ejecuta la llamada a la API para actualizar la ficha. Incluye esta identidad si un usuario humano realiza la actualización.
  • AUTOMATION_SA_EMAIL: Es la dirección de correo electrónico de la cuenta de servicio que ejecuta la llamada a la API para actualizar la ficha. Incluye esta identidad si un proceso o una secuencia de comandos automatizados realizan la actualización.
  • SUBSCRIBER_PROJECT_NUMBER: Es el número del proyecto suscriptor que contiene el conjunto de datos vinculado.

Consulta tablas en un conjunto de datos vinculado

En el siguiente diagrama, el proyecto que realiza la llamada y el proyecto que contiene el conjunto de datos vinculado se encuentran en diferentes perímetros de servicio:

Regla de los Controles del servicio de VPC cuando se consulta una tabla en el conjunto de datos vinculado.

Figura 4. Reglas de los Controles del servicio de VPC para consultar un conjunto de datos vinculado.

En la figura 4, se etiquetan los siguientes componentes:

  • Emisor: Es un suscriptor de BigQuery sharing o cualquier usuario de trabajo de BigQuery del conjunto de datos vinculado.
  • Proyecto R: Es el proyecto que realiza la llamada.
  • Proyecto L: Aloja el conjunto de datos vinculado.
  • Proyecto V: Aloja el conjunto de datos compartido que contiene la tabla.

Cuando tú, como suscriptor de uso compartido de BigQuery, consultas una tabla en el conjunto de datos vinculados, debes agregar las siguientes reglas de entrada y salida:

Proyecto Regla
Proyecto R Regla de salida del proyecto L
Proyecto L (conjunto de datos vinculados) Regla de entrada del proyecto R

Visualiza consultas en un conjunto de datos vinculado

En esta sección, se describen las reglas de los Controles del servicio de VPC necesarias para consultar una vista en un conjunto de datos vinculado. Las reglas varían según si la vista y sus tablas base subyacentes están en el mismo proyecto o en proyectos separados.

Situación 1

En el siguiente diagrama, los proyectos que contienen el conjunto de datos vinculado y las tablas base asociadas con la vista se encuentran en diferentes perímetros de servicio. La vista (Proyecto S) y la tabla base asociada con la vista (Proyecto V) se encuentran en proyectos diferentes:

Las tablas base y de vista están en proyectos diferentes.

Figura 5. Reglas de los Controles del servicio de VPC para consultar una vista de un conjunto de datos vinculado.

En la figura 5, se etiquetan los siguientes componentes:

  • Emisor: Es un suscriptor de BigQuery sharing o cualquier usuario de trabajo de BigQuery del conjunto de datos vinculado.
  • Proyecto R: Es el proyecto que realiza la llamada.
  • Proyecto L: Aloja el conjunto de datos vinculado.
  • Proyecto S: Aloja el conjunto de datos compartido.
  • Proyecto V: Aloja el conjunto de datos que contiene las tablas base asociadas con la vista.

Cuando tú, como suscriptor de uso compartido de BigQuery, consultas una vista en un conjunto de datos vinculado, debes agregar las siguientes reglas de entrada y salida:

Proyecto Regla
Proyecto R

Regla de salida del proyecto L

Regla de salida del proyecto V

Proyecto L (conjunto de datos vinculados)

Regla de entrada del proyecto R

Regla de salida del proyecto V

Proyecto V

Regla de salida del proyecto L

Regla de entrada del proyecto R

Situación 2

En el siguiente diagrama, la vista (Proyecto V) y la tabla base asociada con la vista (Proyecto V) están en el mismo proyecto:

Las tablas de vista y base están en el mismo proyecto.

Figura 6. Reglas de los Controles del servicio de VPC para consultar una vista de un conjunto de datos vinculado.

En la figura 6, se etiquetan los siguientes componentes:

  • Emisor: Es un suscriptor de BigQuery sharing o cualquier usuario de trabajo de BigQuery del conjunto de datos vinculado.
  • Proyecto R: Es el proyecto que realiza la llamada.
  • Proyecto L: Aloja el conjunto de datos vinculado.
  • Proyecto V: Aloja la vista y las tablas base asociadas con la vista.

Cuando tú, como suscriptor de uso compartido de BigQuery, consultas una vista en un conjunto de datos vinculado, debes agregar las siguientes reglas de entrada y salida:

Proyecto Regla
Proyecto R

Regla de salida del proyecto L

Proyecto L (conjunto de datos vinculados)

Regla de entrada del proyecto R

Consulta vistas autorizadas en un conjunto de datos vinculado

En el siguiente diagrama, la vista autorizada y la tabla base asociada con la vista autorizada (proyecto V) están en el mismo proyecto:

las tablas de vista autorizadas y base están en el mismo proyecto.

Figura 7. Reglas de los Controles del servicio de VPC para consultar una vista de un conjunto de datos vinculado.

En la figura 7, se etiquetan los siguientes componentes:

  • Emisor: Es un suscriptor de BigQuery sharing o cualquier usuario de trabajo de BigQuery del conjunto de datos vinculado.
  • Proyecto R: Es el proyecto que realiza la llamada.
  • Proyecto L: Aloja el conjunto de datos vinculado.
  • Proyecto V: Aloja la vista autorizada y las tablas base asociadas con la vista.

Cuando tú, como suscriptor de uso compartido de BigQuery, consultas una vista en un conjunto de datos vinculado, debes agregar las siguientes reglas de entrada y salida:

Proyecto Regla
Proyecto R

Regla de salida del proyecto L

Proyecto L (conjunto de datos vinculados)

Regla de entrada del proyecto R

Limitaciones

El uso compartido de BigQuery no admite reglas basadas en métodos. Debes permitir todos los métodos para habilitar las reglas basadas en métodos. Por ejemplo:

          ingressTo:
            operations:
            - methodSelectors:
              - method: '*'
              serviceName: analyticshub.googleapis.com
            resources:
            - projects/PROJECT_ID

Si los recursos de BigQuery también están protegidos por perímetros de servicio, debes permitir las reglas de entrada y salida para el servicio de BigQuery. No es necesario permitir reglas de entrada y salida cuando creas un intercambio de datos. Las reglas de entrada y salida de BigQuery son similares a las del uso compartido de BigQuery. Por ejemplo:

          ingressTo:
            operations:
            - methodSelectors:
              - method: '*'
              serviceName: bigquery.googleapis.com
            resources:
            - projects/PROJECT_ID

¿Qué sigue?