SNS topic must be encrypted with a KMS key
High
AWS
General
aws-sns-topic-encryption
Applies to
AWS::SNS::Topic
What CGPulse checks
A resource passes this rule when kmsMasterKeyId must be set true. Anything else is reported as a finding with the evaluated property value attached as evidence.
How to fix it
Enable encryption at rest to protect message data from storage compromise. In AWS Console: SNS > Topics > select topic > Edit > enable Encryption with KMS key. See: https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html
CLI
aws sns set-topic-attributes --topic-arn "{id}" --attribute-name KmsMasterKeyId --attribute-value alias/aws/snsTerraform
resource "aws_sns_topic" "{name}" {
kms_master_key_id = aws_kms_key.{name}.id
}
Compliance frameworks
Is your environment compliant with this rule?
CGPulse checks it — and 621 others — against your Azure and AWS accounts with read-only access.
Related AWS rules
- ACM certificate must be eligible for renewal
- ACM certificate must be in issued status
- Amplify app should have basic auth disabled for production
- API Gateway REST API must have an endpoint configuration
- API Gateway V2 API must be properly configured
- App Runner service must have encryption enabled
- AppSync API must have logging configured
- AppSync API must have X-Ray tracing enabled