Cara Menyembunyikan Data Sensitif Secara Dinamis di Tableau

Kita sering mendapatkan permintaan dari organisasi yang ingin memberikan wawasan tentang data mereka kepada audiens yang lebih luas, tetapi tetap mematuhi pedoman privasi. Biasanya, permintaan ini menggunakan istilah seperti "sembunyikan", "masking", atau "obscure".

Reaksi pertama saya adalah menunjuk pada Row Level Security, di mana pengguna tertentu diberikan akses ke bagian data yang boleh mereka lihat. Namun, pendekatan ini tidak berlaku untuk situasi di mana ada banyak pengguna tanpa nama (guest) yang diperbolehkan melihat gambaran besar, tetapi tidak boleh melihat data lebih rinci setelah mereka menelusuri subgroup tertentu atau ketika batas sensitivitas tertentu tercapai.

Sayangnya, jawaban untuk pertanyaan ini tidak sederhana karena Tableau tidak memiliki fitur bawaan untuk menyembunyikan, memasking, atau mengaburkan data secara dinamis.

Mari kita coba membuat solusinya sendiri!

Aturan Masking Dinamis

Klien meminta Anda untuk melakukan masking pada data dalam sebuah dashboard berdasarkan aturan tertentu. Aturan tersebut bersifat dinamis dan didasarkan pada bagaimana data dipartisi dan difilter dalam visualisasi.

Persyaratan:

  • Aturan Privasi 1: Jika total dari satu partisi kurang dari batas tertentu, masking harus dilakukan pada setiap sel dalam partisi, subtotal partisi tersebut, dan total keseluruhan.
  • Aturan Privasi 2: Karena kategori tertentu dianggap sangat sensitif, jika satu sel kategori tersebut hanya berbeda sebesar X dari subtotal partisi, maka setiap sel dalam partisi tersebut, subtotalnya, dan total keseluruhan harus dimasking.

Aturan Umum:

  • Masking berarti menampilkan simbol ‘(*)’.
  • Masking tidak boleh bisa dihindari dengan mengekspor visualisasi.

Menentukan Pendekatan Berdasarkan Data

Ada dua cara untuk melakukan masking data di Tableau, tergantung pada data Anda:

  1. Ubah data menjadi NULL jika perlu masking, lalu gunakan opsi Format > Special Values (contoh: NULL) untuk menampilkan ‘(*)’ ketika nilai NULL muncul. Cara ini hanya berlaku jika tidak ada nilai NULL di data sumber Anda, karena Anda tidak dapat membedakan antara nilai NULL asli dan nilai yang dimasking.
  2. Ubah data menjadi angka negatif besar jika perlu masking, lalu gunakan custom number formatting untuk menampilkan nilai di bawah 0 sebagai ‘(*)’. Formatnya seperti ini: 0.00;(/*);0. Cara ini hanya berlaku jika tidak ada angka negatif di data sumber Anda.

Apakah data Anda memiliki NULL? Gunakan opsi 2. Apakah data Anda memiliki angka negatif? Gunakan opsi 1.

Saya memilih opsi 2 karena data saya tidak memiliki angka negatif.

Solusi

LOD atau Kalkulasi Tabel? Karena kalkulasi ini didasarkan pada partisi dan filter dalam visualisasi, Anda tidak dapat melakukan prakalibrasi, sehingga Anda memerlukan LOD (EXCLUDE, bukan FIXED!) atau kalkulasi tabel. Saya memilih pendekatan LOD.

Membuat Kalkulasi Masking

Misalkan kita memiliki tabel ini dan kita perlu melakukan masking untuk setiap kombinasi region/year yang memiliki jumlah kurang dari 1400 (sesuai aturan privasi pertama). Ini dihitung berdasarkan garis horizontal merah.

Kita juga perlu melakukan masking jika kategori Office Supplies memiliki selisih kurang dari 750 dari total kombinasi region/year, karena kategori ini dianggap sensitif. Ini adalah perbedaan antara dua kolom yang ditandai biru.

Maka, kita memerlukan 3 field kalkulasi:

  1. Aturan Privasi 1: Kalkulasi ini menghitung total baris (kombinasi region/year) dengan mengecualikan kategori dari tingkat detail. Jika total baris di bawah 1400, nilai ini diubah menjadi -999999.
  2. Aturan Privasi 2: Kalkulasi ini menghitung perbedaan antara kolom Office Supplies dan total baris (kombinasi region/year). Jika perbedaan ini kurang dari 750, nilai ini diubah menjadi -999999.
  3. Konsolidasi Aturan Privasi: Kalkulasi ini menggabungkan dua kalkulasi sebelumnya dan memeriksa apakah salah satu dari keduanya memicu masking (atau: jika salah satu bernilai negatif!). Tambahan lainnya adalah memperhitungkan baris subtotal dan total.

Menampilkan Kalkulasi Masking

Saat ketiga kalkulasi ini ditampilkan, menjadi lebih jelas apa yang sebenarnya kita lakukan. Hasil akhirnya kemudian terlihat seperti ini:

 data sensitif disembunyikan secara dinamis menggunakan simbol ‘(*)’.

Infrastruktur IT yang kuat adalah kunci produktivitas perusahaan. Dengan tableau indonesia, Anda bisa mendapatkan solusi IT lengkap yang sesuai dengan kebutuhan Anda. iLogo Indonesia sebagai mitra terpercaya siap mengintegrasikan semuanya agar bisnis Anda tetap berjalan lancar dan aman. Hubungi kami sekarang atau kunjungi tableau.ilogoindonesia.id untuk informasi lebih lanjut!