Condivisione delle regole dei Controlli di servizio VPC

Questo documento descrive le regole in entrata e in uscita che devi consentire a publisher e sottoscrittori in BigQuery sharing (precedentemente Analytics Hub) di accedere ai dati dei progetti con perimetri dei Controlli di servizio VPC. Questo documento presuppone che tu abbia familiarità con i perimetri dei Controlli di servizio VPC, i set di dati condivisi, gli scambi di dati, le schede e i set di dati collegati.

Un progetto chiamante è il progetto di rete o client Cloud de Confiance che avvia la richiesta, ad esempio una query SQL o un comando Google Cloud CLI.

Crea uno scambio di dati

Nel seguente diagramma, i progetti che contengono lo scambio di dati e il set di dati condiviso si trovano in perimetri di servizio diversi:

Regola dei Controlli di servizio VPC durante la creazione di uno scambio di dati.

Figura 1. Regole dei Controlli di servizio VPC per la creazione di uno scambio di dati.

Nella figura 1 sono etichettati i seguenti componenti:

  • Chiamante: un amministratore di BigQuery sharing.
  • Progetto R: il progetto chiamante.
  • Progetto E: ospita lo scambio di dati e le schede.

In qualità di amministratore di BigQuery sharing, quando crei un data exchange in un progetto diverso da quello chiamante, devi aggiungere le seguenti regole in entrata e in uscita:

Progetto Rule (Regola)
Progetto R Regola in uscita per il progetto E
Progetto E (scambio di dati) Regola in entrata per il progetto R

Creare una scheda

Nel seguente diagramma, i progetti che contengono lo scambio di dati e il set di dati condiviso si trovano in perimetri di servizio diversi:

Regola dei Controlli di servizio VPC durante la creazione di una scheda.

Figura 2. Regole dei Controlli di servizio VPC per la creazione di una scheda.

Nella figura 2 sono etichettati i seguenti componenti:

  • Chiamante: un amministratore o un publisher di BigQuery sharing.
  • Progetto R: il progetto chiamante.
  • Progetto E: ospita lo scambio di dati e le schede.
  • Progetto S: ospita il set di dati condiviso.

Quando crei una scheda in un data exchange che si trova in un progetto diverso dal set di dati condiviso, devi aggiungere le seguenti regole in entrata e in uscita per consentire ai publisher di BigQuery sharing di creare una scheda:

Progetto Rule (Regola)
Progetto R

Regola in uscita per il progetto E

Regola in uscita per il progetto S

Progetto E (scambio di dati)

Regola in uscita per il progetto S

Regola in entrata per il progetto R

Progetto S (set di dati condiviso)

Regola in uscita per il progetto E

Regola in entrata per il progetto R

Iscriversi a una scheda

Nel seguente diagramma, i progetti che contengono la scheda e il set di dati collegato per quella scheda si trovano in perimetri di servizio diversi:

Regola dei Controlli di servizio VPC durante la sottoscrizione di una scheda.

Figura 3. Regole dei Controlli di servizio VPC per l'iscrizione a una scheda.

Nella figura 3 sono etichettati i seguenti componenti:

  • Chiamante: un sottoscrittore di BigQuery sharing.
  • Progetto R: il progetto chiamante.
  • Progetto E: ospita lo scambio di dati e le schede.
  • Progetto L: ospita il set di dati collegato.

In qualità di sottoscrittore di BigQuery sharing, quando ti abboni a una scheda in un data exchange che si trova in un progetto diverso dal tuo, devi aggiungere le seguenti regole in entrata e in uscita:

Progetto Rule (Regola)
Progetto R

Regola in uscita per il progetto E

Regola in uscita per il progetto L

Progetto E (scheda)

Regola in uscita per il progetto L

Regola in entrata per il progetto R

Progetto L (set di dati collegato)

Regola in uscita per il progetto E

Regola in entrata per il progetto R

Aggiornare una scheda

Quando aggiorni una scheda, ad esempio per modificare le norme di esportazione con limitazioni, BigQuery sharing utilizza un worker in background per propagare queste modifiche ai set di dati collegati associati. Se il tuo progetto Cloud de Confiance è protetto da un perimetro dei Controlli di servizio VPC con limitazioni basate su IP, il worker in background proveniente dall'infrastruttura di Google potrebbe essere bloccato, impedendo la sincronizzazione corretta del set di dati collegato.

Per consentire al worker in background di aggiornare il set di dati collegato, devi configurare in modo esplicito le regole in entrata o in uscita per consentire all'entità utente o all'entità account di servizio che esegue la chiamata API di ignorare le limitazioni basate sull'IP.

Per modificare la policy in entrata nel perimetro del progetto abbonato, aggiungi una regola di ingresso che consenta all'entità chiamante di accedere al servizio bigquery.googleapis.com da qualsiasi indirizzo IP di origine (*):

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: "*"

In alternativa, per modificare la policy di uscita nel perimetro del publisher, verifica che l'identità chiamante sia aggiunta esplicitamente all'elenco identities nella regola di uscita indirizzata al progetto del sottoscrittore:

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

Sostituisci quanto segue:

  • CALLING_USER_EMAIL: l'indirizzo email dell'utente che esegue la chiamata API per aggiornare la scheda. Includi questa identità se l'aggiornamento viene eseguito da un utente umano.
  • AUTOMATION_SA_EMAIL: l'indirizzo email del service account che esegue la chiamata API per aggiornare la scheda. Includi questa identità se l'aggiornamento viene eseguito da un processo o script automatizzato.
  • SUBSCRIBER_PROJECT_NUMBER: il numero del progetto abbonato che contiene il set di dati collegato.

Eseguire query sulle tabelle in un set di dati collegato

Nel seguente diagramma, il progetto chiamante e il progetto che contiene il set di dati collegato si trovano in perimetri di servizio diversi:

Regola dei Controlli di servizio VPC durante l'esecuzione di query su una tabella nel set di dati collegato.

Immagine 4. Regole dei Controlli di servizio VPC per l'interrogazione di un set di dati collegato.

Nella figura 4 sono etichettati i seguenti componenti:

  • Chiamante: un abbonato alla condivisione di BigQuery o qualsiasi utente di job BigQuery del set di dati collegato.
  • Progetto R: il progetto chiamante.
  • Progetto L: ospita il set di dati collegato.
  • Progetto V: ospita il set di dati condiviso che contiene la tabella.

Quando, in qualità di abbonato alla condivisione BigQuery, esegui una query su una tabella nel set di dati collegato, devi aggiungere le seguenti regole di ingresso e uscita:

Progetto Rule (Regola)
Progetto R Regola in uscita per il progetto L
Progetto L (set di dati collegato) Regola in entrata per il progetto R

Eseguire query sulle visualizzazioni in un set di dati collegato

Questa sezione descrive le regole dei Controlli di servizio VPC richieste per eseguire query su una vista in un set di dati collegato. Le regole variano a seconda che la vista e le relative tabelle di base si trovino nello stesso progetto o in progetti separati.

Scenario 1

Nel seguente diagramma, i progetti che contengono il set di dati collegato e le tabelle di base associate alla vista si trovano in perimetri di servizio diversi. La vista (Progetto S) e la tabella di base associata alla vista (Progetto V) si trovano in progetti diversi:

le tabelle di visualizzazione e di base si trovano in progetti diversi.

Figura 5. Regole dei Controlli di servizio VPC per l'esecuzione di query su una vista in un set di dati collegato.

Nella figura 5 sono etichettati i seguenti componenti:

  • Chiamante: un abbonato alla condivisione di BigQuery o qualsiasi utente di job BigQuery del set di dati collegato.
  • Progetto R: il progetto chiamante.
  • Progetto L: ospita il set di dati collegato.
  • Progetto S: ospita il set di dati condiviso.
  • Progetto V: ospita il set di dati contenente le tabelle di base associate alla vista.

Quando, in qualità di abbonato alla condivisione BigQuery, esegui una query su una vista in un set di dati collegato, devi aggiungere le seguenti regole di ingresso e uscita:

Progetto Rule (Regola)
Progetto R

Regola in uscita per il progetto L

Regola in uscita per il progetto V

Progetto L (set di dati collegato)

Regola in entrata per il progetto R

Regola in uscita per il progetto V

Progetto V

Regola in uscita per il progetto L

Regola in entrata per il progetto R

Scenario 2

Nel seguente diagramma, la vista (Progetto V) e la tabella di base associata alla vista (Progetto V) si trovano nello stesso progetto:

le tabelle di visualizzazione e di base si trovano nello stesso progetto.

Immagine 6. Regole dei Controlli di servizio VPC per l'esecuzione di query su una vista in un set di dati collegato.

Nella figura 6 sono etichettati i seguenti componenti:

  • Chiamante: un abbonato alla condivisione di BigQuery o qualsiasi utente di job BigQuery del set di dati collegato.
  • Progetto R: il progetto chiamante.
  • Progetto L: ospita il set di dati collegato.
  • Progetto V: ospita sia la vista sia le tabelle di base associate alla vista.

Quando, in qualità di abbonato alla condivisione BigQuery, esegui una query su una vista in un set di dati collegato, devi aggiungere le seguenti regole di ingresso e uscita:

Progetto Rule (Regola)
Progetto R

Regola in uscita per il progetto L

Progetto L (set di dati collegato)

Regola in entrata per il progetto R

Eseguire query sulle viste autorizzate in un set di dati collegato

Nel seguente diagramma, la vista autorizzata e la tabella di base associata alla vista autorizzata (progetto V) si trovano nello stesso progetto:

la vista autorizzata e le tabelle di base si trovano nello stesso progetto.

Immagine 7. Regole dei Controlli di servizio VPC per l'esecuzione di query su una vista in un set di dati collegato.

Nella figura 7 sono etichettati i seguenti componenti:

  • Chiamante: un abbonato alla condivisione di BigQuery o qualsiasi utente di job BigQuery del set di dati collegato.
  • Progetto R: il progetto chiamante.
  • Progetto L: ospita il set di dati collegato.
  • Progetto V: ospita sia la vista autorizzata sia le tabelle di base associate alla vista.

Quando, in qualità di abbonato alla condivisione BigQuery, esegui una query su una vista in un set di dati collegato, devi aggiungere le seguenti regole di ingresso e uscita:

Progetto Rule (Regola)
Progetto R

Regola in uscita per il progetto L

Progetto L (set di dati collegato)

Regola in entrata per il progetto R

Limitazioni

La condivisione BigQuery non supporta le regole basate sul metodo. Per abilitare le regole basate sul metodo, devi consentire tutti i metodi. Ad esempio:

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

Se anche le risorse BigQuery sono protette da perimetri di servizio, devi consentire le regole di ingresso e uscita per il servizio BigQuery. L'autorizzazione delle regole in entrata e in uscita non è necessaria quando crei uno scambio di dati. Le regole di ingresso e uscita per BigQuery sono simili a quelle per la condivisione di BigQuery. Ad esempio:

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

Passaggi successivi