A company needs to ensure that data in transit between an on-premises data center and Amazon S3 is encrypted. The data will be transferred using HTTPS. What additional step should be taken to ensure the encryption is enforced?
Adding a bucket policy with a condition that denies requests when `aws:SecureTransport` is `false` enforces HTTPS by rejecting any HTTP or unencrypted requests at the S3 API level. This satisfies the stem’s requirement to ensure encryption is enforced for data in transit, as the policy explicitly blocks non-HTTPS traffic regardless of the client’s protocol choice.
Why this answer
The correct answer is C because S3 bucket policies can enforce encryption in transit by denying any request where the aws:SecureTransport condition key is false. This ensures that only HTTPS (TLS) requests are allowed, effectively blocking HTTP access. Since the data is already being transferred over HTTPS, adding this policy guarantees that encryption in transit is enforced and cannot be bypassed.
Exam trap
SCS-C02 often tests the difference between encryption at rest and encryption in transit, and candidates may confuse AWS KMS (which is for at-rest encryption) with mechanisms that enforce in-transit encryption, leading them to pick option A.
How to eliminate wrong answers
Option A is wrong because AWS KMS is used for encryption at rest (server-side encryption) and does not enforce encryption in transit; KMS keys encrypt data on disk, not over the wire. Option B is wrong because S3 Transfer Acceleration speeds up transfers using AWS edge locations but does not enforce encryption; it can be used with HTTP or HTTPS. Option D is wrong because CloudFront with HTTPS only encrypts data between the client and CloudFront, but the origin connection to S3 might still use HTTP unless separately configured; moreover, the question specifies direct HTTPS transfer to S3, so CloudFront is unnecessary and does not enforce encryption for direct S3 access.