

# チュートリアル: BYOIP IPv4 CIDR を IPAM に転送する
<a name="tutorials-byoip-ipam-transfer-ipv4"></a>

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

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

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

**注記**  
このチュートリアルでは、[IPAM を作成する](create-ipam.md) のステップが完了していることを前提としています。
このチュートリアルの各ステップを、2 つの AWS アカウントのいずれかで実行する必要があります。  
IPAM 管理者用のアカウント。このチュートリアルでは、このアカウントを IPAM アカウントと呼びます。
BYOIP CIDR を所有する組織内のアカウント。このチュートリアルでは、このアカウントを BYOIP CIDR 所有者アカウントと呼びます。

**Topics**
+ [ステップ 1: AWS CLI の名前付きプロファイルと IAM ロールを作成する](#tutorials-byoip-ipam-ipv4-console-1)
+ [ステップ 2: IPAM のパブリックスコープ ID を取得する](#tutorials-byoip-ipam-transfer-ipv4-2)
+ [ステップ 3: IPAM プールを作成する](#tutorials-byoip-ipam-transfer-ipv4-3)
+ [ステップ 4: AWS RAM を使用して IPAM プールを共有する](#tutorials-byoip-ipam-transfer-ipv4-4)
+ [ステップ 5: 既存の BYOIP IPV4 CIDR を IPAM に転送する](#tutorials-byoip-ipam-transfer-ipv4-5)
+ [ステップ 6: IPAM の CIDR を表示する](#tutorials-byoip-ipam-transfer-ipv4-6)
+ [ステップ 7: クリーンアップ](#tutorials-byoip-ipam-transfer-ipv4-7)

## ステップ 1: AWS CLI の名前付きプロファイルと IAM ロールを作成する
<a name="tutorials-byoip-ipam-ipv4-console-1"></a>

このチュートリアルをシングル AWS ユーザーとして完了するには、AWS CLI の名前付きプロファイルを使用して、1 つの IAM ロールから別のアカウントへと切り替えることができます。[名前付きプロファイル](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-using-profiles)は、AWS CLI を使用して `--profile` オプションを使用するときに参照する設定と認証情報の集まりです。AWS アカウントの IAM ロールと指定したプロファイルを作成する方法の詳細については、の「[AWS CLI での IAM ロールの使用](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html)」を参照してください。

このチュートリアルで使用する 3 つの AWS アカウントごとに、1 つのロールと 1 つの名前付きプロファイルを作成します。
+ IPAM 管理者である AWS アカウント向けの `ipam-account` と呼ばれるプロファイル。
+ BYOIP CIDR を所有する組織内の AWS アカウント向けの `byoip-owner-account` と呼ばれるプロファイル。

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

## ステップ 2: IPAM のパブリックスコープ ID を取得する
<a name="tutorials-byoip-ipam-transfer-ipv4-2"></a>

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 プールを作成する
<a name="tutorials-byoip-ipam-transfer-ipv4-3"></a>

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"
       }
   }
   ```

1. 出力に `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 プールを共有する
<a name="tutorials-byoip-ipam-transfer-ipv4-4"></a>

このセクションのステップに従って、別の 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
           }
       ]
   }
   ```

1. リソース共有を作成し、**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"                                                        
           }                                                                                                                
   }
   ```

1. (オプション) 転送の完了後に、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 に転送する
<a name="tutorials-byoip-ipam-transfer-ipv4-5"></a>

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

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

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

**注記**  
この手順には、AWS マネジメントコンソール または AWS CLI を使用できます。

------
#### [ AWS Management Console ]

**BYOIP CIDR を IPAM プールに転送するには:**

1. **byoip-owner-account** アカウントで IPAM コンソール ([https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/)) を開きます。

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

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

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

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

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

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

------
#### [ 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"                                                      
       }                                                                              
   }
   ```

1. 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 を表示する
<a name="tutorials-byoip-ipam-transfer-ipv4-6"></a>

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: クリーンアップ
<a name="tutorials-byoip-ipam-transfer-ipv4-7"></a>

このチュートリアルで作成したリソースを削除するには、このセクションのステップに従います。このステップは、**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"
           }
       ]
   }
   ```

1. リソース共有 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
   }
   ```

1. 「[ステップ 4: AWS RAM を使用して IPAM プールを共有する](#tutorials-byoip-ipam-transfer-ipv4-4)」で追加のリソース共有を作成した場合は、上記 2 つのステップを繰り返し、`PoolShare2` の 2 番目のリソース共有 ARN を取得して、2 番目のリソース共有を削除します。

1. 次のコマンドを実行して、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"
           }
       ]
   }
   ```

1. パブリック IPv4 プールから CIDR を解放します。このセクションのコマンドを実行するときは、`--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.0/24
   ```

1. 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": []
           }
       ]
   }
   ```

1. 次のコマンドを実行して、最上位プールを削除します。

   ```
   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"
       }
   }
   ```