📩

AWS 構成で MTA-STS を有効にする

2022/09/19に公開

はじめに

MTA-STS を有効にするためには https://mta-sts.<メールドメイン>/.well-known/mta-sts.txt という指定の URL にテキストファイルを配置する必要があります。これをできるだけ簡単に済ませたいので AWS のマネージドサービスだけで完結させます。

多分これが一番早いと思います。

手順概要

  1. S3 に mta-sts.txt をアップロードする
  2. Certificate Manager で証明書を作成する
  3. CloudFront でディストリビューションを作成する
  4. S3 のバケットポリシーを更新する
  5. Route 53 にレコードを追加する

手順詳細

1. S3 に mta-sts.txt をアップロードする

  1. S3 に任意の名前のバケットを作成します。
  2. 作成したバケットに .well-known/mta-sts.txt を作成します。

2. Certificate Manager で証明書を作成する

  1. us-east-1 リージョン[1]で mta-sts.<メールドメイン> の証明書を作成します。
  2. ドメインの所有権を検証します。

ドメインの所有権検証は、ドメイン管理に Route 53 を利用している場合、 DNS 検証にすれば 2, 3 クリックで完了します。

3. CloudFront でディストリビューションを作成する

mta-sts.<メールドメイン> を以下の設定で作成します。

  • オリジン
    • オリジンドメイン: 作成した S3 バケット
    • S3 バケットアクセス: Origin access control settings (recommended)
    • Origin access control: 新規作成
  • ビヘイビア
    • ビューワープロトコルポリシー: HTTPS Only
    • 許可された HTTP メソッド: GET, HEAD
  • 設定
    • 代替ドメイン名 (CNAME): mta-sts.<メールドメイン>
    • カスタム SSL 証明書: 作成した証明書

4. S3 のバケットポリシーを更新する

  1. 作成したディストリビューションからオリジンを選択して編集画面を開き、バケットポリシーをコピーします。
  2. S3 バケットアクセス許可にコピーしたポリシーを貼り付けて保存します。

5. Route 53 にレコードを追加する

  1. メールドメインを管理するホストゾーンを開きます。
  2. 以下のレコードを作成します。
    • mta-sts.<メールドメイン> A レコード: CloudFront のエイリアス
    • mta-sts.<メールドメイン> AAAA レコード: CloudFront のエイリアス
    • _mta-sts.<メールドメイン> TXT レコード: v=STSv1;id=<1-32 桁の英数字列>;
    • _smtp._tls.<メールドメイン> TXT レコード: v=TLSRPTv1;rua=mailto:<レポート送付先メールアドレス>

CloudFront を利用することにより A/AAAA レコードの作成が簡単になります。

補遺

複数ドメイン管理

S3 バケットと CloudFront を 1:1 構成にしていますが、複数ドメインの MTA-STS を一括で管理したい場合、 S3 にドメインごとのプレフィックスを切ってそれぞれ mta-sts.txt ファイルを配置し、プレフィックスごとにオリジンを作成することができます。

Google Workspace の設定を確認する

Google Workspace を利用している場合、管理コンソールの Gmail のコンプライアンス設定から DNS にや mta-sts.txt に設定する値を確認できます。

脚注
  1. CloudFront から作成した証明書を参照するためには us-east-1 リージョンで作成する必要があります。 ↩︎

Discussion