MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

PII Masking di MongoDB &DB NoSQL lainnya melalui…

Catatan Editor:Contoh ini menunjukkan paling awal, paling tidak langsung (meskipun masih tersedia) metode penggunaan IRI FieldShield untuk melindungi data yang ditemukan dalam tabel MongoDB. Seperti yang akan Anda baca, Utilitas Ekspor MongoDB dalam hal ini mengekstrak data dan membuat file CSV yang disembunyikan FieldShield secara eksternal, sebelum memuat kembali data yang baru diamankan ke MongoDB. Anda dapat menggunakan pendekatan yang sama untuk data di database NoSQL lain seperti Cassandra dan ElasticSearch.

IRI juga menawarkan lebih banyak metode langsung untuk memindahkan data antara koleksi MongoDB dan mesin penyamaran data IRI seperti FieldShield atau Voracity. Artikel petunjuk tentang penyembunyian data langsung dari data MongoDB terstruktur melalui ODBC dari 2016 ada di sini , dan melalui driver asli MongoDB yang didukung di CoSort v10 (mendukung FieldShield dan Voracity) pada 2018 telah hadir. Metode terbaru (metode keempat) — yang dapat menemukan dan menutupi PII di koleksi MongoDB terstruktur maupun tidak terstruktur menggunakan IRI DarkShield — di GUI sejak 2019 adalah di sini, dan di API sejak 2020 ada di sini.

MongoDB adalah database NoSQL yang kuat yang dapat menyimpan sejumlah besar data dalam paket yang disebut koleksi (mirip dengan tabel dalam database relasional). Meskipun menskalakan secara horizontal (menambah daya ke database dengan menambahkan mesin), MongoDB tidak memiliki cara internal untuk menutupi data setelah dimasukkan, selain memperbarui setiap catatan secara manual.

Contoh di bawah melindungi nilai MongoDB secara eksternal. Saya menjelaskan cara mengekspor koleksi ke file CSV, menggunakan IRI FieldShield untuk menutupi bidang dalam file tersebut, dan mengimpor file tersebut kembali ke Mongo agar koleksi terlindungi dengan benar. Perhatikan bahwa Anda dapat menutupi sejumlah bidang dengan 14 cara berbeda menggunakan FieldShield.

Dimungkinkan juga untuk secara otomatis menemukan dan menutupi data dalam beberapa sumber terstruktur, semi-terstruktur, tidak terstruktur berdasarkan kelas data yang ditentukan secara terpusat, yang dirinci oleh artikel lain di blog ini (seperti ini). Namun, contoh ini hanya menunjukkan aspek penyembunyian, berdasarkan pemilihan yang diekspor.

Data Sebelum Disembunyikan

Berikut adalah catatan dalam tabel sumber, yang ditampilkan dengan MongoVUE.


Mengekspor Data Tabel

Gunakan utilitas Ekspor MongoDB (mongoexport) untuk menjalankan perintah:

--db <Database Name> --collection <Collection Name> --csv --fields <field1,field2,...> --out <Output Path>


Menggunakan GUI FieldShield untuk Membuat Pekerjaan Penyembunyian Data

  • Buka IRI Workbench dan mulai wizard Create New Protection (Masking) Job untuk FieldShield.
  • Pilih nama apa pun yang Anda ingin berikan untuk pekerjaan tersebut, dan klik berikutnya.
  • Pada layar Sumber Data, klik Tambahkan Sumber Data dan cari file CSV yang Anda buat.
  • Klik Edit Opsi Sumber dan, di bawah Opsi, ubah jenis Format ke CSV dan klik OK.
  • Klik Temukan Metadata dan ikuti wizard. Itu harus mendeteksi pemisah sebagai ',' dan dapat menghasilkan data lapangan. Kemungkinan besar akan memilih ASCII untuk tipe data. Untuk mengubahnya, klik tipe data bidang yang ingin Anda ubah, lalu pilih tipe data yang ingin Anda gunakan. Setelah Anda puas dengan tipe data Anda, klik Selesai .

  • Klik Berikutnya untuk membuka layar Target Data, dan klik Tambahkan Target Data . Kemudian beri nama file CSV yang ingin Anda buat, dan klik Oke .
  • Klik Tata Letak Bidang Target untuk memunculkan layar tempat Anda akan menerapkan topeng:

  • Tabel bawah akan menampilkan semua bidang yang akan ada di file target Anda. Pilih nama kolom yang ingin Anda sembunyikan, klik panah menu Perlindungan Bidang, dan pilih fungsi penyembunyian yang diinginkan dari kotak tarik-turun.
  • Lengkapi parameter dialog, klik OK (dua kali) dan Selesai   untuk menyelesaikan panduan pekerjaan.
  • Pekerjaan FieldShield Anda selanjutnya harus dibuat untuk Anda:

Tinjau, dan jika perlu, ubah dan simpan kembali pekerjaan penyamaran data Anda. Jalankan dari GUI, baris perintah, atau dari dalam aplikasi untuk menghasilkan file yang akan Anda unggah kembali ke MongoDB.


Mengimpor Tabel Masked

Gunakan utilitas Impor MongoDB (mongoimport) untuk menjalankan perintah:

--db <Database Name> --collection <Collection Name> --type csv --fields <field1,field2,...> --upsert --upsertFields <Field to match to old database*> --file <File Path of the file to import (The file created by the Mask Script)>

*Untuk mengimpor semuanya kembali ke koleksi lama, Anda harus memberi tahu bidang mana yang Anda masukkan untuk kueri terhadap catatan yang ada. Contohnya adalah email; itu akan mencocokkan semua catatan pengimporan dengan email yang ada, dan memperbarui catatan.


Data Setelah Ditutupi

Di bawah ini adalah catatan di tabel target; ditampilkan dengan MongoVUE. Perhatikan bahwa hanya nomor kartu kredit yang dihapus dalam proses FieldShield; bidang lain dapat dilindungi dengan fungsi yang sama atau berbeda pada saat yang sama.

Selain definisi dan pelaksanaan pekerjaan FieldShield yang relatif mudah, ada keuntungan lain untuk menggunakannya dengan Mongo, termasuk:

  • kecepatan dalam volume — arsitektur kinerja IRI dan Mongo dirancang untuk menskalakan secara linier
  • kompatibilitas lintas platform — pilih dari sumber yang didukung ini
  • integrasi data simultan, migrasi, replikasi, federasi, dan kemampuan pelaporan dalam skrip tugas CoSort (program SortCL, induk FieldShield) dan kartu I/O yang sama

Hubungi  jika Anda memiliki pertanyaan tentang proses ini atau beri komentar di bawah.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mengapa _id dengan ObjectID ditambahkan saat menggunakan $push MongoDB untuk menambahkan objek baru ke array?

  2. Indeks unik luwak pada subdokumen

  3. Kinerja insert massal di MongoDB untuk koleksi besar

  4. MongoDB - dapatkan dokumen dengan atribut maksimal per grup dalam koleksi

  5. MongoDB:Tidak dapat mengkanonikalisasi kueri:Proyeksi BadValue tidak dapat memiliki campuran penyertaan dan pengecualian