Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

自分の IP アドレスを使用する (BYOIP)

すべての公開 IPv4 アドレスの範囲の一部またはすべてをオンプレミスのネットワークから AWS アカウントに導入できます。引き続きアドレス範囲を所有できますが、AWS はこれをインターネット上でアドバタイズします。アドレス範囲を AWS に設定すると、そのアドレス範囲はアドレスプールとしてアカウントに表示されます。アドレスプールから Elastic IP アドレスを作成し、EC2 インスタンス、NAT ゲートウェイ、Network Load Balancer などの AWS リソースで使用することができます。

重要

BYOIP は、一部のリージョンでは使用できません。サポートされているリージョンのリストについては、「FAQ for Bring Your Own IP」を参照してください。

要件

  • アドレス範囲は、American Registry for Internet Numbers (ARIN) や Réseaux IP Européens Network Coordination Centre (RIPE) などの地域のインターネットレジストリを使用して登録する必要があります。アドレス範囲はビジネスまたは機関の事業体に登録する必要があり、個人には登録できない場合があります。

  • ARIN の場合は、サポートされているネットワークタイプは "Direct Allocation" および "Direct Assignment" です。

  • RIPE の場合は、サポートされている割り当てステータスは "ALLOCATED PA"、"LEGACY"、および "ASSIGNED PI" です。

  • 指定できる最も具体的なアドレス範囲は /24 です。

  • 各アドレス範囲は一度に 1 つのリージョンに持ち込むことができます。

  • リージョンあたり 5 つのアドレス範囲を AWS アカウントに持ち込むことができます。

  • IP アドレス範囲内のアドレスには、消去履歴が含まれている必要があります。当社は、評価の低い IP アドレスや悪意のある動作に関連付けられている IP アドレスが含まれている場合、その IP アドレス範囲の評価を調査したり、その IP アドレス範囲を拒否する権利を保有することができます。

AWS アカウントにアドレス範囲を持ち込むための準備

自分だけがアドレス範囲を AWS アカウントに持ち込むことができるようにするため、Amazon がアドレス範囲を公開することを承認するとともに、あなたがアドレス範囲を所有している証拠を提供する必要があります。

Route Origin Authorization (ROA) は、RIR を介して作成されるドキュメントです。これには、アドレス範囲、そのアドレス範囲を公開することを許可された ASN、および有効期限が含まれています。ROA は Amazon が特定の AS 番号のアドレス範囲を公開することを承認します。ただし、その AWS アカウントに対して、アドレス範囲を AWS に持ち込むことを承認するわけではありません。AWS アカウントに対してアドレス範囲を AWS に持ち込むことを承認するには、アドレス範囲について RDAP の注釈で自己署名付きの X509 証明書を発行する必要があります。証明書にはパブリックキーが含まれており、AWS はこれを使用してあなたが提供する認証コンテキスト署名を確認します。プライベートキーを安全に管理し、これを使用して認証コンテキストメッセージを署名する必要があります。

次の手順に示すコマンドを実行するには、OpenSSL バージョン 1.0.2 以降が必要です。

アドレスの範囲を AWS アカウントに持ち込む準備を行うには

  1. Amazon ASN 16509 および 14618 を承認してアドレス範囲を公開するための ROA と、現在そのアドレス範囲を公開することが承認されている ASN を作成します。持ち込む最小プレフィックスのサイズに最大長を設定する必要があります (たとえば、/24)。ROA が Amazon で使用できるようになるまで最大 24 時間かかる場合があります。詳細については、以下を参照してください。

  2. RSA 2048 ビットのキーペアを次のように生成します。

    openssl genrsa -out private.key 2048
  3. 次のコマンドを使用してキーペアからパブリック X509 証明書を作成します。この例では、証明書は 365 日で期限切れになり、それ以降は信頼されません。したがって、有効期限は適切に設定してください。情報の入力を求められたら、デフォルト値をそのまま使用します。

    openssl req -new -x509 -key private.key -days 365 | tr -d "\n" > publickey.cer
  4. プレフィックスと AWS アカウント用に署名付き認可メッセージを作成します。メッセージの形式は次のようになりますが、このとき日付はメッセージの有効期限になります。

    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")
  5. X509 証明書を使用して RIR の RDAP レコードを更新します。必ず証明書から -----BEGIN CERTIFICATE----- および -----END CERTIFICATE----- をコピーしてください。前のステップで tr -d "\n" コマンドを使用して改行文字を削除していない場合は、ここで削除してあることを確認します。証明書を表示するには、次のコマンドを実行します。

    cat publickey.cer

    ARIN の場合は、アドレス範囲について [Public Comments] セクションに証明書を追加します。

    RIPE の場合は、アドレス範囲について新しい "desc" フィールドとして証明書を追加します。

AWS で使用するためのアドレス範囲のプロビジョニング

AWS で使用するアドレス範囲をプロビジョニングする場合、アドレス範囲を所有していることを確認するとともに、Amazon がこれを公開することを承認します。当社でも、あなたがアドレス範囲を所有していることを確認します。

アドレス範囲をプロビジョニングするには、次の 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

AWS からアドレス範囲の公開

アドレス範囲をプロビジョニングすると、公開することができるようになります。プロビジョンした正確なアドレス範囲をアドバタイズする必要があります。プロビジョンしたアドレス範囲の一部のみアドバタイズすることはできません。

アドレス範囲は、AWS から公開する前に、他の場所からの公開を停止することをお勧めします。他の場所から IP アドレス範囲を公開し続ける場合、当社では、その IP アドレス範囲を信頼してサポートしたり、問題をトラブルシューティングすることができなくなります。具体的には、そのアドレス範囲へのトラフィックが当社のネットワークに入るのを保証できません。

ダウンタイムを最小限に抑えるには、アドレス範囲が公開される前にご使用のアドレスプールからアドレスを使用するように AWS リソースを設定してから、同時に現在の場所からの公開を停止して、AWS からの公開を開始します。アドレスプールからの Elastic IP アドレスの割り当ての詳細については、「Elastic IP アドレスの割り当て」を参照してください。

アドレス範囲を公開するには、次の advertise-byoip-cidr コマンドを使用します。

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

重要

アドレス範囲が毎回異なる場合でも、advertise-byoip-cidr コマンドは 10 秒ごとに最大 1 回しか実行できません。

アドレス範囲の公開を停止するには、次の withdraw-byoip-cidr コマンドを使用します。

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

重要

アドレス範囲が毎回異なる場合でも、withdraw-byoip-cidr コマンドは 10 秒ごとに最大 1 回しか実行できません。

アドレス範囲のプロビジョニング解除

AWS によるアドレス範囲の使用を停止するには、アドレスプールから割り当てられている Elastic IP アドレスを解放して、アドレス範囲の公開を停止し、そのアドレス範囲のプロビジョニングを解除します。

各 Elastic 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