

# Amazon EC2 で BYOIP を使用するための前提条件
<a name="prepare-for-byoip"></a>

BYOIP のオンボーディングプロセスには 2 つのフェーズがあり、そのためには 3 つのステップを実行する必要があります。これらの手順は次の図に示す手順に対応しています。このドキュメントには手動のステップが含まれていますが、RIR はこれらのステップをサポートするマネージドサービスを提供している場合があります。

**ヒント**  
このセクションのタスクには Linux ターミナルが必要で、Linux、[AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)、または [Windows Subsystem for Linux](https://learn.microsoft.com/en-us/windows/wsl/about) を使用して実行できます。

**Topics**
+ [概要](#byoip-onboarding-overview)
+ [プライベートキーを作成し、X.509 証明書を生成します。](#byoip-certificate)
+ [X.509 証明書を RIR の RDAP レコードにアップロードする](#byoip-add-certificate)
+ [RIR に ROA オブジェクトを作成する](#byoip-create-roa-object)

## 概要
<a name="byoip-onboarding-overview"></a>

**準備フェーズ**  
[1] [プライベートキーを作成](#byoip-certificate)し、それを使用して認証のための自己署名 X.509 証明書を生成します。この証明書はプロビジョニング段階でのみ使用されます。プロビジョニングが完了したら、RIR の記録から証明書を削除できます。

**RIR 設定フェーズ**

[2] RDAP レコードのコメントに[自己署名証明書をアップロード](#byoip-add-certificate)します。

[3] RIR に [ROA オブジェクトを作成](#byoip-create-roa-object)します。ROA は目的のアドレス範囲、アドレス範囲のアドバタイズを許可する自律システム番号 (ASN)、および RIR の Resource Public Key Infrastructure (RPKI) に登録する有効期限を定義します。

**注記**  
パブリックにアドバタイズ可能でない IPv6 アドレス空間にはROA は必要ありません。

![BYOIP をオンボーディングするための 3 段階プロセス。](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/byoip-preonboarding.png)


複数のアドレス範囲を使用する場合はそれぞれの不連続のアドレス範囲に対し、このプロセスを繰り返します。ただし、連続したブロックを複数の異なる AWS リージョンに分割する場合は準備の手順と RIR 設定手順を繰り返す必要はありません。

新しくアドレス範囲を追加しても、以前に追加済みのアドレス範囲には影響を与えません。

## プライベートキーを作成し、X.509 証明書を生成します。
<a name="byoip-certificate"></a>

次の手順を使用して、自己署名 X509 証明書を作成し、RIR の RDAP レコードに追加します。RIR を使用してアドレス範囲を認証するにはこのキーペアを使用します。**openssl** コマンドにはOpenSSL バージョン 1.0.2 以降が必要です。

次のコマンドをコピーし、プレースホルダー値 (色付きの斜体テキスト) のみを置換します。

この手順ではプライベート RSA キーを暗号化し、アクセスするためにパスフレーズを要求するベストプラクティスに従います。

1. 以下に示すように RSA 2048 ビットのプライベートキーを生成します。

   ```
   $ openssl genpkey -aes256 -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out private-key.pem
   ```

   `-aes256` パラメータはプライベートキーの暗号化に使用されるアルゴリズムを指定します。コマンドの出力は次の通りです。これにはパスフレーズを設定するためのプロンプトが含まれます。

   ```
   ......+++
   .+++
   Enter PEM pass phrase: {{xxxxxxx}}
   Verifying - Enter PEM pass phrase: {{xxxxxxx}}
   ```

   次のコマンドを使用して、キーを検査します。

   ```
   $ openssl pkey -in private-key.pem -text
   ```

   これは次のようなパスフレーズプロンプトとキーの内容を返します。

   ```
   Enter pass phrase for private-key.pem: {{xxxxxxx}}
   -----BEGIN PRIVATE KEY-----
   MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDFBXHRI4HVKAhh
   3seiciooizCRTbJe1+YsxNTja4XyKypVGIFWDGhZs44FCHlPOOSVJ+NqP74w96oM
   7DPS3xo9kaQyZBFn2YEp2EBq5vf307KHNRmZZUmkn0zHOSEpNmY2fMxISBxewlxR
   FAniwmSd/8TDvHJMY9FvAIvWuTsv5l0tJKk+a91K4+tO3UdDR7Sno5WXExfsBrW3
   g1ydo3TBsx8i5/YiVOcNApy7ge2/FiwY3aCXJB6r6nuF6H8mRgI4r4vkMRsOlAhJ
   DnZPNeweboo+K3Q3lwbgbmOKD/z9svk8N/+hUTBtIX0fRtbG+PLIw3xWRHGrMSn2
   BzsPVuDLAgMBAAECggEACiJUj2hfJkKv47Dc3es3Zex67A5uDVjXmxfox2Xhdupn
   fAcNqAptV6fXt0SPUNbhUxbBKNbshoJGufFwXPli1SXnpzvkdU4Hyco4zgbhXFsE
   RNYjYfOGzTPwdBLpNMB6k3Tp4RHse6dNrlH0jDhpioL8cQEBdBJyVF5X0wymEbmV
   mC0jgH/MxsBAPWW6ZKicg9ULMlWiAZ3MRAZPjHHgpYkAAsUWKAbCBwVQcVjGO59W
   jfZjzTX5pQtVVH68ruciH88DTZCwjCkjBhxg+OIkJBLE5wkh82jIHSivZ63flwLw
   z+E0+HhELSZJrn2MY6Jxmik3qNNUOF/Z+3msdj2luQKBgQDjwlC/3jxp8zJy6P8o
   JQKv7TdvMwUj4VSWOHZBHLv4evJaaia0uQjIo1UDa8AYitqhX1NmCCehGH8yuXj/
   v6V3CzMKDkmRr1NrONnSz5QsndQ04Z6ihAQlPmJ96g4wKtgoC7AYpyP0g1a+4/sj
   b1+o3YQI4pD/F71c+qaztH7PRwKBgQDdc23yNmT3+Jyptf0fKjEvONK+xwUKzi9c
   L/OzBq5yOIC1Pz2T85gOe1i8kwZws+xlpG6uBT6lmIJELd0k59FyupNu4dPvX5SD
   6GGqdx4jk9KvI74usGeOBohmF0phTHkrWKBxXiyT0oS8zjnJlEn8ysIpGgO28jjr
   LpaHNZ/MXQKBgQDfLNcnS0LzpsS2aK0tzyZU8SMyqVHOGMxj7quhneBq2T6FbiLD
   T9TVlYaGNZ0j71vQaLI19qOubWymbautH0Op5KV8owdf4+bf1/NJaPIOzhDUSIjD
   Qo01WW31Z9XDSRhKFTnWzmCjBdeIcajyzf10YKsycaAW9lItu8aBrMndnQKBgQDb
   nNp/JyRwqjOrNljk7DHEs+SD39kHQzzCfqd+dnTPv2sc06+cpym3yulQcbokULpy
   fmRo3bin/pvJQ3aZX/Bdh9woTXqhXDdrrSwWInVYMQPyPk8f/D9mIOJp5FUWMwHD
   U+whIZSxsEeE+jtixlWtheKRYkQmzQZXbWdIhYyI3QKBgD+F/6wcZ85QW8nAUykA
   3WrSIx/3cwDGdm4NRGct8ZOZjTHjiy9ojMOD1L7iMhRQ/3k3hUsin5LDMp/ryWGG
   x4uIaLat40kiC7T4I66DM7P59euqdz3w0PD+VU+h7GSivvsFDdySUt7bNK0AUVLh
   dMJfWxDN8QV0b5p3WuWH1U8B
   -----END PRIVATE KEY-----
   Private-Key: (2048 bit)
   modulus:
       00:c5:05:71:d1:23:81:d5:28:08:61:de:c7:a2:72:
       2a:28:8b:30:91:4d:b2:5e:d7:e6:2c:c4:d4:e3:6b:
       85:f2:2b:2a:55:18:81:56:0c:68:59:b3:8e:05:08:
       79:4f:38:e4:95:27:e3:6a:3f:be:30:f7:aa:0c:ec:
       33:d2:df:1a:3d:91:a4:32:64:11:67:d9:81:29:d8:
       40:6a:e6:f7:f7:d3:b2:87:35:19:99:65:49:a4:9f:
       4c:c7:39:21:29:36:66:36:7c:cc:48:48:1c:5e:c2:
       5c:51:14:09:e2:c2:64:9d:ff:c4:c3:bc:72:4c:63:
       d1:6f:00:8b:d6:b9:3b:2f:e6:5d:2d:24:a9:3e:6b:
       dd:4a:e3:eb:4e:dd:47:43:47:b4:a7:a3:95:97:13:
       17:ec:06:b5:b7:83:5c:9d:a3:74:c1:b3:1f:22:e7:
       f6:22:54:e7:0d:02:9c:bb:81:ed:bf:16:2c:18:dd:
       a0:97:24:1e:ab:ea:7b:85:e8:7f:26:46:02:38:af:
       8b:e4:31:1b:0e:94:08:49:0e:76:4f:35:ec:1e:6e:
       8a:3e:2b:74:37:97:06:e0:6e:63:8a:0f:fc:fd:b2:
       f9:3c:37:ff:a1:51:30:6d:21:7d:1f:46:d6:c6:f8:
       f2:c8:c3:7c:56:44:71:ab:31:29:f6:07:3b:0f:56:
       e0:cb
   publicExponent: 65537 (0x10001)
   privateExponent:
       0a:22:54:8f:68:5f:26:42:af:e3:b0:dc:dd:eb:37:
       65:ec:7a:ec:0e:6e:0d:58:d7:9b:17:e8:c7:65:e1:
       76:ea:67:7c:07:0d:a8:0a:6d:57:a7:d7:b7:44:8f:
       50:d6:e1:53:16:c1:28:d6:ec:86:82:46:b9:f1:70:
       5c:f9:62:d5:25:e7:a7:3b:e4:75:4e:07:c9:ca:38:
       ce:06:e1:5c:5b:04:44:d6:23:61:f3:86:cd:33:f0:
       74:12:e9:34:c0:7a:93:74:e9:e1:11:ec:7b:a7:4d:
       ae:51:f4:8c:38:69:8a:82:fc:71:01:01:74:12:72:
       54:5e:57:d3:0c:a6:11:b9:95:98:2d:23:80:7f:cc:
       c6:c0:40:3d:65:ba:64:a8:9c:83:d5:0b:32:55:a2:
       01:9d:cc:44:06:4f:8c:71:e0:a5:89:00:02:c5:16:
       28:06:c2:07:05:50:71:58:c6:3b:9f:56:8d:f6:63:
       cd:35:f9:a5:0b:55:54:7e:bc:ae:e7:22:1f:cf:03:
       4d:90:b0:8c:29:23:06:1c:60:f8:e2:24:24:12:c4:
       e7:09:21:f3:68:c8:1d:28:af:67:ad:df:97:02:f0:
       cf:e1:34:f8:78:44:2d:26:49:ae:7d:8c:63:a2:71:
       9a:29:37:a8:d3:54:38:5f:d9:fb:79:ac:76:3d:a5:
       b9
   prime1:
       00:e3:c2:50:bf:de:3c:69:f3:32:72:e8:ff:28:25:
       02:af:ed:37:6f:33:05:23:e1:54:96:38:76:41:1c:
       bb:f8:7a:f2:5a:6a:26:b4:b9:08:c8:a3:55:03:6b:
       c0:18:8a:da:a1:5f:53:66:08:27:a1:18:7f:32:b9:
       78:ff:bf:a5:77:0b:33:0a:0e:49:91:af:53:6b:38:
       d9:d2:cf:94:2c:9d:d4:34:e1:9e:a2:84:04:25:3e:
       62:7d:ea:0e:30:2a:d8:28:0b:b0:18:a7:23:f4:83:
       56:be:e3:fb:23:6f:5f:a8:dd:84:08:e2:90:ff:17:
       bd:5c:fa:a6:b3:b4:7e:cf:47
   prime2:
       00:dd:73:6d:f2:36:64:f7:f8:9c:a9:b5:fd:1f:2a:
       31:2f:38:d2:be:c7:05:0a:ce:2f:5c:2f:f3:b3:06:
       ae:72:38:80:b5:3f:3d:93:f3:98:0e:7b:58:bc:93:
       06:70:b3:ec:65:a4:6e:ae:05:3e:a5:98:82:44:2d:
       dd:24:e7:d1:72:ba:93:6e:e1:d3:ef:5f:94:83:e8:
       61:aa:77:1e:23:93:d2:af:23:be:2e:b0:67:8e:06:
       88:66:17:4a:61:4c:79:2b:58:a0:71:5e:2c:93:d2:
       84:bc:ce:39:c9:94:49:fc:ca:c2:29:1a:03:b6:f2:
       38:eb:2e:96:87:35:9f:cc:5d
   exponent1:
       00:df:2c:d7:27:4b:42:f3:a6:c4:b6:68:ad:2d:cf:
       26:54:f1:23:32:a9:51:ce:18:cc:63:ee:ab:a1:9d:
       e0:6a:d9:3e:85:6e:22:c3:4f:d4:d5:95:86:86:35:
       9d:23:ef:5b:d0:68:b2:35:f6:a3:ae:6d:6c:a6:6d:
       ab:ad:1f:43:a9:e4:a5:7c:a3:07:5f:e3:e6:df:d7:
       f3:49:68:f2:0e:ce:10:d4:48:88:c3:42:8d:35:59:
       6d:f5:67:d5:c3:49:18:4a:15:39:d6:ce:60:a3:05:
       d7:88:71:a8:f2:cd:fd:74:60:ab:32:71:a0:16:f6:
       52:2d:bb:c6:81:ac:c9:dd:9d
   exponent2:
       00:db:9c:da:7f:27:24:70:aa:33:ab:36:58:e4:ec:
       31:c4:b3:e4:83:df:d9:07:43:3c:c2:7e:a7:7e:76:
       74:cf:bf:6b:1c:d3:af:9c:a7:29:b7:ca:e9:50:71:
       ba:24:50:ba:72:7e:64:68:dd:b8:a7:fe:9b:c9:43:
       76:99:5f:f0:5d:87:dc:28:4d:7a:a1:5c:37:6b:ad:
       2c:16:22:75:58:31:03:f2:3e:4f:1f:fc:3f:66:20:
       e2:69:e4:55:16:33:01:c3:53:ec:21:21:94:b1:b0:
       47:84:fa:3b:62:c6:55:ad:85:e2:91:62:44:26:cd:
       06:57:6d:67:48:85:8c:88:dd
   coefficient:
       3f:85:ff:ac:1c:67:ce:50:5b:c9:c0:53:29:00:dd:
       6a:d2:23:1f:f7:73:00:c6:76:6e:0d:44:67:2d:f1:
       93:99:8d:31:e3:8b:2f:68:8c:c3:83:d4:be:e2:32:
       14:50:ff:79:37:85:4b:22:9f:92:c3:32:9f:eb:c9:
       61:86:c7:8b:88:68:b6:ad:e3:49:22:0b:b4:f8:23:
       ae:83:33:b3:f9:f5:eb:aa:77:3d:f0:d0:f0:fe:55:
       4f:a1:ec:64:a2:be:fb:05:0d:dc:92:52:de:db:34:
       ad:00:51:52:e1:74:c2:5f:5b:10:cd:f1:05:74:6f:
       9a:77:5a:e5:87:d5:4f:01
   ```

   プライベートキーは使用しないときは安全な場所に保管してください。

1. 以前のステップで作成したプライベートキーを使用して、X.509 証明書を生成します。この例では証明書は 365 日で期限切れになり、それ以降は信頼されません。有効期限は適切に設定してください。証明書はプロビジョニングプロセスの間のみ有効である必要があります。プロビジョニングが完了したら、RIR の記録から証明書を削除できます。`tr -d "\n"` コマンドは出力から改行文字 (改行) を削除します。プロンプトが表示されたら、共通名を指定する必要がありますが、その他のフィールドは空白のままにしておくことができます。

   ```
   $ openssl req -new -x509 -key private-key.pem -days 365 | tr -d "\n" > certificate.pem
   ```

   この結果、次のような出力が得られます。

   ```
   Enter pass phrase for private-key.pem: {{xxxxxxx}}
   You are about to be asked to enter information that will be incorporated
   into your certificate request.
   What you are about to enter is what is called a Distinguished Name or a DN.
   There are quite a few fields but you can leave some blank
   For some fields there will be a default value,
   If you enter '.', the field will be left blank.
   -----
   Country Name (2 letter code) []:
   State or Province Name (full name) []:
   Locality Name (eg, city) []:
   Organization Name (eg, company) []:
   Organizational Unit Name (eg, section) []:
   Common Name (eg, fully qualified host name) []:{{example.com}}
   Email Address []:
   ```
**注記**  
AWS プロビジョニングには共通名は必要ありません。内部ドメイン名またはパブリックドメイン名は任意です。

   次のコマンドを使用して、証明書を取得できます。

   ```
   $ cat certificate.pem
   ```

   出力は改行のない長い PEM エンコード文字列で、先頭が `-----BEGIN CERTIFICATE-----` で、その後に `-----END CERTIFICATE-----` が続きます。

## X.509 証明書を RIR の RDAP レコードにアップロードする
<a name="byoip-add-certificate"></a>

以前に作成した証明書を、RIR の RDAP レコードに追加します。エンコードされた部分の前後の `-----BEGIN CERTIFICATE-----` および `-----END CERTIFICATE-----` 文字列を、必ず含めます。このコンテンツはすべて、長い 1 行にする必要があります。RDAP を更新する手順はご使用の RIR によって異なります。
+ ARIN の場合は[Account Manager ポータル](https://account.arin.net/public/secure/dashboard)を使用して、アドレス範囲を表す「ネットワーク情報」オブジェクトの「パブリックコメント」セクションに証明書を追加してください。組織の [comments] セクションには追加しないでください。
+ RIPE の場合は証明書を新しい「descr」フィールドとして、アドレス範囲を表す「inetnum」または「inet6num」オブジェクトに追加します。これらは通常、[RIPE Database ポータル](https://apps.db.ripe.net/db-web-ui/myresources/overview)の「マイリソース」セクションにあります。組織の [コメント] セクションや上記オブジェクトの「備考」フィールドには追加しないでください。
+ APNIC の場合、「inetnum」または「inet6num」レコードに備考を編集して証明書を追加します。

以下のプロビジョニング段階が完了したら、RIR の記録から証明書を削除できます。

## RIR に ROA オブジェクトを作成する
<a name="byoip-create-roa-object"></a>

アドレス範囲をアドバタイズするために Amazon ASN 16509 および 14618 を承認し、また、アドレス範囲をアドバタイズすることが現在許可されている ASN も承認するために、ROA オブジェクトを作成します。AWS GovCloud (US) Regions については16509 および 14618 ではなく ASN 8987 を承認してください。持ち込む CIDR のサイズに最大長を設定する必要があります。持ち込める最も具体的な IPv4 プレフィクスは /24 です。提供できる最も具体的な IPv6 アドレス範囲はパブリックにアドバタイズ可能な CIDR の場合は /48、パブリックにアドバタイズ可能でない CIDR の場合は /60 です。

**重要**  
Amazon VPC IP Address Manager (IPAM) 用の ROA オブジェクトを作成する場合、ROA を作成するときにはIPv4 CIDR に対して、`/24` のIP アドレスのプレフィックスの最大長を設定する必要があります。IPv6 CIDR についてはアドバタイズ可能なプールに追加する場合、IP アドレスのプレフィックスの最大長は `/48` である必要があります。これにより、パブリック IP アドレスを AWS リージョンごとに分割して利用する柔軟性がもたらされます。IPAM では設定した最大長が適用されます。IPAM への BYOIP アドレスの詳細については、「[Amazon VPC IPAM ユーザーガイド](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoip-ipam.html)」の「*チュートリアル: IPAM への BYOIP アドレス CIDR*」を参照してください。

ROA が Amazon で使用できるようになるまで最大 24 時間かかる場合があります。詳細についてはRIRを参照してください。
+ ARIN — [ROA のリクエスト数](https://www.arin.net/resources/rpki/roarequest.html)
+ RIPE — [ROA の管理](https://www.ripe.net/manage-ips-and-asns/resource-management/rpki/resource-certification-roa-management/)
+ APNIC— [経路管理](https://www.apnic.net/wp-content/uploads/2017/01/route-roa-management-guide.pdf)

アドバタイズメントをオンプレミスのワークロードから AWS に移行する場合はAmazon の ASN の ROA を作成する前に、既存の ASN 向けの ROA を作成する必要があります。これを行わないと、既存のルーティングとアドバタイズメントに影響を与える可能性があります。

**重要**  
Amazon がお客様の IP アドレス範囲をアドバタイズし、引き続きアドバタイズするにはAmazon ASN の ROA が上記のガイドラインに準拠している必要があります。お客様の ROA が無効であるか、上記のガイドラインに準拠していない場合、Amazon はお客様の IP アドレス範囲のアドバタイズを停止する権利を留保します。

**注記**  
このステップはパブリックにアドバタイズ可能でない IPv6 アドレス空間には必要ありません。