

# Amazon EC2에서 BYOIP를 위한 사전 조건
<a name="prepare-for-byoip"></a>

BYOIP에 대한 온보딩 프로세스는 3개의 하위 단계를 포함하는 2단계로 이루어집니다. 이러한 단계는 다음 다이어그램에 설명된 단계에 해당합니다. 이 설명서에는 수동 단계가 포함되어 있지만 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)
+ [RIR의 RDAP 레코드에 X.509 인증서 업로드](#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의 리소스 퍼블릭 키 인프라(RPKI)에 등록할 만료 날짜를 정의합니다.

**참고**  
비공개적으로 알려진 IPv6 주소 공간에는 ROA가 필요하지 않습니다.

![3단계 BYOIP 온보딩 프로세스입니다.](http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/images/byoip-preonboarding.png)


여러 불연속 주소 범위를 가져오려면 각 주소 범위에 대해 이 프로세스를 반복해야 합니다. 그러나 연속 블록을 여러 AWS 리전에 걸쳐 분할하는 경우 준비 및 RIR 구성 단계를 반복할 필요가 없습니다.

주소 범위를 가져오더라도 이전에 가져온 주소 범위에는 영향을 주지 않습니다.

## 프라이빗 키 생성 및 X.509 인증서 생성
<a name="byoip-certificate"></a>

다음 절차에 따라 자체 서명된 X.509 인증서를 생성하여 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-----`가 뒤에 나옵니다.

## RIR의 RDAP 레코드에 X.509 인증서 업로드
<a name="byoip-add-certificate"></a>

RIR에 대한 RDAP 레코드에 이전에 생성되었던 인증서를 추가합니다. 인코딩된 부분 앞과 뒤에 `-----BEGIN CERTIFICATE-----` 및 `-----END CERTIFICATE-----` 문자열을 포함해야 합니다. 이 모든 내용은 하나의 긴 줄에 있어야 합니다. RDAP를 업데이트하는 절차는 RIR에 따라 다릅니다.
+ ARIN의 경우, [계정 관리자 포털](https://account.arin.net/public/secure/dashboard)을 사용하여 주소 범위를 나타내는 ‘네트워크 정보’ 객체의 ‘공개 주석’ 섹션에 인증서를 추가합니다. 조직의 주석 섹션에 추가하지 않습니다.
+ RIPE의 경우, 주소 범위를 나타내는 ‘inetnum’ 또는 ‘inet6num’ 객체에 새 ‘descr’ 필드로서 인증서를 추가합니다. 대체로 [RIPE 데이터베이스 포털](https://apps.db.ripe.net/db-web-ui/myresources/overview)의 “내 리소스” 섹션에서 찾을 수 있습니다. 조직의 주석 섹션이나 위 객체의 ‘비고’ 필드에 추가하지 않습니다.
+ APNIC의 경우 "inetnum" 또는 "inet6num" 레코드에서 설명을 편집하여 인증서를 추가합니다.

아래 프로비저닝 단계가 완료된 후 RIR 레코드에서 인증서를 제거할 수 있습니다.

## RIR에 ROA 객체 생성
<a name="byoip-create-roa-object"></a>

ROA 객체를 생성하여 현재 주소 범위를 알리도록 권한을 부여받은 ASN뿐만 아니라 Amazon ASN 16509 및 14618이 주소 범위를 알리도록 권한을 부여합니다. 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에 대해 IP 주소 접두사의 최대 길이를 `/24`로 설정해야 합니다. IPv6 CIDR의 경우 알릴 수 있는 풀에 해당 CIDR을 추가하면 IP 주소 접두사의 최대 길이는 `/48`여야 합니다. 이렇게 하면 퍼블릭 IP 주소를 AWS 리전 전체에 걸쳐 충분히 유연하게 분할할 수 있습니다. IPAM은 사용자가 설정한 최대 길이를 적용합니다. IPAM에 대한 BYOIP 주소와 관련한 자세한 내용은 *Amazon VPC IPAM 사용 설명서*의 [자습서: BYOIP 주소 CIDR을 IPAM으로](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoip-ipam.html) 섹션을 참조하세요.

Amazon이 ROA를 사용할 수 있을 때까지 최대 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 주소 공간에는 이 단계가 필요하지 않습니다.