はじめに
AWS上のEC2インスタンスからメールを送信しようとしたら、なぜか届かない――そんな経験はありませんか?
実はAWSでは、スパムメールの悪用防止のため、すべてのEC2インスタンスでSMTP送信(ポート25)がデフォルトで制限されています。これはパブリックサブネットだけでなく、プライベートサブネットのEC2でも同様です。
本記事では、EIPを持たないプライベートサブネット上のEC2に対するポート25制限解除申請の背景・手順・注意点を、実務で役立つレベルで解説します。
1. 背景:なぜAWSはポート25を制限しているのか
SMTPポート25とは
SMTP(Simple Mail Transfer Protocol)のポート25は、メールサーバー間のメール転送に使われる標準ポートです。古くからインターネット上のメール配送の根幹を担ってきましたが、同時にスパムメールの踏み台として悪用されやすいポートでもあります。
AWSの制限ポリシー
AWSはプラットフォーム全体の信頼性を守るため、EC2インスタンスからのポート25アウトバウンド通信をデフォルトで制限しています。この制限により、万が一EC2が侵害された場合でも、大量のスパムメールが外部に送信されるリスクを抑えています。
重要なのは、この制限がEIPの有無やサブネットの種類(パブリック/プライベート)に関係なく、すべてのEC2インスタンスに適用されるという点です。
2. どんな場合にポート25の解除が必要になるのか
以下のようなユースケースでは、ポート25の制限解除申請が必要になります。
ユースケース例
- オンプレミスのメールリレーサーバーとの連携:プライベートサブネット上のアプリケーション(例:SharePoint、Redmine、Zabbixなど)からオンプレミス側のメールリレーサーバーを経由してメール通知を送信する場合
- レガシーシステムの移行:既存のオンプレミスシステムをAWSに移行する際、SMTP送信がポート25固定で変更できないシステムがある場合
- 社内メールサーバーへのリレー:VPN/Direct Connect経由で社内メールサーバー(Postfix、Exchangeなど)にポート25で接続する構成
ポート25の解除が不要なケース
逆に、以下のような場合は解除申請は不要です。
- Amazon SESを利用する場合:SESはポート587/465を使用するため、ポート25の制限は関係ありません
- 外部SMTPサービス(SendGrid、Mailgunなど)をポート587/465で利用する場合
- メール受信のみの場合:制限はアウトバウンド(送信)のみに適用されます
3. 前提条件
申請を行う前に、以下の点を確認してください。
| 項目 | 内容 |
|---|---|
| AWSアカウント | 対象のEC2が稼働しているAWSアカウントでログインすること |
| 必要な権限 | ルートアカウントは不要。Admin権限を持つIAMユーザーで申請可能 |
| AWSサポートプラン | ベーシックプランでも申請可能(サポートケースではなく専用フォーム経由のため) |
| 申請対象の情報 | EC2のインスタンスID、利用目的、メール送信先の情報など |
| EIP/rDNS | プライベートサブネットのEC2の場合、EIP情報・逆引き(rDNS)設定は入力不要 |
4. 申請手順
Step 1:申請フォームにアクセス
以下のURLから申請フォームを開きます。
https://console.aws.amazon.com/support/contacts?#/rdns-limits
注意:申請対象のAWSアカウントにログインした状態でアクセスしてください。
Step 2:必要事項を入力
フォームには以下の情報を記載します。
Elastic IP Address(EIP)欄
→ プライベートサブネットのEC2の場合は空欄でOKです。
Reverse DNS Record(rDNS)欄
→ こちらも入力不要です。
Use Case Description(利用理由)欄
→ ここが最も重要です。英語で、具体的かつ簡潔に記載します。
Step 3:申請理由を記載する
申請理由のポイントは以下の3つです。
- 何をしたいのか(どのEC2から、どこへメールを送るのか)
- なぜポート25が必要なのか(ポート587/465では対応できない理由)
- スパム対策はどうなっているか(メールリレーサーバーの制限、送信先の限定など)
申請理由の記載例
AWS Account ID: 1234-5678-9012
We operate a document management system (Microsoft SharePoint) on EC2
instance i-0123456789abcdef0 in a private subnet. This system needs to
send ticket notification emails via our on-premises mail relay server
through a VPN connection.
- Only authorized EC2 instances are permitted to connect to the mail
relay server.
- The mail relay server has strict access controls and only relays
emails to internal recipients.
- Port 587/465 is not supported by the legacy mail relay server.
Step 4:申請完了を確認
申請送信後、AWS Supportから確認メールが届きます。通常、数時間〜1営業日程度で承認されます。
5. 注意事項(必読)
⚠️ 制限解除はリージョン単位で適用される
これが最も重要な注意点です。
ポート25の制限解除が承認されると、申請したリージョン内のすべてのEC2インスタンスに対して制限が解除されます。特定のインスタンスだけを対象にすることはできません。
AWSからの承認メールにも以下のように記載されます。
"We approved your request for the removal of the EC2 email sending limitations on your Amazon Web Services account for the following regions…"
対策:セキュリティグループとNetwork ACLで制御
制限解除後は、意図しないEC2からのメール送信を防ぐため、ネットワークレベルで明示的に制御する必要があります。
セキュリティグループでの制御例:
# メール送信が必要なEC2のセキュリティグループのみ
# ポート25のアウトバウンドを許可する
[許可するSG]
Type: Custom TCP
Port: 25
Destination: <メールリレーサーバーのIP>/32
[それ以外のSG]
ポート25のアウトバウンドルールを追加しない
(デフォルトでは全アウトバウンドが許可されているため、
明示的にポート25を拒否するにはNetwork ACLを使用)
Network ACLでの制御例:
# サブネット単位でポート25を制御する場合
# メール送信不要なサブネットではポート25をDENY
Rule #: 50
Type: Custom TCP
Port: 25
Destination: 0.0.0.0/0
Action: DENY
その他の注意事項
- 申請フォームのUI変更:AWSコンソールは頻繁にUIが更新されるため、フォームの見た目や項目が変わっている可能性があります
- 複数リージョンで必要な場合:リージョンごとに個別の申請が必要です
- 申請の取り消し:一度解除した制限を再度有効にしたい場合は、AWSサポートへ別途問い合わせが必要です
6. 実運用で意識すべきポイント
ポート25の利用は「最後の手段」
AWSのベストプラクティスとして、可能な限り以下の代替手段を優先検討してください。
| 優先度 | 手段 | 説明 |
|---|---|---|
| ★★★ | Amazon SES | AWS標準のメール送信サービス。ポート587/465を使用し、25ポートの制限対象外 |
| ★★☆ | 外部SMTPサービス | SendGrid、Mailgun等をポート587/465で利用 |
| ★☆☆ | ポート25制限解除 | レガシーシステム連携等、他に手段がない場合のみ |
セキュリティ設計の原則
ポート25を解除する場合は、最小権限の原則を徹底してください。
- 送信先IPを限定する(メールリレーサーバーのIPのみ許可)
- 送信元EC2を限定する(セキュリティグループで制御)
- 送信ログを取得する(VPC Flow Logsの有効化)
- 定期的な監査を行う(不要になったら制限を再有効化)
監視の仕組み
ポート25が解放されたリージョンでは、意図しないメール送信を検知する仕組みも重要です。
- VPC Flow Logsでポート25のアウトバウンドトラフィックを監視
- CloudWatch Alarmsで異常な送信量を検知
- AWS Configでセキュリティグループルールの変更を追跡
7. 参照ドキュメント
| ドキュメント | URL |
|---|---|
| AWS公式:EC2のEメール送信制限について | https://docs.aws.amazon.com/ses/latest/dg/ec2-email-restrictions.html |
| 申請フォーム(ポート25制限解除・rDNS設定) | https://console.aws.amazon.com/support/contacts?#/rdns-limits |
| Amazon SES開発者ガイド | https://docs.aws.amazon.com/ses/latest/dg/ |
| VPC Flow Logs | https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html |
| 元記事(協栄情報ブログ) | https://cloud5.jp/aws-private-ec2-25-port/ |
まとめ
プライベートサブネットのEC2であっても、ポート25を使ったメール送信にはAWSへの制限解除申請が必要です。申請自体は専用フォームから英語で理由を記載するだけのシンプルな手続きですが、制限解除がリージョン単位で適用されるという点は見落としがちなので、解除後のセキュリティ設計まで含めて計画しましょう。
まずはAmazon SESやポート587/465での代替が可能かを検討し、ポート25の利用はやむを得ない場合に限定するのがAWS運用のベストプラクティスです。

