AWS CDKでSNSの表示名をカスタマイズしてみた
こんにちは!製造ビジネステクノロジー部の小林です。
今回は、AWS CDKを使ってSNSトピックからのメール通知の「表示名」をカスタマイズする方法をご紹介します。「あれ?SNSのメール通知って表示名変更できるの?」と思った方の参考になれば幸いです。
表示名とは?
SNSトピックの「表示名」とは、SNSからメール通知が送信される際に表示される差出人名のことです。デフォルトでは、メールの差出人は単に「no-reply@sns.amazonaws.com」と表示されますが、表示名を設定すると「設定した表示名 no-reply@sns.amazonaws.com」という形式で表示されるようになります。
なぜ表示名のカスタマイズが必要なのか?
AWS SNSからのデフォルトのメールは、差出人が「no-reply@sns.amazonaws.com」となっています。
これでは以下のような問題が発生します。
- 大量のメールの中でアラート通知を見逃してしまう
- どのシステムからのアラートなのか一目で判別できない
- 複数の環境(本番/開発)からのアラートの区別がつきにくい
AWS CDKでの実装方法
AWS CDKでは、SNSトピックの作成時にdisplayNameプロパティを設定することで、メールの差出人名をカスタマイズできます。
displayNameについては以下の公式ドキュメントにも記載されています。
以下が実際のコード例です。
// SNSトピックの作成
const topic = new sns.Topic(this, 'SecurityTopic', {
displayName: '[開発環境]俺のSecurity Hub Alert', // ここで表示名を設定
});
// メール購読
topic.addSubscription(
new subscriptions.EmailSubscription('<メールアドレス>')
);
やってみた
上記内容をデプロイして実際にSNSトピックから届くメールの表示名を確認してみます。
SNSの表示名が想定通りに変更できていることが確認できました!
以下の修正前と比べても、何のアラートでどこの環境かが一目で分かるようになっていますね。
おわりに
SNSトピックの表示名をカスタマイズするのは非常に簡単ですが、効果は絶大です。特に複数の環境やシステムを管理している場合、このちょっとした工夫で運用効率が大きく向上します。
今回は開発環境のSecurity Hubアラートを例にしましたが、この方法は他のAWSサービスからの通知にも応用できます。例えば、CloudWatchアラームやAWS Budgetsの予算アラートなど、様々な通知をカスタマイズして管理しやすくできます。
皆さんも是非、SNSの表示名カスタマイズを活用して、より効率的なアラート管理を実現してください!