Sign in
Menu
Sign up
Docs
Terraform modules for AWSMessaging & Streaming

Terraform AWS SNS

SNS topics and subscriptions with KMS encryption, topic policies, delivery policies, dead letter configuration, and controlled fan out of events and notifications.

Quick start

module "sns" {
  source  = "acscism2023.compliance.tf/terraform-aws-modules/sns/aws"
  version = "~> 7.2"

  # ... your arguments here
}
module "sns" {
  source  = "awswellarchitected.compliance.tf/terraform-aws-modules/sns/aws"
  version = "~> 7.2"

  # ... your arguments here
}
module "sns" {
  source  = "cccsmedium.compliance.tf/terraform-aws-modules/sns/aws"
  version = "~> 7.2"

  # ... your arguments here
}
module "sns" {
  source  = "cfrpart11.compliance.tf/terraform-aws-modules/sns/aws"
  version = "~> 7.2"

  # ... your arguments here
}
module "sns" {
  source  = "cisacyberessentials.compliance.tf/terraform-aws-modules/sns/aws"
  version = "~> 7.2"

  # ... your arguments here
}
module "sns" {
  source  = "eugmpannex11.compliance.tf/terraform-aws-modules/sns/aws"
  version = "~> 7.2"

  # ... your arguments here
}
module "sns" {
  source  = "fedramplow.compliance.tf/terraform-aws-modules/sns/aws"
  version = "~> 7.2"

  # ... your arguments here
}
module "sns" {
  source  = "fedrampmoderate.compliance.tf/terraform-aws-modules/sns/aws"
  version = "~> 7.2"

  # ... your arguments here
}

This module on the compliance.tf registry lists its versions, inputs and outputs. The Get Started guide and Registry Endpoints cover authentication and how to customize the module for your requirements.

Migration from upstream

Already using terraform-aws-modules? Change only the source URL:

module "sns" {
  source  = "terraform-aws-modules/sns/aws"
  version = "~> 7.2"
}
module "sns" {
  source  = "soc2.compliance.tf/terraform-aws-modules/sns/aws"
  version = "~> 7.2"
}

Same arguments. Same outputs. Controls are checked at terraform plan. The Migration Guide has the step-by-step version.

Reversibility

No lock-in. Switch back by reverting the source URL:

module "sns" {
  source  = "terraform-aws-modules/sns/aws"
}

Run terraform init -upgrade. Terraform state is unchanged: same resource addresses, same provider, no compliance.tf-specific resources. Controls you already applied remain in AWS.

Controls enforced

Up to 1 controls are checked at terraform plan when this module comes from a compliance.tf endpoint. Which ones are active depends on the endpoint; see Framework coverage.

Mapped compliance frameworks

ClauseControls from this module
ISM-0459: Encrypting data at rest
ISM-1059: Handling media
ClauseControls from this module
Data protection
SEC08-BP02: Enforce encryption at rest
ClauseControls from this module
SC-28(1): Cryptographic Protection
ClauseControls from this module
11.30 Controls for open systems
ClauseControls from this module
7.1 Data Storage - Damage Protection
ClauseControls from this module
Use of Cryptography (SC-13)
ClauseControls from this module
Protection of Information at Rest (SC-28)
Use of Cryptography (SC-13)

Framework coverage

Which controls from this module are active under each framework endpoint. Your framework preferences choose the columns.

ControlFedRAMP Moderate Baseline Rev 4Well-Architected Framework v10CISA Cyber EssentialsACSC ISM March 2023CCCS Medium Cloud Control ProfileTitle 21 CFR Part 11EU GMP Annex 11FedRAMP Low Baseline Rev 4
SNS topics should be encrypted at restEnforcedEnforcedEnforcedEnforcedEnforcedEnforcedEnforcedEnforced
1 controls enforced with a source URL change.

Start free trialGet started

On this page

Ask AI about this

Help improve this page