

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

# Amazon SES で独自の DKIM 認証トークン (BYODKIM) を提供する
<a name="send-email-authentication-dkim-bring-your-own"></a>

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

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

**Topics**
+ [ステップ 1: キーペアを作成する](#send-email-authentication-dkim-bring-your-own-create-key-pair)
+ [ステップ 2: DNS プロバイダーのドメイン設定にセレクタおよびパブリックキーを追加する](#send-email-authentication-dkim-bring-your-own-update-dns)
+ [ステップ 3: BYODKIM を使用するようにドメインを設定し、検証する](#send-email-authentication-dkim-bring-your-own-configure-identity)

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

## ステップ 1: キーペアを作成する
<a name="send-email-authentication-dkim-bring-your-own-create-key-pair"></a>

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

生成するプライベートキーは、PKCS \#1 または PKCS \#8 形式で、少なくとも 1024 ビットの RSA 暗号化と最大 2048 ビットを使用し、base64 [(PEM)](https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail) エンコードを使用してエンコードする必要があります。DKIM 署名キーの長さとその変更方法の詳細は、[DKIM 署名キーの長さ](send-email-authentication-dkim.md#send-email-authentication-dkim-1024-2048)を参照してください。

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

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

**Linux、macOS、またはUnix コマンドラインからキーペアを作成するには**

1. コマンドラインで、以下のコマンドを入力して、{{nnnn}}を少なくとも1024のビット長で、2048までのビット長のプライベートキーに置き換えます。

   ```
   openssl genrsa -f4 -out private.key {{nnnn}}
   ```

1. コマンドラインで、以下のコマンドを入力してパブリックキーを生成します。

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

## ステップ 2: DNS プロバイダーのドメイン設定にセレクタおよびパブリックキーを追加する
<a name="send-email-authentication-dkim-bring-your-own-update-dns"></a>

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

**ドメインの DNS 設定にパブリックキーを追加するには**

1. DNS またはホスティングプロバイダーの管理コンソールにサインインします。

1. ドメインの DNS 設定に新しいテキストレコードを追加します。レコードは、次の形式を使用する必要があります。    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/ses/latest/dg/send-email-authentication-dkim-bring-your-own.html)

   上の例に、以下の変更を加えます。
   + {{selector}}は、キーを識別する一意の名前に置き換えます。
**注記**  
いくつかの DNS プロバイダーでは、レコード名に下線 (\_) を含めることが許可されていません。ただし、DKIM レコード名には下線が必要となります。DNS プロバイダーがレコード名に下線を含めることを許可しない場合、プロバイダーのカスタマーサポートにお問い合わせください。
   + {{example.com}}をドメインに置き換えます。
   + 上記の [*Value*] (値) 列に示すように、{{yourPublicKey}} を、以前に作成したパブリックキーに置き換え、プレフィックス `p=` を含めます。
**注記**  
パブリックキーを DNS プロバイダーに公開 (追加) するときは、次のようにフォーマットする必要があります。  
生成されたパブリックキーの最初と最後の行 (それぞれ `-----BEGIN PUBLIC KEY-----` と `-----END PUBLIC KEY-----`) を削除する必要があります。さらに、生成されたパブリックキーの改行を削除する必要があります。結果の値は、スペースや改行を含まない文字列になります。
上記の表の [*Value*] (値) 列に示すように、プレフィックス `p=` を含める必要があります。

   プロバイダーによって、DNS レコードを更新する手順は異なります。次の表には、いくつかの広く使用されている DNS プロバイダーに関するドキュメントへのリンクが含まれています。このリストは網羅的なものではなく、推奨を意味するものでもありません。同様に、DNS プロバイダーがリストされていない場合、Amazon SES でドメインを使用できないことを意味するものでもありません。    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/ses/latest/dg/send-email-authentication-dkim-bring-your-own.html)

## ステップ 3: BYODKIM を使用するようにドメインを設定し、検証する
<a name="send-email-authentication-dkim-bring-your-own-configure-identity"></a>

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

### オプション 1: BYODKIM を使用する新しいドメイン ID を作成する
<a name="send-email-authentication-dkim-bring-your-own-configure-identity-new-domain"></a>

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

BYODKIM を使用するように既存のドメインを設定する場合は、代わりに「[オプション 2: 既存のドメイン ID を設定する](#send-email-authentication-dkim-bring-your-own-configure-identity-existing-domain)」の手順を実行します。

**コンソールから BYODKIM を使用して ID を作成するには**
+ 「[ドメイン ID の作成](creating-identities.md#verify-domain-procedure)」の手順に従い、ステップ 8 に到達したら、BYODKIM 固有の指示に従います。

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

新しいドメインを設定するには、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`としてファイルを保存します。

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

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

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

### オプション 2: 既存のドメイン ID を設定する
<a name="send-email-authentication-dkim-bring-your-own-configure-identity-existing-domain"></a>

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

**コンソールから BYODKIM を使用してドメイン ID を更新するには**

1.  AWS マネジメントコンソール にサインインし、Amazon SES コンソール ([https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/)) を開きます。

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

1. ID のリストで、**ID のタイプ**が*ドメイン*であるIDを選択します。
**注記**  
ドメインを作成または検証する必要がある場合は、「[ドメイン ID の作成](creating-identities.md#verify-domain-procedure)」を参照してください。

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

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

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

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

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

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

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

既存のドメインを設定するには、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`としてファイルを保存します。

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

   ```
   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 ステータスを検証する
<a name="send-email-authentication-dkim-bring-your-own-configure-identity-check"></a>

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

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

1.  AWS マネジメントコンソール にサインインし、Amazon SES コンソール ([https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/)) を開きます。

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

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

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

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

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`です。