Two Control Planes

Share
Two Control Planes
Hybrid Two Platform

The hybrid two-platform pattern: separating the public attack surface from enterprise client data, and the seam between them

Executive summary

The companion paper, Fortified by Design, closed with an observation that the right hosting answer for an estate serving consumers, business customers and enterprise monitoring clients is often two platforms rather than one: a hyperscaler for the public-facing zones, and a second platform, another hyperscaler or a captive facility, for the one-way ingestion of client data. This paper takes that observation seriously and works through what it costs to do it well.

The case for the split is simple to state. The public zones and the ingestion zone have opposite risk profiles: one is exposed by design to anonymous traffic at internet scale, the other holds the most sensitive data the organisation will ever be trusted with. Putting them on the same control plane means one set of administrative credentials, one policy engine and one audit trail stand between a web-tier compromise and every client's data. Two control planes turn that into two independent compromises, which is a claim an enterprise client's security team can understand and value.

The cost is a second operating model, and the pattern fails when that cost is underestimated. Section 2 states the case and its limits. Section 3 draws the split line and names what goes where. Section 4 defines the seam, the narrow set of flows permitted between the two platforms, as a contract with five entries and nothing else. Sections 5 to 8 handle the four things that must span both platforms: identity, management, security operations and data governance. Section 9 treats resilience, Section 10 the operating model, Section 11 the pairing choices, and Section 12 the anti-patterns that turn two control planes back into one with extra steps.

The one sentence version

Two platforms are safer than one only if the seam between them is narrower than either platform's own internal boundaries, and only if identity, management, detection and governance are genuinely unified across both rather than duplicated.

2. The case for two, and its limits

2.1 Independence of compromise

A single hosting platform, however well segmented, has a root of administrative authority: the organisation, tenant or root account, and the small number of identities that can act at that level. Every guard-rail in Fortified by Design, the service control policy, the management-group policy, the organisation policy constraint, is ultimately editable by that authority. The threat this creates is not the web-tier attacker walking through a firewall; the segmentation stops that. It is the attacker who obtains, through phishing, a supply-chain compromise of the pipeline, or a provider-side incident, an identity that operates above the segmentation. On one platform that identity reaches everything. On two, it reaches half.

The value is therefore in correlation, not in any single control. Two platforms with separate root authorities, separate administrative identity sets, separate policy engines and separate audit trails fail independently, provided the seam between them does not reintroduce a shared dependency. That proviso is the subject of most of this paper.

2.2 What the client sees

Enterprise clients who send operational data for monitoring evaluate the estate as a supplier inside their own perimeter. The question their security team asks is what happens to their data if the estate's public face is breached, and the two-platform answer, that the public face and their data do not share a control plane, is stronger than any answer a single platform can give. It also changes the audit conversation: the ingestion platform can be scoped, evidenced and, where a client requires it, inspected as a smaller and quieter estate than the whole.

2.3 Where the case does not hold

The pattern does not pay for itself in three situations. First, when the ingestion population is small and lightly regulated; a bridged isolation model on one platform is adequate and the second operating model is pure cost. Second, when the organisation cannot staff two platform specialisms; a poorly operated second platform is a liability, and the honest comparison is between one platform run well and two run thinly. Third, when the seam cannot be kept narrow, because product requirements demand that raw client data flow into the public application, at which point the two platforms are one estate with a slow network in the middle. The decision in Section 10 of the companion paper still governs; this paper describes how to execute the two-platform outcome, not why every estate should reach it.

3. The split line

Figure 1. The two-platform topology. Zones 1 to 3 and the B2B portal on Platform A; Zone 4, the analytics platform and the report builder on Platform B; Zones 5 and 6 span both. The only data crossing the seam is derived reports, and only in one direction.

3.1 What goes where

The line is drawn by trust, not by function. Everything that faces the public or holds consumer and partner identity lives on Platform A. Everything that holds client-ingested data, raw or curated, and every key that protects it, lives on Platform B. Two placements need explicit decisions.

•     The analytics platform goes with the data. Analytics runs on Platform B against the curated store. Moving curated data to Platform A for analysis would put client data on the public control plane, which defeats the purpose. The cost is that Platform B needs an analytics capability of its own, which is one of the inputs to the pairing choice in Section 11.

•     The B2B portal stays on Platform A, and reads only derived artefacts. Partner users log in on the public platform and see reports, dashboards and alerts. Those are built on Platform B, pass through a classification downgrade gate, and are published as signed artefacts that Platform A pulls. The portal never queries Platform B directly and never sees a raw row.

3.2 The downgrade gate

The report builder on Platform B is the one component that turns client data into something that may leave the ingestion control plane. It is therefore a security control, not a reporting feature. Every artefact it produces carries a classification label; only artefacts labelled as aggregated, de-identified or client-approved for their own portal view may be published to the drop that Platform A reads. The gate is enforced in code, its rules are versioned, its outputs are signed, and a sample is reviewed. Where a client requires that even derived views never leave the ingestion platform, the portal for that client is served from Platform B behind its own private entry, which the architecture accommodates at the cost of a second portal deployment.

4. The seam

The seam is the set of flows permitted between Platform A and Platform B. Its design principle is that it must be narrower than either platform's internal zone boundaries; if it is not, the split has added cost without adding independence. It is written down as a contract with a small number of entries, each with an owner, a review cadence and an alarm on change.

Figure 2. The seam contract. Five entries: derived reports outbound from B, report requests inbound to B carrying parameters only, telemetry from both to the shared security-operations archive, change from the shared management plane to both, and an explicit statement that nothing else is permitted.

4.1 The five entries

1.   Derived reports, B to A. Platform B publishes signed artefacts to a drop location on Platform B. Platform A pulls them using a federated, read-only identity that can list and read that drop and nothing else. The pull direction is deliberate: Platform B holds no credential for Platform A, so a compromise of B cannot push into A, and A's read-only credential cannot alter what B published.

2.   Report requests, A to B. When a partner user asks for a report the portal enqueues a request carrying the tenant identifier, the period and the template name. Platform B consumes the queue, validates the tenant against the requesting identity's claim, builds the artefact, and publishes it through entry 1. No data crosses in this direction, and the queue is the only Platform A resource Platform B can read.

3.   Telemetry, both to Zone 6. Both platforms ship audit, flow and application logs to the security-operations archive. Neither ships to the other. This entry is discussed in Section 7 because where the archive lives is itself a design decision.

4.   Change, Zone 5 to both. One infrastructure-as-code pipeline applies to both platforms, with a distinct, short-lived deployment identity per platform issued through workload identity federation. The pipeline can change either platform; neither platform can change the other. Section 6 covers the pipeline's own protection.

5.   Nothing else. No site-to-site tunnel, no peering, no shared object storage mounted on both sides, no database link, no service mesh spanning both, no shared static credential, no shared secrets vault with both platforms' secrets in it. Each of these is a convenience that turns two control planes into one.

4.2 Enforcing the contract

Each entry is implemented with a construct that can be inspected: a specific bucket or container and its access policy, a specific queue and its policy, a specific pair of federated identities and their permitted audiences. A policy-as-code rule on each platform asserts that no other cross-platform connectivity exists, that no identity from the other platform holds any role beyond the two named, and that no static credential for the other platform is present in the vault. Drift on any of these is an incident, not a finding.

The test of a narrow seam

Ask what an attacker holding full administrative authority on Platform A can reach on Platform B. The answer should be: read a drop of already-downgraded reports and place requests on a queue that B validates. If the answer includes anything else, the seam is too wide.

5. Identity across two control planes

Identity is the first of four things that must be unified, and the one where duplication is most tempting and most damaging.

5.1 One workforce directory, two federations

Operators authenticate to one workforce identity provider with hardware-backed multi-factor authentication and conditional access. Both platforms federate to it; neither holds local human accounts beyond per-platform break-glass. Role assignment happens in the platform's own authorisation system, scoped per platform, and just-in-time elevation is administered per platform so that an operator elevated on A is not elevated on B. The identity provider is therefore a shared dependency, and it is protected as such: it is not hosted on either platform's production estate, its administrative roles are the most restricted in the organisation, and its own audit trail feeds Zone 6.

5.2 Workload identity without shared secrets

The two federated identities on the seam, Platform A's reader and Platform B's queue consumer, are established through workload identity federation: each platform trusts the other's token issuer for one specific audience and maps it to one specific role. No access key for either platform is ever stored on the other. The same mechanism gives the deployment pipeline its per-platform identity. The audit question, which token from which issuer assumed which role when, is answerable on both sides.

5.3 Consumer and partner identity stay on A

The customer identity platform and partner federation live on Platform A and are never extended to Platform B. Platform B has no interactive user population at all beyond operators; the only identities it knows are enterprise clients' ingestion principals, its own workloads, the pipeline and the two seam identities. That smallness is a feature and is worth defending against every proposal to add a login.

6. One management plane for two providers

6.1 Infrastructure as code with two backends

A single repository and a single pipeline describe both platforms, using a tool that supports both providers natively. Environment promotion, review and approval apply identically. The pipeline runs on infrastructure that belongs to neither platform's production estate, or on Platform B with the strongest available isolation, because a pipeline that can change both platforms is the most valuable target in the organisation. Its runners are ephemeral, its identities are per-platform and short-lived, and an apply to Platform B's ingestion boundaries requires a second approver by policy.

6.2 Policy as code above both

Each platform keeps its native guard-rails: service control policies, management-group policy, organisation policy and perimeters. Above them, a provider-neutral policy-as-code layer expresses the estate-wide rules once, the seam contract among them, and evaluates every planned change against them before apply. This is what stops a well-intentioned engineer adding a peering connection because it was easier than the queue. Drift detection runs against both platforms and against the seam rules on a schedule, and reverts or alarms.

6.3 Secrets and break-glass

Each platform uses its own secrets service for its own secrets. There is no shared vault holding both platforms' secrets, because that vault would be a single point of compromise across the seam. Break-glass accounts exist per platform, are stored in separate physical custody, alarm on use, and are exercised on a schedule. The scenario each is designed for is the loss of the shared identity provider, which is the one dependency both platforms share.

7. Unified security operations

This is the hardest part of the pattern and the place where most two-platform estates are weakest. Two platforms produce two audit trails in two schemas with two sets of native detection services, and a security operation that watches one platform's console while the other's alerts go to a different inbox is not watching the seam at all.

7.1 Where Zone 6 lives

Option

Independence

Operability

Assessment

On Platform A

Weak: a compromise of A can reach the evidence of its own compromise

Good if A has the richer native security services

Not recommended for this pattern

On Platform B

Better: B is the quieter, more locked-down platform; A's logs leave A immediately

Adds load to the sensitive platform; SIEM tooling may be thinner

Acceptable, with the archive under its own isolation boundary within B

On a third platform or a managed SIEM service

Best: neither production platform can reach the archive

Third operating relationship; ingestion cost and latency

Recommended where budget allows; the archive is small relative to the estate

Whichever option is chosen, three properties are mandatory. Logs leave each platform through an organisation-level sink that no project, account or subscription administrator can disable. The archive is immutable for the retention period and readable only by security-operations identities that are not production identities on either platform. And detection runs on normalised events from both platforms, so that a rule can say that a seam identity was used from an unexpected place regardless of which platform observed it.

7.2 Detection content for the seam

Beyond the per-platform rules in the companion paper, the seam needs its own. Any change to a seam construct: the drop policy, the queue policy, the federation trust, the policy-as-code seam rules. Any assumption of a seam identity by a principal other than the expected workload. Any cross-platform network path appearing where none should exist, detected from flow logs on both sides. Any artefact published to the drop without a valid signature or with a classification label the gate should not have passed. And any correlated activity across both platforms within a short window by the same human operator, which is the signature of an operator credential being used by someone else.

7.3 One response team, two runbooks

Response is a single function with a single incident process and two sets of platform-specific runbooks. Containment actions are pre-authorised per platform, including the action that severs the seam: revoking both federation trusts, which stops report flow and request flow while ingestion continues. That action is tested, because the day it is needed is not the day to discover that the portal fails badly without reports. Client notification obligations are per client and are triggered by an incident on Platform B, or by an incident on Platform A that touched the seam, with the second case being the one contracts often omit.

8. Data governance across the seam

8.1 Classification and the gate

The estate's classification scheme has a level that means client-ingested and a rule that data at that level exists only on Platform B. The downgrade gate in Section 3.2 is the only sanctioned transition out of that level, and each transition is logged with the rule that permitted it. Data-loss-prevention scanning on the drop, on Platform A's inbound side, provides an independent check that nothing at the client-ingested level arrived.

8.2 Keys stay where the data is

Per-client encryption keys live in Platform B's key service, backed by its hardware security modules, and are never referenced from Platform A. Report artefacts are encrypted with a separate key that Platform A can use, which is the only key the two platforms share, and it is scoped so that it can decrypt artefacts and nothing else. Client-held keys, where a client requires them, are integrated on Platform B only. Crypto-shredding a client on offboarding is a Platform B operation, and the client's derived artefacts on Platform A are deleted by retention policy.

8.3 Residency, retention and audit

Residency commitments to ingestion clients bind Platform B's region choices; residency for consumers binds Platform A's. The two need not coincide, which is one of the quieter advantages of the split. Retention is set per platform and per population, and the archive in Zone 6 holds the longest. For audit, the ingestion platform is scoped as a system of its own with its own controls matrix, which is what makes a client's right-to-audit clause tractable: the auditor sees Platform B and the seam, not the consumer estate.

9. Resilience

Two platforms fail independently, and the design should exploit that rather than fight it. When Platform A is unavailable, ingestion continues; clients' data keeps arriving, validation keeps running, and reports accumulate in the drop for the portal to collect when it returns. When Platform B is unavailable, the public estate continues; clients buffer and retry as their contract requires, and the portal shows the last published artefacts with their timestamps. Neither outage should cascade, and the seam design guarantees that only if the portal degrades gracefully without fresh reports and the queue tolerates an absent consumer, both of which are tested.

Disaster recovery is per platform. Platform A recovers into a second region on A; Platform B recovers into a second region on B or, for a captive facility, a second site. The estate does not replicate client data to Platform A as a recovery measure, however convenient, because that replica is client data on the public control plane. Recovery of the shared dependencies, the identity provider, the pipeline and the Zone 6 archive, is planned separately and tested first, since without them neither platform can be operated.

10. The operating model

The second control plane is paid for in people before it is paid for in compute. The honest accounting is below.

Cost

What it means in practice

Mitigation

Two platform specialisms

Engineers who know one provider's identity, network and policy model deeply are rarely equally deep on another

One platform team with two named specialisms and shared on-call; certification budget; managed services on the second platform

Two sets of native tooling

Different consoles, CLIs, policy languages and detection services

Provider-neutral layers where they add independence (IaC, policy-as-code, SIEM); native where they add strength (guard-rails, perimeters)

Two vendor relationships

Contracts, support tiers, credits, roadmap briefings, incident liaison, twice

A single owner for vendor management; aligned support tiers; joint escalation paths tested

Cross-platform cost visibility

Two billing models that do not reconcile

One FinOps view with tagging enforced by policy on both; unit economics per population, not per platform

Seam maintenance

A contract that must be reviewed every time the product changes

Seam changes go through an architecture review with security as approver; the contract is a living document with a change log

Skills concentration risk

A small number of people understand both sides

Documentation as a deliverable; rotation across the seam; runbooks tested by people who did not write them

The benefit side is concentrated in three places: independence of compromise, a smaller and quieter platform to evidence to clients, and the freedom to choose each platform for what it does best. Whether the benefit exceeds the cost is a judgement about the ingestion population, and the paper's position is that it does once the population includes clients whose contracts would be lost or whose data would be existential to lose.

11. Pairing choices

Figure 3. Pairing options. The public platform is chosen for edge protection, elasticity and identity fit; the ingestion platform for its isolation and exfiltration boundary. Green pairings put each platform's strongest construct on the side of the seam where it matters.

Three observations follow from the matrix. The exfiltration boundary matters most on the ingestion side, which is why pairings placing the platform with the strongest perimeter construct on Platform B score well and pairings placing it on Platform A do not. Identity strength matters most on the public side, where partner federation and consumer identity live, which favours the identity-led platform for Platform A when the B2B population is large. And the captive facility is a strong Platform B candidate for a specific reason: its physical unidirectional boundary is exactly what operational-technology and sovereign clients ask for, and putting only the ingestion zone on premises keeps the captive footprint, and its staffing, small.

The analytics capability is the tie-breaker. Platform B must run the analytics platform, so the pairing should place a platform with a strong analytical store on the ingestion side or accept that the captive facility hosts one. Pairings that leave the best analytical engine on the public side create pressure to move data across the seam, which is the pressure the pattern exists to resist.

12. Anti-patterns

Each of the following has been observed in estates that described themselves as two-platform. Each collapses the pattern.

•     The mirror. Deploying the full stack on both platforms for resilience. Client data on the public control plane, twice the surface, and no independence.

•     The tunnel. A site-to-site connection between the platforms because a team needed one thing once. The seam becomes a network, and the network becomes a path.

•     The shared key. An access key for Platform B stored in Platform A's vault, or vice versa, to make a job easier. One compromise becomes two.

•     The convenient replica. Curated client data copied to Platform A so the portal can query it directly. The downgrade gate is bypassed and the classification rule is broken.

•     The abstraction layer. A multi-cloud management product that hides each platform's native isolation primitives behind a common model. Convenient for operators, and it typically holds administrative credentials for both platforms in one place.

•     The half-watched estate. Security operations built on one platform's native services, with the other platform's findings arriving as email. The seam is unobserved.

•     The unofficial single team. Two platforms nominally, one engineer who understands the second one. The second control plane exists on paper.

13. Conclusion

Two control planes buy independence of compromise, a smaller estate to evidence to the clients who care most, and the freedom to place each workload on the platform best suited to it. They cost a second operating model and demand that four things, identity, management, detection and governance, be unified rather than duplicated. The discipline that makes the pattern work is the seam: a contract of five entries, written down, enforced by constructs that can be inspected, alarmed on change, and defended against every convenience that would widen it. Where the ingestion population justifies the cost, the result is an estate whose public face and whose most sensitive data cannot be reached with the same set of keys, which is the strongest architectural claim a monitoring provider can make to the enterprises that trust it.

Appendix A. Seam contract checklist

Item

Evidence to hold

Entry 1: derived reports

Drop location and its policy; Platform A reader identity and federation trust; signature verification on read; classification label check on read

Entry 2: report requests

Queue and its policy; Platform B consumer identity and federation trust; tenant validation logic and its tests; message schema with no data fields

Entry 3: telemetry

Organisation-level sinks on both platforms; archive location and immutability setting; archive reader identities and their separation from production

Entry 4: change

Pipeline hosting and isolation; per-platform deployment identities; second-approver policy on ingestion boundary changes; drift detection schedule and last result

Entry 5: nothing else

Policy-as-code rules asserting no peering, no tunnels, no shared storage, no cross-platform roles beyond entries 1 and 2, no static cross-platform credentials; last evaluation result

Downgrade gate

Rule set version; signing key custody; sample review log; DLP result on the Platform A side

Severance

Documented and tested procedure to revoke both federation trusts; last test date; portal behaviour without reports

Shared dependencies

Identity provider hosting and its administrative roles; pipeline recovery plan; archive recovery plan; test dates

Read more