Gesaan dan skop
Data perniagaan berada dalam storan objek, jadual lakehouse dan warehouse; penganalisis menggunakan SQL, Spark dan alat BI. Akses diuruskan melalui tiket manual dan akaun enjin tempatan. Proses offboarding adalah perlahan, dan audit tidak dapat membina semula pertanyaan merentas akaun. Matlamat yang ingin dicapai ialah permintaan layan diri, keistimewaan paling sedikit (least privilege), perlindungan baris dan lajur, akses kecemasan serta satu jejak audit yang bersepadu.
Reka bentuk lapisan tadbir urus: klasifikasi, pelulus, titik keputusan dan penguatkuasaan dasar (policy decision and enforcement points), liputan pelbagai enjin, break-glass, pembatalan akses, cache, eksport dan bukti bahawa kedua-dua kebenaran serta pembacaan sebenar boleh diaudit. Kemahiran teras ialah tadbir urus dan operasi platform data, jadi ini adalah soalan data.
Perkara yang dinilai oleh penemu duga
Penemu duga mahukan kitaran katalog, dasar, penguatkuasaan, bukti dan operasi berbanding sekadar "menambah RBAC". Jawapan yang mantap membezakan antara identiti, tujuan, label sumber, penapis baris/lajur dan penyamaran (masking), serta menerangkan sempadan antara keputusan dan penguatkuasaan.
Mereka juga melihat ketekalan merentas perkhidmatan. Pengguna yang sama yang mengakses Athena, Spark, BI atau tugas eksport tidak sepatutnya kehilangan konteks kebenaran atau medan audit. Log mestilah kalis usikan (tamper-evident), boleh dicari, disimpan secara sengaja dan merangkumi penolakan, perubahan pentadbiran serta akses kecemasan—bukan hanya pertanyaan yang berjaya.
Soalan untuk dijelaskan terlebih dahulu
- Apakah sumber data, enjin, penyedia identiti dan sempadan merentas akaun yang wujud?
- Lajur mana yang mengandungi data peribadi, kewangan atau dihadkan oleh kontrak, dan siapa yang menyelenggara klasifikasi?
- Adakah akses diputuskan berdasarkan peranan, atribut, tujuan, penyewa (tenant), penapis baris/lajur atau gabungannya?
- Adakah kelulusan bersifat sekali guna, boleh diperbaharui atau diperlukan untuk setiap pertanyaan?
- Apakah tempoh maksimum, pelulus dan proses semakan untuk akses kecemasan?
- Bolehkah sistem merekodkan skop yang diimbas, baris yang dikembalikan, destinasi eksport dan identiti perkhidmatan?
Jawapan 30 saat
"Saya akan mencipta katalog yang mempunyai pemilik dan label kepekaan, kemudian menghantar identiti, pasukan, tujuan, wilayah dan label sumber ke titik keputusan dasar. Penguatkuasaan pada setiap enjin atau proksi data akan menggunakan penapis baris/lajur dan penyamaran, dengan pemberian akses terhad masa. Peristiwa izin, tolak, versi dasar, sumber pertanyaan, identiti perkhidmatan dan eksport akan dimasukkan ke dalam aliran terpusat yang kalis usikan. Akses break-glass akan tamat tempoh dan mencetuskan semakan. Saya akan menguji pembatalan, konteks merentas akaun, cache dan hanyutan dasar (drift) untuk membuktikan pembacaan sebenar sepadan dengan jejak audit."
Penyelesaian langkah demi langkah
Bina inventori aset untuk jadual, lajur, laluan, topik, penyewa dan data terbitan. Setiap aset memerlukan pemilik, klasifikasi, sumber, pengekalan dan tujuan yang diluluskan. Klasifikasi tidak boleh sekadar imbasan sekali sahaja: perubahan skema, lajur baharu dan perubahan peraturan perniagaan mesti mencetuskan semakan. Medan sensitif yang tidak pasti harus menerima label konservatif sehingga disemak.
Asingkan keputusan daripada penguatkuasaan. Input keputusan merangkumi identiti subjek, kumpulan, atribut, tujuan, keadaan peranti atau rangkaian, label sumber dan persekitaran. Output merangkumi izin atau tolak, penapis, penyamaran, versi dasar dan tamat tempoh. Penguatkuasaan boleh berada dalam proksi, pemalam enjin atau penapis jadual, tetapi memintas enjin pertanyaan tidak boleh mendedahkan fail storan objek mentah sama sekali.
Permintaan layan diri memaparkan tujuan, medan, tempoh dan pemilik. Penggunaan berisiko rendah yang telah diluluskan terlebih dahulu boleh menerima peranan jangka pendek secara automatik; akses sensitif memerlukan kelulusan pemilik data atau pematuhan. Akses tamat tempoh dengan cepat dan diperbaharui secara terancang. Offboarding, pertukaran pasukan dan penyiapan projek mencetuskan pembatalan akses. Hubungkan bukti kelulusan dengan versi dasar yang benar-benar aktif digunakan.
Terangkan semantik baris dan lajur. Seorang penganalisis mungkin melihat e-mel yang disamarkan dan hasil agregat tetapi tidak boleh membina semula data asal melalui cantuman (join), eksport atau mesej ralat. Predikat penyewa datang daripada identiti yang dipercayai, bukan daripada ID penyewa yang dibekalkan oleh pengguna. Gunakan kawalan yang setara pada eksport, jadual sementara, cache dan paparan terwujud (materialized views) supaya sumber yang dilindungi tidak menghasilkan salinan yang tidak dilindungi.
Peristiwa audit harus mengandungi subjek, rantaian identiti, tujuan, sumber, keputusan baris/lajur, versi dasar, enjin, ID pertanyaan atau tugas, masa, akaun sumber, saiz yang diimbas atau dikembalikan, destinasi eksport dan izin atau tolak. Tulis ke laluan tambah (append) dengan keistimewaan rendah dan pembaca terkawal dalam storan tidak boleh ubah (immutable storage); gunakan checksum atau rantaian versi untuk mengesan pemadaman dan pengubahan. Penolakan dan pengeditan dasar adalah sama pentingnya dengan pertanyaan yang berjaya.
Merentas enjin dan akaun, kekalkan identiti pengguna dan perkhidmatan yang asal. Perkhidmatan yang bertindak bagi pihak pengguna mengekalkan rantaian perwakilannya; peristiwa merentas akaun disalin kepada pemilik sumber. Enjin legasi yang tidak dapat membawa konteks diasingkan, dihadkan kepada paparan yang telah ditapis terlebih dahulu atau ditandakan sebagai jurang audit dan bukannya diisytiharkan patuh.
Reka bentuk break-glass untuk kumpulan kecil yang disahkan secara kukuh. Wajibkan sebab, tamat tempoh automatik yang singkat, amaran segera dan semakan; akses kecemasan tidak boleh sesekali memintas audit. Keluarkan versi dasar dengan kaedah canary dan rollback. Pantau penolakan, percubaan keistimewaan, kependaman pembatalan, aset tanpa pemilik, jurang audit dan eksport berisiko tinggi. Identiti sintetik dan lajur umpan (honey column) digunakan untuk menguji sama ada data boleh dibaca dan sama ada pembacaan tersebut direkodkan.
Jawapan model
"Saya akan mencipta katalog yang mempunyai pemilik dan label kepekaan yang meliputi sumber, data terbitan, laluan objek dan eksport. Titik keputusan dasar akan menerima identiti, pasukan, tujuan, wilayah dan label sumber serta mengembalikan izin, tolak, penapis baris/lajur, penyamaran, versi dasar dan tamat tempoh. Penguatkuasaan akan berada dalam proksi atau pemalam enjin, manakala laluan objek mentah kekal tidak boleh diakses.
Permintaan akan menyatakan tujuan, skop, tempoh dan pemilik; akses sensitif memerlukan kelulusan, dan akses akan tamat tempoh semasa offboarding atau projek selesai. Dasar baris/lajur yang sama akan dikenakan pada jadual sementara, cache dan eksport supaya pengguna tidak dapat membina semula nilai melalui salinan.
Peristiwa audit akan mengekalkan rantaian identiti pengguna dan perkhidmatan, sumber, versi dasar, enjin, ID pertanyaan, hasil penapisan, saiz, destinasi eksport dan hasil izin/tolak dalam storan tidak boleh ubah. Akses break-glass akan tamat tempoh, mencetuskan amaran dan memerlukan semakan. Saya akan menguji konteks merentas akaun, pembatalan, enjin legasi, cache, eksport dan lajur umpan untuk membuktikan pembacaan sebenar sepadan dengan bukti."
Kesilapan biasa
- Hanya mereka bentuk RBAC → had tujuan, wilayah dan lajur terlepas → gabungkan identiti, atribut, label dan penapis.
- Hanya melindungi enjin pertanyaan → pengguna memintasnya melalui storan objek → lindungi laluan mentah dan kuat kuasakan satu sempadan akses.
- Hanya mencatat log akaun ETL kongsi → akauntabiliti pengguna hilang → kekalkan rantaian perwakilan.
- Hanya merekodkan pertanyaan yang berjaya → penolakan dan hanyutan dasar hilang → rekodkan penolakan, pengeditan dasar dan penggunaan kecemasan.
- Pemberian akses kekal → akses projek kekal selama-lamanya → laksanakan tamat tempoh singkat, pembaharuan dan pembatalan.
- Hanya melindungi jadual sumber → cache, eksport dan penzahiran data bocor → kuat kuasakan dasar pada setiap laluan terbitan.
- Break-glass memintas audit → laluan kecemasan menjadi pintu belakang → pengesahan kukuh, sebab, tamat tempoh, amaran, semakan.
- Hanya menguji output dasar → penapis boleh dipintas → uji pembacaan sebenar, eksport, identiti sintetik dan lajur umpan.
Soalan susulan dan respons
Susulan 1: RBAC atau ABAC?
Gunakan peranan untuk sempadan pasukan yang stabil dan atribut untuk tujuan dinamik, wilayah, label dan masa. Kebanyakan sistem sebenar menggabungkan kedua-duanya sambil mengehadkan kerumitan dasar.
Susulan 2: Bagaimanakah anda menghalang pembinaan semula data melalui agregat?
Hadkan kohort kecil, cantuman (join), pertanyaan pembezaan (differencing) dan kekerapan eksport; gunakan ambang atau hingar (noise) jika sesuai. Sahkan peraturan terhadap keperluan kepekaan dan ketepatan.
Susulan 3: Bagaimanakah anda mengaudit pembacaan cache?
Ikatkan kunci cache kepada subjek dan versi dasar, rekodkan rantaian identiti pengisian dan pembacaan, serta batalkan (invalidate) apabila berlaku pembatalan akses atau perubahan dasar. Cache kongsi tanpa konteks pengguna tidak boleh menyimpan hasil yang sensitif.
Susulan 4: Bagaimana jika log audit mengandungi SQL yang sensitif?
Simpan pengecam sumber berstruktur dan ringkasan selamat dan bukannya SQL lengkap, parameter atau data mentah. Sulitkan, hadkan dan kekalkan medan audit secara terancang.
Susulan 5: Bagaimana jika enjin legasi tidak dapat menguatkuasakan dasar baris atau lajur?
Asingkannya, dedahkan hanya paparan yang telah ditapis terlebih dahulu atau migrasikannya di belakang proksi, dan tandakan baki jurang audit tersebut. Konvensyen pasukan bukanlah satu penguatkuasaan.
Susulan 6: Bagaimanakah anda membuktikan tadbir urus tidak memperlahankan analisis?
Jejak kependaman keputusan, p95 pertanyaan, penolakan palsu (false denials), kadar hit cache dan masa kelulusan. Batalkan keputusan dalam cache serta-merta apabila berlaku perubahan identiti atau versi dasar.
Susulan 7: Mengapakah versi dasar perlu direkodkan?
Pertanyaan yang sama boleh mengembalikan hasil yang berbeza sebelum dan selepas kemas kini dasar. Sesuatu versi menjelaskan sebab akses diizinkan, ditolak atau ditapis, serta menyokong rollback dan semakan insiden.