Loading...

Skip to main content

Tooling Reference

GCP and OSS tool cards for anonymization pipelines. Each card covers purpose, capabilities, pricing, limitations, and integration patterns. Restructured from Module 05 with key management details from Module 07 for quick lookup during pipeline design.

Abbreviations used throughout: SDP = Sensitive Data Protection; HMAC = keyed-hash message authentication code; FPE = format-preserving encryption; DDM = dynamic data masking (BigQuery policy tags); ARX = open-source structural anonymization tool.

For the techniques each tool implements, see the techniques reference. For pipeline architecture integration, see architecture patterns.

Tool-to-task quick reference​

TaskGCP toolOSS alternative
PII detection (structured)SDP InspectionPresidio-Structured
PII detection (text)SDP InspectionPresidio (NLP β€” stronger for unstructured text)
Pseudonymization (FPE, hash, det. enc.)SDP De-identificationCustom HMAC/FPE libraries
Dynamic data maskingBigQuery DDMApache Ranger (Hadoop/Spark)
k-anonymity, l-diversity, t-closenessβ€”ARX (no GCP equivalent)
Differential privacy (SQL)BigQuery DIFFERENTIAL_PRIVACYβ€”
Differential privacy (pipelines)Privacy on BeamPipelineDP (Spark), OpenDP
Key managementCloud KMSHashiCorp Vault
Risk assessment / auditβ€”ARX, sdcMicro
Synthetic data (no DP)β€”SDV
Synthetic data (with DP)β€”DPSynth, Gretel (SaaS)

GCP tools​

SDP β€” Sensitive Data Protection​

Inspection​

FieldDetail
PurposeFind PII in structured and unstructured data
Key capabilities150+ built-in InfoTypes; custom regex/dictionary/stored InfoTypes; likelihood scoring (VERY_UNLIKELY to VERY_LIKELY); three scan modes (inline API, async jobs, Dataflow templates)
Discovery serviceContinuous profiling of BigQuery, Cloud SQL, GCS, Vertex AI, S3, Azure Blob. Outputs to Knowledge Catalog (aspects), Security Command Center, BigQuery, Pub/Sub.
LimitationsRegex-based, not NLP β€” weaker on unstructured text than Presidio
When to useDefault for GCP; structured data scanning; continuous discovery

De-identification​

FieldDetail
PurposePer-record transformation
Key capabilities8 transform types: FPE (CryptoReplaceFfxFpeConfig), AES-SIV deterministic encryption (CryptoDeterministicConfig), keyed hash (CryptoHashConfig), character masking, date shift, bucketing, replace with InfoType, redact. All configurable in reusable templates; Terraform-manageable.
LimitationsPer-record only β€” no structural anonymization (k-anonymity) or DP. Single fixed crypto_key per template β€” no per-subject keying.
When to useDefault for per-record transforms on GCP; combine inspection + de-identification in single API call

Pricing​

Verify before quoting to clients

Pricing and quotas below are a snapshot β€” verify against the official SDP pricing page and quotas page before including in any client-facing material.

OperationFirst 1GB free1GB–50TB50TB+
Content inspectionYes$3.00/GB$2.00/GB
Content transformationYes$2.00/GB$1.00/GB
Storage inspectionYes$1.00/GB$0.75/GB
Storage transformationYes$1.00/GB$0.75/GB
Discovery profilingβ€”$0.03/GBβ€”

Cost optimization: Use storage jobs (1/GB)overcontentAPI(1/GB) over content API (3/GB) when data is already in BigQuery/GCS. RedactConfig + ReplaceWithInfoType are free when combined with inspection.

Quotas​

Quota structure is multi-layered β€” verify against the official SDP quotas page for current limits.

LimitValue
Requests/min per region (global endpoint)600
Requests/min per region (regional endpoint)100
Max payload per request0.5 MB / 50k values

BigQuery DDM (Dynamic Data Masking)​

FieldDetail
PurposeDynamic masking β€” different users see different values at query time
SetupKnowledge Catalog taxonomy β†’ policy tags β†’ column bindings β†’ masking rules β†’ IAM roles
Masking rulesSHA-256, Nullify, Default Value, Date Year Mask, Last 4 Characters
Access tiersfineGrainedReader (see real values), maskedReader (see masked values), denied (no access)
StrengthsNo separate copies; declarative; Terraform-manageable; works on Iceberg tables
LimitationsOnly for BigQuery-routed queries β€” bypassed on data export or Spark/Trino direct reads
Critical caveatAccess control, NOT anonymization. Never use as sole measure for data crossing organizational boundaries.
When to useWithin-zone access control where different teams need different views

BigQuery Differential Privacy​

FieldDetail
PurposeDP aggregate queries with calibrated noise
SyntaxSELECT WITH DIFFERENTIAL_PRIVACY OPTIONS(epsilon=, delta=, max_groups_contributed=, privacy_unit_column=)
CapabilitiesAutomatic noise injection on aggregate functions; automatic small-group suppression
LimitationsStandalone DIFFERENTIAL_PRIVACY queries have no cumulative budget tracking β€” each query independent. BigQuery Data Clean Rooms can enforce cumulative budgets via analysis rules. Standalone use is suited for materialized outputs, not interactive exploration.
When to useSimple materialized DP outputs (one query β†’ result table consumed freely)

Cloud KMS​

FieldDetail
PurposeKey lifecycle management for anonymization transforms
ArchitectureTwo-tier hierarchy: KEK (in KMS) wraps DEK (in pipeline config / Secret Manager)
Protection levelsSOFTWARE (dev), HSM (production default β€” FIPS 140-2 Level 3), EXTERNAL/EXTERNAL_VPC (regulated β€” Swiss FADP/FINMA)
RotationAutomatic rotation for ENCRYPT_DECRYPT keys only. MAC keys require manual version creation (Cloud KMS API constraint). For pseudonymization, HMAC rotation should be event-driven regardless β€” a new key version produces different pseudonyms, breaking join continuity.
Key featuresEnvelope encryption pattern; audit logging; IAM separation of key admin vs. key use
When to useAlways β€” production key management for pseudonymization

Key rotation schedules​

Key typeTypical rotationAutomationImpact
KEK90 days (CIS default)Cloud KMS automaticNon-disruptive; old versions still unwrap existing DEKs
DEK (pseudonymization)6–12 monthsCoordinated migrationDisruptive β€” breaks joins until re-pseudonymized
HMAC keyRarelyManualPermanent continuity break; deliberate lifecycle event only

Dataflow (Apache Beam)​

FieldDetail
PurposePipeline execution engine for anonymization at scale
Key capabilitiesStreaming + batch; integrates SDP via direct API calls or pre-built templates; ARX / Privacy on Beam as batch stages
When to useDefault execution engine for GCP anonymization pipelines

OSS tools​

ARX Data Anonymization Tool​

FieldDetail
PurposeStructural anonymization β€” the primary production tool for k-anonymity, l-diversity, t-closeness
Key capabilitiesPrivacy models (k-anon, l-diversity variants, t-closeness, Ξ΄-presence, DP); generalization hierarchy exploration; utility metrics; risk analysis (prosecutor/journalist/marketer); suppression control
LanguageJava (library + GUI)
IntegrationContainerize for Cloud Run jobs or Dataflow batch
LimitationsBatch only; no streaming
When to useStructural anonymization (Zone 1 β†’ Zone 2); risk assessment for audit evidence
When NOT to usePer-record transforms (use SDP)
Key factNo GCP equivalent exists β€” ARX fills the k-anonymity gap

Privacy on Beam​

FieldDetail
PurposePipeline-grade DP with composition budget tracking
Key capabilitiesDP-aware Beam aggregations (Count, Sum, Mean, Quantiles); automatic composition tracking; partition selection (suppress small groups)
IntegrationRuns on Dataflow, Flink, Spark via Beam runners
When to useDP pipelines needing cumulative budget tracking, multiple aggregations, complex multi-stage composition

PipelineDP​

FieldDetail
PurposeDP primitives with native Spark integration
LanguagePython / JVM
When to useClients with existing Spark infrastructure who don't want to adopt Beam

Microsoft Presidio​

FieldDetail
PurposeNLP-powered PII detection
Key capabilitiesRegex + NLP (spaCy NER) + context rules; custom entity recognizers; Presidio-Structured for PySpark DataFrames
LimitationsTransform set narrower than SDP (no FPE, no det. enc., no bucketing) β€” strongest as detection engine
When to useOn-prem / multi-cloud; heavy unstructured text; PySpark pipelines; cost optimization at high volume
When NOT to useAs sole transform engine β€” pair with SDP or custom transforms

OpenDP​

FieldDetail
PurposeComposable DP with formal verification (MIT / Harvard)
LanguageRust core / Python bindings
Key capabilitiesMachine-checkable proofs per operation; fine-grained composition control
When to useWhen auditable, formally verified DP guarantees are required

SDV (Synthetic Data Vault)​

FieldDetail
PurposeSynthetic data generation (tabular, relational, time-series)
Key capabilitiesMultiple synthesizers; evaluation metrics for disclosure risk and attribute inference. Full membership inference testing requires a separate train/holdout attack model (see Module 12).
LimitationsNo native DP mode β€” requires separate disclosure-risk evaluation; memorization risk on small datasets
When to useML training data, dev/test environments, record-level external sharing
When NOT to useWhen formal DP guarantees needed without separate validation β€” use DPSynth or Gretel DP mode

DPSynth​

FieldDetail
PurposeDifferentially private synthetic data generation (google/dpsynth)
LanguagePython (NumPy/JAX in-memory; Apache Beam pipeline mode)
Key capabilitiesDP-guaranteed synthesis for tabular, relational, nested, sequence, and text data. Mechanisms include AIM (adaptive iterative marginals), MST (maximum spanning tree), and SWIFT (scalable high-dimensional). In-memory mode for datasets up to ~100M rows; pipeline mode on Apache Beam for distributed processing on Dataflow. Post-processing mode for pre-computed noisy marginals.
LimitationsUnder active development; not an officially supported Google product. Tabular mode is most mature; other modalities are experimental.
When to useZone 3 synthetic data that requires formal DP guarantees β€” partner sharing, ML training data, external analytics. The Beam pipeline mode maps naturally onto Dataflow for large-scale GCP deployments.
When NOT to useWhen DP is not required and SDV's richer evaluation metrics suffice; when a fully managed SaaS solution is preferred (Gretel)

Google DP Libraries​

FieldDetail
PurposeLow-level DP primitives
LanguagesC++, Go, Java
Key capabilitiesCount, Sum, Mean, Quantiles with calibrated noise
When to useBuilding custom DP applications; typically accessed via Privacy on Beam

sdcMicro​

FieldDetail
PurposeStatistical disclosure control metrics
LanguageR
Key capabilitiesRisk reports recognized by European DPAs
When to useFormal risk quantification for audit / regulatory evidence
When NOT to usePipeline integration (not designed for it)

Amnesia​

FieldDetail
Purposek-anonymity / t-closeness with web GUI
When to useWorkshops with non-technical users; quick demonstrations
When NOT to useProduction pipelines

GCP vs. OSS selection guide​

FactorManaged (GCP)Self-hosted (OSS)
Operational overheadLowMedium–high
Cost at scalePer-GB-processed; expensive at CDR volumesCompute only; cheaper for very high throughput
Technique coveragePer-record, DP, masking. No k-anonymity.Full k-anon/l-div/t-close (ARX). DP (OpenDP, PipelineDP).
IntegrationNative GCP (BigQuery, Dataflow, IAM, KMS)Custom; containerization
Compliance postureSOC 2, ISO 27001, HIPAA inheritedSelf-assessed
Data residencyRegional endpointsFull control
Vendor lock-inModerate β€” SDP APIs are GCP-specificNone

Typical production stack: SDP (per-record transforms) + BigQuery DDM (access control) + Cloud KMS (key management) + ARX (structural anonymization) + Privacy on Beam or BigQuery DP (differential privacy). GCP handles per-record and access control; OSS fills the structural anonymization and advanced DP gaps.