Amazon SES で独自の DKIM 認証トークン (BYODKIM) を提供する - Amazon Simple Email Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon SES で独自の DKIM 認証トークン (BYODKIM) を提供する

Easy DKIM を使用する代わりに、独自のパブリックキーとプライベートキーのペアを使用して DKIM 認証を設定することもできます。このプロセスは、「Bring Your Own DKIM(BYODKIM)」として知られています。

BYODKIM では、単一の DNS レコードを使用してドメインの DKIM 認証を設定できます。一方 Easy DKIM では、3 つの個別の DNS レコードを発行する必要があります。さらに、BYODKIM を使用すると、ドメインの DKIM キーを必要な回数だけローテーションできます。

警告

現在 Easy DKIM が有効になっていて、BYODKIM に移行している場合、BYODKIM のセットアップ中で、DKIM ステータスが保留中になっている間、Amazon SES は Easy DKIM を使用してメールに署名しないことに注意してください。BYODKIM を有効にする電話を (API またはコンソールを介して) かけたときと SES が DNS 設定を確認できるときまでの間に、SES によって DKIM 署名なしで E メールが送信されることがあります。したがって、中間ステップを使用して、一方の DKIM 署名方法からもう一方の DKIM 署名方法に移行する (例えば、Easy DKIM を有効にしてドメインのサブドメインを使用し、BYODKIM 検証に合格したら削除する) か、アプリケーションのダウンタイム中にこのアクティビティを実行することをお勧めします (存在する場合)。

ステップ 1: キーペアを作成する

独自の DKIM 機能を使用するには、まず RSA キーペアを作成する必要があります。

生成するプライベートキーは、PKCS #1 または PKCS #8 形式で、少なくとも 1024 ビットの RSA 暗号化と最大 2048 ビットを使用し、base64 (PEM) エンコードを使用してエンコードする必要があります。DKIM 署名キーの長さとその変更方法の詳細は、DKIM 署名キーの長さを参照してください。

注記

プライベートキーが最低 1024 ビットの RSA 暗号化、最大 2048 ビットで、base64 (PEM) エンコーディングを使用して生成されている限り、サードパーティーのアプリケーションおよびツールを使用して RSA キーペアを生成できます。

次の手順では、ほとんどの Linux、macOS、または Unix オペレーティングシステムに組み込まれている openssl genrsa コマンドを使用してキーペアを作成するコード例では、自動的に base64 (PEM) エンコードが使用されます。

Linux、macOS、またはUnix コマンドラインからキーペアを作成するには
  1. コマンドラインで、以下のコマンドを入力して、nnnnを少なくとも1024のビット長で、2048までのビット長のプライベートキーに置き換えます。

    openssl genrsa -f4 -out private.key nnnn
  2. コマンドラインで、以下のコマンドを入力してパブリックキーを生成します。

    openssl rsa -in private.key -outform PEM -pubout -out public.key

ステップ 2: DNS プロバイダーのドメイン設定にセレクタおよびパブリックキーを追加する

キーペアを作成したので、パブリックキーを TXT レコードとしてドメインの DNS 設定に追加する必要があります。

ドメインの DNS 設定にパブリックキーを追加するには
  1. DNS またはホスティングプロバイダーの管理コンソールにサインインします。

  2. ドメインの DNS 設定に新しいテキストレコードを追加します。レコードは、次の形式を使用する必要があります。

    名前 タイプ

    selector._domainkey.example.com

    TXT

    p=yourPublicKey

    上の例に、以下の変更を加えます。

    • selectorは、キーを識別する一意の名前に置き換えます。

      注記

      いくつかの DNS プロバイダーでは、レコード名に下線 (_) を含めることが許可されていません。ただし、DKIM レコード名には下線が必要となります。DNS プロバイダーがレコード名に下線を含めることを許可しない場合、プロバイダーのカスタマーサポートにお問い合わせください。

    • example.comをドメインに置き換えます。

    • 上記の [Value] (値) 列に示すように、yourPublicKey を、以前に作成したパブリックキーに置き換え、プレフィックス p= を含めます。

      注記

      パブリックキーを DNS プロバイダーに公開 (追加) するときは、次のようにフォーマットする必要があります。

      • 生成されたパブリックキーの最初と最後の行 (それぞれ -----BEGIN PUBLIC KEY----------END PUBLIC KEY-----) を削除する必要があります。さらに、生成されたパブリックキーの改行を削除する必要があります。結果の値は、スペースや改行を含まない文字列になります。

      • 上記の表の [Value] (値) 列に示すように、プレフィックス p= を含める必要があります。

    プロバイダーによって、DNS レコードを更新する手順は異なります。次の表には、いくつかの広く使用されている DNS プロバイダーに関するドキュメントへのリンクが含まれています。このリストは網羅的なものではなく、推奨を意味するものでもありません。同様に、DNS プロバイダーがリストされていない場合、Amazon SES でドメインを使用できないことを意味するものでもありません。

    DNS/ホスティングプロバイダー ドキュメントのリンク

    Amazon Route 53

    詳細については、Amazon Route 53 デベロッパーガイドの「レコードの編集」を参照してください。

    GoDaddy

    Add a TXT record (外部リンク)

    DreamHost

    カスタム DNS レコードを追加する方法 (外部リンク)

    Cloudflare

    Managing DNS records in Cloudflare(外部リンク)

    HostGator

    HostGator/eNom で DNS レコードを管理する (外部リンク)

    Namecheap

    ドメインの TXT/SPF/DKIM/DMARC レコードを追加する方法 (外部リンク)

    Names.co.uk

    ドメイン DNS 設定の変更 (外部リンク)

    Wix

    Wix アカウントの TXT レコードの追加または更新 (外部リンク)

ステップ 3: BYODKIM を使用するようにドメインを設定し、検証する

BYODKIM は、新しいドメイン (現在 Amazon SES を経由した E メールの送信に使用していないドメイン) と既存のドメイン (コンソールまたはAWS CLIを使って、Amazon SES を介して設定済みのドメイン) の両方に対して設定できます。このセクションのAWS CLI手順を使用する前に、まずAWS CLIをインストールして設定する必要があります。詳細については、AWS Command Line Interface ユーザーガイドを参照してください。

オプション 1: BYODKIM を使用する新しいドメイン ID を作成する

このセクションでは、BYODKIM を使用する新しいドメイン ID を作成する手順について説明します。新しいドメイン ID とは、Amazon SES を使用して E メールを送信するように設定していないドメインです。

BYODKIM を使用するように既存のドメインを設定する場合は、代わりに「オプション 2: 既存のドメイン ID を設定する」の手順を実行します。

コンソールから BYODKIM を使用して ID を作成するには
  • ドメイン ID の作成」の手順に従い、ステップ 8 に到達したら、BYODKIM 固有の指示に従います。

AWS CLIからBYODKIMを使用してIDを作成するには

新しいドメインを設定するには、Amazon SES API でCreateEmailIdentity オペレーションを実行します。

  1. テキストエディタで、次のコードを貼り付けます。

    { "EmailIdentity":"example.com", "DkimSigningAttributes":{ "DomainSigningPrivateKey":"privateKey", "DomainSigningSelector":"selector" } }

    上の例に、以下の変更を加えます。

    • example.comを、作成するドメインに置き換えます。

    • privateKeyをプライベートキーに置き換えます。

      注記

      生成されたプライベートキーの最初と最後の行 (それぞれ -----BEGIN PRIVATE KEY----------END PRIVATE KEY-----) を削除する必要があります。さらに、生成されたプライベートキーの改行を削除する必要があります。結果の値は、スペースや改行を含まない文字列になります。

    • selectorは、ドメインの DNS 設定で TXT レコードを作成したときに指定した一意のセレクタに置き換えます。

    終了したら、create-identity.jsonとしてファイルを保存します。

  2. コマンドラインで以下のコマンドを入力します。

    aws sesv2 create-email-identity --cli-input-json file://path/to/create-identity.json

    上記のコマンドで、path/to/create-identity.jsonを、前のステップで作成したファイルの完全なパスに置き換えます。

オプション 2: 既存のドメイン ID を設定する

このセクションでは、BYODKIM を使用するために既存のドメイン ID を更新する手順について説明します。既存のドメイン ID は、Amazon SES を使用して E メールを送信するようにすでに設定されているドメインです。

コンソールから BYODKIM を使用してドメイン ID を更新するには
  1. AWS Management Console にサインインして Amazon SES コンソール (https://console.aws.amazon.com/ses/) を開きます。

  2. ナビゲーションペインの設定で、検証済み ID を選択します。

  3. ID のリストで、ID のタイプドメインでIDを選択します。

    注記

    ドメインを作成または検証する必要がある場合は、「ドメイン ID の作成」を参照してください。

  4. [認証] タブの [DomainKeys Identified Mail (DKIM)] ペインで、[編集] を選択します。

  5. [DKIM の詳細設定] ペインで、[ID のタイプ] フィールドの [DKIM 認証トークン (BYODKIM) の提供] ボタンを選択します。

  6. [プライベートキー] に、以前に生成したプライベートキーを貼り付けます。

    注記

    生成されたプライベートキーの最初と最後の行 (それぞれ -----BEGIN PRIVATE KEY----------END PRIVATE KEY-----) を削除する必要があります。さらに、生成されたプライベートキーの改行を削除する必要があります。結果の値は、スペースや改行を含まない文字列になります。

  7. セレクタ名については、ドメインの DNS 設定で指定したセレクタの名前を入力します。

  8. DKIM 署名フィールドで、[Enabled]ボックスにチェックを入れます。

  9. [Save changes] をクリックします。

AWS CLIからBYODKIM を使用してドメイン ID を更新するには

既存のドメインを設定するには、Amazon SES API でのPutEmailIdentityDkimSigningAttributesオペレーションを使用します。

  1. テキストエディタで、次のコードを貼り付けます。

    { "SigningAttributes":{ "DomainSigningPrivateKey":"privateKey", "DomainSigningSelector":"selector" }, "SigningAttributesOrigin":"EXTERNAL" }

    上の例に、以下の変更を加えます。

    • privateKeyをプライベートキーに置き換えます。

      注記

      生成されたプライベートキーの最初と最後の行 (それぞれ -----BEGIN PRIVATE KEY----------END PRIVATE KEY-----) を削除する必要があります。さらに、生成されたプライベートキーの改行を削除する必要があります。結果の値は、スペースや改行を含まない文字列になります。

    • selectorは、ドメインの DNS 設定で TXT レコードを作成したときに指定した一意のセレクタに置き換えます。

    終了したら、update-identity.jsonとしてファイルを保存します。

  2. コマンドラインで以下のコマンドを入力します。

    aws sesv2 put-email-identity-dkim-signing-attributes --email-identity example.com --cli-input-json file://path/to/update-identity.json

    上のコマンドに、以下の変更を加えます。

    • path/to/update-identity.jsonを、前のステップで作成したファイルへの完全なパスに置き換えます。

    • example.comを、更新するドメインに置き換えます。

BYODKIM を使用するドメインの DKIM ステータスを検証する

コンソールからドメインの DKIM ステータスを検証するには

BYODKIM を使用するようにドメインを設定したら、SES コンソールを使用して、DKIM が正しく設定されていることを検証できます。

  1. AWS Management Console にサインインして Amazon SES コンソール (https://console.aws.amazon.com/ses/) を開きます。

  2. ナビゲーションペインの設定で、検証済み ID を選択します。

  3. ID のリストで、検証する DKIM ステータスの ID を選択します。

  4. DNS 設定への変更が反映されるまでに最大 72 時間かかる場合があります。Amazon SES がドメインの DNS 設定の中から必要な DKIM レコードをすべて検出するとすぐに、検証プロセスは完了します。すべてが正しく設定されていれば、[DomainKeys Identified Mail (DKIM)] ペインで、ドメインの [DKIM configuration] (DKIM 設定) フィールドには [Successful] (成功) と表示され、[Summary] (概要) ペインで、[Identity status] (ID ステータス) フィールドには [Verified] (検証済み) と表示されます。

AWS CLI を使用してドメインの DKIM ステータスを検証するには

BYODKIM を使用するようにドメインを設定したら、GetEmailIdentity オペレーションを実行して、DKIM が正しく設定されていることを検証できます。

  • コマンドラインで以下のコマンドを入力します。

    aws sesv2 get-email-identity --email-identity example.com

    上記のコマンドで、example.comをドメインに置き換えます。

    このコマンドは、次の例のようなセクションを含む JSON オブジェクトを返します。

    { ... "DkimAttributes": { "SigningAttributesOrigin": "EXTERNAL", "SigningEnabled": true, "Status": "SUCCESS", "Tokens": [ ] }, ... }

    BYODKIMは、以下のすべてに該当する場合、ドメインに対して適切に設定されています。

    • SigningAttributesOriginプロパティの値はEXTERNALです。

    • SigningEnabledの値はtrueです。

    • Statusの値はSUCCESSです。