

# ドメインコントロールの検証
<a name="tutorials-byoip-ipam-domain-verification-methods"></a>

IP アドレス範囲を AWS に持ち込む前に、このセクションで説明したオプションのいずれかを使用して、IP アドレススペースがユーザーによって制御されていることを確認する必要があります。後に、IP アドレス範囲を AWS に持ち込むと、AWS で IP アドレス範囲がユーザーによって制御されていることが検証されます。この検証により、お客様は他のユーザーに属する IP 範囲を使用できなくなり、ルーティングやセキュリティの問題を防ぐことができます。

範囲がユーザーによって制御されていることを確認するのに使用できる方法は 2 つあります。
+ **X.509 証明書**: IP アドレス範囲が RDAP をサポートするインターネットレジストリ (ARIN、RIPE、APNIC など) に登録されている場合、X.509 証明書を使用してドメインの所有権を検証できます。
+ **DNS TXT レコード**: インターネットレジストリが RDAP をサポートしているかどうかにかかわらず、検証トークンと DNS TXT レコードを使用してドメインの所有権を検証できます。

**Topics**
+ [X.509 証明書を使用してドメインを検証する](#tutorials-byoip-ipam-domain-verification-cert)
+ [DNS TXT レコードを使用してドメインを検証する](#tutorials-byoip-ipam-domain-verification-dns-txt)

## X.509 証明書を使用してドメインを検証する
<a name="tutorials-byoip-ipam-domain-verification-cert"></a>

このセクションでは、IP アドレス範囲を IPAM に持ち込む前に、X.509 証明書を使用してドメインを検証する方法について説明します。

**X.509 証明書を使用してドメインを検証するには**

1. 「Amazon EC2 ユーザーガイド」の「[Prerequisites for BYOIP in Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/prepare-for-byoip.html)」の 3 つのステップを完了します。**
**注記**  
ROA を作成する際、IPv4 の CIDR では、IP アドレスのプレフィックスの最大長を `/24` に設定する必要があります。IPv6 CIDR については、アドバタイズ可能なプールに追加する場合、IP アドレスのプレフィックスの最大長は `/48` である必要があります。これにより、パブリック IP アドレスを AWS リージョンごとに分割して利用する柔軟性がもたらされます。IPAM では、設定した最大長が適用されます。最大長は、このルートで許可する最小のプレフィックス長アナウンスです。例えば、`/20` の CIDR ブロックを AWS に取り込んだ場合、最大長を `/24` に設定することで、大きなブロックを任意に分割 (`/21`、`/22`、`/24` など) して、それらの小さな CIDR ブロックを任意のリージョンに配布することができます。最大長を `/23` に設定した場合、大きなブロックから `/24` を分割して広告することはできません。なお、`/24` は最小の IPv4 ブロック、`/48` はリージョンからインターネットにアドバタイズできる最小の IPv6 ブロックです。

1. 「Amazon EC2 ユーザーガイド」の「[AWS でパブリックにアドバタイズ可能なアドレス範囲をプロビジョニングする](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html#byoip-provision)」のステップ 1 と 2 のみを完了し、**アドレス範囲のプロビジョニング (ステップ 3) はまだしないでください**。`text_message` と `signed_message` を保存します。これらは後にこのプロセスで必要になります。

これらのステップが完了したら、「[AWS マネジメントコンソールと AWS CLI の両方を使用して、独自の IP を IPAM に持ち込む](tutorials-byoip-ipam-console-intro.md)」または「[AWS CLI のみを使用した IPAM への独自の IP CIDR の持ち込み](tutorials-byoip-ipam-cli-only-intro.md)」に進みます。

## DNS TXT レコードを使用してドメインを検証する
<a name="tutorials-byoip-ipam-domain-verification-dns-txt"></a>

IP アドレス範囲を IPAM に持ち込む前に、このセクションのステップを完了して、DNS TXT レコードによりドメインを検証します。

DNS TXT レコードを使用して、パブリック IP アドレス範囲がユーザーによって制御されていることを検証できます。DNS TXT レコードは、ドメイン名に関する情報が入った DNS レコードの一種です。この機能を使用すると、RDAP (Registration Data Access Protocol) レコードベースの検証をサポートするインターネットレジストリ (ARIN、RIPE、APNIC など) だけでなく、任意のインターネットレジストリ (JPNIC、LACNIC、AFRINIC など) に登録された IP アドレスを使用できるようになります。

**重要**  
続行するには、無料利用枠またはアドバンスト枠で IPAM を作成しておく必要があります。IPAM がない場合は、まず [IPAM を作成する](create-ipam.md) を完了してください。

**Topics**
+ [ステップ 1: ROA がない場合は ROA を作成する](#tutorials-byoip-ipam-domain-verification-dns-txt-roa)
+ [ステップ 2. 検証トークンを作成する](#tutorials-byoip-ipam-domain-verification-dns-txt-token)
+ [ステップ 3. DNS ゾーンと TXT レコードを設定する](#tutorials-byoip-ipam-domain-verification-dns-txt-dns)

### ステップ 1: ROA がない場合は ROA を作成する
<a name="tutorials-byoip-ipam-domain-verification-dns-txt-roa"></a>

アドバタイズする IP アドレス範囲のために、地域インターネットレジストリ (RIR) に Route Origin Authorization (ROA) が必要です。RIR に ROA がない場合は、「Amazon EC2 ユーザーガイド」の「[3. 「*Amazon EC2 ユーザーガイド*」の「RIR に ROA オブジェクトを作成する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html#byoip-create-roa-object)」を完了してください。他のステップは無視します。

取得できる最も具体的な IPv4 アドレス範囲は /24 です。提供できる最も具体的な IPv6 アドレス範囲はパブリックにアドバタイズ可能な CIDR の場合は /48、パブリックにアドバタイズ可能でない CIDR の場合は /60 です。

### ステップ 2. 検証トークンを作成する
<a name="tutorials-byoip-ipam-domain-verification-dns-txt-token"></a>

検証トークンは、外部リソースの制御を証明するのに使用できる AWS 生成のランダム値です。例えば、検証トークンを使用して、IP アドレス範囲を AWS に持ち込む (BYOIP) ときに、パブリック IP アドレス範囲がユーザーによって制御されていることを検証できます。

このセクションのステップを完了して検証トークンを作成します。検証トークンは、このチュートリアルの以降のステップで IP アドレス範囲を IPAM に持ち込むのに必要になります。AWS コンソールまたは AWS CLI について、以下の手順に従ってください。

------
#### [ AWS Management Console ]

**検証トークンを作成するには**

1. IPAM コンソール ([https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/)) を開きます。

1. AWS マネジメントコンソールで、IPAM を作成した AWS リージョンを選択します。

1. 左側のナビゲーションペインで、**[IPAM]** を選択します。

1. IPAM を選択し、**[検証トークン] タブ**を選択します。

1. **[検証トークンを作成]** を選択します。

1. トークンを作成した後は、このブラウザタブを開いたままにします。次のステップで **[トークン値]**、**[トークン名]**、その後のステップで **[トークン ID]** が必要になります。

次の点に注意してください。
+ 検証トークンを作成すると、72 時間以内に IPAM からプロビジョニングした複数の BYOIP CIDR に対してそのトークンを再利用できます。72 時間経過後にさらに CIDR をプロビジョニングする場合は、新しいトークンが必要です。
+ 最大 100 個のトークンを作成できます。この制限に達した場合は、期限切れのトークンを削除してください。

------
#### [ Command line ]
+ IPAM が [create-ipam-external-resource-verification-token](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-ipam-external-resource-verification-token.html) で DNS 設定に使用する検証トークンを作成するリクエスト:

  ```
  aws ec2 create-ipam-external-resource-verification-token --ipam-id ipam-id
  ```

  これにより、IpamExternalResourceVerificationTokenId、`TokenName` と `TokenValue` を含むトークン、およびトークンの有効期限 (`NotAfter`) が返されます。

  ```
  { 
      "IpamExternalResourceVerificationToken": { 
          "IpamExternalResourceVerificationTokenId": "ipam-ext-res-ver-token-0309ce7f67a768cf0", 
          "IpamId": "ipam-0f9e8725ac3ae5754", 
          "TokenValue": "a34597c3-5317-4238-9ce7-50da5b6e6dc8", 
          "TokenName": "86950620", 
          "NotAfter": "2024-05-19T14:28:15.927000+00:00", 
          "Status": "valid", 
          "Tags": [], 
          "State": "create-in-progress" }
  }
  ```

次の点に注意してください。
+ 検証トークンを作成すると、72 時間以内に IPAM からプロビジョニングした複数の BYOIP CIDR に対してそのトークンを再利用できます。72 時間経過後にさらに CIDR をプロビジョニングする場合は、新しいトークンが必要です。
+ [describe-ipam-external-resource-verification-tokens](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-ipam-external-resource-verification-tokens.html) を使用してトークンを表示できます。
+ 最大 100 個のトークンを作成できます。この制限に達した場合は、[delete-ipam-external-resource-verification-token](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-ipam-external-resource-verification-token.html) を使用して期限切れのトークンを削除できます。

------

### ステップ 3. DNS ゾーンと TXT レコードを設定する
<a name="tutorials-byoip-ipam-domain-verification-dns-txt-dns"></a>

このセクションのステップを完了して、DNS ゾーンと TXT レコードを設定します。Route53 を DNS として使用していない場合は、DNS プロバイダーが提供するドキュメントに従って DNS ゾーンを設定し、TXT レコードを追加します。

Route53 を使用している場合は、次に注意してください。
+ AWS コンソールでリバースルックアップゾーンを作成するには、「Amazon Route 53 デベロッパーガイド」の「[パブリックホストゾーンの作成](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/CreatingHostedZone.html)」を参照するか、AWS CLI コマンド [create-hosted-zone](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-hosted-zone.html) を使用してください。
+ AWS コンソールでリバースルックアップゾーンにレコードを作成するには、「Amazon Route 53 デベロッパーガイド」の「[Amazon Route 53 コンソールを使用したレコードの作成](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-creating.html)」を参照するか、AWS CLI コマンド [change-resource-record-sets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/change-resource-record-sets.html) を使用してください。
+ ホストゾーンの作成が完了したら、RIR から Route53 が提供するネームサーバー ([LACNIC](https://www.lacnic.net/1017/2/lacnic/reverse-dns-resolution) や [APNIC](https://www.apnic.net/manage-ip/manage-resources/reverse-dns/) などのもの) にホストゾーンを委任します。

別の DNS プロバイダーと Route53 のどちらを使用している場合でも、TXT レコードを設定する際には、次の点に注意してください。
+ レコード名はトークン名である必要があります。
+ レコードタイプは TXT である必要があります。
+ ResourceRecord 値はトークン値である必要があります。

例:
+ **名前**: `86950620.113.0.203.in-addr.arpa`
+ **タイプ**: `TXT`
+ **ResourceRecords 値**: `a34597c3-5317-4238-9ce7-50da5b6e6dc8`

コードの説明は以下のとおりです。
+ `86950620` は検証トークン名です。
+ `113.0.203.in-addr.arpa` はリバースルックアップゾーン名です。
+ `TXT` はレコードタイプです。
+ `a34597c3-5317-4238-9ce7-50da5b6e6dc8` は検証トークン値です。

**注記**  
BYOIP を使用して IPAM に持ち込むプレフィックスのサイズに応じて、DNS に 1 つ以上の認証レコードを作成する必要があります。この認証レコードはレコードタイプ TXT であり、プレフィックス自体またはその親プレフィックスのリバースゾーンに配置する必要があります。  
IPv4 では、認証レコードは、プレフィックスを構成するオクテット境界の範囲にアライメントする必要があります。  
**例**
オクテット境界で既にアライメントされている 198.18.123.0/24 の場合、次のように認証レコードを 1 つ作成する必要があります。  
`token-name.123.18.198.in-addr.arpa. IN TXT “token-value”`
それ自体がオクテット境界にアライメントされていない 198.18.12.0/22 の場合、認証レコードを 4 つ作成する必要があります。これらのレコードは、オクテット境界でアライメントされているサブネット 198.18.12.0/24、198.18.13.0/24、198.18.14.0/24、および 198.18.15.0/24 をカバーする必要があります。対応する DNS エントリは次のようにする必要があります。  
`token-name.12.18.198.in-addr.arpa. IN TXT “token-value”`
`token-name.13.18.198.in-addr.arpa. IN TXT “token-value”`
`token-name.14.18.198.in-addr.arpa. IN TXT “token-value”`
`token-name.15.18.198.in-addr.arpa. IN TXT “token-value”`
オクテット境界で既にアライメントされている 198.18.0.0/16 の場合、認証レコードを 1 つ作成する必要があります。  
`token-name.18.198.in-addr.arpa. IN TXT “token-value”`
IPv6 では、認証レコードは、プレフィックスを構成するニブル境界の範囲にアライメントする必要があります。有効なニブル値は、32、36、40、44、48、52、56、60 などです。  
**例**  
ニブル境界で既にアライメントされている 2001:0db8::/40 の場合、認証レコードを 1 つ作成する必要があります。  
`token-name.0.0.8.b.d.0.1.0.0.2.ip6.arpa TXT “token-value”`
それ自体がニブル境界でアライメントされていない 2001:0db8:80::/42 の場合、認証レコードを 4 つ作成する必要があります。これらのレコードは、ニブル境界でアライメントされているサブネット 2001:db8:80::/44、2001:db8:90::/44、2001:db8:a0::/44、および 2001:db8:b0::/44 をカバーする必要があります。対応する DNS エントリは次のようにする必要があります。  
`token-name.8.0.0.8.b.d.0.1.0.0.2.ip6.arpa TXT “token-value”`
`token-name.9.0.0.8.b.d.0.1.0.0.2.ip6.arpa TXT “token-value”`
`token-name.a.0.0.8.b.d.0.1.0.0.2.ip6.arpa IN TXT “token-value”`
`token-name.b.0.0.8.b.d.0.1.0.0.2.ip6.arpa IN TXT “token-value”`
それ自体がニブル境界でアライメントされていない、アドバタイズされていない範囲 2001:db8:0:1000::/54 の場合、認証レコードを 4 つ作成する必要があります。これらのレコードは、ニブル境界でアライメントされているサブネット 2001:db8:0:1000::/56、2001:db8:0:1100::/56、2001:db8:0:1200::/56、および 2001:db8:0:1300:::/56 をカバーする必要があります。対応する DNS エントリは次のようにする必要があります。  
`token-name.0.1.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa IN TXT “token-value”`
`token-name.1.1.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa IN TXT “token-value”`
`token-name.2.1.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa IN TXT “token-value”`
`token-name.3.1.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa IN TXT “token-value”`
token-name と文字列「ip6.arpa」の間の正しい 16 進数の数値を確認するには、その数値に 4 を掛けます。この結果はプレフィックスの長さと一致する必要があります。例えば、プレフィックス /56 の場合、16 進数での桁数を 14 にする必要があります。

これらのステップが完了したら、「[AWS マネジメントコンソールと AWS CLI の両方を使用して、独自の IP を IPAM に持ち込む](tutorials-byoip-ipam-console-intro.md)」または「[AWS CLI のみを使用した IPAM への独自の IP CIDR の持ち込み](tutorials-byoip-ipam-cli-only-intro.md)」に進みます。