<- All Blueprints
Create a template that deploys...

AWS SNS Topic

This blueprint creates an AWS SNS Topic with best practices in mind, such as encouraging the use of KMS encryption to secure messages at rest. It allows users to specify custom policies for fine-grained access control and delivery settings. Tags are included to promote better resource identification and management. The blueprint organizes variables into intuitive groups to assist users—including those not well-versed in cloud infrastructure—in configuring essential and advanced settings easily.

Template code
Automatically generated UI

---
constants:
  __name: "{{ name }}_{{ __guid }}"
variables:
  name:
    desc: "Name of the SNS topic."
    required: true
    group: Topic Details
  display_name:
    desc: "Display name for the SNS topic."
    required: false
    group: Topic Details
  kms_master_key_id:
    desc: "ARN of the KMS key for encryption."
    required: false
    group: Encryption
    links_to: resource.aws_kms_key.arn
  policy:
    desc: "The JSON policy for the SNS topic."
    required: false
    group: Policies
  delivery_policy:
    desc: "The JSON delivery policy."
    required: false
    group: Policies
  tags:
    group: Tags
    required: false
groups:
  Topic Details:
    order: 1
    desc: "Basic settings for the SNS topic."
  Encryption:
    order: 2
    desc: "Encryption settings for the SNS topic."
  Policies:
    order: 3
    desc: "Policy settings for the SNS topic."
  Tags:
    order: 4
    desc: "Tags to assign to the SNS topic."
---

resource "aws_sns_topic" "__name" {
  name            = {{ name }}
  display_name    = {{ display_name | required: false }}
  kms_master_key_id = {{ kms_master_key_id | required: false }}
  policy          = {{ policy | required: false }}
  delivery_policy = {{ delivery_policy | required: false }}

  tags = {
    Name = {{ name }}
    {{# tags }}
      {{ tags.key | required: false }} = {{ tags.value | required: false }}
    {{/ tags }}
  }
}

// Encourages the use of KMS encryption for securing messages at rest.
// Allows custom policies for fine-grained access control.
// Tags are included for better resource management and identification.
//
What am I looking at?

Your CSPM can't fix cloud infrastructure

Learn how Resourcely can improve your cloud posture in days, not quarters