cd ../blog

Platform Security vs AppSec vs Cloud Security: Who Owns What?

Platform SecurityPlatformSecurity TeamApr 20, 202613 min read

// INSIDER BRIEF — TUESDAYS

Don't read this and disappear.

The CVE teardowns, exploit notes, and red-team write-ups we don't publish go straight to subscribers. We send one email a week. You can unsubscribe at any time.

Read by security teams shipping in production.

If you have ever sat in a remediation meeting where five teams nodded at the same critical finding and nobody actually owned the fix, you already understand why this topic matters. The question is rarely whether a company has security people. The question is whether that company has clear ownership boundaries between Platform Security, AppSec, and Cloud Security, and whether those boundaries are practical under delivery pressure.

The phrase "platform security vs appsec" sounds academic until you are triaging a real incident, trying to decide who has authority to block a deployment, who can change IAM baselines, and who is accountable for application-level authorization flaws. The same is true for "product security vs platform security": both disciplines are essential, but they solve different risk classes and require different control points.

This guide is a detailed map of who should own what, where shared ownership tends to fail, and how to implement a model that reduces organizational dead zones.

Why Teams Confuse Platform Security, AppSec, and Cloud Security

Most modern companies deploy code to cloud-native infrastructure through internal platforms. That means product risk, infrastructure risk, and delivery-pipeline risk are tightly coupled. A single user-facing feature can involve API authorization logic, a GitHub Actions workflow, Terraform modules, Kubernetes admission settings, cloud IAM roles, and secrets flowing through multiple systems. If your org chart says "security owns security," you end up with a coordination problem disguised as a staffing model.

The confusion usually comes from four patterns.

First, teams define ownership by tooling instead of risk domain. Whoever bought the scanner owns the scanner output, but not necessarily the underlying control.

Second, organizations collapse security into one team too long, then split late without redefining interfaces.

Third, engineering platforms mature faster than governance. You get paved roads but no clear policy owners.

Fourth, leadership asks for outcomes ("fewer criticals," "faster audits") without assigning decision rights at the boundary points where outcomes are created.

Definitions That Hold Up in Real Environments

A useful model starts with risk domain and control plane, not job title.

Platform Security is responsible for securing the shared internal platform that product teams build on. That usually includes CI/CD guardrails, baseline identity controls, runtime policy enforcement, secrets delivery mechanisms, supply chain controls for build systems, and the security reliability of multi-tenant internal infrastructure. Platform Security reduces the chance that many services fail in the same way.

AppSec, often overlapping with Product Security in software companies, is responsible for security properties of the product itself and the way product teams build features. That includes secure design review, threat modeling, application-layer authorization, session and identity abuse cases, code-level vulnerability patterns, and developer guidance that turns findings into shipped fixes. AppSec reduces the chance that a specific product path is exploitable.

Cloud Security is responsible for cloud control-plane posture and resilience of cloud account architecture. That includes account/organization boundaries, IAM strategy in cloud providers, networking guardrails, storage exposure controls, logging integrity, and cloud-native detection and response foundations. Cloud Security reduces the chance of account-level compromise and cloud-wide blast radius.

The practical way to remember this is simple: AppSec secures what your product does, Platform Security secures how your product is built and run, and Cloud Security secures where your product lives.

Platform Security vs AppSec: The Boundary in One Sentence

If a control is primarily about secure feature behavior and business logic, AppSec should drive it. If a control is primarily about shared delivery/runtime infrastructure used by many teams, Platform Security should drive it. If a control is primarily about cloud account architecture and provider-native posture, Cloud Security should drive it.

That sounds clean, but many high-value controls are cross-cutting. The right answer is not "shared ownership" as a slogan. The right answer is explicit primary ownership plus required contributors.

Product Security vs Platform Security: Where It Usually Breaks

Many companies use "Product Security" and "AppSec" interchangeably. In practice, Product Security often includes AppSec plus customer-facing trust controls, while AppSec can be a narrower engineering-security function. Regardless of naming, the Product/AppSec side should own product-risk decisions, while Platform Security should own platform-risk decisions.

Failure starts when Product Security is forced to own platform controls without platform authority, or when Platform Security is expected to solve product authorization bugs with infrastructure policy. Both situations produce ticket ping-pong and long mean-time-to-remediation.

A useful litmus test is this: if the same fix should apply to nearly every engineering team through reusable platform controls, it belongs on the Platform Security roadmap. If the fix requires understanding business context, user roles, or domain workflows in one application, it belongs on the AppSec/Product Security roadmap.

Responsibility Matrix for Critical Security Domains

The matrix below uses "Primary" to indicate decision authority and delivery accountability, and "Contributing" to indicate required partnership.

Domain Platform Security AppSec / Product Security Cloud Security Platform Engineering Product Engineering
IAM baseline for workforce and machine identities Primary Contributing Primary (cloud IAM specifics) Contributing Contributing
Application authorization model (RBAC/ABAC in product) Contributing Primary Contributing Contributing Primary (implementation)
CI/CD hardening, provenance, build isolation Primary Contributing Contributing Primary (implementation) Contributing
Kubernetes cluster policy (admission, runtime defaults) Primary Contributing Contributing Primary (operations) Contributing
Secrets management architecture (issuance, rotation patterns) Primary Contributing (app usage patterns) Primary (cloud KMS/secrets services) Primary (integration) Primary (safe consumption)
Vulnerability management for runtime/base images Primary Contributing Contributing Primary Contributing
Dependency and code vulnerability triage in services Contributing Primary Contributing Contributing Primary
Cloud account posture and guardrails Contributing Contributing Primary Contributing Contributing
Security observability standards and telemetry requirements Primary Contributing Primary Primary Contributing
Threat modeling for new product capabilities Contributing Primary Contributing Contributing Primary

If you adopt this matrix, avoid a common trap: people read "Primary" as "works alone." In mature teams, primary owners define policy, minimum controls, and quality thresholds, but implementation still spans partner teams.

Ownership Boundaries by Control Area

IAM: Centralized Baselines, Local Authorization

IAM is where platform security vs appsec confusion appears fastest. Central security functions should define identity assurance standards, service identity patterns, key management policy, and privilege boundaries for infrastructure and delivery systems. Product teams, with AppSec guidance, should define application authorization semantics inside the product domain.

A practical split is to let Platform Security and Cloud Security own identity primitives and guardrails, while AppSec and Product Engineering own user-to-action permission models. If one team tries to own both globally, speed and quality both degrade because identity infrastructure and application semantics evolve on different timelines.

CI/CD: Platform-Led Guardrails, AppSec-Led Abuse Cases

CI/CD security belongs primarily to Platform Security and Platform Engineering because the system is shared and misconfiguration blast radius is broad. This includes hardened runners, ephemeral credentials, build provenance, artifact signing policies, and approval gates for high-risk workflows.

AppSec should still contribute heavily by modeling realistic abuse paths. For example, if pull-request automation can publish release artifacts without trusted provenance, that is not just a pipeline issue; it is a direct product integrity risk.

Kubernetes: Secure Defaults by Platform, Threat Context by AppSec

Kubernetes controls are often misassigned to whichever team is on-call for clusters. That is operationally convenient but strategically weak. Platform Security should define cluster security baselines and policy as code for admission, workload identity, network segmentation defaults, and privileged workload exceptions.

AppSec should provide threat context for workload behavior and risky application patterns, especially where business logic can be abused to trigger privileged internal actions. Cloud Security should ensure cluster architecture aligns with broader cloud account boundaries and logging/compliance posture.

Secrets: Architecture Is Central, Consumption Is Local

Secrets management fails when architecture and usage are treated as one task. Platform Security and Cloud Security should own how secrets are stored, brokered, rotated, and audited. Product teams should own how secrets are consumed, ensuring least privilege, short token lifetimes where possible, and zero secret material in logs or client artifacts.

AppSec plays a crucial role here by translating findings into secure coding patterns and by preventing anti-patterns like long-lived static credentials hidden in service config.

Vulnerability Management: Split by Asset Class, Unified by Policy

Vulnerability management is not one queue. It should be segmented by asset class with explicit policy interfaces. Platform Security and Platform Engineering should own vulnerabilities in shared build/runtime layers and base artifacts. AppSec and Product Engineering should own application dependency and code-level vulnerabilities. Cloud Security should own cloud-service and account-level posture weaknesses.

Unified policy still matters. Severity models, exception processes, and remediation SLAs should be governed consistently even when execution owners differ.

Common Organizational Shapes and Their Trade-Offs

There is no universal org chart, but there are common patterns with predictable failure modes.

The centralized model puts AppSec, Platform Security, and Cloud Security under one security engineering organization. It reduces policy conflict early and is useful for small companies, but it can become a bottleneck as product and platform complexity increase.

The federated model has a central security engineering core with embedded product security engineers in major product domains. It scales domain context well, but only if central Platform Security and Cloud Security teams still maintain strong cross-company standards.

The platform-embedded model places security engineers directly inside platform engineering. It can ship controls quickly because ownership and implementation sit together, but it risks under-investing in product abuse cases unless AppSec remains strong and independent enough to challenge assumptions.

The anti-pattern model is implicit ownership, where responsibility lives in tribal knowledge and meeting notes. This looks agile until a high-severity incident reveals no one has authority to make hard trade-offs.

How Ownership Fails in Real Life

Failure mode one is bilateral ambiguity. AppSec believes Platform Security owns CI/CD secret leakage because it originates in the pipeline. Platform Security believes AppSec owns it because leaked tokens are used against application APIs. The issue remains open across three sprints and eventually becomes an incident.

Failure mode two is authority without implementation capacity. A central security team writes strict policies for Kubernetes admission control but has no engineering partnership to implement policy changes safely. Teams start adding exceptions, then normalize bypasses.

Failure mode three is implementation without policy authority. Platform Engineering deploys vulnerability gates with good intent, but severity thresholds and exception logic are undefined. Product teams either suffer false-positive fatigue or quietly route around the controls.

Failure mode four is metrics that hide boundary failure. Leadership sees "time to patch criticals" improving while unresolved cross-team ownership issues accumulate in "awaiting decision" states that are not counted as overdue remediation.

A Practical Operating Model That Works

The fastest way to reduce confusion is to formalize interfaces, not add meetings. Start with control charters for each security domain. A control charter should define objective, primary owner, mandatory contributors, enforcement point, escalation path, and measurable service level.

Then establish decision rights. Who can block a production deploy? Who can approve IAM exceptions? Who can accept risk on behalf of the business? If these are not explicit, your matrix will fail under stress.

Next, implement a quarterly boundary review. As architecture changes, ownership must evolve. New runtime models, new cloud accounts, and new product lines all create drift between the documented model and actual accountability.

Finally, align incentives. If Platform Security is evaluated only on policy coverage but Product Engineering is evaluated only on feature throughput, security boundaries will be treated as external constraints instead of shared reliability goals.

Example: Ownership as Code

Even if your source of truth starts as a document, teams move faster when ownership is represented in machine-readable form. The example below can be adapted into your internal controls catalog.

control_id: SEC-CICD-001
name: "Build provenance and trusted artifact promotion"
objective: "Ensure production artifacts originate from approved, verifiable pipelines."
primary_owner: "Platform Security"
contributors:
  - "Platform Engineering"
  - "AppSec"
  - "Release Engineering"
enforcement_points:
  - "CI runner policy"
  - "Artifact registry admission rules"
  - "Deploy-time signature verification"
exceptions:
  approver_role: "Director, Platform Security"
  max_duration_days: 14
metrics:
  - "percent_signed_artifacts"
  - "unsigned_deploy_block_rate"
  - "exception_age_p95"

The value is not YAML itself. The value is reducing interpretation gaps by defining ownership, enforcement, and exceptions in the same place.

A Lightweight Diagram for Internal Alignment

If you want a single visual to use in onboarding or security review kickoffs, this simple flow helps teams understand ownership boundaries without implying that work happens in strict sequence.

               [Cloud Security]
                      |
   cloud guardrails, account architecture, provider IAM
                      |
[Platform Security] ------ shared controls ------ [AppSec / Product Security]
      |                                               |
  CI/CD, runtime policy,                          secure design, authZ,
  secrets architecture                             code risk, abuse cases
      |                                               |
      +------------------- [Product Engineering] -----+
                      implements product behavior

This framing reinforces an important reality: Product Engineering implements many controls, but security functions define standards, verify outcomes, and retain authority at different layers.

Implementation Checklist Without the Checkbox Mindset

Start by publishing a one-page matrix for IAM, CI/CD, Kubernetes, secrets, and vulnerability management using primary owner plus contributors. Then define three explicit decision rights for each domain: who sets standards, who grants exceptions, and who can enforce blocking controls.

After that, map your top ten recurring findings from the last two quarters to the matrix. Where findings repeatedly cross boundaries, you probably have ownership ambiguity rather than purely technical debt.

Then create a shared quarterly scorecard with a small number of boundary-sensitive metrics, such as exception age, policy bypass volume, remediation cycle time for cross-team findings, and repeat findings caused by unclear control ownership.

Finally, run one tabletop per quarter using a realistic failure path that crosses AppSec, Platform Security, and Cloud Security. Tabletops reveal decision latency and ownership gaps faster than dashboard reviews.

Conclusion

The debate around platform security vs appsec is usually framed as "which team should own security." The better framing is "which team should own which control, with what authority, and with what implementation partners." The same applies to product security vs platform security. Clear boundaries are not bureaucracy; they are what let teams move fast without repeatedly rediscovering the same avoidable failures.

When ownership is explicit, incidents resolve faster, remediation lands sooner, and security work becomes less political and more operational. That is the real goal.

High-Impact Next Step

We find these before attackers do.

See what we would uncover in your stack with exploitability context and prioritized fixes your team can ship quickly.