Cross-account access is a dense SAA-C03 topic because there are several mechanisms and the exam wants the right one for each requirement. The organising question is: does a principal need to act in another account, or does a resource need to grant another account access?
The default: assume a role
When a principal in account A needs to work in account B, the answer is a cross-account IAM role in account B. Its trust policy names account A as allowed to assume it, its permissions policy says what it can do, and the principal assumes it through STS for temporary credentials. This is preferred over IAM users with access keys for one reason the exam keeps testing: the credentials expire, so there is no long-lived secret to leak. Roles still need a trust relationship and a permissions policy — they are not a shortcut around either.
Third parties: the external ID
When the assuming party is a third-party SaaS vendor, add an external ID to the trust policy. The vendor must supply the matching value to assume the role, which blocks the confused-deputy problem — the vendor being tricked into acting on the wrong customer’s account. “Third party assuming a role” is the exam’s cue for an external ID.
Direct resource access: resource policies
Some resources grant access without a role at all. An S3 bucket policy or a KMS key policy is a resource-based policy that can name a principal in another account directly. Reach for this when the requirement is “read this bucket from account A without assuming a role”. Role for the principal, resource policy for the resource — and often both together.
Organization-scale: SCPs and RAM
Two org-level tools round out the set:
- Service Control Policies (SCPs) via AWS Organizations set the maximum permissions across accounts — an unbreakable guardrail even an account admin cannot exceed. The answer to “guarantee no account can do X”.
- Resource Access Manager (RAM) shares resources — VPC subnets, Transit Gateways — across accounts, so workloads run in a shared network. The answer to “share subnets between accounts”.
Do not confuse them: SCPs restrict, RAM shares.
How to use the six scenarios below
Answer each one before opening the explanation, and when you miss, name the requirement that decided it — “temporary”, “third party”, “without assuming a role”, “every account”, “share subnets”. Every explanation states that constraint and dismantles the distractors, which usually offer a shared credential or the wrong org-level tool. For the domain overview, see Design Secure Architectures.
Updated for SAA-C03 (July 2026). The sample questions above are our own work
in the style of the exam — not real exam items. The exam itself is set and marked
by the certification body.