Berbagi aturan Kontrol Layanan VPC

Aturan ingress dan egress memungkinkan penayang dan pelanggan di BigQuery sharing (sebelumnya Analytics Hub) mengakses data di seluruh project yang dilindungi oleh perimeter Kontrol Layanan VPC. Sebelum mengonfigurasi aturan ini, Anda harus memahami perimeter Kontrol Layanan VPC, set data bersama, pertukaran data, listingan, dan set data tertaut.

Project pemanggil adalah jaringan atau project klien Google Cloud yang memulai permintaan, seperti kueri SQL atau perintah Google Cloud CLI.

Membuat pertukaran data

Dalam diagram berikut, project yang berisi pertukaran data dan set data bersama berada di perimeter layanan yang berbeda:

Aturan Kontrol Layanan VPC saat membuat pertukaran data.

Gambar 1. Aturan Kontrol Layanan VPC untuk membuat pertukaran data.

Dalam gambar 1, komponen berikut diberi label:

  • Pemanggil: administrator BigQuery sharing.
  • Project R: project caller.
  • Project E: menghosting pertukaran data dan listingan.

Sebagai administrator BigQuery sharing, saat Anda membuat pertukaran data di project yang berbeda dengan project caller, Anda harus menambahkan aturan ingress dan egress berikut:

Project Rule
Project R Aturan egress untuk project E
Project E (pertukaran data) Aturan ingress untuk project R

Membuat listingan

Dalam diagram berikut, project yang berisi pertukaran data dan set data bersama berada di perimeter layanan yang berbeda:

Aturan Kontrol Layanan VPC saat membuat listingan.

Gambar 2. Aturan Kontrol Layanan VPC untuk membuat listingan.

Dalam gambar 2, komponen berikut diberi label:

  • Pemanggil: administrator atau penayang BigQuery sharing.
  • Project R: project caller.
  • Project E: menghosting pertukaran data dan listingan.
  • Project S: menghosting set data bersama.

Saat membuat listingan di pertukaran data yang berada di project yang berbeda dengan set data bersama, Anda harus menambahkan aturan ingress dan egress berikut agar publisher BigQuery sharing dapat membuat listingan:

Project Rule
Project R

Aturan egress untuk project E

Aturan egress untuk project S

Project E (pertukaran data)

Aturan egress untuk project S

Aturan ingress untuk project R

Project S (set data bersama)

Aturan egress untuk project E

Aturan ingress untuk project R

Berlangganan listingan

Dalam diagram berikut, project yang berisi listingan dan set data tertaut untuk listingan tersebut berada di perimeter layanan yang berbeda:

Aturan Kontrol Layanan VPC saat berlangganan listingan.

Gambar 3. Aturan Kontrol Layanan VPC untuk berlangganan listingan.

Dalam gambar 3, komponen berikut diberi label:

  • Pemanggil: pelanggan BigQuery sharing.
  • Project R: project caller.
  • Project E: menghosting pertukaran data dan listingan.
  • Project L: menghosting set data tertaut.

Sebagai pelanggan BigQuery sharing, saat berlangganan listingan di pertukaran data yang ada di project yang berbeda dengan project Anda, Anda harus menambahkan aturan masuk dan keluar berikut:

Project Rule
Project R

Aturan egress untuk project E

Aturan egress untuk project L

Project E (listingan)

Aturan egress untuk project L

Aturan ingress untuk project R

Project L (set data tertaut)

Aturan egress untuk project E

Aturan ingress untuk project R

Memperbarui listingan

Saat Anda memperbarui listingan—misalnya, untuk mengubah kebijakan ekspor yang dibatasi—BigQuery sharing menggunakan worker latar belakang untuk menerapkan perubahan ini ke set data tertaut yang terkait. Jika project Google Cloud Anda dilindungi oleh perimeter Kontrol Layanan VPC dengan batasan berbasis IP, worker latar belakang yang berasal dari infrastruktur Google mungkin akan diblokir, sehingga mencegah set data tertaut disinkronkan dengan berhasil.

Agar worker latar belakang dapat memperbarui set data tertaut, Anda harus mengonfigurasi aturan ingress atau egress secara eksplisit agar pengguna utama atau akun layanan utama yang menjalankan panggilan API dapat mengabaikan batasan berbasis IP.

Untuk mengubah kebijakan ingress pada perimeter project pelanggan, tambahkan aturan ingress yang memungkinkan akun utama panggilan mengakses layanan bigquery.googleapis.com dari alamat IP sumber mana pun (*):

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

Atau, untuk mengubah kebijakan egress di perimeter penayang, pastikan identitas panggilan ditambahkan secara eksplisit di daftar identities dalam aturan egress yang diarahkan ke project pelanggan:

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

Ganti kode berikut:

  • CALLING_USER_EMAIL: alamat email pengguna yang menjalankan panggilan API untuk memperbarui listingan. Sertakan identitas ini jika pengguna manusia melakukan update.
  • AUTOMATION_SA_EMAIL: alamat email akun layanan yang menjalankan panggilan API untuk memperbarui listingan. Sertakan identitas ini jika proses atau skrip otomatis melakukan pembaruan.
  • SUBSCRIBER_PROJECT_NUMBER: nomor project dari project pelanggan yang berisi set data tertaut.

Tabel kueri dalam set data tertaut

Dalam diagram berikut, project pemanggil dan project yang berisi set data tertaut berada di perimeter layanan yang berbeda:

Aturan Kontrol Layanan VPC saat membuat kueri tabel dalam set data tertaut.

Gambar 4. Aturan Kontrol Layanan VPC untuk membuat kueri set data tertaut.

Dalam gambar 4, komponen berikut diberi label:

  • Pemanggil: pelanggan BigQuery sharing atau pengguna tugas BigQuery apa pun dari set data tertaut.
  • Project R: project caller.
  • Project L: menghosting set data tertaut.
  • Project V: menghosting set data bersama yang berisi tabel.

Saat Anda, sebagai subscriber BigQuery sharing, membuat kueri tabel dalam set data tertaut, Anda harus menambahkan aturan ingress dan egress berikut:

Project Rule
Project R Aturan egress untuk project L
Project L (set data tertaut) Aturan ingress untuk project R

Membuat kueri tampilan dalam set data tertaut

Bagian ini menjelaskan aturan Kontrol Layanan VPC yang diperlukan untuk membuat kueri tampilan dalam set data tertaut. Aturannya bervariasi, bergantung pada apakah tampilan dan tabel dasar yang mendasarinya berada dalam project yang sama atau dalam project yang terpisah.

Skenario 1

Dalam diagram berikut, project yang berisi set data tertaut dan tabel dasar yang terkait dengan tampilan berada di perimeter layanan yang berbeda. Tampilan (Project S) dan tabel dasar yang terkait dengan tampilan (Project V) berada di project yang berbeda:

tabel dasar dan tabel dasar berada di project yang berbeda.

Gambar 5. Aturan Kontrol Layanan VPC untuk membuat kueri tampilan dalam set data tertaut.

Dalam gambar 5, komponen berikut diberi label:

  • Pemanggil: pelanggan BigQuery sharing atau pengguna tugas BigQuery apa pun dari set data tertaut.
  • Project R: project caller.
  • Project L: menghosting set data tertaut.
  • Project S: menghosting set data bersama.
  • Project V: menghosting set data yang berisi tabel dasar yang terkait dengan tampilan.

Saat Anda, sebagai pelanggan BigQuery sharing, membuat kueri tampilan dalam set data tertaut, Anda harus menambahkan aturan ingress dan egress berikut:

Project Rule
Project R

Aturan egress untuk project L

Aturan egress untuk project V

Project L (set data tertaut)

Aturan ingress untuk project R

Aturan egress untuk project V

Project V

Aturan egress untuk project L

Aturan ingress untuk project R

Skenario 2

Dalam diagram berikut, tampilan (Project V) dan tabel dasar yang terkait dengan tampilan (Project V) berada dalam project yang sama:

tampilan dan tabel dasar berada dalam project yang sama.

Gambar 6. Aturan Kontrol Layanan VPC untuk membuat kueri tampilan dalam set data tertaut.

Dalam gambar 6, komponen berikut diberi label:

  • Pemanggil: pelanggan BigQuery sharing atau pengguna tugas BigQuery apa pun dari set data tertaut.
  • Project R: project caller.
  • Project L: menghosting set data tertaut.
  • Project V: menghosting tampilan dan tabel dasar yang terkait dengan tampilan.

Saat Anda, sebagai pelanggan BigQuery sharing, membuat kueri tampilan dalam set data tertaut, Anda harus menambahkan aturan ingress dan egress berikut:

Project Rule
Project R

Aturan egress untuk project L

Project L (set data tertaut)

Aturan ingress untuk project R

Membuat kueri tampilan yang diizinkan dalam set data tertaut

Dalam diagram berikut, tampilan yang diotorisasi dan tabel dasar yang terkait dengan tampilan yang diotorisasi (Project V) berada dalam project yang sama:

tampilan resmi dan tabel dasar berada dalam project yang sama.

Gambar 7. Aturan Kontrol Layanan VPC untuk membuat kueri tampilan dalam set data tertaut.

Dalam gambar 7, komponen berikut diberi label:

  • Pemanggil: pelanggan BigQuery sharing atau pengguna tugas BigQuery apa pun dari set data tertaut.
  • Project R: project caller.
  • Project L: menghosting set data tertaut.
  • Project V: menghosting tampilan yang diotorisasi dan tabel dasar yang terkait dengan tampilan.

Saat Anda, sebagai pelanggan BigQuery sharing, membuat kueri tampilan dalam set data tertaut, Anda harus menambahkan aturan ingress dan egress berikut:

Project Rule
Project R

Aturan egress untuk project L

Project L (set data tertaut)

Aturan ingress untuk project R

Batasan

BigQuery sharing tidak mendukung aturan berbasis metode. Anda harus mengizinkan semua metode untuk mengaktifkan aturan berbasis metode. Contoh:

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

Jika resource BigQuery juga dilindungi oleh perimeter layanan, Anda harus mengizinkan aturan ingress dan egress untuk layanan BigQuery. Mengizinkan aturan ingress dan egress tidak diperlukan saat Anda membuat pertukaran data. Aturan ingress dan egress untuk BigQuery mirip dengan aturan untuk BigQuery sharing. Contoh:

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

Langkah berikutnya