Kontrol Layanan VPC untuk BigQuery

Halaman ini menjelaskan cara meningkatkan keamanan di sekitar resource BigQuery dengan membuat perimeter menggunakan Kontrol Layanan VPC. Perimeter ini membatasi akses ke dan dari BigQuery serta independen dari kontrol Identity and Access Management (IAM). Keduanya berguna dalam kasus penggunaan berikut:

  • Mencegah kebocoran data dengan membatasi akses ke resource, kecuali yang diizinkan secara khusus dalam aturan masuk dan keluar.
  • Memuat data ke BigQuery dengan aman dari sumber pihak ketiga atau layanan Google Cloud, seperti Cloud Storage.
  • Mengontrol ekspor data dari BigQuery ke Cloud Storage atau target lainnya.

Untuk mengetahui informasi selengkapnya, lihat ringkasan Kontrol Layanan VPC.

Sebelum memulai

  • Untuk mendapatkan izin yang diperlukan guna mengonfigurasi perimeter layanan, lihat Kontrol akses dengan IAM untuk Kontrol Layanan VPC.
  • Anda harus memiliki kebijakan akses untuk organisasi Anda. Untuk mengetahui informasi selengkapnya, lihat Membuat kebijakan akses.

Membuat perimeter

Contoh berikut menunjukkan cara membuat perimeter Kontrol Layanan VPC yang membatasi rentang alamat IP eksternal yang dapat mengakses project BigQuery.

  1. Buat tingkat akses yang hanya mengizinkan akses ke rentang alamat IP tertentu, misalnya, alamat IP dalam jaringan perusahaan. Untuk membuatnya, gunakan perintah gcloud access-context-manager levels create:

    echo """
    - ipSubnetworks:
      - 162.222.181.0/24
      - 2001:db8::/48
    """ > level.yaml
    
    gcloud access-context-manager levels create ACCESS_LEVEL_NAME \
        --title="TITLE" --basic-level-spec=level.yaml
    

    Ganti kode berikut:

    • ACCESS_LEVEL_NAME: ID tingkat akses
    • TITLE: judul yang dapat dibaca manusia untuk perimeter layanan

    Untuk mengetahui informasi selengkapnya tentang cara membuat tingkat akses, lihat contoh implementasi.

  2. Lindungi resource BigQuery dengan membuat atau memperbarui perimeter. Contoh berikut melindungi project. Untuk kasus penggunaan lainnya, seperti melindungi transfer data dari bucket Cloud Storage di project lain, lihat kasus penggunaan.

    Membuat perimeter

    Untuk membuat perimeter baru guna melindungi project BigQuery, gunakan perintah gcloud access-context-manager perimeters create:

    echo """
    - ingressFrom:
        identityType: ANY_IDENTITY
        sources:
        - accessLevel: accessPolicies/POLICY_NAME/accessLevels/ACCESS_LEVEL_NAME
      ingressTo:
        operations:
        - methodSelectors:
          - method: '*'
          serviceName: bigquery.googleapis.com
        resources:
        - '*'
    
    """ > ingress.yaml
    
    gcloud access-context-manager perimeters create BIGQUERY_PERIMETER --title="TITLE" \
        --resources=BIGQUERY_PROJECT_NUMBER \
        --restricted-services=bigquery.googleapis.com \
        --ingress-policies=ingress.yaml
        --policy=POLICY_NAME
    

    Ganti kode berikut:

    • POLICY_NAME: ID kebijakan akses
    • ACCESS_LEVEL_NAME: ID tingkat akses
    • PERIMETER: ID perimeter
    • TITLE: judul singkat yang dapat dibaca manusia untuk perimeter layanan
    • BIGQUERY_PROJECT_NUMBER: ID project BigQuery
    • POLICY_NAME: ID kebijakan akses

    Memperbarui perimeter

    Untuk memperbarui perimeter yang ada, gunakan perintah gcloud access-context-manager perimeters update:

    gcloud access-context-manager perimeters update BIGQUERY_PERIMETER --set-ingress-policies=ingress.yaml
    

    Ganti BIGQUERY_PERIMETER dengan ID perimeter yang melindungi resource BigQuery.

Menguji perimeter

Uji perimeter Kontrol Layanan VPC Anda sebelum menerapkannya. Untuk mengetahui informasi selengkapnya, lihat Mode uji coba untuk perimeter layanan dan Menggunakan mode uji coba untuk menguji kebijakan masuk atau keluar.

Kasus penggunaan

Contoh kasus penggunaan berikut menunjukkan cara melindungi data yang masuk dan keluar dari BigQuery dengan Kontrol Layanan VPC.

Membuat kueri data tabel eksternal dari bucket Cloud Storage di project lain

Contoh berikut menunjukkan cara mengizinkan komunikasi secara selektif antara project BigQuery dan Cloud Storage saat project tersebut dipisahkan oleh perimeter.

  1. Izinkan project BigQuery mengakses project Cloud Storage dengan memperbarui aturan keluar untuk perimeter di sekitar project Cloud Storage:

    echo """
    - egressFrom:
        identityType: ANY_IDENTITY
      egressTo:
        operations:
        - methodSelectors:
          - method: '*'
          serviceName: storage.googleapis.com
        resources:
        - projects/BIGQUERY_PROJECT_NUMBER
    """ > egress.yaml
    
    gcloud access-context-manager perimeters update CLOUD_STORAGE_PERIMETER --policy=POLICY_NAME --set-egress-policies=egress.yaml
    

    Ganti kode berikut:

    • BIGQUERY_PROJECT_NUMBER: ID project BigQuery
    • CLOUD_STORAGE_PERIMETER: ID perimeter yang melindungi resource Cloud Storage
    • POLICY_NAME: ID kebijakan akses
  2. Izinkan project Cloud Storage mengakses project BigQuery dengan memperbarui aturan keluar untuk perimeter di sekitar project BigQuery:

    echo """
    - egressFrom:
        identityType: ANY_IDENTITY
      egressTo:
        operations:
        - methodSelectors:
          - method: '*'
          serviceName: storage.googleapis.com
        resources:
        - projects/CLOUD_STORAGE_PROJECT_NUMBER
    """ > egress1.yaml
    
    gcloud access-context-manager perimeters update BIGQUERY_PERIMETER --policy=POLICY_NAME --set-egress-policies=egress1.yaml
    

    Ganti kode berikut:

    • CLOUD_STORAGE_PROJECT_NUMBER: ID project Cloud Storage
    • PERIMETER: ID perimeter
    • POLICY_NAME: ID kebijakan akses
  3. Opsional: jika perimeter yang melindungi project BigQuery menyertakan storage.googleapis.com sebagai layanan yang dibatasi, Anda harus memperbarui aturan masuk:

    echo """
    - ingressFrom:
        identityType: ANY_IDENTITY
        sources:
        - accessLevel: accessPolicies/POLICY_NAME/accessLevels/ACCESS_LEVEL_NAME
      ingressTo:
        operations:
        - methodSelectors:
          - method: '*'
          serviceName: bigquery.googleapis.com
        - methodSelectors:
          - method: '*'
          serviceName: storage.googleapis.com
        resources:
        - '*'
    
    """ > ingress.yaml
    
    gcloud access-context-manager perimeters create BIGQUERY_PERIMETER --title="TITLE" \
        --resources=BIGQUERY_PROJECT_NUMBER \
        --restricted-services=bigquery.googleapis.com \
        --ingress-policies=ingress.yaml
        --policy=POLICY_NAME
    

Mengimpor dan mengekspor data dari BigQuery Omni

Sebagai lapisan pertahanan tambahan, Anda dapat menggunakan perimeter Kontrol Layanan VPC untuk membatasi akses antara BigQuery Omni dan layanan cloud eksternal. Untuk informasi dan contoh selengkapnya, lihat konfigurasi Kontrol Layanan VPC saat Anda membuat tabel BigLake Azure Blob Storage.

Langkah selanjutnya