How to Enforce S3 Bucket Encryption with Service Control Policies
A company is using AWS Organizations to manage multiple accounts. The security team wants to enforce that all S3 buckets have server-side encryption enabled. Which SCP should be applied to the root OU?
Quick Answer
The correct answer is to apply an SCP that denies the s3:PutBucketEncryption action unless the encryption settings include AES256 or aws:kms. This works because Service Control Policies are account permission guardrails that can block API actions at the AWS Organizations root, OU, or account level, but they cannot modify resources or target individual buckets—they only enforce conditions on the API call itself. On the AWS Certified Advanced Networking Specialty ANS-C01 exam, this question tests your understanding of how SCPs differ from IAM policies and resource-based policies, specifically that SCPs are applied to principals (accounts) rather than resources, and that they use condition keys like s3:x-amz-server-side-encryption to enforce encryption at the time of the PutBucketEncryption request. A common trap is confusing SCPs with bucket policies or thinking SCPs can retroactively encrypt existing buckets. Memory tip: SCPs are “stop signs” for API actions, not “repair shops” for resources.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Deny s3:PutBucketEncryption unless encryption settings include AES256 or aws:kms
A Service Control Policy (SCP) applied to the root OU can deny the s3:PutBucketEncryption action unless specific encryption settings (AES256 or aws:kms) are used. This prevents any account in the organization from creating or modifying S3 buckets without encryption. Option A is wrong because IAM policies are attached to principals (users/roles), not to OUs, and cannot enforce encryption across all accounts. Option B is wrong because SCPs are applied to OUs or accounts, not to individual resources like S3 buckets. Option D is wrong because AWS Config rules can detect non-compliance but do not enforce via SCPs; they would require an automated remediation action.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Create an IAM policy that allows s3:PutBucketEncryption only with specific conditions
Why it's wrong here
SCPs override IAM policies but cannot be resource-based.
- ✗
Attach an IAM policy to each S3 bucket requiring encryption
Why it's wrong here
SCPs are account-level, not resource-level.
- ✓
Deny s3:PutBucketEncryption unless encryption settings include AES256 or aws:kms
Why this is correct
Correct SCP approach to enforce encryption.
- ✗
Use AWS Config rules to auto-enable encryption on existing buckets
Why it's wrong here
Config rules are detective, not preventive via SCP.
Quick reference
AWS S3 Storage Class Comparison
| Storage Class | Min Duration | Retrieval | Use Case |
|---|---|---|---|
| S3 Standard | None | Immediate | Frequently accessed data |
| S3 Standard-IA | 30 days | Immediate | Infrequent access, rapid retrieval |
| S3 One Zone-IA | 30 days | Immediate | Non-critical infrequent data |
| S3 Intelligent-Tiering | None | Immediate–hours | Unknown or changing access patterns |
| S3 Glacier Instant | 90 days | Milliseconds | Archive with instant retrieval |
| S3 Glacier Flexible | 90 days | Minutes–hours | Archive, flexible retrieval |
| S3 Glacier Deep Archive | 180 days | Hours | Long-term compliance archive |
Go deeper
Related to this question
About these practice questions
One of 1,621 original ANS-C01 practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
Same concept, more angles
4 more ways this is tested on ANS-C01
These questions test the same concept from different angles. Work through them to make sure you can recognise it however the exam phrases it.
Variation 1. A company uses AWS Organizations to manage multiple accounts. The security team wants to ensure that all Amazon S3 buckets in the organization are encrypted at rest. Which policy should be attached to the root organizational unit to enforce this requirement?
medium- A.Configure AWS Config rules to mark non-compliant buckets and trigger a Lambda function to add encryption.
- B.Create an IAM role in each account that requires encryption for any S3 operation.
- C.Use an S3 bucket policy on every existing and future bucket to deny unencrypted uploads.
- ✓ D.Attach a service control policy (SCP) that denies s3:CreateBucket unless the bucket has default encryption enabled.
Why D: A service control policy (SCP) attached to the root OU can deny the s3:CreateBucket action unless the bucket is configured with default encryption, thereby enforcing encryption at rest across all accounts in the organization. Option D is correct. Option A is incorrect because AWS Config rules can detect non-compliance but cannot enforce policies in real time; they are detective, not preventive. Option B is incorrect because IAM roles are account-specific and cannot enforce encryption across all accounts centrally. Option C is incorrect because S3 bucket policies apply only to individual buckets and cannot be applied to future buckets or across accounts without manual configuration.
Variation 2. A company is using AWS Organizations to manage multiple accounts. The security team wants to enforce that all S3 buckets across the organization are encrypted with SSE-S3. Which control mechanism should they use?
easy- A.Assign an IAM policy to all users that requires SSE-S3.
- B.Configure a bucket policy on each bucket to deny writes without SSE-S3.
- ✓ C.Create a service control policy (SCP) that denies PutBucketEncryption if the encryption is not SSE-S3.
- D.Use AWS CloudTrail to monitor and alert on non-compliant bucket creations.
Why C: A service control policy (SCP) in AWS Organizations can deny PutBucketEncryption unless SSE-S3 is specified, enforcing encryption across all accounts. Option A is wrong because IAM policies are account-level and cannot enforce across all accounts in an organization. Option B is wrong because bucket policies are per-bucket and would require manual configuration on each bucket. Option D is wrong because CloudTrail is a logging service that does not enforce compliance; it only provides monitoring after the fact.
Variation 3. A company is using AWS Organizations to manage multiple accounts. The security team wants to enforce that all S3 buckets across the organization are encrypted with SSE-S3 or SSE-KMS. Which THREE steps should they take to implement this policy?
hard- A.Apply a bucket policy in each account that denies PutObject without encryption.
- ✓ B.Attach the SCP to the root organizational unit (OU) to apply to all accounts.
- C.Use a VPC endpoint policy to enforce encryption for all S3 access from the VPC.
- ✓ D.Use AWS Config rules to check for unencrypted S3 buckets and trigger automatic remediation.
- ✓ E.Create a service control policy (SCP) that denies s3:PutBucketPublicAccessBlock and s3:CreateBucket without encryption settings.
Why B: Service control policies (SCPs) can be applied at the root organizational unit (OU) to deny actions that create or modify S3 buckets without encryption (SSE-S3 or SSE-KMS), as in options B and E. AWS Config rules can detect unencrypted buckets and trigger automated remediation, such as enabling default encryption, which addresses existing buckets (option D). Option A is incorrect because bucket policies are account-specific and cannot enforce organization-wide policies. Option C is incorrect because VPC endpoint policies control network access, not encryption enforcement.
Variation 4. A company is using AWS Organizations with multiple accounts. The security team needs to enforce that all S3 buckets across the organization are encrypted with AWS KMS. Which approach should be used to enforce this policy?
hard- A.Configure each S3 bucket with a bucket policy that denies access if encryption is not used.
- ✓ B.Apply a service control policy (SCP) at the root level that denies S3 bucket creation unless encryption is configured.
- C.Use AWS Config rules to detect unencrypted S3 buckets and automatically remediate them.
- D.Create an IAM policy that denies creating S3 buckets without encryption and attach it to all users.
Why B: A service control policy (SCP) can be applied to the root organizational unit in AWS Organizations to centrally deny creating or modifying S3 buckets without KMS encryption across all accounts. Option A is incorrect because bucket policies are per-bucket and cannot enforce encryption at the organizational level. Option C is incorrect because AWS Config rules detect non-compliance after the fact but do not prevent creation; they require additional remediation. Option D is incorrect because IAM policies are account-specific and cannot be enforced across the entire organization.
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This ANS-C01 practice question is part of Courseiva's free Amazon Web Services certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the ANS-C01 exam.