Skip to content

Module for integrating SNS topics with Pagerduty Services • This repository is defined and managed in Terraform

License

Notifications You must be signed in to change notification settings

ministryofjustice/modernisation-platform-terraform-pagerduty-integration

Repository files navigation

Modernisation Platform Pagerduty Integration Terraform Module

Standards Icon Format Code Icon Scorecards Icon

SCA Icon Terraform SCA Icon

Terraform module for associating SNS topics with PagerDuty services on the Modernisation Platform.

Usage

# Get the map of pagerduty integration keys from the modernisation platform account
data "aws_secretsmanager_secret" "pagerduty_integration_keys" {
  provider = aws.modernisation-platform
  name     = "pagerduty_integration_keys"
}

data "aws_secretsmanager_secret_version" "pagerduty_integration_keys" {
  provider  = aws.modernisation-platform
  secret_id = data.aws_secretsmanager_secret.pagerduty_integration_keys.id
}

# Add a local to get the keys
locals {
  pagerduty_integration_keys = jsondecode(data.aws_secretsmanager_secret_version.pagerduty_integration_keys.secret_string)
}

module "pagerduty_core_alerts" {
  source                    = "github.com/ministryofjustice/modernisation-platform-terraform-pagerduty-integration?ref=0179859e6fafc567843cd55c0b05d325d5012dc4" # v2.0.0
  sns_topics                = ["config", "securityhub-alarms", "cloudtrail"]
  pagerduty_integration_key = local.pagerduty_integration_keys["core_alerts_cloudwatch"]
}

Adding new PagerDuty sevices

New Pagerduty services can be added here - https://github.com/ministryofjustice/modernisation-platform/blob/main/terraform/pagerduty/services.tf

Once added the integration key should be added to the secret here - https://github.com/ministryofjustice/modernisation-platform/blob/main/terraform/pagerduty/aws.tf#L12

Requirements

Name Version
terraform >= 1.0.1
aws ~> 5.0

Providers

Name Version
aws ~> 5.0

Modules

No modules.

Resources

Name Type
aws_sns_topic_subscription.pagerduty_subscription resource
aws_sns_topic.alarm_topics data source

Inputs

Name Description Type Default Required
pagerduty_integration_key n/a string n/a yes
sns_topics n/a list(any) n/a yes

Outputs

No outputs.

Looking for issues?

If you're looking to raise an issue with this module, please create a new issue in the Modernisation Platform repository.

Requirements

Name Version
terraform >= 1.0.1
aws ~> 5.0

Providers

Name Version
aws 4.20.1

Modules

No modules.

Resources

Name Type
aws_sns_topic_subscription.pagerduty_subscription resource
aws_sns_topic.alarm_topics data source

Inputs

Name Description Type Default Required
pagerduty_integration_key n/a string n/a yes
sns_topics n/a list(any) n/a yes

Outputs

Name Description
sns_subscription_arn n/a
sns_topic_arn n/a