6
2

More than 1 year has passed since last update.

AWS上のWebサービスからお客様内部のSMTPサーバーにメール通知する

Posted at

はじめに

BtoB向けのWebシステムでは、何かしらの通知をメールで行う事があります。
イントラ内に構築されたシステムであれば、Web/APサーバーから、お客様の内部SMTPサーバー宛にメール送信すればよいのですが、SaaSとしてWebサービスを提供している場合は、公開SMTPサーバー宛にインターネットメールを送信する事になります。

しかし、企業によっては、セキュリティの観点から、一部社員などについて、インターネットメールを受信できなくしている場合があります。

このような場合に、どのような解決策があるのか、整理してみたいと思います。

取りうる手段

インターネットメールを受信できない場合、インターネット経由で送信したメールを、お客様社内にある内部SMTPサーバー宛にメール送信できるようにする必要があります。

WebサービスがAWS上にある場合、上記を解決する方法として、以下の3つが考えられます。

  1. お客様ネットワークに、インターネット(Webサービス)からのメール通知を受け取るためのグローバル(パブリック)IPアドレス(GIP)を用意してもらい、NAT変換するなどして、お客様内部SMTPサーバーに受け渡す。
  2. お客様AWS環境(ある場合)のパブリックサブネットにNetwork Load Balancer(NLB)を構築し、NLBのターゲットグループに、お客様内部SMTPサーバーのプライベートIPアドレスを指定。
  3. お客様の公開SMTPサーバーからメールリレーして内部SMTPサーバーに転送。

以下に、1、2のパターンについての構成を記載します。

1. お客様GIP宛にメール送信し、NAT変換などして内部SMTPサーバーにメール送信

この構成では、お客様に新たにGIPを追加いただく必要があり、またネットワーク設定も変更が必要になるため、手間はかかりますが、お客様AWS環境が無い場合は検討の余地があると思います。

ただし、SMTPSなどを利用しない場合、インターネットをメールが平文で送信されることになるので、メールの内容によっては、セキュリティ面での考慮が必要になる場合があります。
image.png
この構成の場合、以下のようなメール通知の流れになります。

  • Webサービスからメール送信する際の宛先は、お客様環境のGIP(パブリックIPアドレス)を指定(プロトコル/ポートはTCP/587等)
  • お客様ファイアウォールでは、WebサービスのNAT GatewayのパブリックIPアドレスからのTCP/587等の通信を許可
  • お客様環境では、受け取った通信をルーターやL3スイッチ等でNAT変換して内部SMTPサーバーに受け渡す

2. お客様AWS環境のNLB経由で内部SMTPサーバーにメール送信

お客様AWS環境がある場合は、以下のような構成をとることができます。

AWS環境同士では、Internet Gatewayから出ていく経路であっても、インターネットは経由せず、AWS内のネットワークでの通信となるため、1のパターンよりも敷居が低くなるかもしれません。

やっている事はパターン1とほぼ同じですが、管理コンソールでの操作で簡単に構成を作り、検証できるのはありがたいですね。

また、2023年8月からNLBでもセキュリティグループが利用できるようになったので、通信制御もよりやりやすくなりました。

※ルートテーブル、セキュリティグループなどの設定はよしなに行ってください。
image.png
この構成の場合、以下のようなメール通知の流れになります。

  • Webサービスからメール送信する際の宛先は、お客様AWS環境のNLBのパブリックIPアドレスを指定(プロトコル/ポートはTCP/587等)
  • お客様AWS環境では、セキュリティグループやネットワークACLで、WebサービスのNAT GatewayのパブリックIPアドレスからのTCP/587等の通信を許可
  • お客様AWS環境のNLBでは、受け取った通信を内部SMTPサーバーに受け渡す

NLBのターゲットグループで、オンプレミス環境も含めたIPアドレスを指定できるのが、このような場合とても助かります。
image.png

おわりに

AWS環境のWebサービスから、インターネットメールが受信できないお客様環境宛にメール通知する方法について簡単にまとめてみました。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2