みなさん、こんにちは。サニービュー事業部の小寺です。

Slack使っていますか?
今日はSNSからEメールアドレスを経由して、slackへ通知を行う方法について、お伝えします。

実は、普段は、CloudWatch Alarmからslack通知を行うときに、AWS Chatbotからslackの設定をしていましたが、Chatbotでは全てのサービスをサポートしているわけではありません。

AWS Chatbotで受け取ることができる通知

AWS Chatbot を使用すると、CloudWatch アラーム、Health イベント、Security Hub の検出結果、Budgets アラート、CloudFormation スタックイベントなど、AWS のサービスから通知を受け取ることができます。

AWS Chatbotでサポートされているサービスは以下の通りです。
・AWS Billing and Cost Management
・AWS CloudFormation
・Notifications for AWS developer tools
・Amazon CloudWatch alarms
・Amazon EventBridge
・Tutorial: Creating an Amazon EventBridge rule that sends notifications to AWS Chatbot
・AWS Config
・Amazon GuardDuty
・AWS Health
・AWS Security Hub
・AWS Systems Manager Incident Manager
・AWS Systems Manager

SNSトピックからSlack通知を行ってみる

というわけで、今回、SESの通知をChatbotを経由せず、直接Slackに
Eメールで通知してみました。

(1)通知先のslackのチャンネルのEメールアドレスを確認します。
「インテグレーション」タブで「このチャンネルにメールを送信する」を選びます。

※この機能は「有料機能」となっており、無償版を利用している場合
利用することができません・・・・。

有償版でメールアドレスを確認してみます。「メールアドレスを取得する」をクリックします。

表示されたメールアドレスをコピーしておきます。

(2)Amazon SNSよりトピックを作成します。
名前は「SES-Slack-Notification」とします。

(3)サブスクリプションを作成します。
プロトコルは「Eメール」を選び、エンドポイントに先ほど、コピーしたSlackのメールアドレスを貼り付けします。

(4)Slackに「AWS Notification – Subscription Confirmation」の通知が
届きます。クリックすると、サブスクリプションの状態が「保留中」から「確認済」へ変わります。

(5) SESからFeedback notificationsでバウンス、苦情、メール配信の通知を設定します。「Configuration: Verified Identities」より通知をしたいメールアドレスまたはドメインを選びます。

「Configure SNS topics」で先ほど設定したSNSトピックを選びます。

これで設定は完了です。
配信を確認したい場合、「Delivery」にも該当のSlackを設定しておけば、slackの通知を確認することができます。

まとめ

CloudWatch アラーム、Health イベントなどの結果をSlackに通知するときに、
AWS Chatbotを利用できる。
サポート対象外のサービスの通知をSlackに送りたいときには、slackのEメールを利用することができる。

AWSをご利用いただくには、直接契約するより断然お得。
AWS利用料が5%割引、さらに日本円の請求書による支払いが可能です!