Compliance
IT Consulting

GDPR Article 32: Technical Measures for Cloud & Logging

GDPR Article 32-selection

Two-part series. Gart Solutions covers technical measures; Avitar Legal covers organisational measures.

The gap between “we encrypt” and proof that you do

GDPR Article 32 asks for technical and organisational measures. Most companies treat it as one paperwork task. It is really two tasks. A policy covers the organisational half. The technical half is only covered when your cloud account, pipelines and logs are actually configured.

In January 2026 the French regulator showed what happens when the two halves drift apart. The CNIL fined France Travail €5 million after a breach. Its findings named weak authentication, access rights “defined too broadly” and logging that could not “detect abnormal behaviour”. The key line: most of the needed measures had been identified in impact assessments but “had not actually been implemented”.

The paperwork existed. The configuration did not.

This article is the technical half of a two-part series. Gart Solutions covers what has to be configured: encryption, identity and access, logging, backups and testing in the cloud. Our partners at Avitar Legal, a law firm focused on data protection for IT companies, cover the organisational half: policies, DPIA and data mapping. If you need someone to check both halves against your real environment, start with a GDPR compliance audit or Compliance consulting services.

Who this is for: CTOs, heads of infrastructure and DevOps leads who have a privacy policy and want to know whether their AWS, Azure or GCP setup can back it up.

What GDPR Article 32 actually requires

Article 32 does not list mandatory controls. It requires a level of security “appropriate to the risk”, judged by the state of the art, the cost of implementation and the nature, scope, context and purposes of processing. The full text is on EUR-Lex. It names four examples in Art. 32(1):

  • (a) Pseudonymisation and encryption of personal data.
  • (b) The ability to ensure ongoing confidentiality, integrity, availability and resilience of processing systems and services.
  • (c) The ability to restore availability and access to personal data in a timely manner after a physical or technical incident.
  • (d) A process for regularly testing, assessing and evaluating the effectiveness of the measures.

Art. 32(2) names the risks to weigh: accidental or unlawful destruction, loss, alteration, unauthorised disclosure of or access to personal data. Art. 32(3) lets you use an approved code of conduct or certification as one element of proof. Art. 32(4) requires that anyone with access processes data only on instructions.

Three things matter for engineering teams:

  • The duty applies to processors too. If you run infrastructure for clients, Article 32 is your obligation, not just theirs.
  • “State of the art” moves. A setup that was acceptable in 2019, such as long-lived access keys or no MFA on admin accounts, may not be acceptable now.
  • (b), (c) and (d) say “ability” and “process”. You show an ability by running it: a restore that worked, an alert that fired, a test with a date on it. A paragraph in a policy does not show any of that.

The test: document or configuration?

Ask one question of each measure: if an auditor asks for proof, do you hand over a file or open a console? If the proof is a decision, a rule or a role, a document covers it. If the proof is a system state, a log entry or a test result, only configuration covers it.

Most Article 32 measures need both. The document sets the rule. The configuration enforces it and leaves evidence. A gap on either side is a finding.

Art. 32 area What the document covers What only configuration covers Evidence an auditor accepts
Encryption (32(1)(a)) Encryption policy, key ownership, which data classes need it KMS keys, encryption at rest on every store, TLS 1.2+ in transit, key rotation Config export or CSPM report showing 100% of stores encrypted; key rotation settings
Pseudonymisation (32(1)(a)) Which fields are pseudonymised and who may re-identify Tokenisation or hashing in the pipeline, separated key storage Schema of non-production data; access policy on the mapping table
Access control (32(1)(b)) Access policy, roles, joiner-mover-leaver process SSO, MFA, least-privilege IAM roles, no shared or long-lived keys IAM report, MFA coverage, last access review with date and sign-off
Network and secrets (32(1)(b)) Architecture standard Private subnets, security groups, secrets manager, no secrets in code Network config, secret-scanning results in CI
Logging and monitoring (32(1)(b), Art. 33) Logging policy, retention period, incident response plan Audit trails enabled, central log store, immutability, alerts on abnormal access Sample log entries, retention settings, an alert that fired and was handled
Backup and recovery (32(1)(c)) Backup policy, RTO and RPO targets, DR plan Automated backups, cross-region copies, immutable vaults Dated restore test with measured RTO and RPO
Regular testing (32(1)(d)) Testing schedule, owner, method Policy-as-code, drift detection, vulnerability scans, pentests Scan history, pentest report, remediation tickets closed
Staff instructions (32(4)) Confidentiality terms, training, need-to-know rules Role scoping that limits what each person can see Training records plus IAM scope matching the role

The last row is the reverse case. Article 32(4) is mainly organisational. Configuration only backs it up. That is where Avitar Legal’s half of the series picks up.

The sections below go through the configuration column, area by area.

Encryption and pseudonymisation in the cloud

Encryption is the measure most often “covered” by a sentence and least often checked. Cloud providers encrypt many services by default, but not all of them, and not always with keys you control. Under the AWS shared responsibility model, the provider secures the cloud itself. You secure what you put in it, including data encryption and identity settings. Azure and Google Cloud use the same split.

What to configure

  • At rest, everywhere personal data lands. Databases, object storage, block volumes, snapshots, backups, queues, data warehouses and log stores. Snapshots and old buckets are where gaps usually hide.
  • Customer-managed keys for sensitive data. Use KMS, Key Vault or Cloud KMS with key policies that separate key admins from data users. Turn on automatic rotation.
  • In transit. TLS 1.2 or higher on public endpoints and between services. Enforce it with policy (for example, deny unencrypted S3 requests), not only with good habits.
  • Pseudonymisation outside production. Developers and analysts rarely need real names or emails. Tokenise or hash identifiers before data reaches staging, BI or ML pipelines. Keep the re-identification key in a separate account or vault.

The document’s job here

The policy says which data classes need customer-managed keys, who owns the keys and what happens if a key is compromised. It cannot say whether the bucket created last Tuesday is encrypted. A policy-as-code guardrail can, and it can block the bucket before it exists.

Confidentiality and integrity: identity, network and secrets

The France Travail case turned on access: advisers could see records of people they did not support, and that widened what attackers could reach with one stolen login. Your access policy probably already says “need to know”. The question is whether IAM says the same thing.

What to configure

  • One identity source. SSO through Entra ID, Okta or Google Workspace for consoles, CI/CD, databases and internal tools. No local admin users that survive offboarding.
  • MFA on every human account, and phishing-resistant MFA for admins and anyone who can export personal data.
  • Least privilege by role. Start from deny, grant per role, and scope production data access to the people who handle it. Our guide to the least privilege access model shows how to roll it out without blocking engineers.
Least Privilege Access Model: A Practical Playbook
  • No long-lived keys. Replace static access keys with short-lived roles and workload identity. Store the rest in a secrets manager; for clusters, see Kubernetes secrets management.
  • Network segmentation. Databases with personal data sit in private subnets, reachable only from the services that need them. No public database endpoints.
  • Integrity controls. Signed builds, protected branches and RBAC in pipelines, so nobody can push code that reads personal data without review.

The document’s job here

The document defines roles and the joiner-mover-leaver process. Configuration enforces them. The bridge between the two is the access review: a dated record that someone checked who has access and removed what was no longer needed. Here is how to run a user access review without spreadsheets.

Logging and monitoring: the measure regulators now name

Article 32 does not use the word “logging”. Regulators read it in anyway, because without logs you cannot show ongoing confidentiality and integrity, and you cannot meet the 72-hour breach notice in Article 33. You cannot report what you cannot see. In the France Travail decision, inadequate logging was one of three named failings.

The CNIL’s 2021 recommendation on logging is the most concrete guide available. It asks controllers to log access, creation, modification and deletion of personal data, with the user ID, timestamp and device. It recommends keeping these logs for six months to one year in most cases, and analysing them automatically to spot misuse.

What to configure

  • Turn on the audit trails. CloudTrail (including data events for buckets with personal data), Azure Activity and resource logs, GCP Cloud Audit Logs with Data Access logs. Data access logging is often off by default because it costs money.
  • Log at the application layer too. Cloud logs show that a service reads a table. Only the app knows that support agent X opened customer Y’s profile. That is the event a regulator asks about.
  • Centralise. Ship logs to one account or workspace that application teams cannot edit.
  • Make logs tamper-evident. Object lock, write-once storage or log-file integrity validation. A log an attacker can delete is not evidence.
  • Set retention on purpose. Match the period in your policy, for example 12 months hot or warm, then delete. Logs are personal data too, so keeping them forever is its own GDPR problem.
  • Keep personal data out of debug logs. Mask emails, tokens and IDs in application logs. A verbose log file is a common source of leaks.
  • Alert on abnormal access. Bulk exports, access outside working hours, one account reading thousands of records, MFA disabled, logging turned off. Route alerts to someone on call, with a runbook.

The document’s job here

The logging policy sets what is logged, who reads it and how long it is kept. The incident response plan sets who decides, within 72 hours, whether to notify. Configuration produces the data both depend on. For the tooling side, see our pieces on what observability means in practice and on cybersecurity monitoring, or our IT monitoring services.

Availability and resilience: a backup is not a restore

Art. 32(1)(c) asks for the ability to restore personal data “in a timely manner”. A backup policy describes the intent. Only a restore test shows the ability. Losing data counts as a personal data breach too, even when nothing was stolen.

What to configure

  • Automated backups for every store with personal data, including managed databases, object storage and SaaS data you depend on.
  • Copies in a separate account and region, so one compromised admin account or one regional outage cannot take out production and backups together.
  • Immutable backups. Vault lock or object lock protects against ransomware that targets backups first.
  • Encrypted backups with separate keys, covered by the same encryption checks as production.
  • Restore tests on a schedule. At least quarterly for critical systems. Record the date, what was restored, how long it took and how much data was lost. Those are your real RTO and RPO.
  • Deletion that reaches backups. Erasure requests and retention limits apply to backups as well. Document how expired data ages out of them.

The document’s job here

The document sets RTO and RPO targets, ranks systems by priority and assigns the DR owner. The configuration and the dated test report prove you can hit those numbers. For how recovery works in practice, see our complete guide to DRaaS, or talk to us about disaster recovery as a service.

Regular testing: turning “ongoing” into evidence

Art. 32(1)(d) is the clause that ties everything together. It asks for a process for regularly testing and evaluating whether the measures work. A yearly pentest alone does not meet that bar in a cloud estate that changes every day.

What to configure

  • Policy-as-code in CI/CD. Checks in Terraform or Bicep plans that block unencrypted storage, public buckets, open security groups and missing logs before deployment.
  • Continuous posture checks. AWS Security Hub, Microsoft Defender for Cloud, Google Security Command Center or an open-source CSPM, mapped to the controls in your policy.
  • Drift detection. Alerts when someone changes production by hand and it no longer matches code.
  • Vulnerability scanning of images, dependencies and hosts, with fixed deadlines by severity.
  • Penetration tests at least yearly and after major changes, with retests of the findings.
  • Tracked remediation. Every finding becomes a ticket with an owner and a date. A closed ticket is evidence. An open one is a known risk you have accepted, so record that decision.

The document’s job here

The document sets the schedule, the owner and the threshold for escalation. The tooling runs the tests and keeps the history.

ENISA’s Handbook on Security of Personal Data Processing is a useful bridge here: it links risk levels to concrete measures, which helps justify why a control is in or out of scope. For a structured starting point, see our GDPR compliance checklist.

Where the document still decides: organisational measures, DPIA and data mapping

Configuration without a document fails too, just less visibly. You cannot set the right retention period, encryption scope or access roles until you know what personal data you hold, where it flows and how risky the processing is. Those answers come from the organisational side:

  • Data mapping and the record of processing (Art. 30) tell engineering which systems hold personal data. That is the scope for every control above. An unmapped data store is an unencrypted, unlogged data store waiting to happen.
  • DPIA (Art. 35) sets the risk level that Article 32 scales to. It decides whether you need customer-managed keys, field-level encryption or 12-month log retention, rather than the defaults.
  • Policies, processor contracts (Art. 28), training and staff instructions (Art. 32(4)) define who may do what. Configuration then enforces it.

The France Travail case shows the failure mode in the middle: the DPIA identified the measures, and nobody turned them into configuration. The fix is a handover. Each measure in the DPIA gets a technical owner, a configuration target and an evidence source.

Our partners cover this side in detail in Avitar Legal‘s companion article on GDPR Art. 32 organisational measures, DPIA and data mapping. Read the two together: theirs tells you what to decide, ours tells you how to enforce it.

10-point technical check for Article 32

If you can answer “yes, and here is the evidence” to each item, your technical half is in good shape.

  • Every store holding personal data is encrypted at rest, including snapshots and backups.
  • Sensitive data uses customer-managed keys with rotation on.
  • TLS is enforced by policy, not just used.
  • Non-production environments use pseudonymised or synthetic data.
  • All human access goes through SSO with MFA; no long-lived access keys remain.
  • An access review was completed in the last quarter, with sign-off.
  • Audit and data-access logs are on, centralised, tamper-evident and kept for a set period.
  • Alerts on abnormal access reach someone on call.
  • A restore test in the last quarter met the documented RTO and RPO.
  • Policy-as-code and posture scans run continuously, and findings are tracked to closure.

How Gart Solutions helps

Gart Solutions runs compliance audits and security audits for cloud environments on AWS, Azure and GCP. We compare what your policies say with what your accounts are actually configured to do, and hand you a prioritised fix list with the evidence an auditor will ask for.

Where legal and organisational work is needed, we work alongside Avitar Legal, so both halves of Article 32 are checked against each other.

Book a compliance audit

Sources

FAQ

What are technical measures under GDPR Article 32?

Technical measures are security controls built into systems: encryption, pseudonymisation, access control, logging, backups, network security and automated testing. Article 32 lists encryption, pseudonymisation, resilience, timely restoration and regular testing as examples.

What is the difference between technical and organisational measures?

Organisational measures are decisions and processes: policies, roles, training, contracts, DPIAs. Technical measures are how systems enforce them. Most Article 32 controls need both a rule and the configuration that applies it.

Does GDPR require encryption?

Not in every case. Article 32 names encryption as an example of an appropriate measure, scaled to risk. In practice, encryption at rest and in transit is now so cheap in the cloud that skipping it is hard to justify.

Does GDPR require logging, and how long should logs be kept?

GDPR does not name logging, but regulators treat it as part of Article 32 security and Article 33 breach detection. France's CNIL recommends six months to one year for access logs in most cases.

Is the cloud provider responsible for Article 32 compliance?

Partly. The provider is your processor and secures its infrastructure. You remain responsible for how you configure services, manage identities and protect the data you store.

How do you prove Article 32 compliance to an auditor?

With evidence from running systems: configuration reports, IAM and MFA coverage, sample logs, alert records, dated restore tests and scan histories. Policies show intent. Evidence shows the measure works.

Who should own Article 32: legal or engineering?

Both. Legal or the DPO sets the risk level and the rules. Engineering owns the controls and the evidence. Assign a technical owner to every measure in the DPIA.
arrow arrow

Thank you
for contacting us!

Please, check your email

arrow arrow

Thank you

You've been subscribed

We use cookies to enhance your browsing experience. By clicking "Accept," you consent to the use of cookies. To learn more, read our Privacy Policy