Data Security (DSPM)

Data Security Posture Management (DSPM) answers two questions security teams cannot answer manually at cloud scale: where is your sensitive data, and is it properly secured? Onam's Data Security engine discovers every data store across cloud storage, databases, and data pipelines — managed AND shadow stores — classifies the data inside them as PII, PCI, or PHI, and grades each store for encryption, access control, retention, and logging.

This page explains the four-stage DSPM pipeline, the classification taxonomy, how exposure levels determine severity, and how data-flow analysis catches sensitive data leaking into less-secure downstream stores.

Data security posture management
Data security posture management
The data security view in the Onam console (demo account)
The data security view in the Onam console (demo account)

What DSPM Solves

Every cloud organization hits the same five data-security failure modes. They share a single root cause: new data stores are created faster than they are reviewed, classified, and secured.

Failure modeWhat it looks likeWhy it happens
Shadow data storesAn S3 bucket created for a one-off task that quietly accumulates production dataBucket creation is one API call; governance is a multi-step process
Over-exposed dataA public bucket with PII inside, discovered by a third-party researcherA misclick in bucket settings or IAM copied from a public-asset bucket
Unencrypted sensitive dataAn RDS instance holding PII without encryption at restDefault encryption was opt-in for years; legacy databases predate the default-on era
Stale sensitive dataAn old backup bucket with customer data from a deprecated product, never purgedLifecycle policies get forgotten when the owner leaves the team
Misconfigured accessDevelopers with direct read access to the production customer databaseIncident-response convenience that nobody removed afterward

DSPM closes the gap by re-evaluating every data store on every scan — managed stores, shadow stores, backups, snapshots, and the pipelines that move data between them.

How DSPM Works

DSPM runs as a four-stage pipeline against every data store in your connected accounts: Discover what exists, Classify what's inside, Evaluate the security controls, Emit prioritized findings. The pipeline is agentless — no database extensions, no inline scanners, no network taps.

DSPM 4-stage pipeline — Discover, Classify, Evaluate, Findings
DSPM 4-stage pipeline — Discover, Classify, Evaluate, Findings

1. Discover — find every data store

The engine enumerates every data store reachable from your read-only credential, including ones nobody is tracking:

  • Object storage — every S3 bucket, Azure Blob container, GCS bucket, OCI Object Storage bucket, Alibaba OSS bucket, and IBM COS bucket, including buckets untouched for a year.
  • Managed databases — RDS (every engine), Azure SQL, Azure DB for Postgres/MySQL, Cosmos DB, Cloud SQL, BigQuery, DynamoDB, Redshift, Synapse, and more.
  • Shadow stores — self-managed databases on compute instances, attached volumes containing data files, orphaned RDS snapshots. Detected through instance-metadata pattern matching, security-group inspection, and data-file fingerprinting.

A typical AWS account has 2–3x more shadow stores than the security team is tracking. Surfacing them is half the value of DSPM.

2. Classify — identify what's sensitive

For every discovered store, the engine samples a small, statistically valid window of content using your read credential, returns only matched-pattern metadata, and discards the sampled data immediately. Bulk data never leaves your cloud account.

Classification combines regex patterns, format validators (Luhn for cards, mod-11 for national IDs), and ML models for ambiguous cases. Each classification carries a confidence score; below a configurable threshold the data is flagged "possibly sensitive" rather than positively classified.

3. Evaluate — check the security controls

For every store containing sensitive data, four control axes are evaluated, plus residency for regulated data:

  • Encryption at rest — is a KMS-managed key in use, is rotation enabled, is the key shared more broadly than it should be?
  • Access controls — is the store public, reachable from external accounts, or broader than the workload needs? (The CIEM signal feeds in here.)
  • Retention — is a lifecycle policy in place, and is data older than the policy window flagged?
  • Logging — are access logs enabled and tamper-proof? Can you reconstruct who read what for the last 90 days?
  • Residency — PCI cardholder data or GDPR-scoped data outside the approved geographic region is flagged immediately.

4. Findings — prioritized, framework-mapped output

Each finding includes the affected store, the data classification, the failed control, the suggested fix, framework citations (GDPR, PCI-DSS, HIPAA, ISO 27001), and the MITRE ATT&CK technique where applicable.

DSPM platform view — sensitive data discovery, classification, and exposure risk
DSPM platform view — sensitive data discovery, classification, and exposure risk

Data Classification

Onam classifies data into five sensitivity categories. Each maps to specific regulations and triggers different finding severities. You can extend the catalog with custom data classes under Settings → DSPM → Custom Patterns.

CategoryExamplesCompliance triggerSeverity if exposed
PII — personal dataFull name, email, phone, address, SSN, DOB, government IDs, passport numbersGDPR · CCPA · LGPD · PIPLCritical
PCI — payment dataCard PAN (Luhn-validated), CVV, expiry, cardholder name, bank account numbersPCI-DSS v4.0Critical
PHI — health dataMedical record IDs, patient name + diagnosis, prescriptions, insurance IDs, lab resultsHIPAA · HITECH · GDPRCritical
Confidential — businessSource code, M&A documents, salary data, legally privileged documentsNDA exposure · trade-secret riskHigh
Credentials — high riskAPI keys, plaintext passwords, private keys, connection strings with embedded credsUniversal — every frameworkCritical
Credentials are graded Critical in every context because a leaked credential cascades: an attacker with an API key pivots into the system it authorizes, exfiltrates more data, and mints more credentials. Onam treats credential leakage as the worst-case category by default.

Data Exposure Levels

Every classified store is rated against four exposure tiers. The combination of sensitivity and exposure determines severity.

Data exposure levels — Public, External, Internal, Restricted
Data exposure levels — Public, External, Internal, Restricted
LevelWho can reach itDefault platform response
PublicAnyone on the internet, no authenticationCritical finding if data is sensitive — immediate alert
ExternalAuthenticated users outside your organization (other cloud accounts, partners, contractors)High finding — trust review prompted
InternalAnyone authenticated within your tenantMedium finding if scope is broader than the workload needs
RestrictedOnly specific named principals — least privilege enforcedNo finding — this is the target posture

The combination matrix that determines severity:

Sensitivity vs exposurePublicExternalInternalRestricted
PII / PCI / PHICriticalHighMediumNo finding
Confidential — businessCriticalHighMediumNo finding
CredentialsCriticalCriticalHighMedium
Public-class dataNo findingNo findingNo findingNo finding

Intentionally public assets (website images, public docs, marketing content) never produce findings — once you confirm a bucket as intentionally public, Onam stops alerting on it in future scans.

Supported Data Stores

Both fully managed stores and self-managed stores running on cloud compute are detected.

CategoryServices covered
Object storageAWS S3, Azure Blob Storage, GCP Cloud Storage, OCI Object Storage, Alibaba OSS, IBM COS
Managed relationalAWS RDS (MySQL, PostgreSQL, MariaDB, Oracle, SQL Server, Aurora), Azure SQL, Azure DB for PostgreSQL/MySQL, GCP Cloud SQL, OCI DB Systems
Managed NoSQLDynamoDB, Cosmos DB, Firestore, Bigtable, Alibaba Table Store
Data warehousesAmazon Redshift, Azure Synapse, BigQuery, Snowflake (via connector)
StreamingAmazon Kinesis, Azure Event Hubs, GCP Pub/Sub
Secrets and configAWS Secrets Manager, Azure Key Vault, GCP Secret Manager (metadata only — secret values are never read)
Self-managed (shadow)Postgres / MySQL / MongoDB / Redis on compute instances, attached volumes with data files, RDS and Aurora snapshots, machine images with embedded data

Snowflake is supported via a read-only connector you authorize on the Snowflake side. Databricks support is on the roadmap.

Key DSPM Findings

The ten most-encountered DSPM findings. Re-grade per finding type in Settings → DSPM → Severity Policy.

FindingSeverityDescription
Public S3 bucket contains PIICriticalBucket accessible without auth, contains personal data
RDS instance with PII — no encryption at restCriticalSensitive data stored unencrypted on disk
Database with PII — public endpointCriticalDatabase listening on a public IP, no IP allowlist
Bucket with PII — no access loggingHighNo audit trail for who read the data
Over-privileged access to PII storeHighDevelopers or shared roles with direct prod-data read
Backup bucket with PII — no lifecycle policyHighSensitive data not deleted per retention schedule
PCI data in non-compliant regionHighCardholder data stored outside approved geography
PHI with unencrypted backupsHighHIPAA violation — automatic backups not encrypted
Secrets found in object storageHighAPI keys or passwords stored as objects
Stale PII — not accessed in 1+ yearMediumData exists beyond likely retention requirement

Each finding includes sample matched-pattern metadata (never the data itself), suggested remediation, and framework citations such as GDPR Art. 32, PCI-DSS Req 3.4, and HIPAA §164.312.

Data Flow Analysis

Sensitive data rarely stays in one place — it moves through ETL pipelines, backup jobs, analytics exports, and BI tools. A secure source database means nothing if a downstream pipeline lands the same data in a public bucket. DSPM follows the flow.

Data flow analysis — PII from a secure RDS source spreading through downstream stores with different exposure levels
Data flow analysis — PII from a secure RDS source spreading through downstream stores with different exposure levels

The worked example: a production RDS instance is configured correctly — encrypted, VPC-only, audit-logged. But three pipelines move its data onward:

HopDestinationPostureFinding
ETL pipelineStaging S3 bucketPublic, no encryption, no loggingCritical — PII exposed to internet
Backup jobS3 backup bucketNo lifecycle policy, data stale 18+ monthsHigh — retention violation
Analytics exportRedshift warehouseBroad read access, 47 users, weak access logsMedium — over-privileged access
Redshift to BI toolTableau / Power BIExternal viewer accounts, no MFAMedium — external exposure

Onam traces these flows automatically by reading IAM permissions (which identities can read which source), pipeline definitions (Lambda, Glue, Data Factory, Dataflow), and snapshot/backup configuration. Every downstream store inherits the source's classification — when sensitive data lands in a less-secure store, that is the finding.

Compliance Mapping

One DSPM finding usually triggers controls in three or more frameworks at once. Per-framework rollups live on the Framework Coverage page.

Finding typeGDPRPCI-DSSHIPAAISO 27001
Public PII exposureArt. 32Req 1.3§164.312(e)A.8.20
Unencrypted PII at restArt. 32Req 3.4§164.312(a)A.8.24
Missing access loggingArt. 30Req 10.2§164.312(b)A.8.15
Over-privileged data accessArt. 5(f)Req 7.1§164.312(a)A.8.3
No data retention policyArt. 5(e)Req 3.1§164.530(j)A.8.10
Data residency violationArt. 44–50Req 3.5n/aA.5.34
Unencrypted PHI backupsn/an/a§164.308(a)(7)A.8.13

API

Data Security endpoints live under the unified platform API (/api/v1, behind the BFF gateway).

# List data security findings
GET /api/v1/data-security/findings?severity=CRITICAL&classification=PII

# Get data stores with sensitive data
GET /api/v1/data-security/stores?has_sensitive_data=true&exposure=public

# Get the data flow graph from a specific source
GET /api/v1/data-security/flow?source_resource_uid={uid}

Full schemas are in the API reference. Webhook delivery on new Critical DSPM findings can be configured under Settings → Notifications.

FAQ

Does Onam copy our data to scan it? No. Classification samples a small window using your read credential, returns only matched-pattern metadata, and discards the sample immediately. Bulk data never leaves your cloud account.

How are false positives handled? Every classification carries a confidence score; low-confidence matches are flagged "possibly sensitive" instead of positively classified. You can mark a store, file, or column "not sensitive" with a documented justification — the suppression carries through every future scan.

Can I exclude certain data stores from DSPM scanning? Yes, via tag-based exclusion (for example dspm:scan=false). Excluded stores still appear in inventory but are not classified or graded.

How often is data re-classified? Once per scan cycle (daily by default). A typical account with 200 buckets and 50 databases completes the DSPM stage in 5–8 minutes.

Can I use DSPM findings for residency compliance reports? Yes. Residency violations are tagged with the violated regulation and export as PDF audit evidence in one click.

Next steps