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 :

  1. Buat taksonomi dengan minimal satu tag kebijakan.
  2. Opsional: Berikan peran Data Catalog Fine-Grained Reader ke satu atau beberapa akun utama di satu atau beberapa tag kebijakan yang Anda buat.
  3. Buat hingga tiga kebijakan data untuk tag kebijakan guna memetakan aturan dan akun utama penyamaran (yang mewakili pengguna atau grup) ke tag tersebut.
  4. Tetapkan tag kebijakan di kolom. Cara ini memetakan kebijakan data yang terkait dengan tag kebijakan ke kolom yang dipilih.
  5. 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

  1. In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.

    Go to project selector

  2. Verify that billing is enabled for your Trusted Cloud project.

  3. Enable the Data Catalog and BigQuery Data Policy APIs.

    Enable the APIs

  4. BigQuery secara otomatis diaktifkan di project baru, tetapi Anda mungkin harus mengaktifkannya di project yang sudah ada.
  5. Enable the BigQuery API.

    Enable the API

  6. Jika Anda membuat kebijakan data yang merujuk pada rutinitas penyamaran kustom, buat UDF penyamaran terkait sehingga tersedia dalam langkah-langkah berikut.
  7. Membuat taksonomi

    Pengguna atau akun layanan yang membuat taksonomi harus diberi peran Data Catalog Policy Tag Admin.

    Konsol

    1. Buka halaman Taksonomi tag kebijakan di konsolTrusted Cloud .

      Buka halaman Policy tag taxonomies

    2. Klik Buat taksonomi.
    3. Di halaman Taksonomi baru:

      1. Untuk Nama taksonomi, masukkan nama taksonomi yang ingin Anda buat.
      2. Untuk Deskripsi, masukkan deskripsi.
      3. Jika diperlukan, ubah project yang tercantum di bagian Project.
      4. Jika perlu, ubah lokasi yang tercantum di bagian Lokasi.
      5. Di bagian Tag Kebijakan, masukkan nama dan deskripsi tag kebijakan.
      6. Untuk menambahkan tag kebijakan turunan untuk tag kebijakan, klik Tambahkan subtag.
      7. Untuk menambahkan tag kebijakan baru di tingkat yang sama dengan tag kebijakan lainnya, klik + Tambahkan tag kebijakan.
      8. Terus tambahkan tag kebijakan dan tag kebijakan turunan sesuai kebutuhan untuk taksonomi Anda.
      9. Setelah selesai membuat tag kebijakan untuk hierarki Anda, klik Buat.

    API

    Untuk menggunakan taksonomi yang sudah ada, panggil taxonomies.import sebagai pengganti dua langkah pertama dari prosedur berikut.

    1. Panggil taxonomies.create untuk membuat taksonomi.
    2. Panggil taxonomies.policytag.create untuk membuat tag kebijakan.

    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

    1. Buka halaman Taksonomi tag kebijakan di konsolTrusted Cloud .

      Buka halaman Policy tag taxonomies

    2. Klik nama taksonomi yang akan dibuka.
    3. Pilih tag kebijakan.
    4. Klik Kelola Kebijakan Data.
    5. Untuk Nama Kebijakan Data, ketik nama untuk kebijakan data. Nama kebijakan data harus unik dalam project tempat kebijakan data berada.
    6. 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 dan bigquery.routines.list di level project.
    7. 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.
    8. Klik Submit.

    API

    1. Panggil metode create. Teruskan resource DataPolicy yang memenuhi persyaratan berikut:

      • Kolom dataPolicyType ditetapkan ke DATA_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.
    2. Panggil metode setIamPolicy dan teruskan Policy. Policy harus mengidentifikasi akun utama yang diberi akses ke data yang disamarkan, dan menentukan roles/bigquerydatapolicy.maskedReader untuk kolom role.

    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 .

    1. Buka halaman BigQuery di konsol Trusted Cloud .

      Buka halaman BigQuery

    2. Di BigQuery Explorer, temukan dan pilih tabel yang ingin Anda perbarui. Skema tabel untuk tabel tersebut akan terbuka.

    3. Klik Edit Skema.

    4. Di layar Skema saat ini, pilih kolom target, lalu klik Tambahkan tag kebijakan.

    5. Di layar Tambahkan tag kebijakan, temukan dan pilih tag kebijakan yang ingin Anda terapkan ke kolom.

    6. Klik Select. Layar Anda akan terlihat seperti berikut:

      Edit skema.

    7. Klik Simpan.

    bq

    1. 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.
    2. Mengubah schema.json untuk menetapkan tag kebijakan pada kolom. Untuk nilai kolom names dari policyTags, gunakan nama resource tag kebijakan.

      [
       ...
       {
         "name": "ssn",
         "type": "STRING",
         "mode": "REQUIRED",
         "policyTags": {
           "names": ["projects/project-id/locations/location/taxonomies/taxonomy-id/policyTags/policytag-id"]
         }
       },
       ...
      ]
    3. Perbarui skema.

      bq update \
         project-id:dataset.table schema.json

    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

    1. Buka halaman Taksonomi tag kebijakan di konsolTrusted Cloud .

      Buka halaman Policy tag taxonomies

    2. Klik nama taksonomi yang akan dibuka.
    3. Pilih tag kebijakan.
    4. Klik Kelola Kebijakan Data.
    5. Jika ingin, ubah aturan penyamaran.
    6. Opsional: Menambahkan atau menghapus akun utama.
    7. Klik Submit.

    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

    1. Buka halaman Taksonomi tag kebijakan di konsolTrusted Cloud .

      Buka halaman Policy tag taxonomies

    2. Klik nama taksonomi yang akan dibuka.
    3. Pilih tag kebijakan.
    4. Klik Kelola Kebijakan Data.
    5. Klik di samping kebijakan data yang akan dihapus.
    6. Klik Submit.
    7. Klik Confirm.

    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:

    • Kolom dataPolicyType ditetapkan ke DATA_MASKING_POLICY atau RAW_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.

    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:

    • bigquery.tables.update
    • bigquery.tables.setColumnDataPolicy
    • bigquery.dataPolicies.get

    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:

    • 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 API tabledata.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.