Pengantar penyamaran data

BigQuery mendukung penyamaran data di tingkat kolom. Anda dapat menggunakan penyamaran data untuk menyamarkan data kolom secara selektif untuk grup pengguna, sambil tetap mengizinkan mereka mengakses kolom tersebut. Fungsi penyamaran data dibangun berdasarkan kontrol akses tingkat kolom, sehingga Anda harus memahami fitur tersebut sebelum melanjutkan.

Jika menggunakan penyamaran data yang dikombinasikan dengan kontrol akses tingkat kolom, Anda dapat mengonfigurasi rentang akses ke data kolom, mulai dari akses penuh hingga tanpa akses, berdasarkan kebutuhan berbagai grup pengguna. Misalnya, untuk data nomor pajak, Anda mungkin ingin memberi grup akuntansi Anda akses penuh, akses disamarkan kepada grup analis Anda, dan tidak memberi akses kepada grup penjualan Anda.

Manfaat

Penyamaran data memberikan manfaat berikut:

  • Menyederhanakan proses berbagi data. Anda dapat menyamarkan kolom sensitif agar tabel dapat dibagikan dengan kelompok yang lebih besar.
  • Berbeda dengan kontrol akses tingkat kolom, Anda tidak perlu mengubah kueri yang sudah ada dengan mengecualikan kolom yang tidak dapat diakses pengguna. Saat Anda mengonfigurasi penyamaran data, kueri yang sudah ada akan otomatis menyamarkan data kolom berdasarkan peran yang telah diberikan kepada pengguna.
  • Anda dapat menerapkan kebijakan akses data dalam skala besar. Anda dapat menulis kebijakan data, mengaitkannya dengan tag kebijakan, dan menerapkan tag kebijakan tersebut ke berapa pun kolom.
  • Memungkinkan kontrol akses berbasis atribut. Tag kebijakan yang dilampirkan ke kolom memberikan akses data kontekstual, yang ditentukan oleh kebijakan data dan akun utama yang terkait dengan tag kebijakan tersebut.

Alur kerja penyamaran data

Gambar 1 menunjukkan alur kerja untuk mengonfigurasi penyamaran data:

Untuk mengaktifkan penyamaran data, Anda harus membuat taksonomi, membuat kebijakan data untuk tag kebijakan di taksonomi, lalu mengaitkan tag kebijakan dengan kolom tabel. Gambar 1. Komponen penyamaran data.

Anda mengonfigurasi penyamaran data dengan langkah-langkah berikut:

  1. Siapkan taksonomi dan satu atau beberapa tag kebijakan.
  2. Konfigurasikan kebijakan data untuk tag kebijakan. Kebijakan data memetakan aturan penyamaran data dan satu atau beberapa akun utama, yang mewakili pengguna atau grup, ke tag kebijakan.

    Saat membuat kebijakan data menggunakan konsol Google Cloud, Anda membuat aturan penyamaran data dan menentukan akun utama dalam satu langkah. Saat membuat kebijakan data menggunakan BigQuery Data Policy API, buat kebijakan data dan aturan penyamaran data dalam satu langkah, lalu tentukan akun utama untuk kebijakan data pada langkah kedua.

  3. Tetapkan tag kebijakan ke kolom di tabel BigQuery untuk menerapkan kebijakan data.

  4. Tetapkan pengguna yang seharusnya memiliki akses ke data yang disamarkan ke peran BigQuery Masked Reader. Sebagai praktik terbaik, tetapkan peran BigQuery Masked Reader pada tingkat kebijakan data. Menetapkan peran di level project atau yang lebih tinggi akan memberi pengguna izin ke semua kebijakan data dalam project tersebut, dan dapat menyebabkan masalah yang disebabkan oleh kelebihan izin.

    Tag kebijakan yang terkait dengan kebijakan data juga dapat digunakan untuk kontrol akses tingkat kolom. Dalam hal ini, tag kebijakan juga dikaitkan dengan satu atau beberapa akun utama yang diberi peran Data Catalog Fine-Grained Reader. Hal ini memungkinkan akun utama ini mengakses data kolom asli yang tidak disamarkan.

Gambar 2 menunjukkan cara kontrol akses tingkat kolom dan penyamaran data bekerja bersamaan:

Tag kebijakan dikaitkan dengan kebijakan data untuk mengonfigurasi penyamaran data, lalu dikaitkan dengan kolom tabel untuk mengaktifkan penyamaran. Gambar 2. Komponen penyamaran data.

Untuk mengetahui informasi selengkapnya tentang interaksi peran, lihat Cara peran Masked Reader dan Fine-Grained Reader berinteraksi. Untuk mengetahui informasi selengkapnya tentang pewarisan tag kebijakan, lihat Peran dan hierarki tag kebijakan.

Aturan penyamaran data

Saat Anda menggunakan penyamaran data, aturan penyamaran data diterapkan ke kolom saat runtime kueri, berdasarkan peran pengguna yang menjalankan kueri. Penyamaran lebih diutamakan daripada operasi lain yang terlibat dalam kueri. Aturan penyamaran data menentukan jenis penyamaran data yang diterapkan pada data kolom.

Anda dapat menggunakan aturan penyamaran data berikut:

  • Rutinitas penyamaran kustom. Menampilkan nilai kolom setelah menerapkan fungsi yang ditentukan pengguna (UDF) ke kolom. Izin rutinitas diperlukan untuk mengelola aturan penyamaran. Aturan ini, secara desain, mendukung semua jenis data BigQuery kecuali untuk jenis data STRUCT. Namun, dukungan untuk jenis data selain STRING dan BYTES dibatasi. Outputnya bergantung pada fungsi yang ditentukan.

    Untuk mengetahui informasi selengkapnya tentang cara membuat UDF untuk rutinitas penyamaran kustom, lihat Membuat rutinitas penyamaran kustom.

  • Penyamaran tahun tanggal. Menampilkan nilai kolom setelah memotong nilai ke tahunnya, dengan menetapkan semua bagian non-tahun dari nilai ke awal tahun. Anda hanya dapat menggunakan aturan ini dengan kolom yang menggunakan jenis data DATE, DATETIME, dan TIMESTAMP. Contoh:

    Jenis Asli Disamarkan
    DATE 2030-07-17 2030-01-01
    DATETIME 2030-07-17T01:45:06 2030-01-01T00:00:00
    TIMESTAMP 2030-07-17 01:45:06 2030-01-01 00:00:00
  • Nilai penyamaran default. Menampilkan nilai penyamaran default untuk kolom berdasarkan jenis data kolom. Gunakan metode ini ketika Anda ingin menyembunyikan nilai kolom tetapi memperlihatkan jenis datanya. Jika diterapkan ke kolom, aturan penyamaran data ini akan kurang berguna dalam operasi JOIN kueri bagi pengguna dengan akses Masked Reader. Hal ini karena nilai default tidak cukup unik untuk digunakan saat menggabungkan tabel.

    Tabel berikut menampilkan nilai penyamaran default untuk setiap jenis data:

    Data type Nilai penyamaran default
    STRING ""
    BYTES b''
    INTEGER 0
    FLOAT 0.0
    NUMERIC 0
    BOOLEAN FALSE
    TIMESTAMP 1970-01-01 00:00:00 UTC
    DATE 1970-01-01
    TIME 00:00:00
    DATETIME 1970-01-01T00:00:00
    GEOGRAPHY POINT(0 0)
    BIGNUMERIC 0
    ARRAY []
    STRUCT

    NOT_APPLICABLE

    Tag kebijakan tidak dapat diterapkan ke kolom yang menggunakan jenis data STRUCT, tetapi dapat dikaitkan dengan kolom leaf dari kolom tersebut.

    JSON null
  • Penyamaran email. Menampilkan nilai kolom setelah mengganti nama pengguna email yang valid dengan XXXXX. Jika nilai kolom bukan alamat email yang valid, nilai kolom tersebut akan ditampilkan setelah dijalankan melalui fungsi hash SHA-256. Anda hanya dapat menggunakan aturan ini dengan kolom yang menggunakan jenis data STRING. Contoh:

    Asli Disamarkan
    abc123@gmail.com XXXXX@gmail.com
    randomtext jQHDyQuj7vJcveEe59ygb3Zcvj0B5FJINBzgM6Bypgw=
    test@gmail@gmail.com Qdje6MO+GLwI0u+KyRyAICDjHbLF1ImxRqaW08tY52k=
  • Empat karakter pertama. Menampilkan 4 karakter pertama dari nilai kolom, sehingga mengganti string lainnya dengan XXXXX. Jika panjang nilai kolom sama dengan atau kurang dari 4 karakter, kolom akan menampilkan nilai kolom tersebut setelah dijalankan melalui fungsi hash SHA-256. Anda hanya dapat menggunakan aturan ini dengan kolom yang menggunakan jenis data STRING.

  • Hash (SHA-256). Menampilkan nilai kolom setelah dijalankan melalui fungsi hash SHA-256. Gunakan metode ini jika Anda ingin pengguna akhir dapat menggunakan kolom ini dalam operasi JOIN untuk kueri. Anda hanya dapat menggunakan aturan ini dengan kolom yang menggunakan jenis data STRING atau BYTES.

    Fungsi SHA-256 yang digunakan dalam penyamaran data adalah mempertahankan jenis, sehingga nilai hash yang ditampilkan memiliki jenis data yang sama dengan nilai kolom. Misalnya, nilai hash untuk nilai kolom STRING juga memiliki jenis data STRING.

  • Empat karakter terakhir. Menampilkan 4 karakter terakhir dari nilai kolom, yang menggantikan string lainnya dengan XXXXX. Jika panjang nilai kolom sama dengan atau kurang dari 4 karakter, kolom akan menampilkan nilai kolom tersebut setelah kolom dijalankan melalui fungsi hash SHA-256. Anda hanya dapat menggunakan aturan ini dengan kolom yang menggunakan jenis data STRING.

  • Nullify. Menampilkan NULL, bukan nilai kolom. Gunakan metode ini jika Anda ingin menyembunyikan nilai dan jenis data kolom. Jika diterapkan ke kolom, aturan penyamaran data ini akan kurang berguna dalam operasi JOIN kueri bagi pengguna dengan akses Masked Reader. Hal ini karena nilai NULL tidak cukup unik untuk berguna saat menggabungkan tabel.

Hierarki aturan penyamaran data

Anda dapat mengonfigurasi hingga sembilan kebijakan data untuk satu tag kebijakan, masing-masing dengan aturan penyamaran data berbeda yang terkait dengannya. Salah satu kebijakan ini disediakan untuk setelan kontrol akses level kolom. Hal ini memungkinkan beberapa kebijakan data diterapkan ke kolom dalam kueri pengguna, berdasarkan grup tempat pengguna merupakan anggota. Jika ini terjadi, BigQuery akan memilih aturan penyamaran data yang akan diterapkan berdasarkan hierarki berikut:

  1. Rutinitas penyamaran kustom
  2. Hash (SHA-256)
  3. Penyamaran email
  4. Empat karakter terakhir
  5. Empat karakter pertama
  6. Penyamaran tahun tanggal
  7. Nilai penyamaran default
  8. Nullify

Misalnya, pengguna A adalah anggota karyawan dan grup akuntansi. Pengguna A menjalankan kueri yang menyertakan kolom sales_total, dengan tag kebijakan confidential yang diterapkan. Tag kebijakan confidential memiliki dua kebijakan data yang terkait: satu kebijakan dengan peran karyawan sebagai akun utama dan menerapkan aturan penyamaran data nullify, dan satu lagi yang memiliki peran akuntansi sebagai akun utama dan menerapkan aturan penyamaran data hash (SHA-256). Dalam hal ini, aturan penyamaran data hash (SHA-256) lebih diprioritaskan daripada aturan penyamaran data nullify, sehingga aturan hash (SHA-256) diterapkan ke nilai kolom sales_total pada kueri pengguna A.

Gambar 3 menunjukkan skenario ini:

Jika ada konflik antara penerapan aturan penyamaran data nullify dan hash (SHA-256)
karena grup tempat pengguna berada, aturan penyamaran data
hash (SHA-256)
akan diprioritaskan.

Gambar 3. Prioritas aturan penyamaran data.

Peran dan izin

Peran untuk mengelola taksonomi dan tag kebijakan

Anda memerlukan peran Data Catalog Policy Tag Admin untuk membuat dan mengelola taksonomi dan tag kebijakan.

Peran/ID Izin Deskripsi
Admin Tag Kebijakan Data Catalog/datacatalog.categoryAdmin datacatalog.categories.getIamPolicy
datacatalog.categories.setIamPolicy
datacatalog.taxonomies.create
datacatalog.taxonomies.delete
datacatalog.taxonomies.get
datacatalog.taxonomies.getIamPolicy
datacatalog.taxonomies.list
datacatalog.taxonomies.setIamPolicy
datacatalog.taxonomies.update
resourcemanager.projects.get
resourcemanager.projects.list

Berlaku di level project.

Peran ini memberikan kemampuan untuk melakukan hal berikut:

  • Membuat, membaca, mengupdate, dan menghapus taksonomi dan tag kebijakan.
  • Mendapatkan dan menetapkan kebijakan IAM pada tag kebijakan.

Peran untuk membuat dan mengelola kebijakan data

Anda memerlukan salah satu peran BigQuery berikut untuk membuat dan mengelola kebijakan data:

Peran/ID Izin Deskripsi
Admin BigQuery/bigquery.admin

Pemilik Data BigQuery/bigquery.dataOwner
bigquery.dataPolicies.create
bigquery.dataPolicies.delete
bigquery.dataPolicies.get
bigquery.dataPolicies.getIamPolicy
bigquery.dataPolicies.list
bigquery.dataPolicies.setIamPolicy
bigquery.dataPolicies.update

Izin bigquery.dataPolicies.create dan bigquery.dataPolicies.list berlaku di level project. Izin lainnya berlaku di level kebijakan data.

Peran ini memberikan kemampuan untuk melakukan hal berikut:

  • Membuat, membaca, mengupdate, dan menghapus kebijakan data.
  • Mendapatkan dan menetapkan kebijakan IAM pada kebijakan data.
Anda juga memerlukan izin datacatalog.taxonomies.get, yang bisa Anda dapatkan dari beberapa peran bawaan Data Catalog.

Peran untuk melampirkan tag kebijakan ke kolom

Anda memerlukan izin datacatalog.taxonomies.get dan bigquery.tables.setCategory untuk melampirkan tag kebijakan ke kolom. datacatalog.taxonomies.get disertakan dalam peran Data Catalog Policy Tags Admin dan Viewer. bigquery.tables.setCategory disertakan dalam peran BigQuery Admin (roles/bigquery.admin) dan BigQuery Data Owner (roles/bigquery.dataOwner).

Peran untuk meng-kueri data yang disamarkan

Anda memerlukan peran BigQuery Masked Reader untuk meng-kueri data dari kolom yang menerapkan penyamaran data.

Peran/ID Izin Deskripsi
Masked Reader/bigquerydatapolicy.maskedReader bigquery.dataPolicies.maskedGet

Berlaku di level kebijakan data.

Peran ini memberikan kemampuan untuk melihat data yang disamarkan dari kolom yang terkait dengan kebijakan data.

Selain itu, pengguna harus memiliki izin yang sesuai untuk meng-kueri tabel. Untuk informasi selengkapnya, lihat Izin yang diperlukan.

Cara peran Masked Reader dan Fine-Grained Reader berinteraksi

Penyamaran data dibangun berdasarkan kontrol akses tingkat kolom. Untuk kolom tertentu, Anda dapat memiliki beberapa pengguna dengan peran BigQuery Masked Reader yang memungkinkan mereka membaca data yang disamarkan, beberapa pengguna dengan peran Data Catalog Fine-Grained Reader yang memungkinkan mereka membaca data yang tidak disamarkan, beberapa pengguna memiliki keduanya, dan beberapa pengguna tidak memiliki keduanya. Peran-peran tersebut berinteraksi sebagai berikut:

  • Pengguna dengan peran Fine-Grained Reader dan Masked Reader: apa yang dilihat pengguna bergantung pada tempat dalam hierarki tag kebijakan yang diberikan setiap peran. Untuk informasi selengkapnya, lihat Pewarisan otorisasi dalam hierarki tag kebijakan.
  • Pengguna dengan peran Fine-Grained Reader: dapat melihat data kolom yang tidak disamarkan (tidak terhalang).
  • Pengguna dengan peran Masked Reader: dapat melihat data kolom yang disamarkan (tersamarkan).
  • Pengguna tanpa peran apa pun: izin ditolak.

Jika tabel memiliki kolom yang diamankan atau diamankan dan disamarkan, untuk menjalankan pernyataan SELECT * FROM di tabel tersebut, pengguna harus menjadi anggota grup yang sesuai agar mereka diberi peran Masked Reader atau Fine-Grained Reader di semua kolom ini.

Pengguna yang tidak diberi peran ini harus menentukan hanya kolom yang dapat mereka akses dalam pernyataan SELECT, atau menggunakan SELECT * EXCEPT (restricted_columns) FROM untuk mengecualikan kolom yang diamankan atau disamarkan.

Pewarisan otorisasi dalam hierarki tag kebijakan

Peran dievaluasi mulai dari tag kebijakan yang terkait dengan kolom, lalu diperiksa di setiap tingkat taksonomi, sampai pengguna ditentukan memiliki izin yang sesuai atau bagian atas hierarki tag kebijakan tercapai.

Misalnya, lihat tag kebijakan dan konfigurasi kebijakan data yang ditunjukkan pada Gambar 4:

Mengevaluasi akses pengguna saat Masked Reader diberikan pada tingkat taksonomi yang lebih tinggi dan Fine-Grained Reader diberikan pada tingkat taksonomi yang lebih rendah.

Gambar 4. Konfigurasi tag kebijakan dan kebijakan data.

Anda memiliki kolom tabel yang dianotasi dengan tag kebijakan Financial, dan pengguna yang merupakan anggota grup ftes@example.com dan analyst@example.com. Saat pengguna menjalankan kueri yang menyertakan kolom yang dianotasi, akses mereka akan ditentukan oleh hierarki yang ditentukan dalam taksonomi tag kebijakan. Karena pengguna diberi peran Data Catalog Fine-Grained Reader oleh tag kebijakan Financial, kueri akan menampilkan data kolom yang tidak disamarkan.

Jika pengguna lain yang hanya menjadi anggota peran ftes@example.com menjalankan kueri yang menyertakan kolom beranotasi, kueri akan menampilkan data kolom yang telah di-hash menggunakan algoritma SHA-256. karena pengguna diberi peran BigQuery Masked Reader oleh tag kebijakan Confidential, yang merupakan induk dari tag kebijakan Financial.

Pengguna yang bukan anggota salah satu peran tersebut akan mendapatkan error akses ditolak jika mencoba meng-kueri kolom beranotasi.

Berbeda dengan skenario sebelumnya, gunakan konfigurasi tag kebijakan dan kebijakan data yang ditampilkan di Gambar 5:

Mengevaluasi akses pengguna saat Fine-Grained Reader diberikan pada tingkat taksonomi yang lebih tinggi dan Masked Reader diberikan pada tingkat taksonomi yang lebih rendah.

Gambar 5. Konfigurasi tag kebijakan dan kebijakan data.

Anda akan mengalami situasi yang sama seperti yang ditunjukkan pada Gambar 4, tetapi pengguna diberi peran Fine-Grained Reader pada tingkat hierarki tag kebijakan yang lebih tinggi, dan peran Masked Reader di tingkat hierarki tag kebijakan yang lebih rendah. Karena itu, kueri menampilkan data kolom yang disamarkan untuk pengguna ini. Hal ini terjadi meskipun pengguna kemudian diberi peran Fine-Grained Reader di hierarki tag, karena layanan menggunakan peran yang pertama ditetapkan saat menaiki hierarki tag kebijakan untuk memeriksa akses pengguna.

Jika ingin membuat satu kebijakan data dan menerapkannya pada beberapa tingkat hierarki tag kebijakan, Anda dapat menetapkan kebijakan data tersebut pada tag kebijakan yang mewakili tingkat hierarki teratas yang harus tunduk pada kebijakan tersebut. Misalnya, lihat taksonomi dengan struktur berikut:

  • Tag kebijakan 1
    • Tag kebijakan 1a
      • Tag kebijakan 1ai
    • Tag kebijakan 1b
      • Tag kebijakan 1bi
      • Tag kebijakan 1bii

Jika Anda ingin kebijakan data diterapkan ke semua tag kebijakan ini, tetapkan kebijakan data pada tag kebijakan 1. Jika Anda ingin kebijakan data diterapkan pada tag kebijakan 1b dan turunannya, tetapkan kebijakan data pada tag kebijakan 1b.

Penyamaran data dengan fitur yang tidak kompatibel

Saat Anda menggunakan fitur BigQuery yang tidak kompatibel dengan penyamaran data, layanan akan memperlakukan kolom yang disamarkan sebagai kolom yang diamankan, dan hanya memberikan akses kepada pengguna yang memiliki peran Data Catalog Fine-Grained Reader.

Misalnya, lihat tag kebijakan dan konfigurasi kebijakan data yang ditunjukkan pada Gambar 6:

Tag kebijakan yang terkait dengan kolom dievaluasi untuk menentukan apakah pengguna memiliki izin untuk mengakses data yang tidak disamarkan.

Gambar 6. Konfigurasi tag kebijakan dan kebijakan data.

Anda memiliki kolom tabel yang dianotasi dengan tag kebijakan Financial, dan pengguna yang merupakan anggota grup analyst@example.com. Saat pengguna ini mencoba mengakses kolom yang dianotasi melalui salah satu fitur yang tidak kompatibel, mereka akan menerima error akses ditolak. Hal ini karena pengguna tersebut diberi BigQuery Masked Reader oleh tag kebijakan Financial, tetapi dalam hal ini, pengguna harus memiliki peran Data Catalog Fine-Grained Reader. Karena layanan telah menentukan peran yang berlaku untuk pengguna, layanan tidak melanjutkan pemeriksaan lebih jauh di hierarki tag kebijakan untuk mendapatkan izin tambahan.

Contoh penyamaran data dengan output

Untuk melihat bagaimana tag, akun utama, dan peran berfungsi bersama, pertimbangkan contoh ini.

Di example.com, akses dasar diberikan melalui grup data-users@example.com. Semua karyawan yang memerlukan akses reguler ke data BigQuery adalah anggota grup ini, yang diberi semua izin yang diperlukan untuk membaca dari tabel serta peran BigQuery Masked Reader.

Karyawan ditetapkan ke grup tambahan yang memberikan akses ke kolom yang diamankan atau disamarkan, yang diperlukan untuk pekerjaan mereka. Semua anggota grup tambahan ini juga merupakan anggota data-users@example.com. Anda dapat melihat cara grup ini dikaitkan dengan peran yang sesuai di Gambar 7:

Tag kebijakan dan kebijakan data untuk example.com.

Gambar 7. Tag kebijakan dan kebijakan data untuk example.com.

Tag kebijakan kemudian dikaitkan dengan kolom tabel, seperti yang ditunjukkan dalam Gambar 8:

Tag kebijakan Example.com yang terkait dengan kolom tabel.

Gambar 8. Tag kebijakan Example.com yang terkait dengan kolom tabel.

Dengan mempertimbangkan tag yang terkait dengan kolom, menjalankan SELECT * FROM Accounts; akan memberikan hasil berikut untuk grup yang berbeda:

  • data-users@example.com: Grup ini telah diberi peran BigQuery Masked Reader pada tag kebijakan PII dan Confidential. Hasil berikut ditampilkan:

    SSN Prioritas Nilai umur Tanggal dibuat Email
    NULL "" 0 8 Maret 1983 NULL
    NULL "" 0 29 Desember 2009 NULL
    NULL "" 0 14 Juli 2021 NULL
    NULL "" 0 5 Mei 1997 NULL
  • accounting@example.com: Grup ini telah diberi peran Data Catalog Fine-Grained Reader pada tag kebijakan SSN. Hasil berikut ditampilkan:

    SSN Prioritas Nilai umur Tanggal dibuat NULL
    123-45-6789 "" 0 8 Maret 1983 NULL
    234-56-7891 "" 0 29 Desember 2009 NULL
    345-67-8912 "" 0 14 Juli 2021 NULL
    456-78-9123 "" 0 5 Mei 1997 NULL
  • sales-exec@example.com: Grup ini telah diberi peran Data Catalog Fine-Grained Reader pada tag kebijakan Confidential. Hasil berikut ditampilkan:

    SSN Prioritas Nilai umur Tanggal dibuat Email
    NULL Tinggi 90.000 8 Maret 1983 NULL
    NULL Tinggi 84.875 29 Desember 2009 NULL
    NULL Sedang 38.000 14 Juli 2021 NULL
    NULL Rendah 245 5 Mei 1997 NULL
  • fin-dev@example.com: Grup ini telah diberi peran BigQuery Masked Reader pada tag kebijakan Financial. Hasil berikut ditampilkan:

    SSN Prioritas Nilai umur Tanggal dibuat Email
    NULL "" Zmy9vydG5q= 8 Maret 1983 NULL
    NULL "" GhwTwq6Ynm= 29 Desember 2009 NULL
    NULL "" B6y7dsgaT9= 14 Juli 2021 NULL
    NULL "" Uh02hnR1sg= 5 Mei 1997 NULL
  • Semua pengguna lainnya: Setiap pengguna yang bukan anggota salah satu grup yang tercantum akan mendapatkan error akses ditolak, karena belum diberi peran Data Catalog Fine-Grained Reader atau BigQuery Masked Reader. Untuk meng-kueri tabel Accounts, mereka harus menentukan hanya kolom yang dapat mereka akses di SELECT * EXCEPT (restricted_columns) FROM Accounts untuk mengecualikan kolom yang diamankan atau disamarkan.

Pertimbangan biaya

Penyamaran data dapat secara tidak langsung memengaruhi jumlah byte yang diproses sehingga memengaruhi biaya kueri. Jika pengguna meng-kueri kolom yang disamarkan dengan aturan Nullify atau Nilai Penyamaran Default, kolom tersebut tidak dipindai sama sekali, sehingga mengurangi byte yang diproses.

Batas dan pembatasan

Bagian berikut menjelaskan kategori pembatasan dan batasan yang berlaku untuk penyamaran data.

Pengelolaan kebijakan data

  • Fitur ini mungkin tidak tersedia saat menggunakan pemesanan yang dibuat dengan edisi BigQuery tertentu. Untuk mengetahui informasi selengkapnya tentang fitur apa saja yang diaktifkan di setiap edisi, lihat Pengantar edisi BigQuery.
  • Anda dapat membuat hingga sembilan kebijakan data untuk setiap tag kebijakan. Salah satu kebijakan ini disediakan untuk setelan kontrol akses level kolom.
  • Kebijakan data, tag kebijakan terkait, dan rutinitas yang menggunakannya harus berada dalam project yang sama.

Tag kebijakan

  • Project yang berisi taksonomi tag kebijakan harus merupakan milik organisasi.
  • Hierarki tag kebijakan tidak boleh lebih dari lima tingkat kedalaman dari node root ke subtag tingkat terendah, seperti yang ditunjukkan pada screenshot berikut:

    Kedalaman tag kebijakan.

Menetapkan kontrol akses

Setelah taksonomi memiliki kebijakan data yang terkait dengan setidaknya salah satu tag kebijakannya, kontrol akses akan otomatis diterapkan. Jika ingin menonaktifkan kontrol akses, Anda harus menghapus semua kebijakan data yang terkait dengan taksonomi tersebut terlebih dahulu.

Tampilan terwujud dan kueri penyamaran kumpulan data berulang

Jika Anda sudah memiliki tampilan terwujud, kueri penyamaran kumpulan data berulang pada tabel dasar yang terkait akan gagal. Untuk mengatasi masalah ini, hapus tampilan terwujud. Jika tampilan terwujud diperlukan karena alasan lain, Anda dapat membuatnya di set data lain.

Meng-kueri kolom yang disamarkan di tabel berpartisi

Kueri yang menyertakan penyamaran data pada kolom berpartisi atau yang dikelompokkan tidak didukung.

Dialek SQL

Legacy SQL tidak didukung.

Rutinitas penyamaran kustom

Rutinitas penyamaran kustom memiliki batasan berikut:

  • Penyamaran data kustom mendukung semua jenis data BigQuery kecuali STRUCT, karena penyamaran data hanya dapat diterapkan pada kolom leaf dari jenis data STRUCT.
  • Menghapus rutinitas penyamaran kustom tidak akan menghapus semua kebijakan data yang menggunakannya. Namun, kebijakan data yang menggunakan rutinitas penyamaran yang dihapus akan dibiarkan dengan aturan penyamaran yang kosong. Pengguna dengan peran Masked Reader di kebijakan data lain dengan tag yang sama dapat melihat data yang disamarkan. Orang lain akan melihat pesan Permission denied. Referensi menggantung ke aturan penyamaran yang kosong mungkin dibersihkan oleh proses otomatis setelah tujuh hari.

Kompatibilitas dengan fitur BigQuery lainnya

BigQuery API

Tidak kompatibel dengan metode tabledata.list. Untuk memanggil tabledata.list, Anda memerlukan akses penuh ke semua kolom yang ditampilkan oleh metode ini. Peran Data Catalog Fine-Grained Reader memberikan akses yang sesuai.

Tabel BigLake

Kompatibel. Kebijakan penyamaran data diterapkan pada tabel BigLake.

BigQuery Storage Read API

Kompatibel. Kebijakan penyamaran data diterapkan di BigQuery Storage Read API.

BigQuery BI Engine

Kompatibel. Kebijakan penyamaran data diterapkan di BI Engine. Kueri yang menerapkan penyamaran data yang tidak dipercepat oleh BI Engine. Penggunaan kueri tersebut di Looker Studio dapat menyebabkan laporan atau dasbor terkait menjadi lebih lambat dan lebih mahal.

BigQuery Omni

Kompatibel. Kebijakan penyamaran data diterapkan pada tabel BigQuery Omni.

Kolasi

Tidak kompatibel. Kolasi tidak didukung pada kolom yang disamarkan.

Tugas penyalinan

Tidak kompatibel. Untuk menyalin tabel dari sumber ke tujuan, Anda harus memiliki akses penuh ke semua kolom pada tabel sumber. Peran Data Catalog Fine-Grained Reader memberikan akses yang sesuai.

Ekspor data

Kompatibel. Jika Anda memiliki peran BigQuery Masked Reader, data yang diekspor akan disamarkan. Jika Anda memiliki peran Data Catalog Fine-Grained Reader, data yang diekspor tidak akan disamarkan.

Keamanan tingkat baris

Kompatibel. Penyamaran data diterapkan di atas keamanan tingkat baris. Misalnya, jika ada kebijakan akses baris yang diterapkan pada location = "US" dan location disamarkan, pengguna dapat melihat baris dengan location = "US", tetapi kolom lokasinya akan disamarkan.

Menelusuri di BigQuery

Kompatibel sebagian. Anda dapat memanggil fungsi SEARCH pada kolom yang diindeks atau tidak diindeks dengan penyamaran data yang diterapkan.

Saat memanggil fungsi SEARCH di kolom yang menerapkan penyamaran data, Anda harus menggunakan kriteria penelusuran yang kompatibel dengan tingkat akses Anda. Misalnya, jika Anda memiliki akses Masked Reader dengan aturan penyamaran data Hash (SHA-256), Anda akan menggunakan nilai hash dalam klausa SEARCH, seperti berikut:

SELECT * FROM myDataset.Customers WHERE SEARCH(Email, "sg172y34shw94fujaweu");

Jika Anda memiliki akses Fine-Grained Reader, Anda akan menggunakan nilai kolom sebenarnya dalam klausa SEARCH, seperti berikut:

SELECT * FROM myDataset.Customers WHERE SEARCH(Email, "jane.doe@example.com");

Penelusuran cenderung tidak akan berguna jika Anda memiliki akses Masked Reader ke kolom di mana aturan penyamaran data yang digunakan adalah Nullify atau Nilai Penyamaran Default. Hal ini karena hasil disamarkan yang akan Anda gunakan sebagai kriteria penelusuran, seperti NULL atau "", tidak cukup unik untuk dapat digunakan.

Saat melakukan penelusuran di kolom yang diindeks yang menerapkan penyamaran data, indeks penelusuran hanya digunakan jika Anda memiliki akses Fine-Grained Reader ke kolom tersebut.

Snapshot

Tidak kompatibel. Untuk membuat snapshot tabel, Anda memerlukan akses penuh ke semua kolom pada tabel sumber. Peran Data Catalog Fine-Grained Reader memberikan akses yang sesuai.

Penggantian nama tabel

Kompatibel. Penggantian nama tabel tidak terpengaruh oleh penyamaran data.

Perjalanan waktu

Kompatibel dengan dekorator waktu dan opsi FOR SYSTEM_TIME AS OF dalam pernyataan SELECT. Tag kebijakan untuk skema set data saat ini diterapkan ke data yang diambil.

Penyimpanan kueri dalam cache

Sebagian kompatibel. BigQuery meng-cache hasil kueri selama sekitar 24 jam, meskipun cache tersebut dibatalkan jika perubahan dilakukan pada data tabel atau skema sebelumnya. Dalam keadaan berikut, pengguna yang tidak diberi peran Data Catalog Fine-Grained Reader yang diberikan pada kolom masih dapat melihat data kolom saat menjalankan kueri:

  1. Pengguna telah diberi peran Data Catalog Fine-Grained Reader pada kolom.
  2. Pengguna menjalankan kueri yang menyertakan kolom yang dibatasi dan datanya disimpan dalam cache.
  3. Dalam waktu 24 jam sejak Langkah 2, pengguna diberi peran BigQuery Masked Reader, dan peran Data Catalog Fine-Grained Reader dicabut.
  4. Dalam waktu 24 jam sejak Langkah 2, pengguna menjalankan kueri yang sama tersebut, dan data yang di-cache ditampilkan.

Kueri tabel karakter pengganti

Tidak kompatibel. Anda memerlukan akses penuh ke semua kolom yang direferensikan di semua tabel yang cocok dengan kueri karakter pengganti. Peran Data Catalog Fine-Grained Reader memberikan akses yang sesuai.

Langkah selanjutnya

  • Dapatkan petunjuk langkah demi langkah untuk mengaktifkan penyamaran data.