Check ID:
Provider: AWS
Service:
Severity: HIGH
Categories:
Resource type:
sns_topics_kms_encryption_at_rest_enabledProvider: AWS
Service:
snsSeverity: HIGH
Categories:
encryptionResource type:
AwsSnsTopicWhat this check verifies
Amazon SNS topics are assessed for server-side encryption with AWS KMS. Topics lacking a configured KMS key (e.g., missingkms_master_key_id) are identified as unencrypted at rest.
Risk
Without KMS-backed SSE, SNS stores message bodies unencrypted at rest, undermining confidentiality. Privileged insiders or compromised service components could access plaintext during persistence windows, causing data exposure. You also lose KMS controls such as key policies, rotation, and detailed audit trails.Recommendation
Enable server-side encryption on all SNS topics with AWS KMS; prefer customer-managed keys for control. Apply least privilege on key use, enforce rotation, and monitor key/access logs. Minimize sensitive data in messages and use end-to-end encryption where feasible to add defense in depth.Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
aws sns set-topic-attributes —topic-arn <TOPIC_ARN> —attribute-name KmsMasterKeyId —attribute-value alias/aws/sns
References
- https://www.trendmicro.com/trendaivisiononecloudriskmanagement/knowledge-base/aws/SNS/topic-encrypted-with-kms-customer-master-keys.html
- https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.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 = sns_topics_kms_encryption_at_rest_enabled. 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