Check ID:
Provider: AWS
Service:
Severity: MEDIUM
Categories:
Resource type:
s3_bucket_default_encryptionProvider: AWS
Service:
s3Severity: MEDIUM
Categories:
encryptionResource type:
AwsS3BucketWhat this check verifies
Amazon S3 buckets have a default server-side encryption setting that automatically encrypts new objects usingSSE-S3 or SSE-KMS. This evaluates whether a bucket has a default encryption configuration defined.
Risk
Without default encryption, older objects may remain unencrypted and new uploads won’t be forced to useSSE-KMS. This reduces confidentiality and governance by limiting key audit logs, rotation, and cross-account controls, and increases exposure if data is copied, replicated, or accessed outside intended paths.
Recommendation
Enable default encryption on all buckets, preferringSSE-KMS for sensitive data to retain key control and auditing. Enforce encryption with restrictive bucket policies, apply least privilege to KMS keys with rotation, and re-encrypt existing objects. Use defense in depth monitoring to detect drift and noncompliant uploads.
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
References
- https://docs.amazonaws.cn/en_us/AmazonS3/latest/userguide/bucket-encryption.html
- https://aws.amazon.com/blogs/security/how-to-prevent-uploads-of-unencrypted-objects-to-amazon-s3/
- https://docs.aws.amazon.com/us_en/AmazonS3/latest/userguide/default-encryption-faq.html
Where this check fires
This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable byCheck ID = s3_bucket_default_encryption. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to AWS checks