×
Fork me on GitHub

How to set the active Receipt Rule Set in SES using CloudFormation

In AWS CloudFormation there is no way to set the active receipt rule set of the AWS Simple Email Service. As we strive for 100% reproducibility, we created a custom resource to do just that.

How do I set the active receipt rule set in CloudFormation?

After you have defined the receipt rule set with the standard CloudFormation resources, just add a CloudFormation resource of type Custom::ActiveReceiptRuleSet:

Resources:
  ActiveReceiptRuleSet:
    Type: Custom::ActiveReceiptRuleSet
    Properties:
      RuleSetName: !Ref 'ReceiptRuleSet'
      Region: !Ref 'AWS::Region'
      ServiceToken: !Sub 'arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:binxio-cfn-ses-provider'

  ReceiptRuleSet:
    Type: AWS::SES::ConfigurationSet
    Properties: 
      Name: default

This will activate the specified receipt rule set.

## Installation
To install this custom resource provider, type:
```sh
git clone https://github.com/binxio/cfn-ses-provider.git
cd cfn-ses-provider
aws cloudformation deploy \
	--capabilities CAPABILITY_IAM \
	--stack-name cfn-ses-provider \
	--template-file ./cloudformation/cfn-resource-provider.yaml 

This CloudFormation template will use our pre-packaged provider from s3://binxio-public-$(aws configure get region)/lambdas/cfn-ses-provider-0.6.4.zip.

Conclusion

Although there is a CloudFormation resource to define a receipt rule set, there is no way to indicate which one should be active. With this SES custom provider you can. This ensures that your complete environment can be defined using CloudFormation and is fully reproducible without manual interventions.

To configure your SES domain identity, check out How to deploy AWS SES Domain Identities and DKIM records using CloudFormation.

If you have any questions, do not hesitate to contact me.

Picture of Mark van Holsteijn
Mark van Holsteijn
CTO