Article 32 · Checklist

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.

10 min read·Updated 2026-04·Maps to: AWS, Azure, GCP
Why this article

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.

32(1)(a)

Encryption and pseudonymisation.

  • check_circle
    TLS 1.2 or higher in transit
    All personal data flows are TLS-terminated at 1.2 minimum. Test from outside the VPC.
  • check_circle
    AES-256 at rest
    Production databases, object storage, and backups encrypted with AES-256 or equivalent.
  • check_circle
    KMS with key rotation
    Customer-managed key option enabled where required. Rotation enforced ≤ 365 days.
  • check_circle
    Pseudonymisation where feasible
    Identifiers separated from sensitive attributes. Re-identification keys stored separately.
  • check_circle
    Documented and reviewed
    Encryption configuration captured in code/config, reviewed periodically. Article 32 requires evidence, not a one-time setting.
Cloud controls (live mapping from RuleMesh)
AWS: KMS, S3 default encryption, RDS encryption, TLS-ALB. Azure: Key Vault, Storage Service Encryption, TLS load balancer. GCP: CMEK, default encryption, GFE-terminated TLS. Specific control IDs: DP-3, DP-4, DP-5, DP-6 (Cloud Security Benchmark) · PR.DS-01 (NIST CSF) · A04 Cryptographic Failures (OWASP Top 10).
32(1)(b) + 32(4)

Confidentiality, integrity, access control.

  • check_circle
    Role-based access control
    IAM roles tied to documented confidentiality commitments. No broad "production-admin" roles.
  • check_circle
    Need-to-know enforcement
    Personal data access scoped to the engineers who actually need it. Reviewed quarterly.
  • check_circle
    Audit logs of access
    Every access to personal data store logged. Logs retained per Article 5(2) accountability.
  • check_circle
    Instruction-bound processing
    Article 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."

32(1)(c) + (d)

Availability and restore.

  • check_circle
    Backups + tested restore
    Backups exist and have been restored from in the last 90 days. Untested backups don't count.
  • check_circle
    Availability monitoring
    Uptime SLO defined and monitored. Personal data systems have a runbook for outages.
  • check_circle
    Periodic security testing
    Pen-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.

The agent path

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.

install + run
~/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.