SaveMyCert
Log in
5 of 5 free questions left today·for unlimited practice
SCS-C03 practice

Free SCS-C03 practice questions

Drill exam-realistic AWS Certified Security – Specialty questions by domain, with an explanation on every option — not just the right one. 5 fully worked examples are further down this page, answers included.

Question bank
320
across 6 domains
Free, no account
5/day
sign up free to remove the cap
Real exam
65 Qs
170 min · pass 750
Explanations
Every option
right and wrong

Build a practice session

Domains

How many?

Mode

Ready when you are

10 fresh questions drawn across all domains, in Learn mode.

Focused review

Every question you answer incorrectly, and every question you flag while practising, is saved here automatically. Finish a session and you can come back to re-drill just those.

5 sample SCS-C03 questions, fully explained

Real questions from the SCS-C03 bank, with the answer key and the reasoning behind every option. Read them, then go back up the page and try the rest.

Question 1Detection

A company runs 50 AWS accounts under AWS Organizations with workloads deployed in three Regions. The security team, which operates from a dedicated security tooling account, needs a single view of all security findings from every account and every Region, with the ability to manage finding workflow states centrally. Which design meets these requirements?

Choose one.

  • a
    Designate the security tooling account as the AWS Security Hub delegated administrator, enable Security Hub across all member accounts, and configure cross-Region aggregation into one home Region. Correct

    Delegated administration gives the security tooling account organization-wide visibility and management of findings, and cross-Region aggregation continuously replicates findings from linked Regions into a single home Region — one pane of glass across all 50 accounts and 3 Regions.

  • b
    Enable Amazon GuardDuty in every account and Region, and have analysts review each account's GuardDuty console during shift handovers.

    GuardDuty is a finding producer, not an aggregator, and reviewing 150 account-Region consoles by hand is exactly the manual sprawl centralized aggregation is designed to eliminate.

  • c
    Enable Amazon Security Lake with the security tooling account as delegated administrator and have analysts triage findings from the OCSF tables in Amazon Athena.

    Security Lake stores and normalizes security data for analytics and retention; it does not provide a finding triage console or manage workflow states — that is Security Hub's role.

  • d
    Enable AWS Security Hub in the Organizations management account and configure each member account to forward findings to it with per-account EventBridge rules.

    Running security operations in the management account violates best practice, and hand-built per-account EventBridge forwarding recreates what delegated administration with cross-Region aggregation already provides natively.

The concept

AWS Security Hub delivers organization-wide finding visibility through two mechanisms: delegated administration (a member account manages findings for every account) and cross-Region aggregation (findings from linked Regions replicate continuously into one home Region).

Why that’s the answer

Designating the security tooling account as the Security Hub delegated administrator and enabling cross-Region aggregation is the native pattern for a single view of findings across many accounts and Regions, including bidirectional workflow-state updates. GuardDuty alone produces findings but aggregates nothing across the estate. Security Lake normalizes and stores data for analytics but has no triage or workflow capability. Administering Security Hub from the management account keeps daily security operations in the most privileged account and adds fragile hand-built forwarding that the service already provides.

How to reason it out
  1. From the Organizations management account, designate the security tooling account as the Security Hub delegated administrator.
  2. Use central configuration from the delegated administrator to enable Security Hub across all member accounts.
  3. Choose one aggregation (home) Region and link the other two Regions so findings replicate into it.
  4. Triage and manage finding workflow states from the delegated administrator in the home Region.

Exam tip: A single view of findings across accounts and Regions is Security Hub with a delegated administrator plus cross-Region aggregation — never manual console reviews or the management account.

Designing Security Monitoring and Alerting Across an AWS Organization — the lesson that teaches this.

Question 2Incident Response

A security architect is documenting an incident response plan aligned with the AWS Security Incident Response Guide. During which phase should the team create scoped responder IAM roles, stand up a dedicated forensics account, and register security contacts on every account?

Choose one.

  • a
    Preparation Correct

    Provisioning responder access, staging a forensics account, and registering contacts are all preparation activities — they must be in place before any event so responders are not building access mid-incident.

  • b
    Detection and analysis

    This phase validates the signal and reconstructs who did what; it consumes the access and tooling prepared earlier rather than building it.

  • c
    Containment, eradication, and recovery

    This phase executes the response using pre-staged roles and accounts. Creating IAM permissions or a forensics account here is slow and, if IAM itself is compromised, potentially dangerous.

  • d
    Post-incident activity

    Post-incident work is root-cause analysis and control iteration after the event; the forensics account and responder roles were needed long before this point.

The concept

The AWS Security Incident Response Guide follows four phases: preparation; detection and analysis; containment, eradication, and recovery; and post-incident activity. Preparation is the phase Task 2.1 tests hardest.

Why that’s the answer

Scoped responder roles, a dedicated forensics account, and registered contacts are all controls that must exist before an incident, which is the definition of the preparation phase. Detection and analysis, containment, and post-incident activity all consume what preparation staged; trying to create responder access during them is the anti-pattern the guide warns against.

How to reason it out
  1. Recognize the four AWS IR phases and their goals.
  2. Classify each listed task: responder roles, forensics account, contacts are all access/tooling staged in advance.
  3. Map staging-in-advance to the preparation phase.
  4. Reject the operational phases, which use rather than build these controls.

Exam tip: Anything that must already exist when the alarm fires — responder roles, forensics account, contacts, runbooks — belongs to preparation, the most heavily tested IR phase.

Design and Test an AWS Incident Response Plan (SCS-C03) — the lesson that teaches this.

Question 3Infrastructure Security

A company runs a public API behind an internet-facing Network Load Balancer (NLB) that forwards TCP traffic to EC2 instances. After an OWASP Top 10 assessment, the security team wants to inspect and filter inbound HTTP requests with AWS WAF managed rules. What is the correct way to make WAF protection possible for this workload?

Choose one.

  • a
    Associate an AWS WAF web ACL directly with the Network Load Balancer and enable the Core rule set.

    AWS WAF cannot be associated with a Network Load Balancer at all — NLBs operate at layer 4 and are not a supported WAF attachment point, so this configuration is impossible.

  • b
    Place an Amazon CloudFront distribution in front of the NLB and associate a CloudFront-scoped AWS WAF web ACL with the distribution. Correct

    WAF attaches to CloudFront, so introducing a CloudFront distribution as the public entry point creates a supported layer 7 insertion point where the web ACL can inspect and filter HTTP requests before they reach the NLB origin.

  • c
    Attach an AWS WAF web ACL to each EC2 instance's elastic network interface using an instance-level association.

    WAF has no per-ENI or per-EC2-instance association; it only attaches to CloudFront, ALB, API Gateway REST stages, AppSync, Cognito user pools, and App Runner, so this is not a valid deployment.

  • d
    Enable AWS Shield Advanced on the NLB, which applies the OWASP managed WAF rules automatically.

    Shield Advanced provides DDoS protection and can auto-mitigate layer 7 attacks only where a WAF web ACL is already associated; it does not add WAF to an NLB or apply OWASP content rules on its own.

The concept

AWS WAF only associates with CloudFront distributions, Application Load Balancers, API Gateway REST API stages, AppSync GraphQL APIs, Cognito user pools, and App Runner services — never with EC2 instances or Network Load Balancers.

Why that’s the answer

Because an NLB is not a WAF attachment point, the workload needs a supported layer 7 entry point, and putting CloudFront in front of the NLB provides exactly that so a CloudFront-scoped web ACL can filter HTTP requests. Associating WAF directly with the NLB is impossible. There is no per-EC2 or per-ENI WAF association. Shield Advanced defends against DDoS and can auto-mitigate L7 floods only when a web ACL already exists; it does not add WAF coverage or OWASP content filtering to an NLB by itself.

How to reason it out
  1. Recognize that the NLB and EC2 instances are not valid WAF attachment points.
  2. Introduce a supported insertion point by placing CloudFront in front of the workload.
  3. Create a web ACL in the CloudFront (global) scope in us-east-1 and add AWS Managed Rules such as the Core rule set.
  4. Associate the web ACL with the distribution and lock the origin so traffic must pass through CloudFront.

Exam tip: To use AWS WAF with an NLB or bare EC2, you must add a supported layer 7 insertion point such as CloudFront — WAF never attaches to an NLB or an instance directly.

Edge Security on AWS: WAF, Shield, and CloudFront as Controls — the lesson that teaches this.

Question 4Identity and Access Management

A security engineer enforces MFA by attaching an identity policy that denies all actions when MFA is absent, using the condition "Bool": { "aws:MultiFactorAuthPresent": "false" }. Console users who have not yet enrolled a device are correctly blocked, but a scheduled job running under an IAM user's long-term access keys continues to call APIs unaffected. What is the cause and the fix?

Choose one.

  • a
    Requests signed with long-term access keys omit aws:MultiFactorAuthPresent from the request context, so plain Bool never matches them; switch the operator to BoolIfExists so the absent key is treated as a match and access-key traffic is denied. Correct

    aws:MultiFactorAuthPresent is only populated for temporary credentials. Long-term access keys leave the key out of the context entirely, so a plain Bool comparison finds nothing to evaluate and the deny does not fire. BoolIfExists treats the missing key as satisfying the condition, extending the deny to access-key callers — which is correct because a raw access key can never carry MFA.

  • b
    aws:MultiFactorAuthPresent evaluates to true for access keys, so the deny never applies; change the operator to StringEquals to force a case-sensitive comparison.

    The key is not present at all for access-key requests, not present-and-true. StringEquals is a string operator and would not correct a missing-key evaluation; the boolean IfExists variant is the documented pattern.

  • c
    The deny is measuring the wrong thing; replace aws:MultiFactorAuthPresent with aws:MultiFactorAuthAge so that any credential older than the MFA window is denied.

    aws:MultiFactorAuthAge measures how long ago MFA was performed for a session that has MFA; it is also absent for long-term keys and does not solve the exemption. It is a supplement for re-authentication windows, not the fix here.

  • d
    Long-term access keys bypass identity-based policies, so the deny can never reach them; only a service control policy can restrict access-key requests.

    Access keys do not bypass identity policies — the calling principal's policies are fully evaluated. The BoolIfExists fix works at the identity-policy level; no SCP is required to close the gap.

The concept

aws:MultiFactorAuthPresent is only in the request context for temporary credentials. Bool requires the key to exist to match; BoolIfExists treats an absent key as a match, which is what extends an MFA deny to long-term access keys.

Why that’s the answer

Access-key requests carry no MFA context, so plain Bool finds no key and the false comparison never triggers the deny, exempting them silently. BoolIfExists treats the missing key as a match and denies them — the intended posture, since a standalone access key can never present MFA. Option b misdescribes the key as present-and-true and reaches for a string operator. Option c swaps in the age key, which is equally absent for access keys and addresses re-authentication timing, not presence. Option d is factually wrong: identity policies are evaluated for access-key callers, so no SCP is needed.

How to reason it out
  1. Recognize that aws:MultiFactorAuthPresent is populated only for temporary (STS) credentials.
  2. Understand that long-term access-key requests omit the key, so plain Bool cannot evaluate to a match.
  3. Replace Bool with BoolIfExists so a missing key is treated as satisfying the false comparison.
  4. Keep a NotAction carve-out for the self-service MFA-enrollment actions so users can still enroll a device.

Exam tip: Enforce MFA with BoolIfExists on aws:MultiFactorAuthPresent — plain Bool leaves long-term access-key traffic unrestricted because those requests carry no MFA context.

AWS Authentication Strategies: MFA, STS, and Federation — the lesson that teaches this.

Question 5Data Protection

A public website served through an Application Load Balancer used a certificate that AWS Certificate Manager (ACM) issued with DNS validation. Renewal has worked automatically for two years. After the team migrated the domain to a new hosted zone, the certificate expired and users now see trust errors. What is the root cause?

Choose one.

  • a
    The DNS validation CNAME record was not carried over to the new hosted zone, so ACM could no longer re-validate the domain and managed renewal silently failed. Correct

    ACM managed renewal re-checks the validation CNAME on every renewal. If the record is missing after a zone migration, ACM cannot re-validate ownership and renewal fails without any manual action to alert the team. Restoring the identical CNAME lets managed renewal proceed.

  • b
    ACM certificates have a hard two-year maximum lifetime and must be manually re-requested once that period elapses.

    There is no two-year cap that forces manual re-request. ACM renews public certificates automatically as long as they remain in use and can still be validated, so the coincidental two-year mark is a distractor, not the cause.

  • c
    Moving the domain to a new hosted zone changed the certificate to email validation, which requires an approver to click a link at each renewal.

    Changing a hosted zone does not convert a DNS-validated certificate to email validation. The validation method is fixed when the certificate is requested; the failure is the absent CNAME, not a method switch.

  • d
    The ALB stopped presenting the certificate because moving the zone detached it from the listener, so the browser fell back to an expired cached copy.

    A hosted-zone migration does not detach a certificate from an ALB listener, and browsers do not serve an expired certificate from cache. The observable expiry points squarely at a failed renewal caused by the missing validation record.

The concept

ACM managed renewal for DNS-validated public certificates depends on the validation CNAME remaining published; deleting or failing to migrate it breaks automatic renewal.

Why that’s the answer

Managed renewal re-validates domain ownership by re-reading the CNAME ACM created. A zone migration that omits the record removes ACM's ability to validate, so the certificate expires with no manual event to flag it — the classic silent outage. Option b invents a lifetime cap. Option c wrongly claims the validation method changed. Option d misdescribes both ALB behaviour and browser caching.

How to reason it out
  1. Confirm the certificate is ACM-issued and DNS-validated, not imported.
  2. Check the current hosted zone for the ACM validation CNAME record.
  3. Republish the exact CNAME record ACM created so ownership can be re-validated.
  4. Add the DaysToExpiry CloudWatch metric or the acm-certificate-expiration-check Config rule to catch future renewal failures early.

Exam tip: DNS-validated ACM certificates auto-renew only while the validation CNAME stays published — a zone migration that drops the record causes a silent expiry.

Data in Transit on AWS: TLS, ACM, and End-to-End Encryption Design — the lesson that teaches this.

The SCS-C03 question bank, by domain

The bank is built to the exam's own weighting, so the practice you get reflects the marks that are actually on offer — not whichever domain was easiest to write questions for.

Published SCS-C03 practice questions per exam domain
DomainExam weightTopicsQuestions
Detection16%360
Incident Response14%240
Infrastructure Security18%360
Identity and Access Management20%240
Data Protection18%360
Security Foundations and Governance14%360
Total100%16320

How SCS-C03 questions are worded

Most SCS-C03 questions are not asking whether you can recall a definition. They describe a situation and ask which option satisfies it — so the skill being tested is reading the requirement precisely and eliminating options that fail it.

Single-response vs multiple-response

A single-response question has exactly one right answer. A multiple-response question tells you how many to pick ("Choose TWO") and there is no partial credit — getting one of the two right scores nothing. Read that instruction before you read the options.

Read the last line first

The final sentence is the actual question; everything before it is scenario. Read it first, then read the scenario knowing what you are looking for. It stops you from building an answer in your head that the question never asked for.

Hunt for the qualifier

Most scenarios turn on one word — MOST cost-effective, LEAST operational overhead, with the LEAST latency, without changing application code. Two options are frequently both technically correct, and the qualifier is the only thing separating them.

Eliminate, then choose

Distractors are almost always real AWS services doing a real job — just not this job. Rule out the ones that break a stated constraint before you compare what's left. On a question you truly don't know, eliminating two options turns a guess into a coin flip.

Beyond SCS-C03 practice

SCS-C03 practice questions: your questions

Yes. You can answer 5 questions a day with no account at all, and creating a free account removes the daily limit entirely — the full 320-question SCS-C03 bank, with an explanation on every option.