Secrets on the SAA-C03 are less about one service and more about three separable questions: where the secret is stored, whether it rotates, and how the application reaches it without a hard-coded key. Answer those independently and the distractors — a plaintext environment variable, a stored access key, a config store with no rotation — sort themselves out. The diagram traces the whole path: an application assumes an IAM role, calls Secrets Manager for a KMS-encrypted secret that rotation keeps current on the database, while the crossed-out branch shows the hard-coded credential the design exists to eliminate.
Storage: Secrets Manager vs Parameter Store
Both AWS Systems Manager Parameter Store and AWS Secrets Manager store values encrypted with KMS. The line the exam draws is rotation and cost. Secrets Manager provides built-in, scheduled rotation and charges per secret. Parameter Store’s SecureString encrypts with KMS at no per-secret charge in the standard tier, but has no built-in rotation. So a static, encrypted value — a config string, a token that never expires — belongs in a SecureString; a credential that must rotate belongs in Secrets Manager. Hard-coding into code or environment variables is never the answer, and the exam includes it only as the anti-pattern to reject.
Rotation: the RDS case
The strongest reason to pay for Secrets Manager is managed rotation for supported databases. For Amazon RDS, Secrets Manager provisions the rotation function, generates a new password, updates it on the database, and updates the secret — on a schedule, with no application downtime, provided the application retrieves the current value at runtime rather than caching a copy forever. When a stem says “rotate every N days, automatically, no downtime, least operational overhead”, that is managed rotation, not a hand-built Lambda that recreates it.
Retrieval: an IAM role, never a stored key
A secure design never stores a long-lived AWS access key to reach Secrets Manager. Instead, the compute — EC2, ECS, or Lambda — assumes an IAM role granting secretsmanager:GetSecretValue, and the SDK retrieves the secret at runtime with the role’s short-lived credentials. Baking the secret into an image or passing it as a plaintext environment variable both freeze a credential into an artifact and lose rotation. The role-plus-runtime-retrieval pattern is the one the exam rewards.
Encryption and cross-account
Every secret is encrypted at rest with KMS. When compliance wants the organization to own the key, select a customer managed KMS key on the secret — that is the whole configuration, and it is the encryption layer under the secret, not a separate key-policy exercise. That same customer managed key is what makes cross-account access possible: the default AWS managed key cannot be shared, so cross-account requires a resource-based policy on the secret naming the other account’s principal plus a customer managed key whose policy lets that principal call kms:Decrypt alongside GetSecretValue.
One operational scenario recurs: a service that calls GetSecretValue on every request and then meets latency, throttling, and cost. The fix is to cache the secret in memory and refresh only on rotation, which the Secrets Manager caching library does for you — not to dodge the API by dropping the value into a plaintext variable, and not to disable rotation.
How to use the seven scenarios below
Answer each before opening the explanation, and when you miss, find the deciding word — “automatically”, “no long-lived key”, “lowest cost”, “another account”. Every explanation names that constraint and takes the distractors apart, most of which are real controls answering a slightly different requirement. For the wider picture, 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.