Menyamarkan data kolom
Dokumen ini menunjukkan cara menerapkan penyamaran data untuk mengaburkan data sensitif secara selektif. Dengan mengimplementasikan penyamaran data, Anda dapat memberikan tingkat visibilitas yang berbeda ke berbagai grup pengguna. Untuk informasi umum, lihat Pengantar penyamaran data.
Anda menerapkan penyamaran data dengan menambahkan kebijakan data ke kolom. Untuk menambahkan kebijakan penyamaran data ke kolom, Anda harus menyelesaikan langkah-langkah berikut :
- Buat taksonomi dengan minimal satu tag kebijakan.
- Opsional: Berikan peran Data Catalog Fine-Grained Reader ke satu atau beberapa akun utama di satu atau beberapa tag kebijakan yang Anda buat.
- Buat hingga tiga kebijakan data untuk tag kebijakan guna memetakan aturan dan akun utama penyamaran (yang mewakili pengguna atau grup) ke tag tersebut.
- Tetapkan tag kebijakan di kolom. Cara ini memetakan kebijakan data yang terkait dengan tag kebijakan ke kolom yang dipilih.
- 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 level project atau yang lebih tinggi akan memberikan izin kepada pengguna untuk semua kebijakan data dalam project, yang dapat menyebabkan masalah akibat izin yang berlebihan.
Anda dapat menggunakan konsol Trusted Cloud atau BigQuery Data Policy API untuk menggunakan kebijakan data.
Setelah Anda menyelesaikan langkah-langkah ini, pengguna yang menjalankan kueri terhadap kolom akan mendapatkan data yang tidak disamarkan, data yang disamarkan, atau error akses ditolak, bergantung pada grup tempat mereka berada dan peran yang telah diberikan kepada mereka. Untuk mengetahui informasi selengkapnya, lihat Cara peran Masked Reader dan Fine-Grained Reader berinteraksi.
Atau, Anda dapat menerapkan kebijakan data langsung pada kolom (Pratinjau). Untuk mengetahui informasi selengkapnya, lihat Menyamarkan data dengan kebijakan data langsung di kolom.
Menyamarkan data dengan tag kebijakan
Gunakan tag kebijakan untuk menyamarkan data sensitif secara selektif.
Sebelum memulai
-
In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.
-
Verify that billing is enabled for your Trusted Cloud project.
-
Enable the Data Catalog and BigQuery Data Policy APIs.
- BigQuery secara otomatis diaktifkan di project baru, tetapi Anda mungkin harus mengaktifkannya di project yang sudah ada.
-
Enable the BigQuery API.
- Jika Anda membuat kebijakan data yang merujuk pada rutinitas penyamaran kustom, buat UDF penyamaran terkait sehingga tersedia dalam langkah-langkah berikut.
- Buka halaman Taksonomi tag kebijakan di konsolTrusted Cloud .
- Klik Buat taksonomi.
Di halaman Taksonomi baru:
- Untuk Nama taksonomi, masukkan nama taksonomi yang ingin Anda buat.
- Untuk Deskripsi, masukkan deskripsi.
- Jika diperlukan, ubah project yang tercantum di bagian Project.
- Jika perlu, ubah lokasi yang tercantum di bagian Lokasi.
- Di bagian Tag Kebijakan, masukkan nama dan deskripsi tag kebijakan.
- Untuk menambahkan tag kebijakan turunan untuk tag kebijakan, klik Tambahkan subtag.
- Untuk menambahkan tag kebijakan baru di tingkat yang sama dengan tag kebijakan lainnya, klik + Tambahkan tag kebijakan.
- Terus tambahkan tag kebijakan dan tag kebijakan turunan sesuai kebutuhan untuk taksonomi Anda.
- Setelah selesai membuat tag kebijakan untuk hierarki Anda, klik Buat.
- Panggil
taxonomies.create
untuk membuat taksonomi. - Panggil
taxonomies.policytag.create
untuk membuat tag kebijakan. - Buka halaman Taksonomi tag kebijakan di konsolTrusted Cloud .
- Klik nama taksonomi yang akan dibuka.
- Pilih tag kebijakan.
- Klik Kelola Kebijakan Data.
- Untuk Nama Kebijakan Data, ketik nama untuk kebijakan data. Nama kebijakan data harus unik dalam project tempat kebijakan data berada.
- Untuk Aturan Penyamaran, pilih aturan penyamaran yang telah ditentukan atau rutinitas
penyamaran kustom. Jika Anda memilih rutinitas penyamaran kustom, pastikan
Anda memiliki izin
bigquery.routines.get
danbigquery.routines.list
di level project. - Untuk Akun utama, ketik nama satu atau beberapa pengguna atau grup yang ingin Anda beri akses yang disamarkan ke kolom. Perlu diperhatikan bahwa semua pengguna dan grup yang Anda masukkan di sini diberi peran BigQuery Masked Reader.
- Klik Submit.
Panggil metode
create
. Teruskan resourceDataPolicy
yang memenuhi persyaratan berikut:- Kolom
dataPolicyType
ditetapkan keDATA_MASKING_POLICY
. - Kolom
dataMaskingPolicy
mengidentifikasi aturan atau rutinitas penyamaran data yang akan digunakan. - Kolom
dataPolicyId
memberikan nama untuk kebijakan data yang bersifat unik dalam project tempat kebijakan data berada.
- Kolom
Panggil metode
setIamPolicy
dan teruskanPolicy
.Policy
harus mengidentifikasi akun utama yang diberi akses ke data yang disamarkan, dan menentukanroles/bigquerydatapolicy.maskedReader
untuk kolomrole
.Buka halaman BigQuery di konsol Trusted Cloud .
Di BigQuery Explorer, temukan dan pilih tabel yang ingin Anda perbarui. Skema tabel untuk tabel tersebut akan terbuka.
Klik Edit Skema.
Di layar Skema saat ini, pilih kolom target, lalu klik Tambahkan tag kebijakan.
Di layar Tambahkan tag kebijakan, temukan dan pilih tag kebijakan yang ingin Anda terapkan ke kolom.
Klik Select. Layar Anda akan terlihat seperti berikut:
Klik Simpan.
Menulis skema ke file lokal.
bq show --schema --format=prettyjson \ project-id:dataset.table > schema.json
dengan:
- project-id adalah project ID Anda.
- dataset adalah nama set data yang berisi tabel yang Anda perbarui.
- table adalah nama tabel yang Anda perbarui.
Mengubah schema.json untuk menetapkan tag kebijakan pada kolom. Untuk nilai kolom
names
daripolicyTags
, gunakan nama resource tag kebijakan.[ ... { "name": "ssn", "type": "STRING", "mode": "REQUIRED", "policyTags": { "names": ["projects/project-id/locations/location/taxonomies/taxonomy-id/policyTags/policytag-id"] } }, ... ]
Perbarui skema.
bq update \ project-id:dataset.table schema.json
- Buka halaman Taksonomi tag kebijakan di konsolTrusted Cloud .
- Klik nama taksonomi yang akan dibuka.
- Pilih tag kebijakan.
- Klik Kelola Kebijakan Data.
- Jika ingin, ubah aturan penyamaran.
- Opsional: Menambahkan atau menghapus akun utama.
- Klik Submit.
- Buka halaman Taksonomi tag kebijakan di konsolTrusted Cloud .
- Klik nama taksonomi yang akan dibuka.
- Pilih tag kebijakan.
- Klik Kelola Kebijakan Data.
- Klik di samping kebijakan data yang akan dihapus.
- Klik Submit.
- Klik Confirm.
- Kolom
dataPolicyType
ditetapkan keDATA_MASKING_POLICY
atauRAW_DATA_ACCESS_POLICY
. - Kolom
dataMaskingPolicy
mengidentifikasi aturan atau rutinitas penyamaran data yang akan digunakan. - Kolom
dataPolicyId
memberikan nama untuk kebijakan data yang bersifat unik dalam project tempat kebijakan data berada. -
bigquery.tables.update
-
bigquery.tables.setColumnDataPolicy
-
bigquery.dataPolicies.get
- Anda harus menggunakan resource
v2.projects.locations.datapolicies
. - Anda tidak dapat menerapkan tag kebijakan dan kebijakan data ke kolom yang sama.
- Anda dapat melampirkan maksimum delapan kebijakan data ke kolom.
- Tabel dapat mereferensikan maksimum 1.000 kebijakan data unik melalui kolomnya.
- Anda tidak dapat menerapkan tag kebijakan dan kebijakan data ke kolom yang sama.
- Kueri dapat mereferensikan maksimum 2.000 kebijakan data.
- Anda dapat menghapus kebijakan data hanya jika tidak ada kolom tabel yang mereferensikannya.
- Jika pengguna hanya memiliki peran
maskedAccess
, panggilan APItabledata.list
akan gagal. - Operasi penyalinan tabel gagal pada tabel yang dilindungi oleh kebijakan data kolom jika pengguna tidak memiliki akses data mentah.
- Operasi penyalinan tabel lintas region tidak mendukung tabel yang dilindungi oleh kebijakan data kolom.
- Kebijakan data kolom tidak tersedia di region BigQuery Omni.
- Legacy SQL akan gagal jika tabel target memiliki kebijakan data kolom.
- Tugas pemuatan tidak mendukung skema yang ditentukan pengguna dengan kebijakan data kolom.
- Jika Anda menimpa tabel tujuan, sistem akan menghapus semua tag kebijakan yang ada dari tabel, kecuali jika Anda menggunakan flag
--destination_schema
untuk menentukan skema dengan kebijakan data kolom. - Secara default, penyamaran data tidak mendukung kolom berpartisi atau yang dikelompokkan. Ini adalah batasan umum penyamaran data, bukan khusus untuk kebijakan data kolom. Penyamaran data pada kolom berpartisi atau yang dikelompokkan dapat meningkatkan biaya kueri secara signifikan.
Membuat taksonomi
Pengguna atau akun layanan yang membuat taksonomi harus diberi peran Data Catalog Policy Tag Admin.
Konsol
API
Untuk menggunakan taksonomi yang sudah ada, panggil
taxonomies.import
sebagai pengganti dua langkah pertama dari prosedur berikut.
Menggunakan tag kebijakan
Untuk mengetahui informasi selengkapnya tentang cara menggunakan tag kebijakan, seperti cara melihat atau memperbaruinya, lihat Menggunakan tag kebijakan. Untuk praktik terbaik, baca Praktik terbaik untuk menggunakan tag kebijakan di BigQuery.
Membuat kebijakan data
Akun pengguna atau akun layanan yang membuat kebijakan data harus memiliki izin
bigquery.dataPolicies.create
, bigquery.dataPolicies.setIamPolicy
, dan
datacatalog.taxonomies.get
.
Izin bigquery.dataPolicies.create
dan bigquery.dataPolicies.setIamPolicy
tercakup dalam
peran BigQuery Data Policy Admin, BigQuery Admin, dan BigQuery Data Owner.
Izin datacatalog.taxonomies.get
disertakan dalam
peran Data Catalog Admin dan Data Catalog Viewer.
Jika Anda membuat kebijakan data yang merujuk pada rutinitas penyamaran kustom, Anda juga memerlukan izin rutinitas.
Jika menggunakan masking kustom, berikan peran Admin BigQuery atau Pemilik Data BigQuery kepada pengguna untuk memastikan mereka memiliki izin yang diperlukan untuk rutinitas dan kebijakan data.
Anda dapat membuat hingga sembilan kebijakan data untuk satu tag kebijakan. Salah satu kebijakan ini dikhususkan untuk setelan kontrol akses level kolom.
Konsol
API
Menetapkan tag kebijakan di kolom
Tetapkan kebijakan data pada kolom dengan melampirkan tag kebijakan yang terkait dengan kebijakan data ke kolom tersebut.
Pengguna atau akun layanan yang menetapkan tag kebijakan memerlukan
izin datacatalog.taxonomies.get
dan bigquery.tables.setCategory
.
datacatalog.taxonomies.get
disertakan dalam peran
Data Catalog Policy Tags Admin dan Project Viewer.
bigquery.tables.setCategory
disertakan dalam
peran BigQuery Admin (roles/bigquery.admin
) dan
BigQuery Data Owner (roles/bigquery.dataOwner
).
Untuk melihat taksonomi dan tag kebijakan di semua project dalam organisasi di
konsolTrusted Cloud , pengguna memerlukan izin resourcemanager.organizations.get
, yang disertakan dalam peran Organization Viewer.
Konsol
Tetapkan tag kebijakan dengan mengubah skema menggunakan konsolTrusted Cloud .
bq
API
Untuk tabel yang sudah ada, panggil tables.patch
, atau untuk tabel baru, panggil
tables.insert
. Gunakan
properti schema
objek Table
yang Anda teruskan
untuk menetapkan tag kebijakan dalam definisi skema Anda. Lihat skema contoh command line
untuk melihat cara menetapkan tag kebijakan.
Saat menangani tabel yang sudah ada, metode tables.patch
lebih disarankan,
karena metode tables.update
menggantikan seluruh resource tabel.
Terapkan kontrol akses
Saat Anda membuat kebijakan data untuk tag kebijakan, kontrol akses akan otomatis diterapkan. Semua kolom yang memiliki tag kebijakan tersebut menerapkan data yang disamarkan sebagai respons terhadap kueri dari pengguna yang memiliki peran Masked Reader.
Untuk menghentikan penerapan kontrol akses, Anda harus menghapus semua kebijakan data yang terkait dengan tag kebijakan dalam taksonomi terlebih dahulu. Untuk mengetahui informasi selengkapnya, lihat Menerapkan kontrol akses.
Memeriksa izin IAM pada kebijakan data
Untuk melihat izin yang Anda miliki pada kebijakan data, panggil
metode
testIamPermissions
.
Memperbarui kebijakan data
Pengguna atau akun layanan yang memperbarui kebijakan data harus memiliki
izin bigquery.dataPolicies.update
.
Jika memperbarui tag kebijakan yang terkait dengan kebijakan data, Anda juga
memerlukan izin datacatalog.taxonomies.get
.
Jika Anda memperbarui akun utama yang terkait dengan kebijakan data, Anda
memerlukan izin bigquery.dataPolicies.setIamPolicy
.
Izin bigquery.dataPolicies.update
dan bigquery.dataPolicies.setIamPolicy
tercakup dalam
peran BigQuery Data Policy Admin, BigQuery Admin, dan BigQuery Data Owner.
Izin datacatalog.taxonomies.get
disertakan dalam
peran Data Catalog Admin dan Data Catalog Viewer.
Konsol
API
Untuk mengubah aturan penyamaran data, panggil metode
patch
dan teruskan
resource DataPolicy
dengan kolom dataMaskingPolicy
yang diperbarui.
Untuk mengubah akun utama yang terkait dengan kebijakan data, panggil metode
setIamPolicy
dan teruskan
Policy
yang memperbarui
akun utama yang diberikan akses ke data yang disamarkan.
Menghapus kebijakan data
Akun pengguna atau akun layanan yang membuat kebijakan data harus memiliki
izin bigquery.dataPolicies.delete
. Izin ini termasuk dalam
peran BigQuery Data Policy Admin, BigQuery Admin, dan BigQuery Data Owner.
Konsol
API
Untuk menghapus kebijakan data, panggil
metode
delete
.
Menyamarkan data dengan menerapkan kebijakan data ke kolom
Sebagai alternatif untuk membuat tag kebijakan, Anda dapat membuat kebijakan data dan menerapkannya langsung pada kolom.
Bekerja dengan kebijakan data
Anda dapat membuat, memperbarui, dan menghapus kebijakan data menggunakan BigQuery Data Policy API. Untuk menerapkan kebijakan data langsung di kolom, Anda tidak dapat menggunakan halaman Taksonomi tag kebijakan di konsol Trusted Cloud .
Untuk menggunakan kebijakan data, gunakan resource
v2.projects.locations.datapolicies
.
Membuat kebijakan data
Akun pengguna atau akun layanan yang membuat kebijakan data harus memiliki
izin bigquery.dataPolicies.create
.
Izin bigquery.dataPolicies.create
tercakup dalam
peran Admin Kebijakan Data BigQuery, Admin BigQuery, dan Pemilik Data BigQuery.
Izin datacatalog.taxonomies.get
disertakan dalam
peran Data Catalog Admin dan Data Catalog Viewer.
Jika Anda membuat kebijakan data yang merujuk pada rutinitas penyamaran kustom, Anda juga memerlukan izin rutinitas.
Jika Anda menggunakan penyamaran kustom, berikan peran Pemilik Data BigQuery kepada pengguna untuk memastikan mereka memiliki izin yang diperlukan untuk rutinitas dan kebijakan data.
Untuk membuat kebijakan data, panggil metode
create
. Teruskan
resource DataPolicy
yang memenuhi persyaratan berikut:
Memperbarui kebijakan data
Pengguna atau akun layanan yang memperbarui kebijakan data harus memiliki
izin bigquery.dataPolicies.update
.
Izin bigquery.dataPolicies.update
tercakup dalam
peran Admin Kebijakan Data BigQuery, Admin BigQuery, dan Pemilik Data BigQuery.
Untuk mengubah aturan penyamaran data, panggil metode
patch
dan teruskan
resource DataPolicy
dengan kolom dataMaskingPolicy
yang diperbarui.
Anda juga dapat memberikan akses kontrol akses terperinci ke kebijakan data.
Izin untuk memberikan akses kontrol akses terperinci ke kebijakan data dan mengelola kebijakan data berbeda. Untuk mengontrol izin kontrol akses terperinci, Anda harus memperbarui
kolom grantees
dari kebijakan data. Untuk mengontrol akses ke kebijakan data,
tetapkan peran IAM menggunakan metode
setIamPolicy
.
Untuk menetapkan penerima hibah pada kebijakan data, gunakan metode v2 patch
. Untuk mengelola izin kebijakan data, gunakan metode v1
setIamPolicy
.
Untuk memberikan akses kontrol akses terperinci ke kebijakan data, panggil metode
patch
dan teruskan resource
DataPolicy
dengan kolom grantees
yang diperbarui.
Menghapus kebijakan data
Akun pengguna atau akun layanan yang membuat kebijakan data harus memiliki
izin bigquery.dataPolicies.delete
. Izin ini termasuk dalam
peran BigQuery Data Policy Admin, BigQuery Admin, dan BigQuery Data Owner.
Untuk menghapus kebijakan data, panggil
metode
delete
.
Menetapkan kebijakan data langsung di kolom
Anda dapat menetapkan kebijakan data langsung pada kolom tanpa menggunakan tag kebijakan.
Sebelum memulai
Untuk mendapatkan izin yang
diperlukan untuk menetapkan kebijakan data secara langsung pada kolom,
minta administrator untuk memberi Anda
peran IAM Admin Kebijakan Data BigQuery (roles/bigquerydatapolicy.admin
)
di tabel Anda.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk menetapkan kebijakan data secara langsung pada kolom. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk menetapkan kebijakan data langsung pada kolom:
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Menetapkan kebijakan data
Untuk menetapkan kebijakan data secara langsung pada kolom, lakukan salah satu hal berikut:
SQL
Untuk melampirkan kebijakan data ke kolom, gunakan pernyataan DDL CREATE
TABLE
,
ALTER TABLE ADD
COLUMN
,
atau ALTER COLUMN SET
OPTIONS
.
Contoh berikut menggunakan pernyataan CREATE TABLE
dan menetapkan kebijakan data pada kolom:
CREATE TABLE myproject.table1 ( name INT64 OPTIONS (data_policies=["{'name':'myproject.region-us.data_policy_name1'}", "{'name':'myproject.region-us.data_policy_name2'}"]) );
Contoh berikut menggunakan ALTER COLUMN SET OPTIONS
untuk menambahkan kebijakan data
ke kolom yang ada di tabel:
ALTER TABLE myproject.table1 ALTER COLUMN column_name SET OPTIONS ( data_policies += ["{'name':'myproject.region-us.data_policy_name1'}", "{'name':'myproject.region-us.data_policy_name2'}"]);
API
Untuk menetapkan kebijakan data ke kolom, panggil metode
patch
di tabel
dan perbarui skema tabel dengan kebijakan data yang berlaku.
Batasan
Penetapan kebijakan data langsung pada kolom tunduk pada batasan berikut: