mediummultiple choiceObjective-mapped

A CI pipeline in account A uploads build artifacts to an S3 bucket (arn:aws:s3:::build-artifacts-prod) under the prefix teamA/. The pipeline must not be able to list other prefixes, and it must only upload objects under teamA/. Which IAM policy design best enforces least privilege for this requirement?

Question 1mediummultiple choice
Full question →

A CI pipeline in account A uploads build artifacts to an S3 bucket (arn:aws:s3:::build-artifacts-prod) under the prefix teamA/. The pipeline must not be able to list other prefixes, and it must only upload objects under teamA/. Which IAM policy design best enforces least privilege for this requirement?

Answer choices

Why each option matters

Good practice is not just finding the correct option. The wrong answers often show the exact trap the exam wants you to fall into.

A

Distractor review

Allow s3:PutObject on arn:aws:s3:::build-artifacts-prod/* and allow s3:ListBucket on arn:aws:s3:::build-artifacts-prod with no condition.

This is too permissive because PutObject is scoped to the entire bucket (arn:aws:s3:::build-artifacts-prod/*), allowing uploads outside teamA/. It also allows ListBucket for the full bucket without any s3:prefix condition, so the pipeline could list other prefixes.

B

Best answer

Allow s3:PutObject on arn:aws:s3:::build-artifacts-prod/teamA/* and allow s3:ListBucket on arn:aws:s3:::build-artifacts-prod with a condition that requires s3:prefix equals 'teamA/'.

This scopes uploads to exactly the teamA/ object path by using the object ARN arn:aws:s3:::build-artifacts-prod/teamA/*. For listing, it targets the bucket ARN (arn:aws:s3:::build-artifacts-prod) and restricts listing results to only the requested prefix using the s3:prefix condition key.

C

Distractor review

Allow s3:PutObject on arn:aws:s3:::build-artifacts-prod/teamA/* and allow s3:GetBucketLocation on arn:aws:s3:::build-artifacts-prod/teamA/.

GetBucketLocation is not required to satisfy the listed controls (upload only to teamA/ and list only within teamA/). Additionally, scoping GetBucketLocation to a prefix is not the right control for restricting ListBucket results; the missing piece is the constrained s3:ListBucket permission with an s3:prefix condition.

D

Distractor review

Allow s3:* on arn:aws:s3:::build-artifacts-prod/teamA/* and allow s3:ListAllMyBuckets for easier auditing.

s3:* is broader than needed and can grant permissions such as DeleteObject or other read/write capabilities beyond what is required. ListAllMyBuckets is unrelated to preventing access to other prefixes within the target bucket and expands exposure outside the intended control boundary.

Common exam trap

Common exam trap: authentication is not authorization

Logging in proves the user can authenticate. It does not automatically mean the user is allowed to enter privileged or configuration mode. Watch for AAA authorization, privilege level and command authorization details.

Technical deep dive

How to think about this question

This kind of question is testing the difference between identity and permission. A user may successfully log in to a router because authentication is working, but still fail to enter configuration mode because authorization is missing, misconfigured or mapped to a lower privilege level.

KKey Concepts to Remember

  • Authentication checks who the user is.
  • Authorization controls what the user is allowed to do after login.
  • Privilege levels affect access to EXEC and configuration commands.
  • AAA, TACACS+ and RADIUS can separate login success from command access.

TExam Day Tips

  • Do not assume successful login means full administrative access.
  • Look for words such as cannot enter configuration mode, privilege level, authorization or command access.
  • Separate login problems from permission problems before choosing the answer.

Related practice questions

Related SAA-C03 practice-question pages

Use these pages to review the topic behind this question. This is how one missed question becomes focused revision.

More questions from this exam

Keep practising from the same exam bank, or move into a focused topic page if this question exposed a weak area.

FAQ

Questions learners often ask

What does this SAA-C03 question test?

Authentication checks who the user is.

What is the correct answer to this question?

The correct answer is: Allow s3:PutObject on arn:aws:s3:::build-artifacts-prod/teamA/* and allow s3:ListBucket on arn:aws:s3:::build-artifacts-prod with a condition that requires s3:prefix equals 'teamA/'. — Least privilege here requires two separate controls: (1) limit object writes to only teamA/ by granting s3:PutObject on the object ARN arn:aws:s3:::build-artifacts-prod/teamA/*, and (2) limit what the pipeline can discover via listing by granting s3:ListBucket on the bucket ARN arn:aws:s3:::build-artifacts-prod while adding a condition such as s3:prefix = 'teamA/'. This combination prevents uploads outside teamA/ and restricts list visibility to only the intended prefix. Option A allows uploads to any prefix (PutObject uses /*) and permits bucket listing without restricting s3:prefix, so the pipeline can enumerate other teams’ objects/prefixes. Option C does not implement the required listing restriction; it adds an unrelated permission rather than controlling s3:ListBucket results with s3:prefix. Option D grants s3:* which increases the blast radius beyond the minimum required actions and adds an unrelated account-wide listing permission (ListAllMyBuckets).

What should I do if I get this SAA-C03 question wrong?

Then try more questions from the same exam bank and focus on understanding why the wrong options are tempting.

Discussion

Loading comments…

Sign in to join the discussion.