- One ledger of every third party's access, with an internal owner and a business reason
- Vendor roles narrowed to the actions and resources each service needs
- Alerts on vendor access from unexpected places or at unexpected times
- Any vendor's access can be cut quickly with a rehearsed runbook
- Evidence for third-party risk management ready for supervisors and auditors
Anonymised composite. Client names, identifying details and confidential figures are withheld; public facts are cited in the references.
The situation
A Japanese online securities firm ran its trading and account platforms on AWS. Over the years it had connected a long list of suppliers: a data platform that read market and customer data through a cross-account role, an observability vendor with read access to logs and metrics, a managed service provider that ran remote management agents on office devices, and SaaS tools connected to the firm's email and file storage through OAuth grants. Each connection had been approved by the team that needed it, at the time it was needed. Nobody had a complete list.
The FSA's cybersecurity guidelines for the financial sector, in effect since October 2024, treat third-party risk management as a core area, including outsourcing and cloud services5. The firm's supplier assessments were thorough on paper: questionnaires, certifications and contract clauses. What they did not show was what each supplier could technically do inside the firm's systems today.
Why now. In early November 2026, Wiz reported that an attacker had used credentials tied to Qubole's AWS account to assume integration roles that customers had created to trust Qubole, then collected secrets and data from those customers' accounts1. Days later, N-able took its hosted N-central remote management platform offline after a researcher published alleged zero-days2. Both showed the same thing: a supplier's access is only as safe as the supplier.
What had to be true
- Known: every supplier's technical access in one ledger.
- Owned: an internal owner and a business reason for each.
- Narrow: each supplier can do only what its service needs.
- Watched: unusual supplier activity raises an alert.
- Revocable: any supplier's access can be cut quickly, without guesswork.
- Evidenced: supervisors and auditors can see all of the above.
Architecture
Every cross-account role was rebuilt following AWS's guidance for third-party access: a trust policy naming the vendor's account, a unique external ID for the relationship and permissions limited to the specific actions and resources the service needed34. Service control policies set limits no supplier role could exceed, such as never reading the secrets manager or changing identity settings. Where a vendor could commit to fixed source networks, resource policies only accepted vendor access from those networks. The model is the one Kubernetes teaches for role-based access: a narrowly defined role, bound explicitly to named identities6.

The data flow, end to end
- RequestA supplier's system asks to assume its role in the firm's account
- Check trustThe trust policy checks the vendor account and external ID
- LimitThe role, guardrails and data perimeter decide what is allowed
- ActThe supplier performs only the actions its service needs
- WatchCloudTrail records each action; unusual patterns raise an alert
- CutIf needed, the runbook disables the trust and revokes sessions
The hard part: when the supplier itself is compromised
External IDs are not enough. An external ID protects against the confused deputy problem, where one customer tricks a vendor into acting on someone else's account3. It does not help when the vendor's own systems are compromised; in the Qubole case, the attacker's requests were accepted by customers' roles1. So the firm assumed every supplier could one day be the attacker, and designed so that a compromised supplier could reach only a narrow slice of data, could not read secrets and would trigger alerts by behaving differently.
Detecting "normal but wrong". A compromised supplier uses valid credentials, so authentication alerts stay quiet. The firm built a simple baseline per supplier: usual source networks, usual hours, usual API actions and usual data volumes. Departures from that baseline, such as a new network, listing every bucket or reading parameters it had never read, raised alerts to the security team and the supplier's internal owner.
Remote management tools. The managed service provider's agents could run commands on every office device, so they received the strictest treatment: access only to office devices, never to trading systems; just-in-time sessions approved per task; and a tested way to stop the agents across the fleet if the provider was compromised. See the MSP cyber resilience case study.
Assume every supplier will one day be breached. Design so that day costs you a narrow slice of data and an alert, not your whole estate.
How it ran
- Access inventory
- Guardrails and alerts
- Revocation drills
- Rebuild vendor roles
- Data perimeter
- Move secrets out of reach
- Confirm business need
- Define normal behaviour
- Review quarterly
- Map to FSA guidelines
- Notification clauses
- Evidence for supervisors
- Roles trusting outside accounts
- OAuth grants and agents
- Owners and reasons
- Rebuild roles
- Remove unused access
- Guardrails
- Behaviour baselines
- Alerts to owners
- Data perimeter
- Revoke-a-vendor drills
- Contract updates
- Quarterly reviews
Key decisions and trade-offs
| Decision | Alternative | Why |
|---|---|---|
| Technical ledger of access, not only questionnaires | Rely on supplier assessments | Shows what suppliers can actually do today |
| Assume supplier compromise | Trust certified suppliers | Valid credentials are exactly what attackers use |
| Guardrails no vendor role can exceed | Careful role design only | One mistake in a role does not expose everything |
| Behaviour alerts per supplier | Generic anomaly detection | Small baselines are cheap and catch "normal but wrong" |
| Just-in-time remote management | Always-on agent access | Limits what a compromised provider can do at any moment |
| Rehearsed per-vendor revocation | Revoke when needed | Cutting access in a crisis needs a known, safe procedure |
What I'd do again, and differently
Again: start with the inventory of roles trusting outside accounts. It found integrations for services the firm had stopped using years earlier, still active. Differently: involve procurement from the start, so new suppliers are onboarded into the ledger rather than discovered later. Related: the 10 November tech news, the machine and agent identity case study, securing MCP servers and where I work.
If you cannot list every supplier that can reach your cloud, or cut one off quickly, see my fractional CTO work, or analyse your challenge and bring the result to a call.
- 1Qubole customers targeted in AWS cross-account access attackSC Media · Nov 2026
- 2N-able takes N-central platform offline after zero-day dumpTechTarget · Nov 2026
- 3
- 4SEC03-BP09 Share resources securely with a third partyAWS Well-Architected Framework · 2026
- 5Financial Services Regulation 2025: Japan, Trends and DevelopmentsChambers and Partners · 2025
- 611 Ways (Not) to Get HackedKubernetes blog · 18 Jul 2018