はじめに
とあるシステムにて、Amazon SES を使用してメール送信機能を実装しました。
大量の架空メールアドレsスを使用してテストしたことにより、バウンス率(※)が急上昇し、Amazon SES が利用停止状態になりました。そのときの一連の対応を備忘録的に残します。
※バウンス率:送信メールのうち、不達となった割合
停止から復旧までの一連の流れ
日程 | 内容 | ポイント |
---|---|---|
某日 | テストに大量の架空メールアドレスに対してメール送信、結果バウンス率が急上昇し、Amazon SES が停止となる | SES 停止 |
AWS サポートケースに起票される | ||
社内で原因と今後の対応について検討 | ||
クライアント様に状況報告、緊急MTGの相談 | ||
並行してサポートケースに返信(返信①) | AWS に停止解除の申請(1回目) | |
緊急MTG実施、状況説明、今後の対応について相談 | ||
停止解除されるまでの間の、アプリケーション側の臨時対応の検討 | ||
クライアントから臨時対応の実行許可、臨時対応を進める | ||
臨時対応リリース | ||
AWS から回答あり、申請却下(回答①) | ||
翌日 | AWS からの回答をもとに改めて今後の対応方針を検討 | |
AWS に再返信(返信②) | AWS に停止解除の申請(2回目) | |
AWS から回答あり、申請承認、停止解除(回答②) | SES 再始動 | |
クライアント様に復旧報告 | ||
臨時対応を元に戻す |
臨時対応
- お知らせ掲載
- 新規会員登録や問い合わせフォームなどメール送信伴う機能、導線の停止・非表示
- コンビニ決済の受付停止(申込番号等をメールに記載しているため)
返信①
以下一部要約
1 2 3 4 5 6 7 8 9 10 11 12 13 |
--------------------------------------------------------------------- 原因 --------------------------------------------------------------------- ・バウンス率が急上昇した原因は、存在しないメールアドレスに大量にメール送信してしまったためです ・大量メール送信はテストによるもので外部からの攻撃ではありません ・下記の形式のメールアドレスを大量に使用しました xxxxxxxxxxxxx@sat.ne.jp --------------------------------------------------------------------- 対策 --------------------------------------------------------------------- ・架空のメールアドレスに対し、テストであっても大量送信しないように致します ・バウンスメール発生時は運用担当者にメール通知すること(既に本番運用で実施中) |
回答①
以下一部抜粋
1 2 3 4 5 6 7 8 9 |
違反行為の根本原因を特定し、テスト用/架空のメールアドレスへの送信を停止していただき、誠にありがとうございます。これは良い解決策です。ただし、この解決策では、この問題の再発を緩和する効果は十分ではありません。以下の推奨修正を実装することを強くお勧めします- 1。メールボックスシミュレーターを使用して、送信クォータやバウンスや苦情の指標に影響を与えずに E メール送信プロセスをテストすることをお勧めします。シミュレータを使用して、バウンス、苦情、配信成功など、さまざまなシナリオをテストできます。詳細については、Amazon SES 開発者ガイドを参照してください (https://docs.aws.amazon.com/ses/latest/dg/send-an-email-from-console.html ). 2。Amazon SES のすべてのお客様にとって、バウンスや苦情を処理するためのプロセスを整えておくことは必須要件であることに注意してください。効果的なバウンスおよび苦情処理プロセスを導入することで、悪意のある送信や意図しない送信を特定できます。プロセスが整っていない場合は、すぐに実装してください。すでにプロセスを導入している場合は、期待どおりに機能していることを確認してください。送信アクティビティを監視する方法の詳細については、以下を参照してください。https://docs.aws.amazon.com/ses/latest/dg/monitor-sending-activity.html . 3。同様の問題が再び発生して SES サービスが中断されるのを防ぐために、送信前に電子メールアドレスを確認することをお勧めします。リストの検証は、無効な、または形式が正しくないメールアドレスを識別するのに役立つプロセスです。残念ながら、受信者のメールアドレスの有効性を確認する会社やツールはお勧めできません。また、このプロセスは、バウンスや苦情の監視を含む適切なリスト管理方法に取って代わるものではないことにも注意してください。 なぜなら、あなたの異議申し立てでは、私たちが決定を下すために必要な情報を提供していなかったからです。次の質問に対する回答を添えて、このメッセージに返信してください。 |
返信②
以下要約
1 2 3 4 5 6 7 8 9 10 |
・テスト環境では、メール送信をデバッグモードにしたこと ・テスト誤送信を無くす対処を講じたこと ・必要な時だけメール送信モードにすること ・一括登録などのテストを行う場合は、対象データのリストを作成 ・リスト内のメールアドレスをランダムに数件ピックアップし、メールボックスシミュレータを使用して、実際にメール送信できるか確認 ・テストでは社内用メールアドレスを使用することを原則とし、数が必要な場合はエイリアスで仕分ける ・本番運用においてバウンスメールが発生した場合の対処を講じたこと ・バウンス率、苦情率のモニタリングを実施すること ・定期的にバウンス率、苦情率に異常がないか確認するフローを設けること ・異常な状態が検知された場合は運用担当者間で検討し、不正なアドレスと判断した場合、システム上でそのメールアドレスをブロックすること |
回答②
以下一部抜粋
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
お客様のアカウントをさらに確認した結果、AWS リージョンアジアパシフィック (東京) での送信機能を回復することを決定しました。再度送信を開始する際には、以下のベストプラクティスを念頭に置いてください。 -特にメールをリクエストしたアドレスにのみ送信してください。 -バウンスしたアドレスや苦情のあったアドレスを速やかに削除して、送信リストを管理しましょう。 -過去 6 か月間にメールとやり取りしていないアドレスをリストから削除します。 -受信者が受け取りたいと思う高品質のメールを送信していることを確認してください。 -アクセスキーに関するセキュリティ上の問題を防ぐため、アクセスキーをローテーションし、内部のセキュリティ方法を見直して更新し、コードや機密情報をサードパーティのサイトやリポジトリに保存しないこと、承認されたユーザーだけがログイン情報にアクセスできるようにすることをお勧めします。詳細については、以下を参照してください。https://aws.amazon.com/premiumsupport/knowledge-center/ses-rotate-smtp-access-keys/ -サイト上のオンラインフォームに関するセキュリティ上の問題を防ぐため、CAPTCHAの追加、レート制限、カスタマイズされたユーザーコンテンツの禁止、この機能を使用するにはユーザーのサインインを要求すること、複数の通知を同時に生成する機能の使用を禁止することをおすすめします。 アマゾンウェブサービスをご利用いただきありがとうございます。 |
振り返り
唐突な機能停止という状況になってから、復旧まで丸1日かかりました。
一つのミスとはいえ、AWS に納得してもらうまでに今後の対策と運用を細かく見直すことになりました。
みなさんもメール送信テストには気をつけましょう。