チュートリアル: BYOIP IPv4 CIDR を IPAM に転送する - Amazon Virtual Private Cloud

チュートリアル: BYOIP IPv4 CIDR を IPAM に転送する

既存の IPv4 CIDR を IPAM に転送するには、次のステップに従います。AWS を使用した IPv4 BYOIP CIDR を既に使用している場合は、CIDR をパブリック IPv4 プールから IPAM に移動できます。IPv6 CIDR を IPAM に移動することはできません。

このチュートリアルでは、「Amazon EC2 で自分の IP アドレスを使用する (BYOIP)」で説明されているプロセスを使用して IP アドレス範囲を既に AWS に正常に移行済みで、その IP アドレス範囲を IPAM に転送することを前提としています。新しい IP アドレスを初めて AWS に持ち込む場合、チュートリアル: IP アドレスを IPAM に移行する の手順を完了してください。

パブリック IPv4 プールを IPAM に転送しても、既存の割り当てには影響しません。パブリック IPv4 プールを IPAM に転送すると、リソースタイプによっては、既存の割り当てをモニタリングできる場合があります。詳細については、「リソースごとに CIDR の使用状況をモニタリングする」を参照してください。

注記
  • このチュートリアルでは、IPAM を作成する のステップが完了していることを前提としています。

  • このチュートリアルの各ステップを、2 つの AWS アカウントのいずれかで実行する必要があります。

    • IPAM 管理者用のアカウント。このチュートリアルでは、このアカウントを IPAM アカウントと呼びます。

    • BYOIP CIDR を所有する組織内のアカウント。このチュートリアルでは、このアカウントを BYOIP CIDR 所有者アカウントと呼びます。

ステップ 1: AWS CLI の名前付きプロファイルと IAM ロールを作成する

このチュートリアルをシングル AWS ユーザーとして完了するには、AWS CLI の名前付きプロファイルを使用して、1 つの IAM ロールから別のアカウントへと切り替えることができます。名前付きプロファイルは、AWS CLI を使用して --profile オプションを使用するときに参照する設定と認証情報の集まりです。AWS アカウントの IAM ロールと名前付きプロファイルを作成する方法の詳細については、「AWS Identity and Access Management ユーザーガイド」の「AWS CLI での IAM ロールの使用」を参照してください。

このチュートリアルで使用する 3 つの AWS アカウントごとに、1 つのロールと 1 つの名前付きプロファイルを作成します。

  • IPAM 管理者である AWS アカウント向けの ipam-account と呼ばれるプロファイル。

  • BYOIP CIDR を所有する組織内の AWS アカウント向けの byoip-owner-account と呼ばれるプロファイル。

IAM ロールと名前付きプロファイルを作成した後、このページに戻り次のステップに進みます。なお、このチュートリアルの残りの部分では、サンプルの AWS CLI コマンドで --profile オプションを名前付きプロファイルのうちの 1 つとともに使用することにより、どのアカウントでコマンドを実行する必要があるのかを示しています。

ステップ 2: IPAM のパブリックスコープ ID を取得する

IPAM のパブリックスコープ ID を取得するには、このセクションのステップに従います。このステップは、ipam-account アカウントで実行する必要があります。

次のコマンドを実行して、パブリックスコープ ID を取得します。

aws ec2 describe-ipams --region us-east-1 --profile ipam-account

出力に、パブリックスコープ ID が表示されます。PublicDefaultScopeId の値を書き留めます。これは次のステップで必要になります。

{ "Ipams": [ { "OwnerId": "123456789012", "IpamId": "ipam-090e48e75758de279", "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-090e48e75758de279", "PublicDefaultScopeId": "ipam-scope-0087d83896280b594", "PrivateDefaultScopeId": "ipam-scope-08b70b04fbd524f8d", "ScopeCount": 2, "Description": "my-ipam", "OperatingRegions": [ { "RegionName": "us-east-1" }, { "RegionName": "us-west-2" } ], "Tags": [] } ] }

ステップ 3: IPAM プールを作成する

IPAM プールを編集するには、このセクションのステップに従います。このステップは、ipam-account アカウントで実行する必要があります。作成する IPAM プールは、BYOIP CIDR AWS リージョンに一致した --locale オプションを持つ最上位プールである必要があります。BYOIP は、最上位の IPAM プールにのみ転送できます。

重要

プールを作成するときは、--aws-service ec2 を含める必要があります。選択したサービスによって、CIDR がアドバタイズ可能になる AWS サービスが決定します。現在、唯一の選択肢は ec2 であり、このプールから割り当てられた CIDR は、Amazon EC2 サービス (Elastic IP アドレスの場合) と Amazon VPC サービス (VPC に関連付けられている CIDR の場合) に対してアドバタイズできるようになります。

AWS CLI を使用して、転送された BYOIP CIDR の IPv4 アドレスプールを作成するには
  1. 次のコマンドを実行して、IPAM プールを作成します。前のステップで作成した IPAM の Public スコープの ID を使用します。

    aws ec2 create-ipam-pool --region us-east-1 --profile ipam-account --ipam-scope-id ipam-scope-0087d83896280b594 --description "top-level-pool" --locale us-west-2 --aws-service ec2 --address-family ipv4

    出力に、create-in-progress と表示されます。これは、プールの作成が進行中であることを示します。

    { "IpamPool": { "OwnerId": "123456789012", "IpamPoolId": "ipam-pool-0a03d430ca3f5c035", "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0a03d430ca3f5c035", "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-0087d83896280b594", "IpamScopeType": "public", "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-090e48e75758de279", "Locale": "us-west-2", "PoolDepth": 1, "State": "create-in-progress", "Description": "top-level-pool", "AutoImport": false, "AddressFamily": "ipv4", "Tags": [], "AwsService": "ec2" } }
  2. 出力に create-complete という状態が表示されるまで、次のコマンドを実行します。

    aws ec2 describe-ipam-pools --region us-east-1 --profile ipam-account

    次の出力例は、プールの状態を示しています。次のステップでは OwnerId が必要になります。

    { "IpamPools": [ { "OwnerId": "123456789012", "IpamPoolId": "ipam-pool-0a03d430ca3f5c035", "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0a03d430ca3f5c035", "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-0087d83896280b594", "IpamScopeType": "public", "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-090e48e75758de279", "Locale": "us-west-2", "PoolDepth": 1, "State": "create-complete", "Description": "top-level-pool", "AutoImport": false, "AddressFamily": "ipv4", "Tags": [], "AwsService": "ec2" } ] }

ステップ 4: AWS RAM を使用して IPAM プールを共有する

このセクションのステップに従って、別の AWS アカウントが既存の BYOIP IPV4 CIDR を IPAM プールに転送し、その IPAM プールを使用できるように、AWS RAM を使用して IPAM プールを共有します。このステップは、ipam-account アカウントで実行する必要があります。

AWS CLI を使用して IPv4 アドレスプールを共有するには
  1. IPAM プールで使用可能な AWS RAM アクセス許可を表示します。このセクションのステップを実行するには両方の ARN が必要です。

    aws ram list-permissions --region us-east-1 --profile ipam-account --resource-type ec2:IpamPool
    { "permissions": [ { "arn": "arn:aws:ram::aws:permission/AWSRAMDefaultPermissionsIpamPool", "version": "1", "defaultVersion": true, "name": "AWSRAMDefaultPermissionsIpamPool", "resourceType": "ec2:IpamPool", "status": "ATTACHABLE", "creationTime": "2022-06-30T13:04:29.335000-07:00", "lastUpdatedTime": "2022-06-30T13:04:29.335000-07:00", "isResourceTypeDefault": true }, { "arn": "arn:aws:ram::aws:permission/AWSRAMPermissionIpamPoolByoipCidrImport", "version": "1", "defaultVersion": true, "name": "AWSRAMPermissionIpamPoolByoipCidrImport", "resourceType": "ec2:IpamPool", "status": "ATTACHABLE", "creationTime": "2022-06-30T13:03:55.032000-07:00", "lastUpdatedTime": "2022-06-30T13:03:55.032000-07:00", "isResourceTypeDefault": false } ] }
  2. リソース共有を作成し、byoip-owner-account アカウントが BYOIP CIDR を IPAM にインポートできるようにします。--resource-arns の値は、前のセクションで作成した IPAM プールの ARN です。--principals の値は、BYOIP IP CIDR の所有者アカウントの、アカウント ID です。--permission-arns の値は、AWSRAMPermissionIpamPoolByoipCidrImport アクセス許可の ARN です。

    aws ram create-resource-share --region us-east-1 --profile ipam-account --name PoolShare2 --resource-arns arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0a03d430ca3f5c035 --principals 111122223333 --permission-arns arn:aws:ram::aws:permission/AWSRAMPermissionIpamPoolByoipCidrImport
    { "resourceShare": { "resourceShareArn": "arn:aws:ram:us-east-1:123456789012:resource-share/7993758c-a4ea-43ad-be12-b3abaffe361a", "name": "PoolShare2", "owningAccountId": "123456789012", "allowExternalPrincipals": true, "status": "ACTIVE", "creationTime": "2023-04-28T07:32:25.536000-07:00", "lastUpdatedTime": "2023-04-28T07:32:25.536000-07:00" } }
  3. (オプション) 転送の完了後に、IP アドレスの CIDR を IPAM プールからパブリック IPv4 プールへ割り当てることを byoip-owner-account アカウントに許可するには、AWSRAMDefaultPermissionsIpamPool の ARN をコピーして 2 つ目のリソース共有を作成します。--resource-arns の値は、前のセクションで作成した IPAM プールの ARN です。--principals の値は、BYOIP IP CIDR の所有者アカウントの、アカウント ID です。--permission-arns の値は、AWSRAMDefaultPermissionsIpamPool アクセス許可の ARN です。

    aws ram create-resource-share --region us-east-1 --profile ipam-account --name PoolShare1 --resource-arns arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0a03d430ca3f5c035 --principals 111122223333 --permission-arns arn:aws:ram::aws:permission/AWSRAMDefaultPermissionsIpamPool
    { "resourceShare": { "resourceShareArn": "arn:aws:ram:us-east-1:123456789012:resource-share/8d1e229b-2830-4cf4-8b10-19c889235a2f", "name": "PoolShare1", "owningAccountId": "123456789012", "allowExternalPrincipals": true, "status": "ACTIVE", "creationTime": "2023-04-28T07:31:25.536000-07:00", "lastUpdatedTime": "2023-04-28T07:31:25.536000-07:00" } }

RAM でリソース共有を作成した結果、byoip-owner-account アカウントは、CIDR を IPAM へ移動できるようになりました。

ステップ 5: 既存の BYOIP IPV4 CIDR を IPAM に転送する

既存の BYOIP IPV4 CIDR を IPAM に転送するには、このセクションのステップに従います。このステップは、byoip-owner-account アカウントで実行する必要があります。

重要

IPv4 アドレス範囲を AWS に設定すると、最初のアドレス (ネットワークアドレス) と最後のアドレス (ブロードキャストアドレス) を含む、その範囲内のすべての IP アドレスを使用できます。

BYOIP CIDR を IPAM に転送するには、BYOIP CIDR 所有者が IAM ポリシーで次の許可を得ている必要があります。

  • ec2:MoveByoipCidrToIpam

  • ec2:ImportByoipCidrToIpam

注記

この手順には、AWS Management Console または AWS CLI を使用できます。

AWS Management Console
BYOIP CIDR を IPAM プールに転送するには:
  1. byoip-owner-account アカウントで IPAM コンソール (https://console.aws.amazon.com/ipam/) を開きます。

  2. ナビゲーションペインで、[プール] を選択します。

  3. このチュートリアルで作成して共有した最上位プールを選択してください

  4. [アクション] > [BYOIP CIDR の転送] を選択します。

  5. [BYOIP CIDR の転送]を選択します。

  6. BYOIP CIDR を選択してください。

  7. [プロビジョニング] を選択します。

Command line

次の AWS CLI コマンドを実行すると、AWS CLI を使用して BYOIP CIDR を IPAM プールに転送します。

  1. 次のコマンドを実行して、CIDR を転送します。--region 値が BYOIP CIDR の AWS リージョンであることを確認します。

    aws ec2 move-byoip-cidr-to-ipam --region us-west-2 --profile byoip-owner-account --ipam-pool-id ipam-pool-0a03d430ca3f5c035 --ipam-pool-owner 123456789012 --cidr 130.137.249.0/24

    出力に、CIDR のプロビジョンが保留されていることが示されます。

    { "ByoipCidr": { "Cidr": "130.137.249.0/24", "State": "pending-transfer" } }
  2. CIDR が転送されていることを確認します。出力に、complete-transfer の状態が表示されるまで、次のコマンドを実行します。

    aws ec2 move-byoip-cidr-to-ipam --region us-west-2 --profile byoip-owner-account --ipam-pool-id ipam-pool-0a03d430ca3f5c035 --ipam-pool-owner 123456789012 --cidr 130.137.249.0/24

    次の出力例に、その状態が示されています。

    { "ByoipCidr": { "Cidr": "130.137.249.0/24", "State": "complete-transfer" } }

ステップ 6: IPAM の CIDR を表示する

IPAM の CIDR を表示するには、このセクションのステップに従います。このステップは、ipam-account アカウントで実行する必要があります。

AWS CLI を使用して IPAM プール内の転送された BYOIP CIDR を表示するには
  • 次のコマンドを実行して、IPAM で管理されている割り当てを表示します。--region 値が BYOIP CIDR の AWS リージョンであることを確認します。

    aws ec2 get-ipam-pool-allocations --region us-west-2 --profile ipam-account --ipam-pool-id ipam-pool-0d8f3646b61ca5987

    出力に、IPAM での割り当てが示されます。

    { "IpamPoolAllocations": [ { "Cidr": "130.137.249.0/24", "IpamPoolAllocationId": "ipam-pool-alloc-5dedc8e7937c4261b56dc3e3eb53dc46", "ResourceId": "ipv4pool-ec2-0019eed22a684e0b3", "ResourceType": "ec2-public-ipv4-pool", "ResourceOwner": "111122223333" } ] }

ステップ 7: クリーンアップ

このチュートリアルで作成したリソースを削除するには、このセクションのステップに従います。このステップは、ipam-account アカウントで実行する必要があります。

AWS CLI を使用してこのチュートリアルで作成したリソースをクリーンアップするには
  1. IPAM プールの共有されたリソースを削除するには、次のコマンドを実行して最初のリソース共有 ARN を取得します。

    aws ram get-resource-shares --region us-east-1 --profile ipam-account --name PoolShare1 --resource-owner SELF
    { "resourceShares": [ { "resourceShareArn": "arn:aws:ram:us-east-1:123456789012:resource-share/8d1e229b-2830-4cf4-8b10-19c889235a2f", "name": "PoolShare1", "owningAccountId": "123456789012", "allowExternalPrincipals": true, "status": "ACTIVE", "creationTime": "2023-04-28T07:31:25.536000-07:00", "lastUpdatedTime": "2023-04-28T07:31:25.536000-07:00", "featureSet": "STANDARD" } ] }
  2. リソース共有 ARN をコピーし、それを使用して IPAM プールリソース共有を削除します。

    aws ram delete-resource-share --region us-east-1 --profile ipam-account --resource-share-arn arn:aws:ram:us-east-1:123456789012:resource-share/8d1e229b-2830-4cf4-8b10-19c889235a2f
    { "returnValue": true }
  3. ステップ 4: AWS RAM を使用して IPAM プールを共有する」で追加のリソース共有を作成した場合は、上記 2 つのステップを繰り返し、PoolShare2 の 2 番目のリソース共有 ARN を取得して、2 番目のリソース共有を削除します。

  4. 次のコマンドを実行して、BYOIP CIDR の割り当て ID を取得します。--region 値が BYOIP CIDR の AWS リージョンと一致していることを確認します。

    aws ec2 get-ipam-pool-allocations --region us-west-2 --profile ipam-account --ipam-pool-id ipam-pool-0d8f3646b61ca5987

    出力に、IPAM での割り当てが示されます。

    { "IpamPoolAllocations": [ { "Cidr": "130.137.249.0/24", "IpamPoolAllocationId": "ipam-pool-alloc-5dedc8e7937c4261b56dc3e3eb53dc46", "ResourceId": "ipv4pool-ec2-0019eed22a684e0b3", "ResourceType": "ec2-public-ipv4-pool", "ResourceOwner": "111122223333" } ] }
  5. CIDR の最後の IP アドレスをパブリック IPv4 プールから解放します。ネットマスクに /32 を指定して、IP アドレスを入力します。CIDR 範囲内の IP アドレスごとに、このコマンドを再実行する必要があります。CIDR が /24 の場合は、このコマンドを実行して、/24 CIDR 内に 256 個ある各 IP アドレスのプロビジョンを解除する必要があります。このセクションのコマンドを実行するときは、--region の値が IPAM のリージョンと一致する必要があります。

    このステップは、byoip-owner-account アカウントで実行する必要があります。

    aws ec2 deprovision-public-ipv4-pool-cidr --region us-east-1 --profile byoip-owner-account --pool-id ipv4pool-ec2-0019eed22a684e0b3 --cidr 130.137.249.255/32

    出力に、プロビジョンを解除された CIDR が示されます。

    { "PoolId": "ipv4pool-ec2-0019eed22a684e0b3", "DeprovisionedAddresses": [ "130.137.249.255" ] }
  6. BYOIP CIDR を再度表示して、プロビジョンされたアドレスがないことを確認します。このセクションのコマンドを実行するときは、--region の値が IPAM のリージョンと一致する必要があります。

    このステップは、byoip-owner-account アカウントで実行する必要があります。

    aws ec2 describe-public-ipv4-pools --region us-east-1 --profile byoip-owner-account

    出力に、パブリック IPv4 プール内の IP アドレス数が示されます。

    { "PublicIpv4Pools": [ { "PoolId": "ipv4pool-ec2-0019eed22a684e0b3", "Description": "", "PoolAddressRanges": [], "TotalAddressCount": 0, "TotalAvailableAddressCount": 0, "NetworkBorderGroup": "us-east-1", "Tags": [] } ] }
  7. 次のコマンドを実行して、最上位プールを削除します。

    aws ec2 delete-ipam-pool --region us-east-1 --profile ipam-account --ipam-pool-id ipam-pool-0a03d430ca3f5c035

    出力に、削除状態が表示されます。

    { "IpamPool": { "OwnerId": "123456789012", "IpamPoolId": "ipam-pool-0a03d430ca3f5c035", "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0a03d430ca3f5c035", "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-0087d83896280b594", "IpamScopeType": "public", "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-090e48e75758de279", "Locale": "us-east-1", "PoolDepth": 2, "State": "delete-in-progress", "Description": "top-level-pool", "AutoImport": false, "Advertisable": true, "AddressFamily": "ipv4", "AwsService": "ec2" } }