Amazon EC2에서 BYOIP의 사전 요구 사항

Amazon EC2에서 BYOIP의 사전 요구 사항

BYOIP(Bring Your Own IP) 온보딩 프로세스에는 두 단계가 있으며, 이를 위해 세 가지 단계를 수행해야 해요. 이 절에서 개인 키와 X.509 인증서 생성, RDAP 레코드에 인증서 업로드, ROA 객체 생성에 대해 살펴볼게요.

출처: 문서

본문

BYOIP 온보딩 프로세스에는 두 단계가 있으며, 이를 위해 세 가지 단계를 수행해야 해요. 이러한 단계는 다음 다이어그램에 묘사된 단계와 일치해요. 이 문서에 수동 단계를 포함하지만, 내 RIR은 이 단계를 도와주는 관리형 서비스를 제공할 수 있어요.

팁

이 섹션의 작업은 Linux 터미널이 필요하며 Linux, AWS CloudShell, 또는 Windows Subsystem for Linux을 사용해 수행할 수 있어요.

개요

준비 단계

[1] 개인 키를 만들고 인증 목적의 자체 서명 X.509 인증서를 생성합니다. 이 인증서는 프로비저닝 단계에서만 사용돼요. 프로비저닝이 완료된 후 RIR의 기록에서 인증서를 제거할 수 있어요.

RIR 구성 단계

[2] 자체 서명 인증서를 내 RDAP 레코드 주석(comments)에 업로드합니다.

[3] RIR에서 ROA 객체를 생성합니다. ROA는 원하는 주소 범위, 주소 범위를 광고하도록 허용된 ASN(Autonomous System Numbers), 그리고 RIR의 RPKI(Resource Public Key Infrastructure)에 등록할 만료 날짜를 정의해요.

참고

공개적으로 광고할 수 없는 IPv6 주소 공간에는 ROA가 필요하지 않아요.

여러 비연속 주소 범위를 온보딩하려면 각 주소 범위에 대해 이 프로세스를 반복해야 해요. 하지만 연속 블록을 여러 AWS 리전에 걸쳐 분할한다면 준비·RIR 구성 단계를 반복할 필요가 없어요.

주소 범위를 온보딩해도 이전에 온보딩한 주소 범위에는 영향을 주지 않아요.

개인 키 만들고 X.509 인증서 생성하기

다음 절차로 자체 서명 X.509 인증서를 만들고 RIR의 RDAP 레코드에 추가합니다. 이 키 페어는 주소 범위를 RIR로 인증하는 데 사용돼요. openssl 명령에는 OpenSSL 버전 1.0.2 이상이 필요해요.

다음 명령을 복사하고 자리 표시자 값(컬러 이탤릭 텍스트)만 바꾸세요.

이 절차는 개인 RSA 키를 암호화하고 접근에 패스프레이즈를 요구하는 모범 사례를 따릅니다.

  • 다음과 같이 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
[REDACTED 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

사용하지 않을 때는 개인 키를 안전한 위치에 보관하세요.

  • 이전 단계에서 만든 개인 키를 사용해 X.509 인증서를 생성합니다. 이 예시에서 인증서는 365일 후에 만료되며 그 이후에는 신뢰할 수 없어요. 만료를 적절히 설정해야 해요. 인증서는 프로비저닝 프로세스 기간 동안만 유효해야 해요. 프로비저닝이 완료된 후 RIR의 기록에서 인증서를 제거할 수 있어요. tr -d "\n" 명령은 출력에서 줄바꿈 문자(줄 바꿈)를 제거해요. 프롬프트가 뜨면 Common Name을 제공해야 하지만 다른 필드는 비워둘 수 있어요.
$ 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 []:
참고

Common Name은 AWS 프로비저닝에 필요하지 않아요. 내부 또는 공용 도메인 이름이면 무엇이든 될 수 있어요.

다음 명령으로 인증서를 검사할 수 있어요.

$ cat certificate.pem

출력은 -----BEGIN CERTIFICATE-----로 시작하고 -----END CERTIFICATE-----로 끝나는, 줄바꿈이 없는 긴 PEM 인코딩 문자열이어야 해요.

X.509 인증서를 RIR의 RDAP 레코드에 업로드

이전에 만든 인증서를 RIR의 RDAP 레코드에 추가합니다. 인코딩된 부분 앞뒤에 -----BEGIN CERTIFICATE-----와 -----END CERTIFICATE----- 문자열을 반드시 포함하세요. 이 모든 내용은 단일의 긴 줄에 있어야 해요. RDAP 업데이트 절차는 RIR에 따라 달라져요.

  • ARIN의 경우 Account Manager portal을 사용해 주소 범위를 나타내는 "Network Information" 객체의 "Public Comments" 섹션에 인증서를 추가합니다. 조직의 주석 섹션에는 추가하지 마세요.
  • RIPE의 경우 주소 범위를 나타내는 inetnum 또는 inet6num 객체에 새 descr 필드로 인증서를 추가합니다. 이는 보통 RIPE Database portal의 "My Resources" 섹션에서 찾을 수 있어요. 조직의 주석 섹션이나 위 객체의 remarks 필드에는 추가하지 마세요.
  • APNIC의 경우 inetnum 또는 inet6num 레코드의 remarks를 편집해 인증서를 추가합니다.

아래 프로비저닝 단계가 완료된 후 RIR의 기록에서 인증서를 제거할 수 있어요.

RIR에서 ROA 객체 생성

Amazon ASN 16509와 14618이 내 주소 범위를 광고하도록, 그리고 현재 주소 범위를 광고하도록 인증된 ASN도 광고하도록 승인하는 ROA 객체를 만드세요. AWS GovCloud(US) 리전의 경우 ASN 8987만 승인하세요. AWS European Sovereign Cloud의 경우 ASN 16509와 214101을 승인하세요. 최대 길이(maximum length)를 온보딩하는 CIDR의 크기로 설정해야 해요. 온보딩할 수 있는 가장 구체적인 IPv4 접두사는 /24예요. 온보딩할 수 있는 가장 구체적인 IPv6 주소 범위는 공개적으로 광고할 수 있는 CIDR은 /48, 공개적으로 광고할 수 없는 CIDR은 /60이에요.

중요

Amazon VPC IPAM(IP Address Manager)용 ROA 객체를 만들 때, IPv4 CIDR의 경우 ROA를 만들 때 IP 주소 접두사의 최대 길이를 /24로 설정해야 해요. IPv6 CIDR의 경우 광고 가능한 풀에 추가한다면 IP 주소 접두사의 최대 길이가 /48이어야 해요. 이렇게 하면 공용 IP 주소를 AWS 리전에 걸쳐 나누는 완전한 유연성을 얻을 수 있어요. IPAM은 설정한 최대 길이를 강제합니다. IPAM에 BYOIP 주소에 대한 자세한 내용은 Amazon VPC IPAM User Guide의 Tutorial: BYOIP address CIDRs to IPAM을 참고하세요.

ROA가 Amazon에서 사용 가능해지기까지 최대 24시간이 걸릴 수 있어요. 자세한 내용은 RIR을 참고하세요.

온프레미스 워크로드에서 AWS로 광고를 마이그레이션할 때는 Amazon의 ASN용 ROA를 만들기 전에 기존 ASN용 ROA를 먼저 만들어야 해요. 그렇지 않으면 기존 라우팅과 광고에 영향이 생길 수 있어요.

중요

Amazon이 내 IP 주소 범위를 광고하고 계속 광고하려면 Amazon ASN이 포함된 ROA가 위 지침을 준수해야 해요. ROA가 무효하거나 위 지침을 준수하지 않으면 Amazon은 내 IP 주소 범위 광고를 중지할 권리를 보유해요.

참고

이 단계는 공개적으로 광고할 수 없는 IPv6 주소 공간에는 필요하지 않아요.

더 알아보기