Amazon Elastic Compute Cloud
Linux 인스턴스용 사용 설명서

고유 IP 주소 가져오기(BYOIP)

온프레미스 네트워크에서 AWS 계정으로 모든 퍼블릭 IPv4 주소 범위의 일부 또는 전체를 가져올 수 있습니다. 주소 범위를 계속해서 소유할 수 있지만 AWS에서는 인터넷에 대한 이러한 주소 범위를 알립니다. 주소 범위를 AWS로 가져오고 나면 이러한 주소가 계정에 주소 풀로 나타납니다. 주소 풀에서 탄력적 IP 주소를 생성하여 AWS 리소스(예: EC2 인스턴스, NAT 게이트웨이 및 Network Load Balancer)와 함께 사용할 수 있습니다.

중요

BYOIP는 일부 리전에서는 사용할 수 없습니다. 지원되는 리전 목록은 고유 IP 주소 가져오기에 대한 FAQ를 참조하십시오.

요구 사항

  • 주소 범위를 ARIN(미국 인터넷 번호 등록 협회), RIPE(Réseaux IP Européens Network Coordination Centre) 또는 APNIC(아시아 태평양 지역 네트워크 정보 센터)와 같은 RIR(지역 인터넷 등록 기관)에 등록해야 합니다. 주소 범위를 사업체 또는 기관에 등록해야 하며 개인에게는 등록할 수 없습니다.

  • 지정 가능한 가장 구체적인 주소 범위는 /24입니다.

  • 각 주소 범위를 한 번에 하나의 리전으로 가져올 수 있습니다.

  • 리전당 5개의 주소 범위를 AWS 계정으로 가져올 수 있습니다.

  • IP 주소 범위의 주소에는 명확한 기록이 있어야 합니다. 당사는 IP 주소 범위의 평판을 조사할 수 있으며, 좋지 않은 평판이 있거나 악의적인 동작과 연관된 IP 주소가 포함될 경우 IP 주소 범위를 거부할 권한을 보유합니다.

  • 다음 모듈을 지원합니다.

    • ARIN - "직접 할당" 및 "직접 지정" 네트워크 유형

    • RIPE - "ALLOCATED PA", "LEGACY" 및 "ASSIGNED PI" 할당 상태

    • APNIC – "ALLOCATED PORTABLE" 및 "ASSIGNED PORTABLE" 할당 상태

AWS 계정으로 주소 범위를 가져오도록 준비하기

자신만 주소 범위를 AWS 계정으로 가져올 수 있도록 하려면 주소 범위를 알릴 수 있는 권한을 Amazon에 부여해야 합니다. 또한 서명된 권한 부여 메시지를 통해 주소 범위를 소유하고 있다는 증명을 제공해야 합니다.

ROA(라우팅 오리진 권한 부여)는 RIR를 통해 생성할 수 있는 라우팅 공지에 대한 암호화 설명입니다. 이 문서에는 주소 범위, 주소 범위를 알리도록 허용된 자율 시스템 번호(ASN)와 만료 날짜가 포함되어 있습니다. ROA는 Amazon에 특정 AS 번호로 주소 범위를 알릴 수 있는 권한을 부여합니다. 그러나 사용자의 AWS 계정에는 AWS에 주소 범위를 가져올 수 있는 권한을 부여하지 않습니다. AWS 계정에 AWS로 주소 범위를 가져올 수 있는 권한을 부여하려면 주소 범위에 대한 등록 데이터 액세스 프로토콜(RDAP) 설명에 자체 서명된 X509 인증서를 게시해야 합니다. 이 인증서에는 제공한 권한 부여-컨텍스트 서명을 확인하기 위해 AWS가 사용하는 퍼블릭 키가 포함되어 있습니다. 프라이빗 키는 안전하게 보관해야 하고, 권한 부여-컨텍스트 메시지에 서명하는 데 사용됩니다.

이 작업의 명령은 Linux에서 지원됩니다. Windows에서는 Windows Subsystem for Linux를 사용하여 Linux 명령을 실행할 수 있습니다.

ROA 객체 생성

ROA 객체를 생성하여 Amazon ASN 16509 및 14618이 주소 범위를 공급하도록 권한을 부여하고 현재 주소 범위의 공급 권한이 있는 ASN이 주소 범위를 공급하도록 권한을 부여합니다. 가져오려는 가장 작은 접두사 크기에 대한 최대 길이를 설정해야 합니다(예: /24). Amazon이 ROA를 사용할 수 있을 때까지 최대 24시간이 걸릴 수 있습니다. 자세한 내용은 다음 단원을 참조하십시오.

자체 서명된 X509 인증서 생성

다음 절차에 따라 자체 서명된 X509 인증서를 생성하여 RIR의 RDAP 레코드에 추가하십시오. openssl 명령에는 OpenSSL 버전 1.0.2 이상이 필요합니다.

자체 서명된 X509 인증서를 생성하여 RIR 레코드에 추가하려면

  1. 다음과 같이 RSA 2048비트 키 페어를 생성합니다.

    openssl genrsa -out private.key 2048
  2. 다음 명령을 사용하여 키 페어에서 퍼블릭 X509 인증서를 생성합니다. 이 예제에서 인증서는 365일이 지나면 만료되므로, 이 기간이 지난 후에는 신뢰할 수 없습니다. 따라서 만료 날짜를 적절하게 설정해야 합니다. 정보를 입력하라는 메시지가 표시되면 기본값을 수락할 수 있습니다.

    openssl req -new -x509 -key private.key -days 365 | tr -d "\n" > publickey.cer
  3. X509 인증서로 RIR에 대한 RDAP 레코드를 업데이트합니다. 인증서에서 -----BEGIN CERTIFICATE----------END CERTIFICATE-----를 복사해야 합니다. 이전 단계에서 tr -d "\n" 명령을 사용해 아직 제거하지 않은 경우에는 줄바꿈 문자를 제거해야 합니다. 인증서를 보려면 다음 명령을 실행합니다.

    cat publickey.cer

    ARIN의 경우 주소 범위의 "공개 주석" 섹션에 인증서를 추가합니다.

    RIPE의 경우 주소 범위의 새 "설명" 필드에 인증서를 추가합니다.

    APNIC의 경우 이메일을 통해 퍼블릭 키를 helpdesk@apnic.net로 전송하여 “설명” 필드에 수동으로 추가합니다. IP 주소의 APNIC 공인 연락처를 사용하여 이메일을 전송합니다.

서명된 권한 부여 메시지 생성

서명된 권한 부여 메시지의 형식은 다음과 같으며, 여기서 날짜는 메시지의 만료 날짜입니다.

1|aws|account|cidr|YYYYMMDD|SHA256|RSAPSS

먼저 일반 텍스트 권한 부여 메시지를 생성하고 다음과 같이 text_message라는 변수에 저장합니다. 예제 계정 번호, 주소 범위 및 만료 날짜를 해당 값으로 바꿉니다.

text_message="1|aws|123456789012|198.51.100.0/24|20191201|SHA256|RSAPSS"

그런 다음, 생성한 키 페어를 사용하여 text_message의 권한 부여 메시지에 서명하고 다음과 같이 signed_message라는 변수에 저장합니다.

signed_message=$(echo $text_message | tr -d "\n" | openssl dgst -sha256 -sigopt rsa_padding_mode:pss -sigopt rsa_pss_saltlen:-1 -sign private.key -keyform PEM | openssl base64 | tr -- '+=/' '-_~' | tr -d "\n")

AWS에서 사용할 수 있도록 주소 범위 프로비저닝

AWS에서 사용할 수 있도록 주소 범위를 프로비저닝하는 경우 주소 범위를 소유하고 있는지 확인하고 Amazon에 해당 주소 범위를 알릴 수 있는 권한을 부여하고 있는 것입니다. 또한 서명된 권한 부여 메시지를 통해 주소 범위를 소유하고 있음을 확인합니다. 이 메시지는 X509 인증서로 RDAP 레코드를 업데이트할 때 사용한 자체 서명된 X509 키 페어로 서명됩니다.

주소 범위를 프로비저닝하려면 다음 provision-byoip-cidr 명령을 사용합니다. 예제 주소 범위를 해당 주소 범위로 바꿉니다. --cidr-authorization-context 옵션은 ROA 메시지가 아니라 이전에 생성한 변수를 사용합니다.

aws ec2 provision-byoip-cidr --cidr address-range --cidr-authorization-context Message="$text_message",Signature="$signed_message"

주소 범위 프로비저닝은 비동기 작업이므로, 호출이 즉시 반환되지만 주소 범위는 상태가 pending-provision에서 provisioned로 변경되어야 사용할 준비가 된 것입니다. 프로비저닝 프로세스를 완료하려면 최대 5주까지 걸릴 수 있습니다. 프로비저닝한 주소 범위의 상태를 모니터링하려면 다음 describe-byoip-cidrs 명령을 사용합니다.

aws ec2 describe-byoip-cidrs --max-results 5

주소 풀에서 탄력적 IP 주소를 생성하려면 assign-address 명령을 사용합니다. --public-ipv4-pool 옵션을 사용하여 describe-byoip-cidrs에서 반환된 주소 풀의 ID를 지정할 수 있습니다. 또는 --address 옵션을 사용하여 프로비저닝한 주소 범위에서 주소를 지정할 수 있습니다.

AWS를 통해 주소 범위 알리기

주소 범위가 프로비저닝되면 알릴 준비가 된 것입니다. 프로비저닝한 정확한 주소 범위를 알려야 합니다. 프로비저닝한 주소 범위의 일부만 알릴 수 없습니다.

AWS를 통해 알리기 전에 다른 위치에서 주소 범위 알리기를 중지하는 것이 좋습니다. 다른 위치에서 IP 주소 범위 알리기를 계속하면 당사가 해당 주소 범위를 안정적으로 지원하지 못하거나 문제를 제대로 해결하지 못할 수 있습니다. 특히, 해당 주소 범위로의 트래픽이 당사 네트워크로 들어오는지 보장할 수 없습니다.

가동 중지 시간을 최소화하기 위해 주소를 알리기 전에 주소 풀의 주소를 사용하도록 AWS 리소스를 구성하고, 동시에 현재 위치에서 주소 알리기를 중지한 다음 AWS를 통해 주소 알리기를 시작할 수 있습니다. 주소 풀의 탄력적 IP 주소 할당에 대한 자세한 내용은 탄력적 IP 주소 할당 단원을 참조하십시오.

주소 범위를 알리려면 다음 provision-byoip-cidr 명령을 사용합니다.

aws ec2 advertise-byoip-cidr --cidr address-range

중요

매번 다른 주소 범위를 지정하더라도 최소 10초마다 advertise-byoip-cidr 명령을 실행할 수 있습니다.

주소 범위 알리기를 중지하려면 다음 withdraw-byoip-cidr 명령을 사용합니다.

aws ec2 withdraw-byoip-cidr --cidr address-range

중요

매번 다른 주소 범위를 지정하더라도 최소 10초마다 withdraw-byoip-cidr 명령을 실행할 수 있습니다.

주소 범위 프로비저닝 취소

AWS에서 주소 범위 사용을 중지하려면 주소 풀에서 여전히 할당되는 탄력적 IP 주소를 모두 해제하고, 주소 범위 알리기를 중지한 다음, 주소 범위 프로비저닝을 취소합니다.

각 탄력적 IP 주소를 해제하려면 다음 release-address 명령을 사용합니다.

aws ec2 release-address --allocation-id eipalloc-12345678

주소 범위 알리기를 중지하려면 다음 withdraw-byoip-cidr 명령을 사용합니다.

aws ec2 withdraw-byoip-cidr --cidr address-range

주소 범위 프로비저닝을 취소하려면 다음 deprovision-byoip-cidr 명령을 사용합니다.

aws ec2 deprovision-byoip-cidr --cidr address-range