Get started

OpenSourceOM Team ·

CSPM vs CIEM vs CNAPP: Three Questions, Three Tools

CSPM, CIEM, and CNAPP answer three different questions. Use this one-page decision table to stop double-ticketing and choose buy versus compose.

  • CSPM
  • CIEM
  • CNAPP
  • tool selection
  • cloud security

CSPM, CIEM, and CNAPP are three questions, not three logos. Teams buy all three and then file two tickets per bucket because each product answers only its question. The long essay on posture-versus-platform is CSPM vs CNAPP. Identity-as-discipline is CIEM explained. This page is the split, the double-ticket, and a one-page buy-versus-compose table. OpenSourceOM sits on the compose side: one graph, three questions, scanners optional.

CSPM  "Is this object configured dangerously?"     → finding on a node
CIEM  "What can this principal do if stolen?"      → walk from an Identity
CNAPP "How do those connect into a usable chain?"  → path (the join)

If you cannot say which question a purchase answers, you are buying a SKU name.

The three questions

CSPM — configuration of a resource. Public storage, open management ports, encryption off, logging off. The unit is a node property (or a missing one). Azure enablement of that question is Azure CSPM; do not redo it here. A CSPM that never talks to IAM still has a job: catch the bucket ACL before anyone graphs it.

CIEM — entitlements of a principal. Unused keys, * actions, inbound trusts, privilege-minting actions. The unit is an identity walk. Blast radius is how you do one walk; CIEM is the backlog of walks.

CNAPP — correlation across both, plus workloads. The unit is a path. Vendors stuffed CWPP, DSPM, and a UI around that join and called it a platform. The join is the valuable part. Attack-path queries are attack path analysis.

Question Fires when Blind without the others
CSPM Resource config ≠ policy Won’t know the public bucket is empty vs holds PII vs is reachable from an admin role
CIEM Principal is over-privileged or unused Won’t know the role is only assumable from an isolated research account
Path / CNAPP-shaped Edges connect entry → finding → data Won’t tell you encryption-at-rest is off on an island you will never patch first

OpenSourceOM’s rules engine emits CSPM-shaped findings with path context so you do not operate three queues. That is a product choice, not a claim that CSPM as a question disappeared.

Failure mode: renaming the CSPM project “CNAPP” in the budget and skipping identity collectors. You bought a word.

Overlap that causes double tickets

Same bucket, three alerts:

  1. CSPM: s3-bucket-public-read
  2. CIEM: role/payments-task has s3:PutBucketAcl (or unused AdministratorAccess)
  3. Path: Internet → REACHABLE → (anonymous GetObject) → prod-pii

If Jira keys on rule id, you get three issues, three owners, three due dates. If Jira keys on node id (arn:aws:s3:::prod-pii) plus verb (exposure vs identity vs path), you keep one issue with hop list and close the others as duplicates.

Overlap matrix:

Pair Duplicate looks like Keep
CSPM ∩ path Public + “internet to bucket” Path ticket; CSPM hop is line 1
CIEM ∩ path Admin role + “role on the walk” Path ticket; identity hop is the cut
CSPM ∩ CIEM (no path) Public sandbox bucket + unused admin in another account Two tickets: they are not the same object
CWPP ∩ path CVE on the task + path through that task Path ticket; CVE is AFFECTS, not the only cut

OpenSourceOM finding ids should be path-shaped (entry + hops + objective) so a CSPM collector and an IAM collector upsert the same row when they describe the same walk. If you ingest Prowler and a commercial CIEM without a graph, you must dedup in the SIEM on ARN or you will staff a duplication team.

Failure mode: auto-closing the path ticket when the CSPM row hits “pass” because someone enabled Block Public Access, while the org-id bucket policy and the admin role remain. Different questions; different remaining hops.

Buy vs compose

Compose (OpenSourceOM-shaped):

Cloud APIs + existing scanners (Prowler, Trivy, Defender recs, GuardDuty)
        → collectors / normalizer
        → graph (CSPM rules + identity walks + MATCH)
        → one ticket stream

You already paid for scanners. You are missing the join. Open-source CSPM and CNAPP tools surveys the scanner layer; the graph and core are the join.

Buy a CNAPP suite when compose fails the constraints: no one to run Docker/K8s collectors, questionnaire requires a named vendor, you need CWPP runtime agents or DSPM data classification OpenSourceOM OSS core does not ship, or legal wants a BA.

Buy CSPM only when the estate is small, identity is already handled (Identity Center + no instance profiles with admin), and you accept flat findings. Add a graph when the queue exceeds what a human can VLOOKUP.

Buy CIEM only when posture is already green in Defender/Security Hub and the remaining incidents are all sts:AssumeRole / Entra role assignments. Still join to network or you will flag sandbox admin roles as Sev-1.

Do not buy CSPM and CNAPP and CIEM from three vendors “for coverage.” You bought three questions and three billable event streams.

A one-page decision table

Situation Primary question What to run What not to add
New org, public buckets and open 22 CSPM Defender CSPM / Security Hub / Prowler + org guardrails A full CNAPP RFP
Incidents are stolen keys and PassRole CIEM Access Analyzer + graph blast radius; PIM Another misconfig scanner
4k “criticals,” 40 closed per sprint Path OpenSourceOM (or CNAPP path module) on top of existing scanners A fourth scanner
Need runtime exploit detection CDR / CWPP See CDR vs CSPM; agents or cloud native detections Pretending CSPM is detection
Kubernetes CIS YAML only KSPM subset KSPM explained — not this table Gatekeeper as a CNAPP
Data residency, auditable scoring Compose OpenSourceOM self-hosted graph A SaaS that cannot leave region
Board wants one logo CNAPP buy One suite, disable duplicate CSPM/CIEM tickets Three logos anyway

Pick the row you are in this quarter. Re-pick when the queue shape changes. The category blog will still be there for vocabulary; this table is for the PO.

Failure mode: scoring vendors on “has CIEM, has CSPM, has DSPM, has CWPP” checkboxes. Score them on whether two modules open two Jiras for one ARN.

Checklist

  • Each tool (or module) mapped to one of: node config, identity walk, path join
  • Tickets keyed on node id + remaining hops, not on product rule id
  • Public-bucket CSPM row merged into the internet-to-bucket path ticket when both exist
  • No second CIEM product if the graph already walks CAN_ASSUME/CAN_ACCESS
  • Compose (scanners + OpenSourceOM) vs buy (suite) chosen from the table, not from a logo list
  • CWPP/DSPM/CDR not treated as CSPM; different questions, different telemetry
  • Budget does not fund three products answering the same question

Related: CSPM vs CNAPP · CIEM explained · Open source CSPM and CNAPP tools