toto_1212

技術のログをツラツラ書きます。自分用ですが参考にしていただけたら嬉しいです。間違ってたらドンドン突っ込んでください。

SNS通知を誤って止めてしまわないための設定

Cloudwatch経由でSNSから通知が送られてくるメールの文末にリンクがあるりますが、これをクリックするとサブスプリクションが解除されその後通知が一切来ないことになります。

f:id:toatoshi:20140218231153p:plain


メーリングリスト宛で不特定多数にメールが飛んでいるので、何となくURLをクリックしてしまう方がいてもおかしくありません。
プロマネや監視オペのような直接構築に関わらずクリック禁止のような情報もないと何コレ?みたいな感じで踏んでしまうというのがユースケースです。
※これ実話でありました。

実際にクリックするとこんな画面になります。

f:id:toatoshi:20140218231318p:plain

これで通知設定は消えてしまい、通知対象のメッセージは指定のメールアドレスには通知されません。
私は新たにSNSの設定でメールアドレスを追加しようと思ってSNSの設定を追加しようと思ったときにunsubscribeされていることに気づき、影響は無かったのですが実際に運用が始まった時では困ってしまうので、このリンクを無効化する方法がj3tm0t0さんのブログでも紹介されています

以下、行ったこと。
・再度、SNSにてCreate subscription設定してメール通知します。

・通知メール内の「Confirm subscription」リンクのURLを右クリックしURLをコピーします。
 ※リンクを普通にクリックしたらダメです。

・テキストに張り付けます。

https://sns.ap-northeast-1.amazonaws.com/confirmation.html?TopicArn=arn:aws:sns:ap-northeast-1:xxx12xxxxx04:NotifyMe&Token=1536412f37fb687f5d51e6e241d638b05c7dc841e9a109e5cc9d530d75c105d439670453e775c0aa6032b917a43f70e15fd4be8aa5cb7d4113cc8616c5db984afa8185c165a9aad9530f4c97dcbd0dbe161758f7fb9aca32dc826dd1daa308b79b6b357ca4047d9c9de5009e8b50b1ab&Endpoint=myaddres@hoge.com

上記のURL情報を使って以下のコマンドをaws-cli実効する。

aws sns confirm-subscription --topic-arn arn:aws:sns:ap-northeast-1:xxx12xxxxx04:DoNotUnsubscribe --token 1536412f37fb687f5d51e6e241d638b05c7dc841e9a109e5cc9d530d75c105d439670453e775c0aa6032b917a43f70e15fd4be8aa5cb7d4113cc8616c5db984afa8185c165a9aad9530f4c97dcbd0dbe161758f7fb9aca32dc826dd1daa308b79b6b357ca4047d9c9de5009e8b50b1ab --authenticate-on-unsubscribe true --region ap-northeast-1
※↑ 1行で実行する

{
    "SubscriptionArn": "arn:aws:sns:ap-northeast-1:xxx12xxxxx04:NotifyMe:4caceb24-c710-402f-9afc-3bb666c71110"
}


先ほどURLコピーしたリンクをクリックし、Subscribeします。

試しにcloudwatchのしきい値を下げる等してSNS通知受けます。
メールの文末にリンクをクリックすると以下のような画面となり、サブスプリクションを解除することが出来なくなります。

f:id:toatoshi:20140218232446p:plain