GDPR Article 32 checklist.
For engineering teams.
Article 32 — security of processing — is the article most directly aimed at engineering. Below: every concrete obligation, mapped to AWS, Azure, and GCP controls, and the evidence each one needs. No prose, no consultant fluff.
The one article that fines engineering teams.
Article 32 is the article supervisors reach for when something has gone wrong technically. Encryption gaps, broken access control, missing audit logs — these are the failures that show up in fine notices. It is also the article most cleanly mapped to cloud controls you can actually verify in code.
The text says: "appropriate technical and organisational measures." The four named measures are pseudonymisation, encryption, ongoing CIA (confidentiality / integrity / availability), and the ability to restore. The rest of this page is what those four mean in practice.
Encryption and pseudonymisation.
- check_circleTLS 1.2 or higher in transitAll personal data flows are TLS-terminated at 1.2 minimum. Test from outside the VPC.
- check_circleAES-256 at restProduction databases, object storage, and backups encrypted with AES-256 or equivalent.
- check_circleKMS with key rotationCustomer-managed key option enabled where required. Rotation enforced ≤ 365 days.
- check_circlePseudonymisation where feasibleIdentifiers separated from sensitive attributes. Re-identification keys stored separately.
- check_circleDocumented and reviewedEncryption configuration captured in code/config, reviewed periodically. Article 32 requires evidence, not a one-time setting.
DP-3, DP-4, DP-5, DP-6 (Cloud Security Benchmark) · PR.DS-01 (NIST CSF) · A04 Cryptographic Failures (OWASP Top 10).Confidentiality, integrity, access control.
- check_circleRole-based access controlIAM roles tied to documented confidentiality commitments. No broad "production-admin" roles.
- check_circleNeed-to-know enforcementPersonal data access scoped to the engineers who actually need it. Reviewed quarterly.
- check_circleAudit logs of accessEvery access to personal data store logged. Logs retained per Article 5(2) accountability.
- check_circleInstruction-bound processingArticle 32(4): no processing outside controller instructions. Technical enforcement, not just a policy doc.
The trap most teams hit on Article 32(4): "natural persons acting under the authority of the controller... process personal data only on instructions from the controller." Translation: your engineers can't run ad-hoc queries on production personal data without an audit trail tying the query to a documented purpose. Most teams have audit logs; few have the join from "audit log" to "documented purpose."
Availability and restore.
- check_circleBackups + tested restoreBackups exist and have been restored from in the last 90 days. Untested backups don't count.
- check_circleAvailability monitoringUptime SLO defined and monitored. Personal data systems have a runbook for outages.
- check_circlePeriodic security testingPen-test, scanner runs, dependency audit on a real cadence — annually minimum.
The "ability to restore the availability and access to personal data in a timely manner in the event of a physical or technical incident" requires that you have actually tested restore. A backup that has never been restored is not an Article 32 control; it's a hope.
Implement this in one prompt.
The full Article 32 surface is bundled in RuleMesh as access-control-security — 19 IT requirements, 89 evidence checks, 17 high-risk items, mapped to all three major clouds.
~/your-repo $ claude mcp add rulemesh ~/your-repo $ # then, in your agent: implement bundle access-control-security
The agent pulls the rules, implements the controls (or stubs them where it needs your sign-off), runs scans against the repo locally, and submits evidence signals — file paths and check results, never source. You verify in your tracker.
Related
Run this loop on your codebase.
Free MCP install. No credit card. Start with the agent you already use.