Reference · FHIR R4 · SATUSEHAT · Pelindungan Data Pribadi
PDP dan monitoring
Ringkasan satu halaman. Dari Lesson 0024, 0025, dan 0026. Pasal dibaca dari PDF resmi peraturan.bpk.go.id, diakses 2026-10-27.
Jawaban 90 detik: kenapa → apa → di mana → bagaimana
- Kenapa. Data kesehatan = data pribadi spesifik (UU 27/2022 Pasal 4 ayat (2) huruf a). Isi rekam medis rahasia, bahkan setelah pasien meninggal (Permenkes 24/2022 Pasal 32). Bocor → beri tahu subjek + lembaga ≤ 3×24 jam (UU PDP Pasal 46). [1] [3]
- Apa. Identitas, isi klinis, kredensial → drop. ID korelasi → HMAC.
- Di mana. Query search di URL,
diagnostics, trace, Sentry, label metrik, frontend. - Bagaimana. Allowlist di sumber · HMAC · audit trail (
AuditEvent) terpisah dari log.
Tiga warna
| Kelompok | Field | |
|---|---|---|
| 🔴 | Identitas | identifier NIK/KK/paspor/No. RM · name · telecom · address (+ administrativeCode) · birthDate · photo · NIK nakes |
| 🔴 | Isi klinis | Condition.code ICD-10 · Observation.code/value[x] · obat KFA · note · text.div · lampiran |
| 🔴 | Kredensial | client_secret · Authorization: Bearer · body respons token |
| 🟡 | Korelasi (HMAC) | logical id · nomor IHS · user/practitioner id |
| 🟢 | Aman | resourceType · interaksi · route template · status · latensi · jumlah entry · issue.severity/issue.code |
Jebakan
GET /Patient?identifier=…/id/nik|…: URL = data pasien. "HTTP logs, including those that only contain the URL itself, should be regarded as being as sensitive as the resources themselves." [4]OperationOutcome.issue.diagnostics: teks bebas, bisa mengutip nilai input. [5]text.div: narrative yang merangkum isi resource. [6]- Kode diagnosis sensitif (HIV, kesehatan jiwa) bocor walaupun nama dibuang. [7]
Enam saluran
| Saluran | Periksa |
|---|---|
| Log aplikasi | body, diagnostics, string pesan. pino redact = path kunci saja, case-sensitive. [8] |
| URL / access log / proxy | query string |
| Trace OTel | url.full, url.query: default hanya menyensor kunci tanda tangan. [9] |
| Metrik | tidak ada label ID pasien/user. [10] |
| Sentry | body request/response terkirim secara default; denylist tidak kenal field medis → httpBodies: [], beforeSend. [11] |
| Frontend | console.log, analytics, URL halaman, session replay |
Teknik
| Teknik | Untuk | Ingat |
|---|---|---|
| Drop | 🔴 | default; allowlist, bukan denylist |
| HMAC | 🟡 | hash polos bisa dibalik kalau ruang nilainya kecil [12]; secret di secret manager |
| Potong | tanggal, IP | tahun/bulan saja; buang oktet terakhir IPv4 [12] |
Hasil HMAC tetap diperlakukan sebagai data pribadi (tafsiran UU PDP Pasal 1 angka 1; UU tidak menyebut pseudonim).
Audit ≠ log
| Log operasional | Audit trail | |
|---|---|---|
| Identitas | tidak (HMAC) | ya |
| Bentuk | pino / OTel / Sentry | AuditEvent, append-only, akses terbatas [13] |
| Dasar | — | UU PDP Pasal 31 · UU 17/2023 Pasal 347 [2] |
Belum terverifikasi (2026-10-27): PP 33/2026 (pelaksana UU PDP), Kepmenkes HK.01.07/Menkes/721/2026 (pedoman PDP Kemenkes), status lembaga PDP. Jawab "per yang terakhir saya baca".
[1] UU 27/2022 · [2] UU 17/2023 · [3] Permenkes 24/2022 · [4] FHIR R4 Security · [5] OperationOutcome · [6] DomainResource · [7] Security Labels · [8] pino redaction · [9] OTel url · [10] Prometheus labels · [11] Sentry options · [12] OTel sensitive data · [13] AuditEvent