An organization requires that all Amazon S3 buckets be encrypted at rest by default. A SysOps administrator needs to enforce this using AWS Config. Which AWS Config managed rule should be used?
Trap 1: s3-bucket-ssl-requests-only
s3-bucket-ssl-requests-only validates that bucket policies enforce the aws:SecureTransport condition, thereby requiring TLS/SSL for any client connection to the bucket. This rule governs encryption in transit—data moving between the client and S3—but does not inspect how the data is stored. A bucket can be SSL-only yet still contain unencrypted data at rest, so it does not satisfy the encryption-at-rest requirement.
Trap 2: s3-bucket-public-read-prohibited
s3-bucket-public-read-prohibited checks bucket policies and ACLs to ensure no public read access is granted to the bucket or its objects. This is an access-control measure designed to prevent unauthorized exposure, not a data-protection mechanism for stored content. A bucket can be completely private and still store unencrypted objects, so this rule is irrelevant to the encryption mandate.
Trap 3: s3-bucket-logging-enabled
s3-bucket-logging-enabled verifies that server access logging is enabled on the bucket, which records detailed request data for auditing and operational monitoring. While logging is a best practice for security visibility, it applies no cryptographic protection to the bucket's contents. Enabling logging does not affect whether objects are encrypted at rest, making this rule non-compliant with the stated policy.
- A
s3-bucket-encryption-enabled
The AWS Config managed rule s3-bucket-encryption-enabled evaluates whether an S3 bucket has default encryption enabled, which is satisfied by configuring either SSE-S3 or SSE-KMS. This ensures new objects written to the bucket are automatically encrypted at rest, directly meeting the organization's encryption requirement. Without this rule, a bucket could store plaintext objects, making it the correct choice.
- B
s3-bucket-ssl-requests-only
Why wrong: s3-bucket-ssl-requests-only validates that bucket policies enforce the aws:SecureTransport condition, thereby requiring TLS/SSL for any client connection to the bucket. This rule governs encryption in transit—data moving between the client and S3—but does not inspect how the data is stored. A bucket can be SSL-only yet still contain unencrypted data at rest, so it does not satisfy the encryption-at-rest requirement.
- C
s3-bucket-public-read-prohibited
Why wrong: s3-bucket-public-read-prohibited checks bucket policies and ACLs to ensure no public read access is granted to the bucket or its objects. This is an access-control measure designed to prevent unauthorized exposure, not a data-protection mechanism for stored content. A bucket can be completely private and still store unencrypted objects, so this rule is irrelevant to the encryption mandate.
- D
s3-bucket-logging-enabled
Why wrong: s3-bucket-logging-enabled verifies that server access logging is enabled on the bucket, which records detailed request data for auditing and operational monitoring. While logging is a best practice for security visibility, it applies no cryptographic protection to the bucket's contents. Enabling logging does not affect whether objects are encrypted at rest, making this rule non-compliant with the stated policy.