Cloud Security Architecture Questions
Designing and reasoning about the security posture of cloud and hybrid infrastructure: the shared responsibility model, network segmentation and boundary design, multi-account and multi-region security architecture, workload identity as an architectural choice, threat modeling a cloud architecture, cloud-specific attack vectors and mitigations, defense-in-depth control selection, secure cloud deployment patterns, and continuous cloud risk assessment and posture. IAM policy authoring, role/trust-policy mechanics, and secrets/credential lifecycle belong to identity-and-access-management; logging-pipeline design and SIEM/detection-rule engineering belong to security-monitoring-and-detection; encryption-key-management mechanics (KMS/CMK/BYOK) belong to data-protection-and-encryption; compliance-framework mapping (SOC2, PCI-DSS, HIPAA, GDPR) belongs to compliance-frameworks-and-certification-standards. This topic keeps identity, logging, or encryption content only when it is one ingredient inside a genuinely multi-control cloud-hardening question, not as a standalone ask.
Given a multi-tenant SaaS built on Kubernetes with an RDS backend, run a concise threat modeling exercise: identify top assets, likely entry points (external and internal), three high-risk threat scenarios, and concrete mitigations at network, platform, and application layers. Include residual risk and monitoring recommendations.
Sample Answer
Direct answer
A multi-tenant Software as a Service (SaaS) platform on Kubernetes with a relational database (RDS) backend has one asset that dominates every other consideration: tenant isolation itself, because the single worst outcome in a multi-tenant system is not "data was stolen," it is "tenant A read tenant B's data," which changes what counts as a high-risk scenario compared to a single-tenant threat model.
Structured elaboration
Top assets. Tenant data (the RDS-backed customer records, at both the row and schema level depending on the isolation model chosen), the Kubernetes control plane and its Role-Based Access Control (RBAC) bindings, service credentials (database credentials, Kubernetes secrets, cloud identity and access management (IAM) roles), and the continuous integration/continuous deployment (CI/CD) pipeline that can push code into every tenant's environment at once.
Likely entry points.
| Type | Entry point |
|---|---|
| External | The public API or ingress, a misconfigured or overly permissive database endpoint, the authentication service itself (since a flaw there compromises every tenant simultaneously, not just one) |
| Internal | A compromised pod or its service account pivoting to another tenant's workload on the same cluster, a compromised CI/CD credential pushing malicious code to production, an over-privileged internal tool with cross-tenant database access |
Three high-risk threat scenarios and layered mitigations.
- Tenant-boundary bypass at the data layer. A single shared database with row-level tenant scoping enforced only in application code (not the database engine itself) means one query-construction bug anywhere in the codebase can leak another tenant's rows. Mitigations: enforce tenant isolation at the database layer itself (row-level security policies, or separate schemas/databases per tenant for the highest-sensitivity tenants) as a second, independent layer beneath the application-level check, so an application bug alone is not sufficient to breach isolation.
- Cross-tenant lateral movement inside the cluster. A compromised pod belonging to one tenant's workload (through a vulnerable dependency, for instance) attempts to reach another tenant's pod or database credentials on the same shared cluster. Mitigations: network-layer segmentation (Kubernetes NetworkPolicy scoped per tenant namespace, default-deny), and identity-layer segmentation (a distinct, narrowly-scoped IAM role or database credential per tenant namespace, so a compromised pod's own credentials cannot reach another tenant's data even if network segmentation were somehow bypassed).
- Compromised CI/CD credential deploying to every tenant at once. Because the pipeline can push to the full multi-tenant fleet in one action, a compromised deployment credential is a single point of failure with blast radius across every tenant simultaneously. Mitigations: short-lived, OpenID Connect (OIDC)-federated deployment credentials (never long-lived static keys), mandatory code review and a signed-artifact requirement before any deployment, and a staged rollout (canary a subset of tenants before fleet-wide deployment) that limits how many tenants a single bad or malicious deployment reaches before detection.
Mitigations at network, platform, and application layers.
- Network layer: default-deny NetworkPolicy per tenant namespace, private database endpoint with no public reachability, a service mesh enforcing mutual TLS (mTLS) between services.
- Platform layer: per-tenant-namespace RBAC scoping (no cluster-wide role bound broader than the platform's own operators need), Pod Security Admission at the restricted level, admission-controller-enforced image signing.
- Application layer: tenant-scoping enforced at the data-access layer itself (an object-relational mapping (ORM) layer or query builder that cannot construct a query without an explicit tenant filter, rather than relying on every developer remembering to add one), and database-native row-level security as the second, independent layer described above.
Residual risk and monitoring recommendations. Even with all three layers implemented, a sufficiently sophisticated attacker who compromises a tenant-scoped credential with legitimate access to that tenant's own data retains the ability to exfiltrate that one tenant's data, since no isolation design prevents a credential from doing what it is legitimately scoped to do; this residual risk is addressed by monitoring, not architecture: per-tenant behavioral baselining on data-access volume and pattern (a specific tenant's typical read volume, flagged when a credential scoped to that tenant reads at an anomalous multiple of its baseline), and continuous verification that row-level security policies remain enabled and unmodified, since a database-layer control silently disabled during a maintenance operation removes the second independent layer without anyone necessarily noticing.
Worked example
A vulnerable dependency in one tenant's customization layer gives an attacker code execution inside that tenant's pod. Network-layer NetworkPolicy stops the attacker's attempt to reach another tenant's pod directly, since the default-deny policy only permits traffic to this tenant's own database credential path. The attacker instead attempts to widen the SQL query the compromised pod's application code issues, to read across tenant boundaries within the shared database; the database's own row-level security policy, evaluated independently of the application code that constructed the query, rejects the cross-tenant read regardless of what the (already-compromised) application layer attempted to construct. The attacker is limited to the one tenant's own data, which their compromised access already legitimately reaches, a residual risk the monitoring layer, not the architecture, is responsible for catching through anomalous access-volume detection.
Trade-offs and pitfalls
- Application-layer tenant scoping alone is the single most common point of failure in multi-tenant systems, and it is also the cheapest to implement, which is why teams frequently stop there. The worked example's second, independent database-layer check (row-level security) is what actually prevents a breach when, not if, an application-layer bug eventually occurs; treating application-layer scoping as sufficient on its own is the most consequential shortcut in this threat model.
- Per-tenant namespace isolation on a shared Kubernetes cluster is a real, ongoing operational cost as tenant count grows, since network policy, RBAC, and resource-quota configuration all scale roughly linearly with tenant count; a platform team needs to budget for this cost explicitly rather than discovering it as an unplanned burden once tenant count is already large.
- The residual-risk framing (a legitimately-scoped credential doing legitimate-looking things) is often the gap a threat model skips entirely, because it feels like "not a real vulnerability." It is exactly the scenario a real, patient attacker with any foothold inside one tenant's boundary ends up in, which is why monitoring for anomalous behavior from a valid credential, not just enumerating architectural controls, belongs in the threat model's conclusions.
- A staged CI/CD rollout limits blast radius but adds real deployment latency, and a team under delivery pressure may be tempted to skip the canary stage for an urgent fix; the canary stage's value is highest for exactly the deployments made under the most time pressure, which is also when it is most tempting to skip.
Design a hub-and-spoke cloud network architecture for an enterprise with ~100 accounts. Requirements: central egress/NAT with content inspection, centralized IDS/IPS, centralized logging into a SIEM, cross-account shared services, and guardrails to prevent lateral movement. Sketch components, cross-account routing flow, and key security controls and policies you'd include.
Sample Answer
Direct answer
At roughly 100 accounts, a hub-and-spoke design stops being optional and becomes the only tractable way to deliver centralized egress inspection, centralized intrusion detection and prevention (IDS/IPS), centralized logging into a security information and event management (SIEM) system, and shared services, because every one of those four requirements needs a single, consistent enforcement point that a direct-peering mesh across 100 accounts could never provide without an unmanageable number of individually-configured connections.
Structured elaboration
flowchart TB
subgraph Hub["Hub / network account"]
TGW["Transit gateway"]
Egress["Central egress VPC: NGFW content inspection, NAT"]
IDS["Centralized IDS/IPS"]
end
subgraph Sec["Security account"]
SIEM[("SIEM: aggregated logs + findings")]
end
subgraph LA["Log-archive account"]
Logs[("Flow logs, CloudTrail, firewall logs")]
end
Shared["Shared-services account: DNS, patching, artifact registry"]
W1["Workload account 1"] --> TGW
W2["Workload account 2"] --> TGW
W3["... ~100 workload accounts"] --> TGW
TGW --> Egress
Egress --> IDS
Egress -->|"outbound only"| Internet(["Internet"])
TGW --> Shared
W1 --> Logs
W2 --> Logs
IDS --> SIEM
Logs --> SIEM
W1 -.->|"no direct route to W2"| W2
Components. A transit gateway in a dedicated hub/network account, connecting every workload account through its own attachment; a central egress virtual private cloud (VPC) in the same hub account, hosting a next-generation firewall (NGFW) or equivalent inspection appliance and the organization's NAT (Network Address Translation) gateways, so every workload account's internet-bound traffic exits through one inspected path rather than each account provisioning its own NAT and inspection independently; a centralized IDS/IPS integrated into that same egress path, inspecting traffic for known attack signatures before it leaves the environment; a dedicated security account running the SIEM, ingesting both the IDS/IPS findings and the centralized log stream; a log-archive account receiving write-only logs (flow logs, CloudTrail-equivalent audit logs, firewall logs) from every workload account and the hub itself; and a shared-services account for genuinely cross-cutting infrastructure (internal Domain Name System (DNS), patching, a central artifact registry) that many workload accounts depend on but none should individually own.
Cross-account routing flow. A workload account has no direct route to any other workload account; every route it holds points only to the transit gateway, and the transit gateway's own route table is the single place that decides what each workload account attachment is actually permitted to reach (the egress VPC for internet-bound traffic, the shared-services account for its specific dependencies, explicitly nothing else by default). Two workload accounts that need to communicate directly with each other, a genuine but comparatively rare need at this scale, get an explicit, reviewed, narrow route added to the transit gateway's route table for exactly that pair, rather than a default any-to-any routing posture.
Key security controls and policies.
- Transit gateway route-table segmentation. Multiple route tables within the transit gateway itself (not just one shared table), so that different classes of workload account (production, non-production, a regulated-data tier) can have genuinely different reachability, not just the same routing with a security-group overlay.
- Egress-only default for all internet-bound traffic. No workload account provisions its own NAT gateway or internet gateway; the organization enforces this with a Service Control Policy (SCP) or equivalent guardrail denying the creation of an internet gateway in any workload account, making the centralized egress path structural, not just a convention.
- IDS/IPS in blocking mode for known-bad signatures, alerting mode for lower-confidence anomalies, feeding both outcomes into the SIEM so a security analyst has full visibility even into traffic the system did not automatically block.
- Guardrails against lateral movement specifically: the default-no-route posture between workload accounts described above is itself the primary guardrail; supplementing it with a Service Control Policy denying any workload account from creating its own transit gateway attachment to another workload account directly (bypassing the hub) closes the specific loophole where a well-meaning team tries to set up faster peer-to-peer connectivity outside the reviewed process.
- Centralized, immutable logging shipped continuously to the log-archive account, with no workload account holding delete access to its own logs once they land there.
Worked example
A compromised instance in Workload Account 47 attempts two things: reaching the internet to exfiltrate data, and reaching Workload Account 12's database directly. The internet-bound attempt routes, as it always does, through the transit gateway to the central egress VPC, where the NGFW inspects it; if the traffic pattern matches a known exfiltration signature, the IDS/IPS blocks it and immediately raises a finding in the SIEM. The direct attempt to reach Workload Account 12 fails at the transit gateway's route table, since no route from Account 47's attachment to Account 12's attachment exists (the two accounts have no legitimate need to communicate, so no explicit route was ever added), and this rejected connection attempt itself appears in Account 47's flow logs, already streaming to the log-archive account, giving the security team a second, independent signal of the compromise even if the first exfiltration attempt had somehow evaded IDS/IPS detection.
Trade-offs and pitfalls
- The central egress path becomes both the design's single most valuable control and its single largest capacity-planning risk at 100-account scale. Every workload account's aggregate internet-bound traffic funnels through one inspection point; sizing that egress VPC's NGFW and NAT capacity against the organization's actual aggregate traffic, not against any one account's traffic, is essential, and under-provisioning it either creates a bottleneck that pressures teams to request exceptions, or, worse, gets configured to fail open under load.
- A Service Control Policy denying workload accounts from creating their own internet gateway or their own transit gateway attachment is what makes this design structural rather than a convention teams could quietly work around under delivery pressure. Without that guardrail, a team facing a deadline and frustrated by the central egress path's latency or review process has a real incentive to provision a local workaround, silently undoing the entire centralized-inspection benefit for that one account.
- Multiple transit gateway route tables (segmenting production from non-production, for instance) add real configuration complexity that grows with the number of distinct classes of workload account, and a design that starts with one shared route table "to keep it simple" and later needs to retrofit segmentation discovers that migrating existing attachments to new route tables is a more disruptive change than designing for it from the start.
- A common wrong turn at this scale is treating the hub itself as "just infrastructure" and under-investing in its own redundancy and administrative-access control, the same tension named in a hub-and-spoke topology generally, now carrying materially higher stakes when 100 accounts, not a handful, all depend on the hub simultaneously.
How would you architect network segmentation and access control in a high-regulation environment where data residency and regional compliance requirements differ per customer? Explain account design, VPC placement, routing, and how to enforce region-specific controls.
Sample Answer
Direct answer
Network segmentation and access control for a high-regulation environment with per-customer data residency means the account boundary, not just the network boundary, has to carry the residency guarantee: each customer's data lives in an account (or a set of accounts) scoped to their specific regulatory region, and region-specific controls are enforced through both account placement and Service Control Policies (SCPs) that make the residency rule structurally difficult to violate, not just documented as a design intent.
Structured elaboration
Account design. One account (or a small set of accounts, following the base multi-account pattern of separating production, security, and shared services) per customer per region, rather than a shared multi-tenant account serving customers with different residency requirements. This is a stronger commitment than the base multi-account design used for a single-region product, since here the account boundary is doing double duty: blast-radius isolation between customers, and legal/regulatory boundary enforcement between regions.
VPC placement. Each customer's account provisions its virtual private cloud (VPC) only in the region their contractual and regulatory requirement specifies; an SCP attached at the organizational-unit level for that customer's regulatory grouping denies the creation of any resource, not just a VPC, but any regional resource generally, outside the approved region list, so a resource cannot be accidentally provisioned in the wrong region even by an authorized administrator acting in good faith but working from a stale runbook.
Routing. No default cross-region, cross-customer routing exists; if a shared service genuinely needs to reach multiple customers' regions (a centralized billing system, for instance, which does not itself hold regulated customer data), that service's own account has narrowly-scoped, individually-reviewed connectivity to each customer account, rather than customer accounts being able to reach each other or a broad shared network directly.
Enforcing region-specific controls. Beyond the resource-creation SCP, use the organization's account-vending process (an automated account factory) to bake the correct region restriction into every new customer account at creation time, rather than relying on a human to correctly configure it manually for each new customer; a per-region-grouped organizational unit structure, with SCPs attached at the organizational-unit level rather than per-account, means the restriction is inherited automatically as new customer accounts are added to the correct group, and a misclassification (a new customer account accidentally placed in the wrong organizational unit) is itself a detectable, auditable event rather than a silent gap.
Worked example
A SaaS platform onboards a new customer in the European Union (EU) whose data must remain in the EU under a General Data Protection Regulation (GDPR)-driven contractual requirement, alongside an existing customer in Asia-Pacific (APAC) with a similar but regionally distinct requirement. The account-vending process creates the EU customer's account inside an "EU-regulated-customers" organizational unit, which carries an SCP denying resource creation outside EU regions; the APAC customer's account sits in a separate "APAC-regulated-customers" organizational unit with its own region-restricting SCP. A platform engineer, following a runbook written for the APAC customer, accidentally attempts to apply the same Terraform module to the EU customer's account, specifying an APAC region; the SCP denies the resource creation outright, regardless of the engineer's own IAM permissions, which would otherwise have been sufficient to create the resource had the account not carried this specific organizational guardrail. The mistake is caught structurally, at the moment of the attempted action, rather than discovered later during an audit.
Trade-offs and pitfalls
- Per-customer, per-region account provisioning does not scale for free; it multiplies the number of accounts that need consistent baseline security configuration (logging, guardrails, patching) proportional to the number of customers, not just the number of regions. This is exactly why the account-vending automation matters as much as the account-design decision itself: manually configuring dozens or hundreds of per-customer accounts consistently is not realistic at any meaningful customer count, and inconsistency in that baseline is where a residency guarantee actually breaks down in practice.
- A shared cross-customer service (billing, in the worked example) is a deliberate, narrow exception to the isolation model, and its own access needs more scrutiny, not less, precisely because it is the one component with legitimate reach into multiple regulatory boundaries at once. Treating it as "just infrastructure" and under-scoping its access undermines the isolation the rest of the design carefully enforces.
- SCPs enforce where a resource CAN be created; they do not, on their own, guarantee that data already correctly placed never gets copied or replicated somewhere else by an application-level process (a cross-region backup misconfigured to target the wrong destination, for instance). The account and SCP design is the structural foundation, but application-level data-flow review is still needed to confirm nothing inside the correctly-placed account itself creates an unintended cross-region copy.
- Organizational-unit-level SCP inheritance is powerful specifically because it removes per-account configuration as a point of failure, but it depends entirely on new accounts being correctly classified into the right organizational unit at creation time; a misclassification at that one step (unlike a subsequent attempted region violation, which the SCP catches) is not itself caught by this design and needs a separate validation step in the account-vending process.
Explain what 'segmentation' means in the context of cloud security and give two different techniques to achieve segmentation at the network and application layer in a multi-tenant SaaS platform.
Sample Answer
Direct answer
Segmentation in cloud security means dividing an environment into smaller, isolated zones so that a compromise in one zone does not automatically grant reach into another; the goal is containing blast radius, not preventing every possible compromise, since segmentation assumes some part of the system will eventually be breached and asks what stays safe when it is. In a multi-tenant Software as a Service (SaaS) platform, the two most fundamental techniques are network-layer segmentation (controlling what can talk to what over the network) and application-layer segmentation (controlling what one tenant's logical context can access even when it shares network reachability with another).
Structured elaboration
Network-layer segmentation. Isolate tenants or tiers using separate subnets, security groups, or a service mesh's network policy, so that even if two workloads run on the same underlying infrastructure, the network path between them is denied by default. A concrete technique: per-tenant Kubernetes namespaces with a default-deny NetworkPolicy, explicitly allowing only the narrow, specific traffic each tenant's own workload legitimately needs (its own database connection, its own message-queue topic), so a compromised pod belonging to one tenant cannot even establish a network connection to another tenant's pod or database.
Application-layer segmentation. Isolate tenants at the logic and data-access layer, independent of network reachability, so that even two components that can technically reach each other over the network are still prevented from crossing a tenant boundary by an identity or data-access check. A concrete technique: tenant-scoped identity and access management (IAM) credentials or database roles, where every data-access call carries an explicit tenant identifier that a database-level control (such as row-level security) enforces independently of whatever the calling application code intended to query, so an application bug that forgets a tenant filter is still caught by a second, independent layer.
Worked example
A multi-tenant SaaS platform applies both techniques together rather than relying on either alone: at the network layer, each tenant's background-processing workers run in their own Kubernetes namespace with a default-deny NetworkPolicy, so a compromised worker for Tenant A cannot open a connection to Tenant B's database endpoint, full stop, regardless of any application-level access-control decision. At the application layer, even the platform's own shared API service (which does need network reachability to every tenant's data, since it serves all tenants) enforces tenant scoping through a database row-level security policy tied to the authenticated tenant's identity on every query, so a bug in the API's own query-construction code that omitted a tenant filter would still be blocked by the database itself rejecting the cross-tenant read. Two techniques, at two different layers, each independently sufficient to catch a failure the other layer's own design does not directly address.
Trade-offs and pitfalls
- Network segmentation alone cannot protect a shared service that legitimately needs to reach every tenant's data, such as a central API layer; it is not a substitute for application-layer scoping, only a complement to it. A design that segments the network thoroughly but relies entirely on application code to enforce tenant boundaries for any shared component has only one layer of real protection at the exact place a bug is most consequential.
- Application-layer segmentation without network segmentation still leaves an unnecessarily wide network attack surface. A properly-scoped row-level security policy does not stop a compromised pod from probing the network for other reachable services in the first place, even if it would ultimately be denied at the data layer; the two techniques address different stages of an attack, not the same stage twice.
- Segmentation granularity is a real, ongoing cost trade-off, not a one-time design decision. Per-tenant namespaces and per-tenant network policies scale in configuration and operational overhead roughly with tenant count; a platform expecting to grow from dozens to thousands of tenants needs to plan for that scaling cost explicitly, rather than assuming the pattern that worked at a smaller scale remains free to operate at a larger one.
Design high-throughput egress controls to prevent data exfiltration from compute clusters that generate terabytes/day. Your design should balance throughput, inspection, and latency: include proxies, DLP integration, TLS interception considerations, and monitoring.
Sample Answer
Direct answer
High-throughput egress controls for a compute cluster generating terabytes a day have to resolve a genuine three-way tension: full content inspection (proxies, Transport Layer Security (TLS) interception, data loss prevention (DLP)) gives the strongest exfiltration detection but costs both throughput capacity and added latency, so the design's central decision is which traffic gets full inspection and which gets a cheaper, structural control instead, rather than assuming every byte can pass through a deep-inspection proxy at multi-gigabit scale.
Structured elaboration
Tiered inspection, not uniform inspection. Route traffic into at least two tiers by destination trust: traffic to known, pre-approved destinations (the organization's own object storage, its artifact repository, its metrics endpoint) bypasses the deep-inspection proxy entirely and uses a private, structural path (a Virtual Private Cloud (VPC) endpoint) instead, since a destination that is already provably fixed and legitimate gains little additional exfiltration-prevention value from content inspection; traffic to any other, non-pre-approved destination routes through the full inspection path, where the throughput and latency cost is worth paying because that is precisely the traffic with a real chance of being exfiltration rather than a known-legitimate flow.
Layer-7 proxy cluster for the inspected tier. A horizontally-scaled cluster of proxies (not a single appliance) handling the traffic that does require inspection, sized against the workload's actual inspected-traffic volume, not its full uninspected volume, since the tiering above should already have removed the largest, known-legitimate flows from this path; this sizing distinction is what keeps the proxy tier's own capacity requirement tractable even when the cluster's total egress is in the terabytes-per-day range.
TLS interception considerations. Decrypting, inspecting, and re-encrypting TLS traffic at the proxy requires the organization to manage its own trusted certificate authority (CA) trusted by every workload in the cluster, and it is the single largest throughput and latency cost in the entire design, since cryptographic operations at multi-gigabit scale are computationally expensive; a deliberate scope decision (which destinations or which traffic categories genuinely require TLS interception, versus which can rely on TLS's own metadata, destination, Server Name Indication (SNI), certificate details, without full decryption) directly determines how much of the tiered-inspection path actually pays this cost.
DLP integration. Content-aware scanning integrated into the inspected-tier proxy path, looking for data patterns (structured data matching known-sensitive schemas, large unstructured transfers inconsistent with the workload's normal output shape) that indicate exfiltration rather than legitimate egress; DLP's own processing cost adds to the inspected tier's latency budget, reinforcing why keeping known-legitimate high-volume traffic off this path in the first place (the tiering decision above) matters as much as the DLP capability itself.
Monitoring, for both tiers. The pre-approved, uninspected tier is monitored through connection-level flow logs (volume, destination, timing) rather than content inspection, since a destination-restricted path cannot exfiltrate to an arbitrary destination but can still be monitored for anomalous volume against its own established baseline; the inspected tier is monitored through both flow logs and the proxy's own inspection results, giving two independent signals for the traffic category that most needs them.
Worked example
A compute cluster generating a sustained 5 terabytes (TB) a day, roughly 5×1012/86,400≈57.9 MB/s≈0.46 Gbps average, and observed to spike to 3x that average during batch-processing windows, roughly 1.39 Gbps peak, splits its egress: 80% of that volume (by the organization's own traffic analysis) goes to the cluster's own known object-storage destination and metrics endpoint, routed through VPC endpoints with no inspection at all, structurally incapable of reaching anywhere else; the remaining 20%, roughly 0.093 Gbps average and 0.28 Gbps at peak, routes through the Layer-7 proxy cluster with full TLS interception and DLP scanning, since this is the traffic to destinations that are not pre-approved and therefore the traffic where an actual exfiltration attempt is plausible. The proxy cluster is sized and scaled against this smaller, roughly 0.28 Gbps peak figure, not the full 1.39 Gbps cluster-wide peak, which is what keeps the deep-inspection tier's cost and latency impact proportionate to the traffic that actually needs it: roughly a fifth of the peak capacity a uniform, un-tiered inspection design would have had to provision for.
Trade-offs and pitfalls
- The tiering decision (which destinations qualify for the uninspected, structural-control path) is the design's real security judgment call, and it needs periodic re-review, not a one-time classification. A destination added to the pre-approved list without adequate justification, or one that remains on the list long after the original business reason for it has lapsed, quietly grows the fraction of traffic that never receives content inspection at all; this list is exactly the kind of control surface that needs a suppression-with-expiration discipline: each entry re-justified on a fixed cadence, not left as an indefinite, unreviewed allow-list.
- TLS interception has a real trust and operational cost beyond throughput: it requires deploying and protecting an organization-controlled CA, and it means the proxy infrastructure itself becomes a high-value target, since compromising it would give visibility into every inspected flow's decrypted content. A design that interception-inspects broadly without treating the proxy tier's own security with commensurate rigor has traded one exposure for another.
- Sizing the proxy cluster against average throughput rather than the workload's actual peak (as in the worked example's batch-processing spike) is a common under-provisioning mistake that surfaces only during the exact high-volume events the design exists to protect, since a proxy cluster that cannot sustain peak inspected-tier throughput either drops traffic (an availability failure) or, worse, is configured to fail open and bypass inspection under load (a silent security failure at precisely the moment inspection matters most).
- A design that fails open under load (bypassing inspection rather than blocking traffic when the proxy tier is saturated) trades availability for security in a way that needs to be an explicit, documented decision, not a default nobody consciously chose. The alternative, failing closed, protects the exfiltration-prevention guarantee but risks blocking legitimate high-volume traffic during a genuine capacity event; which failure mode is acceptable depends on the workload's actual risk tolerance, and the decision should be made deliberately during design, not discovered during an incident.
Unlock Full Question Bank
Get access to all Cloud Security Architecture interview questions and detailed answers.
Sign in to ContinueJoin thousands of developers preparing for their dream job.