Loading...

Skip to main content

Template: Architecture Recommendation

This is a ready-to-adapt example, not a universal standard. It shows a four-zone anonymization architecture for a telco CDR platform on GCP — the most common pattern in Aliz engagements. Every client's architecture will differ based on their vertical, data types, regulatory context, and infrastructure.

How to use this template:

  • Pre-populated content shows realistic example values drawn from the knowledge base (telco CDR as the anchor use case). Replace examples with the client's actual data types, systems, and organizational structure.
  • Adapt blocks in each section explain what to adjust and why — remove them from the final client-facing document.

See Module 06 — Architecture Patterns for the foundational zone model, Module 05 — Tooling Landscape for GCP service details, and Module 13 — Client Engagement for how this template fits into the engagement workflow.


Four-Zone CDR Anonymization Architecture​

Adapt

Replace with the specific architecture pattern and client context. For non-telco verticals: retail purchase data, financial transactions, energy smart meter readings — the zone model adapts, the services stay largely the same.

Current state​

The current CDR analytics platform ingests call detail records from the mediation layer into a BigQuery data warehouse. Subscriber identifiers (MSISDNs, IMSIs) are pseudonymized using a dictionary-based lookup table — a flat mapping file that replaces each identifier with a random token. The dictionary is stored in a Cloud SQL instance accessible to the data engineering team.

Gaps identified during discovery:

  • Identifier substitution only. Quasi-identifiers (cell tower IDs, timestamps, call durations, device types) pass through at full granularity. The behavioral structure of the data is intact — a small number of spatio-temporal data points can re-identify the vast majority of individuals regardless of the identifier pseudonymization.
  • Single point of failure. The dictionary table is the sole re-identification key for the entire historical dataset. No HSM backing, no access logging beyond Cloud SQL audit logs, no key rotation.
  • No structural anonymization. There is no Zone 2 — all downstream analytics and partner feeds consume the pseudonymized dataset directly.
  • No re-identification risk assessment. The organization treats the pseudonymized output as "anonymized" without measurement.
Adapt

Replace CDR-specific details with the client's actual data types and systems. For retail: purchase records, customer IDs, loyalty card numbers. For finance: transaction logs, account numbers, KYC records. The gap patterns are remarkably consistent across verticals.

Proposed architecture​

A four-zone architecture that separates data by privacy level, with controlled pipelines between zones and access policies that widen as privacy guarantees strengthen.

ZoneContentAccessRetention
Zone 0 — RawUnmodified CDRs with MSISDN, IMSI, IMEI, full cell-ID, exact timestampsMediation systems and reprocessing pipeline only; VPC-SC enforced7 days (reprocessing buffer)
Zone 1 — PseudonymizedMSISDN → HMAC-SHA256; IMSI → HMAC-SHA256; IMEI → HMAC-SHA256 (or suppress if not needed for analytics); cell-ID and timestamps at original granularityData engineers (full), analysts (DDM-masked)Per data classification policy
Zone 2 — Structurally anonymizedCell-ID → cluster (k≥50 subscribers per cluster); timestamp → 1-hour bucket; duration → categorical bucket; k-anonymous with l-diverse sensitive columnsBroad internal — BI, analytics, data productsYears (outside GDPR scope if validated)
Zone 3 — DP-guaranteedAggregated statistics with calibrated noise (ε ≤ 1.0); synthetic CDR data with DP guaranteesWidest — partners, regulators, data monetizationIndefinite
Adapt

Adjust zone retention, k thresholds, and ε values to the client's regulatory context and risk appetite. For external sharing scenarios, consider whether Zone 3 is needed or whether Zone 2 with access controls suffices. For internal-only analytics, Zones 2 and 3 can collapse into a single anonymized tier.

Key components​

ComponentGCP serviceRole
IngestionPub/SubReceives raw CDR stream from mediation layer
PII detection + transformationSensitive Data Protection (SDP)Detects MSISDNs, IMSIs, IMEIs via custom InfoTypes; applies HMAC transforms via CryptoHashConfig with kms_wrapped key
Pipeline orchestrationDataflow (Apache Beam)Streaming pipeline: SDP transforms → schema validation → BigQuery write (Zone 1). Quasi-identifiers pass through at original granularity.
Raw bufferCloud StorageZone 0: 7-day retention of unmodified CDRs for reprocessing
Data warehouseBigQueryHosts Zones 1–3 as separate datasets with policy tags and DDM rules
Key managementCloud KMS (HSM protection level)Manages the symmetric KEK that wraps the separately generated HMAC secret. Configure KEK rotation explicitly (recommended: 90 days); auto-rotation does not re-wrap existing blobs — explicit re-wrap needed before disabling old KEK versions
Access controlBigQuery policy tags + IAM + VPC-SCColumn-level masking, role-based access per zone, network perimeter around Zones 0–1
ClassificationSDP discovery serviceContinuous profiling of BigQuery datasets; auto-detection of new PII columns
AuditCloud Audit LogsAdmin Activity + Data Access logs for all anonymization pipeline operations
Structural anonymizationARX (containerized batch job)k-anonymity + l-diversity on Zone 1 → Zone 2 batch pipeline
DP aggregationPrivacy on Beam / BigQuery DIFFERENTIAL_PRIVACYCalibrated noise on aggregate queries for Zone 3 outputs
Adapt

For on-prem or hybrid: replace Pub/Sub with Kafka, Dataflow with Spark Structured Streaming, SDP with Presidio, BigQuery with Hive + Apache Ranger, Cloud KMS with HashiCorp Vault. See Module 05 for the full mapping.

Data flow​

Zone 0 (raw buffer). Pub/Sub fans out to both a Cloud Storage sink (Zone 0, 7-day retention for reprocessing) and the Dataflow transformation pipeline. Zone 0 holds unmodified CDRs — accessible only to mediation systems and the reprocessing pipeline, behind VPC-SC.

Zone 0 → Zone 1 (streaming). The Dataflow pipeline applies SDP de-identification templates: HMAC-SHA256 via CryptoHashConfig (with a kms_wrapped HMAC key) for MSISDNs, IMSIs, and IMEIs. Quasi-identifiers (cell-IDs, timestamps, durations) pass through at original granularity — Zone 1 is pseudonymized, not structurally anonymized. Schema validation ensures no unrecognized fields pass through untransformed. Output lands in BigQuery pseudonymized_cdrs dataset with policy tags applied.

Zone 1 → Zone 2 (batch). A scheduled ARX batch job (containerized on Cloud Run) reads from Zone 1 and applies the structural anonymization transforms: cell-ID generalization to clusters, timestamp bucketing to 1-hour windows, duration categorization, and k-anonymity (k≥50) with l-diversity on sensitive columns. This is where quasi-identifiers are coarsened — the step that closes the gap between identifier substitution and genuine anonymization. Output lands in anonymized_cdrs — available for broad internal analytics.

Zone 1 → Zone 3 (batch or query-time). Privacy on Beam aggregates Zone 1 data with calibrated Laplace/Gaussian noise (ε ≤ 1.0) for partner feeds and data monetization outputs. Alternatively, BigQuery's DIFFERENTIAL_PRIVACY clause provides query-time DP for ad hoc analytical queries. Output in dp_outputs is suitable for external sharing, subject to validated DP configuration (contribution bounds, δ, and cumulative budget tracking across releases — see Module 04).

Security and access model​

ZoneIAM boundaryColumn-level controlsNetwork perimeter
Zone 0Project-level IAM; explicit deny for human users; pipeline service account is the only readerN/A — no human query accessVPC-SC perimeter containing Zones 0–1
Zone 1Dataset-level IAMPolicy tags with DDM: fineGrainedReader (engineers) sees pseudonyms; maskedReader (analysts) sees nullified/hashed valuesVPC-SC perimeter (same as Zone 0)
Zone 2Dataset-level IAM; broad internal accessNo masking needed — data is structurally anonymizedOutside VPC-SC perimeter
Zone 3Table-level IAM; includes external principalsNo masking needed — data has DP guaranteesOutside VPC-SC perimeter

Key management: The HMAC secret is generated separately and wrapped with a Cloud KMS symmetric KEK at HSM protection level. The wrapped blob is stored in the SDP de-identification template. At transform time, the SDP service agent calls KMS to unwrap the HMAC key — grant it cloudkms.cryptoKeyVersions.useToDecrypt on the KEK. Configure KEK rotation explicitly (recommended: 90 days); auto-rotation does not re-wrap existing blobs — schedule explicit re-wraps before disabling old KEK versions. No human user has direct access to the HMAC key material.

Audit trail: Cloud Audit Logs capture administrative actions (SDP template changes, KMS key operations, IAM policy changes, Dataflow job lifecycle) via Admin Activity logs and data access events (BigQuery queries) via Data Access logs. Logs are exported to a separate audit project with immutable retention.

Adapt

For clients with stricter key sovereignty requirements (e.g., Swiss banking), use Cloud EKM to hold keys outside Google's infrastructure. For multi-jurisdictional deployments, consider per-region KMS keys with separate DEKs per jurisdiction.

Implementation roadmap​

PhaseDurationDeliverablesOutcome
0 — Discovery + quick wins2–4 weeksGap analysis, classification map, remediation roadmap. Replace unsalted hashing with HMAC. Add policy tags to BigQuery.Measurable risk reduction; documented plan
1 — Core pipeline (Zones 0–1)6–8 weeksDataflow streaming pipeline with SDP transforms, Cloud KMS key management, BigQuery zone structure, SDP discovery, Cloud Audit LogsFunctioning pseudonymization pipeline with proper key management and access controls
2 — Structural anonymization (Zone 2)6–8 weeksARX batch job, generalization hierarchies, automated privacy checks (PII scanning, k-anonymity assertions)Zone 2 dataset available for broad internal analytics
3 — DP outputs (Zone 3)6–8 weeksPrivacy on Beam / BigQuery DP integration, DP budget tracking, synthetic data pipeline (if needed)Formally private output channel for external consumption
4 — Governance (ongoing)Parallel with Phases 1–3Anonymization policy, RACI matrix, periodic re-assessment cadence, incident response proceduresSustainable governance framework
Adapt

Phase sequencing depends on the driver. Regulatory deadline → compress Phases 0–1. Partner data-sharing deadline → prioritize Phase 3. Compliance audit → start with Phase 4 documentation while building Phases 1–3 in parallel. See Module 13 for alternative sequencing.

Cost and effort estimate​

Assumptions: 3-person Aliz engineering team, existing GCP environment with BigQuery and Dataflow, CDR volume ~50M records/day, client data engineering team available for integration work.

PhaseAliz effortKey GCP cost drivers
Phase 02–3 person-weeksMinimal — SDP inspection ($0.03/GB for profiling), ARX risk analysis (open-source)
Phase 18–12 person-weeksDataflow (streaming job compute), Cloud KMS (1/key/month+1/key/month + 0.15/10K HSM operations), SDP de-identification (per-transform pricing)
Phase 26–8 person-weeksARX compute (Cloud Run jobs), BigQuery storage for Zone 2 dataset
Phase 36–8 person-weeksPrivacy on Beam compute, BigQuery storage for DP outputs, synthetic data generation compute (if applicable)
Phase 42–4 person-weeks (initial)N/A — organizational/documentation work

Ongoing operational cost: primarily Dataflow streaming compute, BigQuery storage across zones, and Cloud KMS key operations. SDP discovery adds 0.03/GBforcontinuousprofiling—evaluatethediscoverysubscriptionmodel(0.03/GB for continuous profiling — evaluate the discovery subscription model (2,500/unit/month) for organizations with >83 TB to profile.

Adapt

Estimates assume a single-vertical, single-region deployment. Multi-region, multi-jurisdictional, or on-prem/hybrid deployments add complexity. Client-side effort (governance setup, stakeholder alignment, DPIA preparation) is not included — scope this separately during discovery.