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:
Gambar 1. Komponen penyamaran data.
Anda mengonfigurasi penyamaran data dengan langkah-langkah berikut:
- Siapkan taksonomi dan satu atau beberapa tag kebijakan.
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.
Tetapkan tag kebijakan ke kolom di tabel BigQuery untuk menerapkan kebijakan data.
Tetapkan pengguna yang seharusnya memiliki akses ke data yang disamarkan ke peran BigQuery Masked Reader. Sebagai praktik terbaik, tetapkan peran BigQuery Masked Reader di tingkat kebijakan data. Menetapkan peran di tingkat project atau yang lebih tinggi akan memberi pengguna izin ke semua kebijakan data dalam project, yang dapat menyebabkan masalah yang disebabkan oleh izin yang berlebihan.
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:
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 tersebut. Izin rutinitas diperlukan untuk mengelola aturan penyamaran. Aturan ini, secara desain, mendukung semua jenis data BigQuery, kecuali jenis data
STRUCT
. Namun, dukungan untuk jenis data selainSTRING
danBYTES
terbatas. 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
, danTIMESTAMP
. 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 dataSTRING
. 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 dataSTRING
.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 dataSTRING
atauBYTES
.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 dataSTRING
.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 dataSTRING
.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 operasiJOIN
kueri bagi pengguna dengan akses Masked Reader. Hal ini karena nilaiNULL
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:
- Rutinitas penyamaran kustom
- Hash (SHA-256)
- Penyamaran email
- Empat karakter terakhir
- Empat karakter pertama
- Penyamaran tahun tanggal
- Nilai penyamaran default
- 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:
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:
|
Peran untuk membuat dan mengelola kebijakan data
Anda memerlukan salah satu peran BigQuery berikut untuk membuat dan mengelola kebijakan data:
Peran/ID | Izin | Deskripsi |
---|---|---|
BigQuery Data Policy Admin/bigquerydatapolicy.admin BigQuery Admin/ bigquery.admin BigQuery Data Owner/ bigquery.dataOwner
|
bigquery.dataPolicies.create bigquery.dataPolicies.delete bigquery.dataPolicies.get bigquery.dataPolicies.getIamPolicy bigquery.dataPolicies.list bigquery.dataPolicies.setIamPolicy bigquery.dataPolicies.update
|
Izin Peran ini memberikan kemampuan untuk melakukan hal berikut:
|
datacatalog.taxonomies.get
, yang bisa Anda dapatkan dari beberapa
peran Data Catalog yang telah ditetapkan.
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 dikaburkan).
- Pengguna dengan peran Masked Reader: dapat melihat data kolom yang disamarkan (dikaburkan).
- 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:
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:
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
- Tag kebijakan 1a
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:
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:
Gambar 7. Tag kebijakan dan kebijakan data untuk example.com.
Tag kebijakan kemudian dikaitkan dengan kolom tabel, seperti yang ditunjukkan dalam Gambar 8:
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
danConfidential
. Hasil berikut akan 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 akan 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 akan 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 akan 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 diSELECT * 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:
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 dataSTRUCT
. - 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:
- Pengguna telah diberi peran Data Catalog Fine-Grained Reader pada kolom.
- Pengguna menjalankan kueri yang menyertakan kolom yang dibatasi dan datanya disimpan dalam cache.
- Dalam waktu 24 jam sejak Langkah 2, pengguna diberi peran BigQuery Masked Reader, dan peran Data Catalog Fine-Grained Reader dicabut.
- 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 berikutnya
- Dapatkan petunjuk langkah demi langkah untuk mengaktifkan penyamaran data.