Take a “new step” Achieved by Value Engineering tech.digitalexperience.co.jp

AWS SESを使ったセキュアなメール送信

目次

AWS SESを使ったセキュアなメール送信

こんにちは。
SREの鈴木です。

AWSを利用した環境を構築する中でメールの送信機能をAWSのSESを使って実装することがよくあります。
その際にお客様からよくある質問として、「SESのメールは迷惑メールに入らないですか?」や、「SESのメール送信はなりすまし対策は大丈夫なの?」という問い合わせを受けます。
そこで今回は、SESの導入方法を説明しつつSESのメールのセキュリティ、特に迷惑メール対策となりすまし対策に関して紹介できればと思います。

 

 

SESとはどのようなサービス?

AWS SES(Amazon Simple Email Service)は、企業や開発者が顧客にメールを送るためのクラウドサービスです。ニュースレター、マーケティングメール、システムからの通知など、さまざまな種類のメールを、高速かつ安全に、そして安価に送ることができます。

従来の方法ではメールを送るためには専用のサービスに契約をするか、自前でメールサーバーを用意して迷惑メール対策を実施したりと多くの手間とコストがかかっていました。
AWS SESを使えば、これらの面倒な作業をAWSが代わりにやってくれるため、メール送信に関する複雑な問題を気にすることなく、本来の業務に集中できます。

主な利点
・高い到達率
AWSが世界中のインターネットサービスプロバイダと連携しているため、送ったメールが迷惑メールに分類されにくく、高い確率で受信箱に届きます。

・低コスト
送信したメールの数に応じて料金が発生するため、無駄なコストを抑えられます。

・簡単な設定
複雑な設定なしで、すぐにメール送信を開始できます。

AWS SESは、メール送信をプロに任せるサービスと考えると分かりやすいでしょう。これにより、メールが確実に届き、コストも抑えられ、ビジネスをスムーズに進めることができます。

 

 

AWS SESの導入手順

1. ドメインの登録
まず、メールを送るための住所(ドメイン)をAWSに教えて、自分のものだと証明します。これは、「このメールアドレスは私が使いますよ」と宣言するようなものです。AWS SESではこのドメインをIDという名前で管理しています。

 

ここではドメインかメールアドレスのどちらかを選択するのですが、セキュリティ面を考える場合はドメインが適しているため、ドメインを選択しメールに使うドメインを入力します。

 

 

2.SPF認証の設定
次に、少し下の方にあります「カスタム MAIL FROM ドメインの使用」にチェックを入れます。これは後述するメールセキュリティの1つの「SPF認証」を設定するために必要なものになります。チェックを入れるとさらに下に「MAIL FROM ドメイン」を入力するテキストボックスが現れます。ここに入力する値は任意の文字列で大丈夫なので、ここでは仮に「spf」と入力します。

 

 

3.DKIMの設定
最後に、「ドメインの検証」という部分でもう1つのメールセキュリティに必要な「DKIM認証」を設定することができます。ここでは特に指定がなければEasy DKIMを選択⇒RSA_2048_BITを選択すれば大丈夫です。
また、その下の「DNS レコードの Route53 への発行」ですがこちらはメールに使うドメインがAWS Route53というサービスに登録されていればチェックを入れてください。分からない場合はドメインの担当者に伺ってください。
このチェックの有無により後述するDNS認証の設定がボタン1個でできるか、手動で登録するかに違いがでますが、最終的に設定する内容は同じになりますのでそこまで気にしなくても大丈夫です。

全て入力ができましたら一番下に「IDの作成」というボタンがあるのでそちらをクリックすればIDの登録が完了します。

迷惑メール・なりすまし対策のDNSレコード登録

IDを登録したあとは、今作成したIDの詳細ページへ移動します。
このあとはDNSレコードの登録作業になりますが、前のページで「DNS レコードの Route53 への発行」にチェックを入れていてかつ、実際にRoute53にドメインが登録されている場合は以降のDNSレコードの登録は自動的に行われるため、作業は完了となります。ドメインをRoute53に登録していない場合は以下の作業を続けて行ってください。

 

ページを下の方にスクロールをすると下記画像のように「DNSレコードの発行」と書かれた部分が3か所あります。
これらを開くと下記の画像のように全部で6つのDNSレコードを確認することができます。これらのDNSレコードを全て登録することで迷惑メールと認識されづらくなりますので、6つ全てを登録してください。

 

 

DNSの登録が完了し暫く待つと「IDステータス」が検証済みとなりSESの登録が完了します。
メールの送信に関しては主に下記の方法があります。

1.メール送信の権限を持つIAMユーザーを作成し、IAMユーザーのアクセスキー、シークレットキーを使う方法
2.メール送信の権限を持つIAMポリシーを作成し、ポリシーをIAMロールに紐づけた後でIAMロールをEC2インスタンスに設定する方法
3.SESを利用するためのSMTPを作成してメールを送信する方法

今回は上記の詳細は割愛させて頂きますが、必要に応じて適切な方法でメールの送信を試してください。

SESのセキュリティ対策

AWS SESでは一般的な迷惑メール対策としてSPF、DKIM、DMARCに対応しています。それぞれ下記のような役割を持っています。

1. SPF(Sender Policy Framework)
SPFは「送信者の住所チェック」のようなものです。

メールが送られてきた時、そのメールが本当にそのドメイン(会社のウェブサイトの住所など)から送られたものなのかを確認します。これは、「この会社のメールは、この場所からしか送られませんよ」という情報をあらかじめ設定しておくことで、なりすましを防ぎます。
今回の例ではメールはAWSのシステムから送られるため、メールがAWSから送られていれば信憑性が高いと判断されます。
クライアントからは「悪意のある誰かが別のAWSに同じドメインを登録してメールを送信した場合はなりすましメールになってしまうのでは?」という質問をよく頂きます。結論としては複数のAWSアカウントでは同じID(ドメイン)を登録することはできない仕様になっています。そのため自社以外のAWS SESからはそもそも同じドメインを利用してメールを送ること自体できず、この仕組みによってなりすましメールを防ぐことができます。

 

 

2. DKIM(DomainKeys Identified Mail)
DKIMは「メールの署名」のようなものです。

メールにデジタル署名をつけることで、「このメールは、送信者が間違いなく作成し、内容も途中で改ざんされていない」ことを証明します。これは、手紙に捺印を押すイメージに似ています。この署名は今回の例ではAWS SESのシステム側の非公開の情報とDNSレコード内の情報を照合することで照合しています。

例: 銀行からの重要なお知らせメールが届いたとします。DKIMの署名を確認すると、そのメールが本当に銀行によって送られ、内容が書き換えられていないことが保証されます。これにより、フィッシング詐欺などの被害を防ぐことができます。

3. DMARC(Domain-based Message Authentication, Reporting, and Conformance)
DMARCは「SPFとDKIMの監督者」です。

これは、SPFとDKIMの両方をチェックし、「もしルール違反のメールが送られてきたら、どう対応するか」を指示するものです。DMARCの設定によって、受信側は「迷惑メールフォルダに入れる」「受信を拒否する」「何もしないでレポートだけ送る」といった対応を自動的に行います。

例: あなたの会社のドメインになりすましたメールが大量に送られているとします。DMARCを設定しておけば、受信側は「ルール違反のメールはすべて拒否してください」という指示に従い、その偽メールはユーザーに届く前にブロックされます。さらに、誰がどんな偽メールを送ろうとしているかのレポートも受け取れるので、対策を立てることができます。

最後に

今回は AWS SESを利用したドメインの登録と迷惑メール・なりすまし対策についてご紹介させて頂きました。
AWS SESではメールを送信する環境や、セキュリティに関する対策を簡単に準備することができますのでメールを安全に、そして確実に届けるための手段としてとても役に立つサービスです。
こちらを機にメール配信システムを自前の環境で構築しておりましたら、AWS SESのサービスを是非検討してみてください。

関連カテゴリ 最新記事一覧