SISG

Raksti

VDAR atbilstība SaaS platformām: tehnisks ceļvedis

10 min lasīšana

VDAR atbilstība nav ķeksīšu likšana. Tā ir inženiertehnisku lēmumu kopa, kas ietekmē, kā glabājat datus, apstrādājat lietotāju pieprasījumus, pārvaldāt piekrišanas un projektējat visu datu arhitektūru. Šajā ceļvedī apkopoti tehniskie modeļi, kas padara atbilstību sasniedzamu, nebremzējot produkta izstrādes tempu.

Datu atrašanās vieta: svarīgi, kur dati glabājas

VDAR neaizliedz glabāt datus ārpus ES, taču nosaka stingras prasības starptautiskai nodošanai. Vienkāršākais veids, kā izvairīties no nodošanas sarežģījumiem, ir glabāt personas datus datu centros ES/EEZ.

Izvēlieties mākoņa reģionus apzināti

Veidojot infrastruktūru, pēc noklusējuma izvēlieties ES reģionus (AWS eu-west-1, eu-central-1; Azure West Europe). Tas attiecas ne tikai uz galveno datubāzi, bet uz katru servisu, kas skar personas datus - rindām, kešiem, meklēšanas indeksiem, žurnālu sistēmām un rezerves kopiju krātuvēm.

// Infrastructure configuration - EU-first data residency
const config = {
  database: { region: 'eu-west-1', backup_region: 'eu-central-1' },
  cache:    { region: 'eu-west-1' },
  search:   { region: 'eu-west-1' },
  storage:  { region: 'eu-west-1', replication: 'eu-central-1' },
  logging:  { region: 'eu-west-1' }  // Logs contain personal data too
};

Rinda par žurnāliem ir svarīga. Daudzas komandas rūpīgi lokalizē datubāzi, bet lietotnes žurnālus ar lietotāju ID, e-pasta adresēm un IP adresēm, par to nedomājot, sūta uz ASV mitinātu žurnālu servisu.

Piekrišanu pārvaldība: tehniski pareizi

Piekrišanai saskaņā ar VDAR jābūt brīvi dotai, konkrētai, informētai un nepārprotamai. Tas tieši ietekmē, kā būvējat reģistrācijas plūsmas, sīkdatņu paziņojumus un mārketinga iestatījumus.

Glabājiet piekrišanas kā nemaināmu audita pēdu

Katrs lietotāja lēmums par piekrišanu jāreģistrē ar precīzu tekstu, kuram viņš piekrita, laika zīmogu un mehānismu (izvēles rūtiņa, klikšķis paziņojumā, API izsaukums). Šim ierakstam jābūt nemaināmam - Jums jāspēj pierādīt, kam lietotājs piekrita un kad.

// Consent record schema
const consentRecord = {
  userId: 'usr_abc123',
  consentType: 'marketing_email',
  granted: true,
  timestamp: '2026-01-15T14:32:00Z',
  version: 'privacy-policy-v3',    // Which version they agreed to
  mechanism: 'settings_page',       // How consent was collected
  ipAddress: '192.168.1.x',        // Pseudonymised
  text: 'I agree to receive product updates and newsletters...'
};

Kad lietotājs atsauc piekrišanu, nedzēsiet sākotnējo piekrišanas ierakstu. Tā vietā pievienojiet jaunu ierakstu par atsaukumu. Audita pēdai vajag abus ierakstus.

Tiesības uz dzēšanu: tehniskais izaicinājums

17. pants dod lietotājiem tiesības pieprasīt savu personas datu dzēšanu. Tas izklausās vienkārši, līdz atceraties, ka personas dati var būt galvenajā datubāzē, meklēšanas indeksos, kešos, rezerves kopijās, žurnālu failos, analītikas sistēmās un trešo pušu integrācijās.

Vispirms izveidojiet datu karti

Pirms ieviešat dzēšanu, dokumentējiet katru sistēmu, kurā glabājas personas dati. Katrai sistēmai nosakiet, kādus datus tā satur, kā tos dzēst un kāda ir glabāšanas politika. Šī datu karte kļūst par dzēšanas plūsmas specifikāciju.

Ieviesiet mīksto dzēšanu ar plānotu galīgo tīrīšanu

Vienlaicīga, tūlītēja neatgriezeniska dzēšana no visām sistēmām tehniski nav praktiska. Tā vietā ieviesiet divu fāžu pieeju: tūlītēju mīksto dzēšanu, kas padara datus lietotnei neredzamus, un pēc tam plānotu tīrīšanas uzdevumu, kas dzēš datus no visām krātuvēm.

// Two-phase deletion pipeline
async function handleDeletionRequest(userId) {
  // Phase 1: Immediate soft delete (user-facing)
  await db.users.update(userId, {
    status: 'deletion_pending',
    personalData: null,           // Clear from primary store
    email: generateTombstone(),   // Replace with non-reversible hash
    deletionRequestedAt: new Date()
  });
  // Phase 2: Queue background purge (system-level)
  await deletionQueue.enqueue({
    userId,
    systems: ['search_index', 'cache', 'analytics', 'email_service'],
    deadline: addDays(new Date(), 30)  // GDPR allows up to 30 days
  });
}

Privātums jau projektējumā: arhitektūras lēmumi

VDAR 25. pants prasa integrētu datu aizsardzību un datu aizsardzību pēc noklusējuma. Tas nozīmē, ka privātuma apsvērumiem jāietekmē arhitektūra jau no sākuma, nevis jāpielāgo vēlāk.

Vāciet minimāli datu

Vāciet tikai tos personas datus, kas tiešām vajadzīgi norādītajam mērķim. Katrs papildu lauks palielina atbilstības slogu - vairāk datu, ko aizsargāt, ko dzēst pēc pieprasījuma un ko iekļaut atbildēs uz datu subjektu piekļuves pieprasījumiem.

Pseidonimizējiet, kur iespējams

Pseidonimizācija aizstāj identificējošu informāciju ar mākslīgiem identifikatoriem, saglabājot iespēju vajadzības gadījumā personu atkārtoti identificēt. Lietojiet to analītikā, žurnālos un jebkurā sistēmā, kurai personas dati nav jārāda tieši.

// Pseudonymisation for analytics events
function pseudonymiseEvent(event) {
  return {
    ...event,
    userId: hash(event.userId + PEPPER),  // One-way hash with secret
    ip: event.ip.replace(/\.\d+$/, '.0'), // Truncate last octet
    email: undefined                       // Strip entirely
  };
}

Datu subjekta piekļuves pieprasījumi: automatizēta atbilde

Saskaņā ar 15. pantu lietotāji var pieprasīt visu par viņiem glabāto personas datu kopiju. Atbildei ir 30 dienas. SaaS platformā, kur dati izkaisīti vairākās sistēmās, šo datu manuāla apkopošana katram pieprasījumam nav ilgtspējīga.

Izveidojiet automatizētu piekļuves pieprasījumu plūsmu

Izveidojiet automatizētu sistēmu, kas spēj vaicāt visas datu krātuves pēc konkrēta lietotāja ID un apkopot rezultātus lejupielādējamā formātā. Tai jābūt pašapkalpošanās funkcijai Jūsu lietotnē, nevis manuālam procesam, ko veic atbalsta komanda.

Paziņošana par datu aizsardzības pārkāpumu: esiet gatavi

33. pants prasa paziņot uzraudzības iestādei 72 stundu laikā pēc tam, kad kļuvis zināms par personas datu aizsardzības pārkāpumu. 34. pants prasa informēt skartās personas, ja pārkāpums rada augstu risku viņu tiesībām un brīvībām.

72 stundas nav daudz laika, lai izmeklētu pārkāpumu, novērtētu tā ietekmi un sagatavotu paziņojumu. Incidentu reaģēšanas plānam, paziņojumu veidnēm un saziņas kanāliem jābūt gataviem, pirms tie vajadzīgi. Vismaz reizi gadā izspēlējiet incidenta scenāriju, lai atrastu nepilnības reaģēšanas procesā.


Ilgtspējīga atbilstība

VDAR atbilstība nav galamērķis - tā ir pastāvīga darbības prasība. Šeit aprakstītie modeļi - datu glabāšana ES, nemaināmi piekrišanu ieraksti, automatizētas dzēšanas plūsmas, pseidonimizācija un pašapkalpošanās piekļuves pieprasījumi - padara atbilstību pārvaldāmu mērogā. Iebūvējiet tos platformas arhitektūrā laikus, un atbilstība kļūst par labas inženierijas dabisku blakusproduktu, nevis no ārpuses uzspiestu slogu.

Ir projekta ideja?

Sazinieties, lai saņemtu godīgu novērtējumu un skaidru piedāvājumu.