

# Amazon VPC IP 地址管理器教程
<a name="tutorials-ipam"></a>

以下教程为您演示如何使用 AWS CLI 执行常见 IPAM 任务。要获取 AWS CLI，请参阅 [访问 IPAM](access-ipam.md)。有关这些教程中提到的 IPAM 概念的更多信息，请参阅 [IPAM 的工作原理](how-it-works-ipam.md)。

**Topics**
+ [开始通过 AWS CLI 使用 IPAM](getting-started-with-ipam-using-the-aws-cli.md)
+ [使用控制台创建 IPAM 和池](tutorials-get-started-console.md)
+ [使用 AWS CLI 创建 IPAM 和池](tutorials-create-vpc-ipam.md)
+ [使用 AWS CLI 查看 IP 地址历史记录](tutorials-historical-insights.md)
+ [自带 ASN 到 IPAM 中](tutorials-byoasn.md)
+ [将 IP 地址带入 IPAM](tutorials-byoip-ipam.md)
+ [将 BYOIP IPv4 CIDR 传输到 IPAM](tutorials-byoip-ipam-transfer-ipv4.md)
+ [为子网 IP 分配规划 VPC IP 地址空间](tutorials-subnet-planning.md)
+ [从 IPAM 池中分配连续弹性 IP 地址](tutorials-eip-pool.md)

# 开始通过 AWS CLI 使用 IPAM
<a name="getting-started-with-ipam-using-the-aws-cli"></a>

本教程将指导您完成使用单个 AWS 账户在 AWS CLI 中设置和使用 Amazon VPC IP 地址管理器（IPAM）的过程。到本教程结束时，您将已经创建 IPAM 和 IP 地址池层次结构，并将 CIDR 分配给了 VPC。

## 先决条件
<a name="prerequisites"></a>

在开始本教程之前，请确保您具有：
+ 有权创建和管理 IPAM 资源的 AWS 账户。
+ 已安装 AWS CLI 并配置了相应的凭证。有关安装 AWS CLI 的信息，请参阅[安装或更新最新版本的 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。有关配置 AWS CLI 的信息，请参阅[基本配置](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html)。
+ 有关 IP 寻址和 CIDR 表示法的基础知识。
+ 有关 Amazon VPC 概念的基础知识。
+ 完成本教程大约需要 30 分钟。

## 创建 IPAM
<a name="create-an-ipam"></a>

第一步是根据运营区域创建 IPAM。您可以使用 IPAM 来计划、跟踪和监控 AWS 工作负载的 IP 地址。

创建 IPAM，其运营区域为 us-east-1 和 us-west-2：

```
aws ec2 create-ipam \
  --description "My IPAM" \
  --operating-regions RegionName=us-east-1 RegionName=us-west-2
```

此命令会创建 IPAM 并使其能够管理指定区域中的 IP 地址。运营区域是允许 IPAM 在其中管理 IP 地址 CIDR 的 AWS 区域。

验证 IPAM 是否已创建：

```
aws ec2 describe-ipams
```

记下输出中的 IPAM ID，您将在后续步骤中用到它。

等待 IPAM 创建完毕并可用（约 20 秒）：

```
sleep 20
```

## 获取 IPAM 范围 ID
<a name="get-the-ipam-scope-id"></a>

创建 IPAM 时，AWS 将自动创建一个私有范围和一个公有范围。在本教程中，我们将使用私有范围。

检索 IPAM 详细信息并提取私有范围 ID：

```
aws ec2 describe-ipams --ipam-id ipam-0abcd1234
```

将 `ipam-0abcd1234` 替换为实际的 IPAM ID。

在输出中，找到 `PrivateDefaultScopeId` 字段中的私有范围 ID 并记下来。该条目看起来类似于 `ipam-scope-0abcd1234`。

## 创建顶级 IPv4 池
<a name="create-a-top-level-ipv4-pool"></a>

现在，我们在私有范围中创建一个顶级池。该池将作为层次结构中所有其他池的父池。

创建顶级 IPv4 池：

```
aws ec2 create-ipam-pool \
  --ipam-scope-id ipam-scope-0abcd1234 \
  --address-family ipv4 \
  --description "Top-level pool"
```

将 `ipam-scope-0abcd1234` 替换为实际的私有范围 ID。

等待池创建完毕并可用：

```
aws ec2 describe-ipam-pools --ipam-pool-ids ipam-pool-0abcd1234 --query 'IpamPools[0].State' --output text
```

将 `ipam-pool-0abcd1234` 替换为实际的顶级池 ID。应等待状态显示 `create-complete` 之后，再继续操作。

池可用后，向池预置 CIDR 块：

```
aws ec2 provision-ipam-pool-cidr \
  --ipam-pool-id ipam-pool-0abcd1234 \
  --cidr 10.0.0.0/8
```

等待 CIDR 预置完毕：

```
aws ec2 get-ipam-pool-cidrs --ipam-pool-id ipam-pool-0abcd1234 --query "IpamPoolCidrs[?Cidr=='10.0.0.0/8'].State" --output text
```

应等待状态显示 `provisioned` 之后，再继续操作。

## 创建区域 IPv4 池
<a name="create-a-regional-ipv4-pool"></a>

接下来，在顶级池中创建区域池。该池特定于某个特别的 AWS 区域。

创建区域 IPv4 池：

```
aws ec2 create-ipam-pool \
  --ipam-scope-id ipam-scope-0abcd1234 \
  --source-ipam-pool-id ipam-pool-0abcd1234 \
  --locale us-east-1 \
  --address-family ipv4 \
  --description "Regional pool in us-east-1"
```

将 `ipam-scope-0abcd1234` 替换为实际的私有范围 ID，将 `ipam-pool-0abcd1234` 替换为顶级池 ID。

等待区域池创建完毕并可用：

```
aws ec2 describe-ipam-pools --ipam-pool-ids ipam-pool-1abcd1234 --query 'IpamPools[0].State' --output text
```

将 `ipam-pool-1abcd1234` 替换为实际的区域池 ID。应等待状态显示 `create-complete` 之后，再继续操作。

池可用后，向池预置 CIDR 块：

```
aws ec2 provision-ipam-pool-cidr \
  --ipam-pool-id ipam-pool-1abcd1234 \
  --cidr 10.0.0.0/16
```

等待 CIDR 预置完毕：

```
aws ec2 get-ipam-pool-cidrs --ipam-pool-id ipam-pool-1abcd1234 --query "IpamPoolCidrs[?Cidr=='10.0.0.0/16'].State" --output text
```

应等待状态显示 `provisioned` 之后，再继续操作。

## 创建开发 IPv4 池
<a name="create-a-development-ipv4-pool"></a>

现在，在区域池中创建开发池。该池将用于开发环境。

创建开发 IPv4 池：

```
aws ec2 create-ipam-pool \
  --ipam-scope-id ipam-scope-0abcd1234 \
  --source-ipam-pool-id ipam-pool-1abcd1234 \
  --locale us-east-1 \
  --address-family ipv4 \
  --description "Development pool"
```

将 `ipam-scope-0abcd1234` 替换为实际的私有范围 ID，将 `ipam-pool-1abcd1234` 替换为区域池 ID。

注意：务必添加 `--locale` 参数，以便与父池的区域一致。

等待开发池创建完毕并可用：

```
aws ec2 describe-ipam-pools --ipam-pool-ids ipam-pool-2abcd1234 --query 'IpamPools[0].State' --output text
```

将 `ipam-pool-2abcd1234` 替换为实际的开发池 ID。应等待状态显示 `create-complete` 之后，再继续操作。

池可用后，向池预置 CIDR 块：

```
aws ec2 provision-ipam-pool-cidr \
  --ipam-pool-id ipam-pool-2abcd1234 \
  --cidr 10.0.0.0/24
```

等待 CIDR 预置完毕：

```
aws ec2 get-ipam-pool-cidrs --ipam-pool-id ipam-pool-2abcd1234 --query "IpamPoolCidrs[?Cidr=='10.0.0.0/24'].State" --output text
```

应等待状态显示 `provisioned` 之后，再继续操作。

## 创建使用 IPAM 池 CIDR 的 VPC
<a name="create-a-vpc-using-an-ipam-pool-cidr"></a>

最后，创建使用 IPAM 池中 CIDR 的 VPC。此处演示了如何使用 IPAM 为 AWS 资源分配 IP 地址空间。

创建使用 IPAM 池 CIDR 的 VPC：

```
aws ec2 create-vpc \
  --ipv4-ipam-pool-id ipam-pool-2abcd1234 \
  --ipv4-netmask-length 26 \
  --tag-specifications 'ResourceType=vpc,Tags=[{Key=Name,Value=IPAM-VPC}]'
```

将 `ipam-pool-2abcd1234` 替换为实际的开发池 ID。

`--ipv4-netmask-length 26` 参数指定了您希望从池中分配 /26 CIDR 块（64 个 IP 地址）。选择此网络掩码长度是为了确保它小于池的 CIDR 块（/24）。

验证 VPC 是否已创建：

```
aws ec2 describe-vpcs --filters "Name=tag:Name,Values=IPAM-VPC"
```

## 验证 IPAM 池的分配情况
<a name="verify-the-ipam-pool-allocation"></a>

检查 CIDR 是否已从 IPAM 池中分配：

```
aws ec2 get-ipam-pool-allocations \
  --ipam-pool-id ipam-pool-2abcd1234
```

将 `ipam-pool-2abcd1234` 替换为实际的开发池 ID。

此命令显示了来自指定 IPAM 池的所有分配，包括您刚刚创建的 VPC。

## 故障排除
<a name="troubleshooting"></a>

以下是在使用 IPAM 时可能会遇到的一些常见问题：
+ **权限错误**：请确保 IAM 用户或角色具有创建和管理 IPAM 资源所需的权限。您可能需要 `ec2:CreateIpam`、`ec2:CreateIpamPool` 和其他相关权限。
+ **超出资源限制**：默认情况下，只能为每个账户创建一个 IPAM。如果已经有一个 IPAM，则需要先将其删除，然后再创建新的 IPAM，或者使用现有的 IPAM。
+ **CIDR 分配失败**：向池预置 CIDR 时，请确保要预置的 CIDR 不会与其他池中的现有分配重叠。
+ **API 请求超时**：如果您遇到“RequestExpired”错误，这可能是由于网络延迟或时间同步问题所致。请尝试再次运行命令。
+ **“状态错误”报错**：如果您收到“IncorrectState”错误，这可能是因为您尝试对其执行操作的资源未处于正确状态。请等待资源创建或预置完毕再继续。
+ **分配大小错误**：如果您收到有关分配大小的“InvalidParameterValue”错误，请确保您请求的网络掩码长度适合池大小。例如，您不能从 /24 池中分配 /25 CIDR。
+ **依赖项冲突**：清理资源时，您可能会遇到“DependencyViolation”错误。这是因为资源之间存在依赖关系。在删除池之前，请确保按照与创建时相反的顺序删除资源，并取消预置 CIDR。

## 清理资源
<a name="clean-up-resources"></a>

完成本教程后，应清除您创建的资源，以免产生不必要的费用。

1. 删除 VPC：

   ```
   aws ec2 delete-vpc --vpc-id vpc-0abcd1234
   ```

1. 从开发池中取消预置 CIDR：

   ```
   aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-2abcd1234 --cidr 10.0.0.0/24
   ```

1. 删除开发池：

   ```
   aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-2abcd1234
   ```

1. 从区域池中取消预置 CIDR：

   ```
   aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-1abcd1234 --cidr 10.0.0.0/16
   ```

1. 删除区域池：

   ```
   aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-1abcd1234
   ```

1. 从顶级池中取消预置 CIDR：

   ```
   aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-0abcd1234 --cidr 10.0.0.0/8
   ```

1. 删除顶级池：

   ```
   aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-0abcd1234
   ```

1. 删除 IPAM：

   ```
   aws ec2 delete-ipam --ipam-id ipam-0abcd1234
   ```

将所有 ID 替换为实际的资源 ID。

**注意**  
前后两个操作的间隔时间应稍微延长一些，以确保资源完全删除，然后再继续下一步操作。如果您遇到依赖项冲突的问题，请等待几秒，然后重试。

## 后续步骤
<a name="next-steps"></a>

现在，您已经学会了如何通过 AWS CLI 创建和使用 IPAM，您可能需要探索更多高级功能：
+ [计划 IP 地址预置](planning-ipam.md)：了解如何有效规划 IP 地址空间
+ [按资源监控 CIDR 使用情况](monitor-cidr-compliance-ipam.md)：了解如何监控 IP 地址使用情况
+ [使用 AWS RAM 共享 IPAM 池](share-pool-ipam.md)：了解如何跨 AWS 账户共享 IPAM 池
+ [将 IPAM 与 AWS Organization 中的账户集成](enable-integ-ipam.md)：了解如何在整个组织中使用 IPAM

# 教程：使用控制台创建 IPAM 和池
<a name="tutorials-get-started-console"></a>

在本教程中，您将创建 IPAM、与 AWS Organizations 集成、创建 IP 地址池，并使用 IPAM 池中的 CIDR 创建 VPC。

 本教程将向您展示如何根据不同的开发需求使用 IPAM 来组织 IP 地址空间。完成本教程后，您将拥有一个用于预生产资源的 IP 地址池。然后，您可以根据路由和安全需求创建其他池，例如用于生产资源的池。

 尽管您可以作为单个用户使用 IPAM，但如果与 AWS Organizations 集成，您将能够在组织中跨账户管理 IP 地址。本教程将介绍如何将 IPAM 与组织中的账户集成，不包括如何 [将 IPAM 与组织外部的账户集成](enable-integ-ipam-outside-org.md)。

**注意**  
本教程中的说明将向您介绍如何以特定方式命名 IPAM 资源、在特定区域中创建 IPAM 资源，以及为池使用特定的 IP 地址 CIDR 范围。此举旨在简化 IPAM 中的可用选择，便于您快速开始使用 IPAM。完成本教程后，您可能会决定创建一个新的 IPAM 并对其进行不同的配置。

**Topics**
+ [前提条件](#prerequisites)
+ [AWS Organizations 如何与 IPAM 集成](#how-aws-organizations-integrates-with-ipam)
+ [步骤 1：委派 IPAM 管理员](#1-delegate-an-ipam-administrator)
+ [步骤 2：创建 IPAM](#2-create-an-ipam)
+ [步骤 3：创建顶级 IPAM 池](#3-create-a-toplevel-ipam-pool)
+ [步骤 4：创建区域 IPAM 池](#4-create-regional-ipam-pools)
+ [步骤 5：创建预生产开发池](#5-create-a-preproduction-development-pool)
+ [步骤 6：共享 IPAM 池](#6-share-the-ipam-pool)
+ [步骤 7：创建一个 VPC，其具有从 IPAM 池分配的 CIDR](#7-create-a-vpc-with-a-cidr-allocated-from-an-ipam-pool)
+ [步骤 8：清除](#8-cleanup)

## 前提条件
<a name="prerequisites"></a>

 开始之前，必须设置具有至少一个成员账户的 AWS Organizations 账户。有关更多信息，请参阅**《AWS Organizations 用户指南》中的[创建并管理组织](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org.html)。

## AWS Organizations 如何与 IPAM 集成
<a name="how-aws-organizations-integrates-with-ipam"></a>

 本部分显示了您在本教程中使用的 AWS Organizations 账户的示例。在本教程中，与 IPAM 集成时，您将使用组织中的三个账户：
+ 用于登录 IPAM 控制台并委派 IPAM 管理员的管理账户（下图中称为 **example-management-account**）。您不能将组织的管理账户作为 IPAM 管理员。
+ 作为 IPAM 管理员账户的成员账户（下图中称为 *example-member-account-1*）。IPAM 管理员账户负责创建 IPAM 并使用它来管理和监控整个组织的 IP 地址使用情况。您可以将组织中的任何成员账户委派为 IPAM 管理员。
+ 作为开发者账户的成员账户（上文中称为 *example-member-account-2*）。此账户会创建一个 VPC，其具有一个从 IPAM 池分配的 CIDR。

![\[包含示例管理和成员账户的 AWS Organizations 组织示例。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-10_4.png)


除账户外，您还需要组织单位（包含将其用作开发者账户的成员账户，上图中的 **ou-fssg-q5brfv9c**）的 ID。您需要使用此 ID，以便在后面的步骤中共享 IPAM 池时可以与该 OU 共享。

**注意**  
 有关*管理*账户和*成员*账户等 AWS Organizations 账户类型的更多信息，请参阅[AWS Organizations 术语和概念](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html)。

## 步骤 1：委派 IPAM 管理员
<a name="1-delegate-an-ipam-administrator"></a>

 在此步骤中，您将委派 AWS Organizations 成员账户作为 IPAM 管理员。当您委派 IPAM 管理员时，每个 AWS Organizations 成员账户中都会自动创建一个[服务相关角色](iam-ipam-slr.md)。IPAM 通过在每个成员账户中担任服务相关角色，来监控这些账户中的 IP 地址使用情况。然后，无论其组织单位如何，它都可以发现资源及其 CIDR。

 您必须拥有所需的 AWS Identity and Access Management（IAM）权限，才能完成此步骤。有关更多信息，请参阅 [将 IPAM 与 AWS Organization 中的账户集成](enable-integ-ipam.md)。

**委派 IPAM 管理员账户**

1. 使用 AWS Organizations 管理账户打开 IPAM 控制台，地址：[https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/)。

1. 在 AWS 管理控制台中，选择您要在其中与 IPAM 合作的 AWS 区域。

1. 在导航面板中选择**组织设置**。

1. 选择 **Delegate（委派）**。仅当您以 AWS Organizations 管理账户身份登录控制台时，**委派**选项才可用。

1. 输入组织成员账户的 AWS 账户 ID。IPAM 管理员必须是 AWS Organizations 成员账户，而不是管理账户。  
![\[IPAM 控制台中用于委派 IPAM 管理员的编辑设置选项。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-_U_2bIBCUfjFZXB4le6FUg.png)

1. 选择**保存更改**。使用与成员账户相关的详细信息填充**委派管理员**信息。

## 步骤 2：创建 IPAM
<a name="2-create-an-ipam"></a>

 在本步骤中，您将创建一个 IPAM。创建 IPAM 时，IPAM 会自动为 IPAM 创建两个作用域：用于所有私有空间的私有作用域和用于所有公有空间的公有作用域。范围以及池和分配是 IPAM 的关键组成部分。有关更多信息，请参阅 [IPAM 的工作原理](how-it-works-ipam.md)。

**创建 IPAM**

1. 使用[上一步](#1-delegate-an-ipam-administrator)中委派作为 IPAM 管理员的 AWS Organizations 成员账户，打开 IPAM 控制台，地址：[https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/)。

1. 在 AWS 管理控制台中，选择您要在其中创建 IPAM 的 AWS 区域。在主操作区域创建 IPAM。

1. 在服务主页上，选择**创建 IPAM**。

1. 选择 **Allow Amazon VPC IP Address Manager to replicate data from source account(s) into the IPAM delegate account**（允许 Amazon VPC IP 地址管理器将数据从源账户复制到 IPAM 委托账户中）。如果未选中此选项，则无法创建 IPAM。  
![\[在 IPAM 控制台中创建 IPAM 页面，其中包含对“允许 Amazon VPC IP 地址管理器将数据从源账户复制到 IPAM 委派账户”复选框的描述。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-HxHJCv2B3DfNcq--wo_gGg.png)

1. 在**运营区域**下，选择此 IPAM 可以在其中管理和发现资源的 AWS 区域。您要在其中创建 IPAM 的 AWS 区域将自动被选为运营区域之一。在本教程中，IPAM 的主区域是 us-east-1，因此我们将选择 us-west-1 和 us-west-2 作为其他运营区域。如果忘记了运营区域，可以稍后编辑 IPAM 设置并添加或删除区域。  
![\[IPAM 控制台中的 IPAM 设置部分。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-D85nBxGA1n7iyDVmB7HOCw.png)

1. 选择**创建 IPAM**。  
![\[成功创建 IPAM 后，IPAM 控制台中的结果页面。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-FUAVxduwVP5FBYU2GLnlkQ.png)

## 步骤 3：创建顶级 IPAM 池
<a name="3-create-a-toplevel-ipam-pool"></a>

 在本教程中，您将从顶层 IPAM 池开始创建池层次结构。在后续步骤中，您将创建一对区域池和其中一个区域池中的预生产开发池。

 有关可以使用 IPAM 构建的池层次结构的更多信息，请参阅 [示例 IPAM 池计划](planning-examples-ipam.md)。

**创建顶层池**

1. 使用 IPAM 管理员账户打开 IPAM 控制台，地址：[https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/)。

1. 在导航窗格中，选择**池**。

1. 选择私有作用域。  
![\[在 IPAM 控制台中选择私有作用域。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-2QXpOvOj0i1rotyKoLjeMQ_update.png)

1. 选择**创建池**。

1. 在 **IPAM 范围**下，确保选中私有范围。

1. （可选）添加池的**名称标签**和对池的描述，如“Global pool”。

1. 在**源**下，选择 **IPAM 范围**。这是我们的顶层池，它没有源池。

1. 在**地址系列**下，选择 **IPv4**。

1. 在**资源规划**下，保持选中**在范围内规划 IP 空间**。有关使用此选项规划 VPC 内的子网 IP 空间的更多信息，请参阅 [教程：为子网 IP 分配规划 VPC IP 地址空间](tutorials-subnet-planning.md)。

1. 对于**区域设置**，选择**无**。区域设置是您希望此 IPAM 池可用于分配的 AWS 区域。您将在本教程的下一部分中为您创建的区域池设置区域设置。  
![\[在 IPAM 控制台中创建一个池。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-daejldSm0ArWYGkedgKekQ.png)

1. 选择要为池预置的 CIDR。在此示例中，预置的是 10.0.0.0/16。  
![\[在 IPAM 控制台中定义要为池预置的 CIDR。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-inrC8QzrnWgW6nmdPkk1rw.png)

1. 将**配置此池的分配规则设置**保留为禁用状态。这是我们的顶层池，您无法直接从该池中将 CIDR 分配给 VPC。相反，您将从从该池创建的子池中进行分配。  
![\[在 IPAM 控制台中为池选择分配规则设置。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-8j4A_Tr5hG95xWIFfi1wkw.png)

1. 选择**创建池**。池已创建，且 CIDR 处于**等待预置**状态：  
![\[创建池后，IPAM 控制台中的等待预置消息。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-2_1.png)

1. 请等待状态切换为**已预置**，然后再执行下一步操作。  
![\[成功创建池后，IPAM 控制台中的已预置消息。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-3_1.png)

现在，您已创建顶层池，将在 us-west-1 和 us-west-2 中创建区域池。

## 步骤 4：创建区域 IPAM 池
<a name="4-create-regional-ipam-pools"></a>

 本部分将介绍如何使用两个区域池组织 IP 地址。在本教程中，我们将遵循其中一个[示例 IPAM 池计划](planning-examples-ipam.md)，并创建两个区域池，供您组织中的成员账户用于向其 VPC 分配 CIDR。

**创建区域池**

1. 使用 IPAM 管理员账户打开 IPAM 控制台，地址：[https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/)。

1. 在导航窗格中，选择**池**。

1. 选择私有作用域。  
![\[在 IPAM 控制台中选择私有作用域。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-Jb3iudGe4fGJDkVVMqnCpA_update.png)

1. 选择**创建池**。

1. 在 **IPAM 范围**下，确保选中私有范围。

1. （可选）添加池的**名称标签**和池的描述，例如**区域池 us-west-1**。  
![\[在 IPAM 控制台中为池添加名称。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-U9TfeMAvqPNqdM3o18oNCA.png)

1. 在**源**下，选择 **IPAM 池**，然后选择您在 [步骤 3：创建顶级 IPAM 池](#3-create-a-toplevel-ipam-pool) 中创建的顶层池（“全局池”）。然后，在**区域设置**下，选择 **us-west-1**。  
![\[在 IPAM 控制台中选择源池。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-Qg017oruyE3w2MEkQXr1EQ.png)

1. 在**资源规划**下，保持选中**在范围内规划 IP 空间**。有关使用此选项规划 VPC 内的子网 IP 空间的更多信息，请参阅 [教程：为子网 IP 分配规划 VPC IP 地址空间](tutorials-subnet-planning.md)。

1. 在**要预置的 CIDR** 下，输入 10.0.0.0/18，这将为该池提供大约 16,000 个可用 IP 地址。  
![\[在 IPAM 控制台中选择要为池预置的 CIDR。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-os9vwNonWgaIGDkbq3Pjbg.png)

1. 将**配置此池的分配规则设置**保留为禁用状态。您无法直接从该池中将 CIDR 分配给 VPC。相反，您将从从该池创建的子池中进行分配。  
![\[IPAM 控制台中的“配置此池的分配规则设置”切换开关。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-8j4A_Tr5hG95xWIFfi1wkw.png)

1. 选择**创建池**。

1. 返回到**池**视图查看您创建的 IPAM 池的层次结构。  
![\[IPAM 控制台中包含两个池的池视图。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-Ki7fsgUEn6miZE5Hg2TmrA_update.png)

1. 重复本节中的步骤，在 **us-west-2** 区域设置中创建第二个区域池，并为其预置 CIDR **10.0.64.0/18**。完成该过程后，您将在与此层次结构类似的层次结构中拥有三个池：  
![\[IPAM 控制台中包含三个池的池视图。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-5_update.png)

## 步骤 5：创建预生产开发池
<a name="5-create-a-preproduction-development-pool"></a>

 按照本部分中的步骤，在其中一个区域池中创建用于预生产资源的开发池。

**创建预生产开发池**

1. 采用上一部分中的相同方式，使用 IPAM 管理员账户创建一个名为 **Pre-prod 池**的池，但这次使用**区域池 us-west-1** 作为源池。  
![\[在 IPAM 控制台中创建一个池。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-BxJv7N7ierzIQDRiC4_R0Q.png)

1. 指定 10.0.0.0/20 的 CIDR 进行预置，这将为该池提供大约 4,000 个 IP 地址。  
![\[在 IPAM 控制台中为池选择 CIDR。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-jn0QtJsRo5iF5R5oHp7Sqw.png)

1. 切换**配置此池的分配规则设置**选项。执行以下操作：

   1. 在 **CIDR 管理**下，对于**自动导入已发现的资源**，将默认的**不允许**选项保留为选中状态。此选项将使 IPAM 自动导入其在池的区域设置中发现的资源 CIDR。本教程不提供此选项的详细说明，但您可以在 [创建顶级 IPv4 池](create-top-ipam.md) 中阅读有关该选项的更多信息。

   1. 在**网络掩码合规性**下，为网络掩码长度最小值、默认值和最大值选择 **/24**。本教程不提供此选项的详细说明，但您可以在 [创建顶级 IPv4 池](create-top-ipam.md) 中阅读有关该选项的更多信息。需要注意的是，您稍后使用该池中的 CIDR 创建的 VPC 将根据此处设置限制为 /24。

   1. 在**标签合规性**下，输入 **environment/pre-prod**。VPC 需要此标签才能从池中分配空间。稍后我们将演示其工作原理。  
![\[在 IPAM 控制台中创建池时查看所有池设置。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-D2Yr4efRG3X7MeME2urYJA.png)

1. 选择**创建池**。

1. 现在，池层次结构在**区域池 us-west-1** 下添加了一个额外的子池：  
![\[IPAM 控制台中包含四个池的池视图。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-DrNlvRjI9cFmNfq7Xa4x0w_update.png)

 现在，您已准备好与组织中的另一个成员账户共享 IPAM 池，并允许该账户从池中分配 CIDR 来创建 VPC。

## 步骤 6：共享 IPAM 池
<a name="6-share-the-ipam-pool"></a>

 按照本部分中的步骤使用 AWS Resource Access Manager（RAM）共享预生产的 IPAM 池。

 本部分包含两个子部分：
+ [步骤 6.1. 在 AWS RAM 中启用资源共享](#61-enable-resource-sharing-in-aws-ram)：此步骤必须由 AWS Organizations 管理账户完成。
+ [步骤 6.2. 使用 AWS RAM 共享 IPAM 池](#62-share-an-ipam-pool-using-aws-ram)：此步骤必须由 IPAM 管理员完成。

### 步骤 6.1. 在 AWS RAM 中启用资源共享
<a name="61-enable-resource-sharing-in-aws-ram"></a>

 创建 IPAM 后，您需要与组织中的其他账户共享 IP 地址池。在共享 IPAM 池之前，请先完成本部分中的步骤，启用与 AWS RAM 的资源共享。

**启用资源共享**

1. 使用 AWS Organizations 管理账户打开 AWS RAM 控制台，地址：[https://console.aws.amazon.com/ram/](https://console.aws.amazon.com/ram/)。

1. 在左侧导航窗格中，依次选择**设置**、**启用与 AWS Organizations 共享**、**保存设置**。  
![\[在 AWS RAM 控制台中启用组织共享。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-Jv8YJhg2J82EFdJrgsXA5w.png)

 您现在可以与组织的其他成员共享 IPAM 池。

### 步骤 6.2. 使用 AWS RAM 共享 IPAM 池
<a name="62-share-an-ipam-pool-using-aws-ram"></a>

 在本部分中，您将与其他 AWS Organizations 成员账户共享预生产开发池。有关共享 IPAM 池的完整说明，例如所需 IAM 权限的相关信息，请参阅 [使用 AWS RAM 共享 IPAM 池](share-pool-ipam.md)。

**使用 AWS RAM 共享 IPAM 池**

1. 使用 IPAM 管理员账户打开 IPAM 控制台，地址：[https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/)。

1. 在导航窗格中，选择**池**。

1. 选择私有作用域，选择预生产 IPAM 池，然后选择**操作** > **查看详细信息**。

1. 在**资源共享**下，选择**创建资源共享**。AWS RAM 控制台将打开。您将使用 AWS RAM 共享该池。

1. 选择**创建资源共享**。  
![\[在 IPAM 控制台中创建资源共享。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-6_1.png)

   AWS RAM 控制台将打开。

1. 在 AWS RAM 控制台中，再次选择**创建资源共享**。

1. 为共享资源添加**名称**。

1. 在**选择资源类型**下，选择 **IPAM 池**，然后选择预生产开发池的 ARN。  
![\[在 AWS RAM 控制台中创建资源共享。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-El4fIIE4FoenE75KV43GtQ.png)

1. 选择**下一步**。

1. 将默认的 **AWSRAMDefaultPermissionsIpamPool** 权限保留为选中状态。本教程不提供权限选项的详细信息，但您可以在 [使用 AWS RAM 共享 IPAM 池](share-pool-ipam.md) 中查看有关这些选项的更多信息。  
![\[在 AWS RAM 控制台中关联资源共享权限。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-lNweqIyKpC9LFvxpwrkmiw.png)

1. 选择**下一步**。

1. 在**主体**下，选择**仅允许在组织内共享**。输入 AWS Organizations 组织单位 ID（如 [AWS Organizations 如何与 IPAM 集成](#how-aws-organizations-integrates-with-ipam) 中所述，然后选择**添加**）。  
![\[在 AWS RAM 控制台中授予对资源共享的访问权限。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-dvLWZpvLDwh-grXeuUwPFQ.png)

1. 选择**下一步**。

1. 查看资源共享选项和要共享的主体，然后选择**创建**。

现在池已共享，请转到下一步以创建 VPC，并向其分配 IPAM 池中的 CIDR。

## 步骤 7：创建一个 VPC，其具有从 IPAM 池分配的 CIDR
<a name="7-create-a-vpc-with-a-cidr-allocated-from-an-ipam-pool"></a>

 按照本部分中的步骤，创建一个具有从预生产池分配的 CIDR 的 VPC。此步骤应由上一部分中与之共享 IPAM 池的 OU 中的成员账户（在 [AWS Organizations 如何与 IPAM 集成](#how-aws-organizations-integrates-with-ipam) 中名为 **example-member-account-2**）完成。有关创建 VPC 所需的 IAM 权限的更多信息，请参阅《Amazon VPC 用户指南》**中的 [Amazon VPC 策略示例](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-policy-examples.html)。

**创建一个 VPC，其具有从 IPAM 池分配的 CIDR**

1. 使用成员账户，作为您将用作开发者账户的成员账户打开 VPC 控制台，地址 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 选择**创建 VPC**。

1. 执行以下操作：

   1. 输入名称，例如 **Example VPC**。

   1. 选择 **IPAM 分配的 IPv4 CIDR 块**。

   1. 在 **IPv4 IPAM 池**下，选择预生产池的 ID。

   1. 选择**网络掩码**长度。由于您将此池的可用网络掩码长度限制为 /24（在 [步骤 5：创建预生产开发池](#5-create-a-preproduction-development-pool) 中），因此唯一可用的网络掩码选项是 /24。  
![\[在 Amazon VPC 控制台中创建 VPC。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-jP9gQ6vF0cRtH2b-7CGNAA.png)

1. 为方便演示，此时请勿在**标签**下添加任何其他标签。创建预生产池（在[步骤 5：创建预生产开发池](#5-create-a-preproduction-development-pool)中完成）时，您添加了一个分配规则，要求使用该池中的 CIDR 创建的任何 VPC 都必须具有环境/预生产标签。暂时将环境/预生产标签保留为关闭状态，以便您能够看到出现的错误，告知您没有添加所需的标签。

1. 选择**创建 VPC**。

1. 出现一个错误，告知您没有添加所需的标签。出现该错误是因为您在创建预生产池（在 [步骤 5：创建预生产开发池](#5-create-a-preproduction-development-pool) 中）时设置了分配规则。分配规则要求使用此池中的 CIDR 创建的任何 VPC 都具有环境/预生产标签。  
![\[在 Amazon VPC 控制台中创建 VPC 错误。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-wxP7WfFbl-2ThufLus_Usw.png)

1. 现在，在**标签**下，添加**环境/预生产**标签，然后再次选择**创建 VPC**。  
![\[在 Amazon VPC 控制台中向 VPC 添加标签。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-w8R8_7bmW-Bp-CPSImwmEA.png)

1. VPC 创建成功，并且 VPC 符合预生产池上的标签规则：  
![\[在 Amazon VPC 控制台中成功创建 VPC。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-D3roKYnuSRCdzlFfGT7-pg.png)

在 IPAM 控制台的**资源**窗格中，IPAM 管理员将能够查看和管理 VPC 及其分配的 CIDR。请注意，VPC 需要一些时间才能在**资源**窗格中显示。

## 步骤 8：清除
<a name="8-cleanup"></a>

 在本教程中，您通过委派管理员创建了 IPAM，也创建了多个池，还允许组织中的成员账户从池中分配 VPC CIDR。

 按照本部分中的步骤清除您在本教程中创建的资源。

**清除在本教程中创建的资源**

1. 使用创建示例 VPC 的成员账户，删除 VPC。有关详细说明，请参阅《Amazon Virtual Private Cloud 用户指南》**中的[删除 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/delete-vpc.html)。

1. 使用 IPAM 管理员账户删除 AWS RAM 控制台中的示例资源共享。有关详细说明，请参阅**《AWS Resource Access Manager 用户指南》中的[删除 AWSAWS RAM 中的资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-delete.html)。

1. 使用 IPAM 管理员账户登录 RAM 控制台并禁用您在 [步骤 6.1. 在 AWS RAM 中启用资源共享](#61-enable-resource-sharing-in-aws-ram) 中启用的与 AWS Organizations 共享。

1. 使用 IPAM 管理员账户，在 IPAM 控制台中选择 IPAM，然后选择**操作** > **删除**，来删除示例 IPAM。有关详细说明，请参阅 [删除 IPAM](delete-ipam.md)。

1. 当系统提示您删除 IPAM 时，选择**级联删除**。这将在删除 IPAM 之前，删除 IPAM 中的所有作用域和池。  
![\[在 IPAM 控制台中删除 IPAM。\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/ipam/images/tutorials-get-started-console-wzlnq9726bqxf3M_F71QUQ.png)

1. 输入**删除**并选择**删除**。

1. 使用 AWS Organizations 管理账户登录 IPAM 控制台，选择**设置**，然后删除委派的管理员账户。

1. （可选）将 IPAM 与 AWS Organizations 集成时，[IPAM 会自动在每个成员账户中创建一个服务相关角色](iam-ipam-slr.md)。使用每个 AWS Organizations 成员账户，登录 IAM 并删除每个成员账户中的 **AWSServiceRoleForIPAM** 服务相关角色。

1. 清理已完成。

# 教程：使用 AWS CLI 创建 IPAM 和池
<a name="tutorials-create-vpc-ipam"></a>

按照本教程中的步骤使用 AWS CLI 创建 IPAM、创建 IP 地址池并使用 IPAM 池中的 CIDR 分配 VPC。

以下示例显示了池结构的层次结构，您可以通过遵照本部分中的步骤来创建这些结构：
+ IPAM 在 AWS 区域 1、AWS 区域 2 中运营
  + 私有范围
    + 顶级池
      + AWS 区域 2 中的区域池
        + 开发池
          + VPC 的分配

**注意**  
在本部分中，您将创建一个 IPAM。默认情况下，您只能创建一个 IPAM。有关更多信息，请参阅 [IPAM 的配额](quotas-ipam.md)。如果您已委派了 IPAM 账户并创建了 IPAM，则可以跳过步骤 1 和步骤 2。

**Topics**
+ [步骤 1：在企业中启用 IPAM](#cli-tut-enable-org-ipam)
+ [步骤 2：创建 IPAM](#cli-tut-create-ipam)
+ [步骤 3：创建 IPv4 地址池](#cli-tut-create-top-ipam)
+ [步骤 4：向顶级池预置 CIDR](#cli-tut-provision-cidr-ipam)
+ [步骤 5。使用来自顶级池的 CIDR 创建区域池](#cli-tut-create-reg-ipam)
+ [步骤 6：向区域池预置 CIDR](#cli-tut-assign-cidr-reg-pool)
+ [第 7 步。创建 RAM 共享以启用跨账户的 IP 分配](#cli-tut-create-ram-share-ipam)
+ [步骤 8：创建 VPC](#cli-tut-create-vpc-ipam)
+ [第 9 步。清理](#cli-tut-cleanup-ipam)

## 步骤 1：在企业中启用 IPAM
<a name="cli-tut-enable-org-ipam"></a>

此为可选步骤。完成此步骤以在企业中启用 IPAM，然后使用 AWS CLI 配置委派的 IPAM。有关 IPAM 账户角色的更多信息，请参阅 [将 IPAM 与 AWS Organization 中的账户集成](enable-integ-ipam.md)。

此请求必须来自 AWS Organizations 管理账户。运行以下命令时，请确保您使用的角色具有允许执行以下操作的 IAM policy：
+ `ec2:EnableIpamOrganizationAdminAccount`
+ `organizations:EnableAwsServiceAccess`
+ `organizations:RegisterDelegatedAdministrator`
+ `iam:CreateServiceLinkedRole`

```
aws ec2 enable-ipam-organization-admin-account --region us-east-1 --delegated-admin-account-id 11111111111
```

您应看到以下输出，它表明启用成功。

```
{
    "Success": true
}
```

## 步骤 2：创建 IPAM
<a name="cli-tut-create-ipam"></a>

按照本部分中的步骤创建 IPAM 并查看有关创建范围的其他信息。在后面的步骤中创建池并为这些池预置 IP 地址范围时，您将使用此 IPAM。

**注意**  
允许区域选项确定了 IPAM 池可用于的哪些 AWS 区域。有关这些运营区域的更多信息，请参阅 [创建 IPAM](create-ipam.md)。

**要使用 AWS CLI 创建 IPAM**

1. 运行以下命令以创建 IPAM 实例。

   ```
   aws ec2 create-ipam --description my-ipam --region us-east-1 --operating-regions RegionName=us-west-2
   ```

   创建 IPAM 时，AWS 自动执行以下操作：
   + 为 IPAM 返回全局唯一的资源 ID (`IpamId`)。
   + 创建默认的公有范围 (`PublicDefaultScopeId`) 和默认的私有范围 (`PrivateDefaultScopeId`)。

   ```
   {                                                                                      
       "Ipam": {
           "OwnerId": "123456789012",
           "IpamId": "ipam-0de83dba6694560a9",
           "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9",
           "PublicDefaultScopeId": "ipam-scope-02a24107598e982c5",
           "PrivateDefaultScopeId": "ipam-scope-065e7dfe880df679c",
           "ScopeCount": 2,
           "Description": "my-ipam",
           "OperatingRegions": [
               {
                   "RegionName": "us-west-2"
               },
               {
                   "RegionName": "us-east-1"
               }
           ],
           "Tags": []
       }
   }
   ```

1. 运行以下命令以查看与范围相关的其他信息。公有范围适用于将通过公共互联网访问的 IP 地址。私有范围适用于不通过公共互联网访问的 IP 地址。

   ```
   aws ec2 describe-ipam-scopes --region us-east-1
   ```

   在输出中，您将看到可用的范围。您将在下一步中使用私有范围 ID。

   ```
   {
       "IpamScopes": [
           {
               "OwnerId": "123456789012",
               "IpamScopeId": "ipam-scope-02a24107598e982c5",
               "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-02a24107598e982c5",
               "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9",
               "IpamScopeType": "public",
               "IsDefault": true,
               "PoolCount": 0
           },
           {
               "OwnerId": "123456789012",
               "IpamScopeId": "ipam-scope-065e7dfe880df679c",
               "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-065e7dfe880df679c",
               "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9",
               "IpamScopeType": "private",
               "IsDefault": true,
               "PoolCount": 0
           }
       ]
   }
   ```

## 步骤 3：创建 IPv4 地址池
<a name="cli-tut-create-top-ipam"></a>

按照本部分中的步骤创建 IPv4 地址池。

**重要**  
您不会在这个顶级池上使用 `--locale` 选项。稍后您将在区域池中设置区域设置选项。区域设置是您希望有一个池可用于 CIDR 分配的 区域。由于未在顶级池上设置区域设置，该区域设置将为原定设置 `None`。如果池的区域设置为 `None`，则任何 AWS 区域的 VPC 资源都无法使用该池。您只能在池中手动分配 IP 地址空间以预订空间。

**使用 AWS CLI 为您的所有 AWS 资源创建 IPv4 地址池**

1. 运行以下命令以创建 IPv4 地址池。请使用您在上一步中创建的 IPAM 的私有范围的 ID。

   ```
   aws ec2 create-ipam-pool --ipam-scope-id ipam-scope-065e7dfe880df679c --description "top-level-pool" --address-family ipv4
   ```

   在输出中，您将看到池的 `create-in-progress` 的状态。

   ```
   {
       "IpamPool": {
           "OwnerId": "123456789012",
           "IpamPoolId": "ipam-pool-0008f25d7187a08d9",
           "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0008f25d7187a08d9",
           "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-065e7dfe880df679c",
           "IpamScopeType": "private",
           "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9",
           "Locale": "None",
           "PoolDepth": 1,
           "State": "create-in-progress",
           "Description": "top-level-pool",
           "AutoImport": false,
           "AddressFamily": "ipv4",
           "Tags": []
       }
   }
   ```

1. 运行以下命令，直到您在输出中看到 `create-complete` 的状态。

   ```
   aws ec2 describe-ipam-pools
   ```

   下面的示例输出显示正确的状态。

   ```
   {
       "IpamPools": [
           {
               "OwnerId": "123456789012",
               "IpamPoolId": "ipam-pool-0008f25d7187a08d9",
               "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0008f25d7187a08d9",
               "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-065e7dfe880df679c",
               "IpamScopeType": "private",
               "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9",
               "Locale": "None",
               "PoolDepth": 1,
               "State": "create-complete",
               "Description": "top-level-pool",
               "AutoImport": false,
               "AddressFamily": "ipv4"
           }
       ]
   }
   ```

## 步骤 4：向顶级池预置 CIDR
<a name="cli-tut-provision-cidr-ipam"></a>

按照本部分中的步骤向顶级池预置 CIDR，然后验证是否已预置 CIDR。有关更多信息，请参阅 [将 CIDR 预置到池](prov-cidr-ipam.md)。

**使用 AWS CLI 向池预置 CIDR 块**

1. 请运行以下命令以预置 CIDR。

   ```
   aws ec2 provision-ipam-pool-cidr --region us-east-1 --ipam-pool-id ipam-pool-0008f25d7187a08d9 --cidr 10.0.0.0/8
   ```

   在输出中，您可以验证预置的状态。

   ```
   {
       "IpamPoolCidr": {                     
           "Cidr": "10.0.0.0/8",        
           "State": "pending-provision"      
       }                                     
   }
   ```

1. 运行以下命令，直到您在输出中看到 `provisioned` 的状态。

   ```
   aws ec2 get-ipam-pool-cidrs --region us-east-1 --ipam-pool-id ipam-pool-0008f25d7187a08d9
   ```

   下面的示例输出显示正确的状态。

   ```
   {
       "IpamPoolCidrs": [                     
           {                                  
               "Cidr": "10.0.0.0/8",     
               "State": "provisioned"         
           }                                  
       ]                                      
   }
   ```

## 步骤 5。使用来自顶级池的 CIDR 创建区域池
<a name="cli-tut-create-reg-ipam"></a>

创建 IPAM 池时，该池默认情况下属于 IPAM 的 AWS 区域。创建 VPC 时，VPC 从中进行提取的池必须与 VPC 位于同一个区域中。创建池时，您可以使用 `--locale` 选项使池可用于 IPAM 的区域之外的区域中的服务。按照本部分中的步骤在另一个区域设置中创建区域池。

**要使用 AWS CLI 通过来自上一个池的 CIDR 创建池**

1. 运行以下命令以创建池并插入带有前一个池中已知可用 CIDR 的空间。

   ```
   aws ec2 create-ipam-pool --description "regional--pool" --region us-east-1 --ipam-scope-id ipam-scope-065e7dfe880df679c --source-ipam-pool-id 
   ipam-pool-0008f25d7187a08d9 --locale us-west-2 --address-family ipv4
   ```

   在输出中，您将看到创建的池的 ID。在下一步骤中，您需要用到此 ID。

   ```
   {
       "IpamPool": {
           "OwnerId": "123456789012",
           "IpamPoolId": "ipam-pool-0da89c821626f1e4b",
           "SourceIpamPoolId": "ipam-pool-0008f25d7187a08d9",
           "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0da89c821626f1e4b",
           "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-065e7dfe880df679c",
           "IpamScopeType": "private",
           "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9",
           "Locale": "us-west-2",
           "PoolDepth": 2,
           "State": "create-in-progress",
           "Description": "regional--pool",
           "AutoImport": false,
           "AddressFamily": "ipv4",
           "Tags": []
       }
   }
   ```

1. 运行以下命令，直到您在输出中看到 `create-complete` 的状态。

   ```
   aws ec2 describe-ipam-pools
   ```

   在输出中，您可以看到您在 IPAM 中拥有的池。在本教程中，我们创建了一个顶级池和一个区域池，所以您会看到这两个池。

   ```
   {
       "IpamPools": [
           {
               "OwnerId": "123456789012",
               "IpamPoolId": "ipam-pool-0008f25d7187a08d9",
               "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0008f25d7187a08d9",
               "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-065e7dfe880df679c",
               "IpamScopeType": "private",
               "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9",
               "Locale": "None",
               "PoolDepth": 1,
               "State": "create-complete",
               "Description": "top-level-pool",
               "AutoImport": false,
               "AddressFamily": "ipv4"
           },
           {
               "OwnerId": "123456789012",
               "IpamPoolId": "ipam-pool-0da89c821626f1e4b",
               "SourceIpamPoolId": "ipam-pool-0008f25d7187a08d9",
               "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0da89c821626f1e4b",
               "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-065e7dfe880df679c",
               "IpamScopeType": "private",
               "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-0de83dba6694560a9",
               "Locale": "us-west-2",
               "PoolDepth": 2,
               "State": "create-complete",
               "Description": "regional--pool",
               "AutoImport": false,
               "AddressFamily": "ipv4"
           }
       ]
   }
   ```

## 步骤 6：向区域池预置 CIDR
<a name="cli-tut-assign-cidr-reg-pool"></a>

按照本部分中的步骤向池分配 CIDR 块，并验证它是否已成功预置。

**要使用 AWS CLI 将 CIDR 块分配到区域池**

1. 请运行以下命令以预置 CIDR。

   ```
   aws ec2 provision-ipam-pool-cidr --region us-east-1 --ipam-pool-id ipam-pool-0da89c821626f1e4b --cidr 10.0.0.0/16
   ```

   在输出中，您将看到池的状态。

   ```
   {
       "IpamPoolCidr": {                     
           "Cidr": "10.0.0.0/16",       
           "State": "pending-provision"      
       }                                     
   }
   ```

1. 运行以下命令，直到您在输出中看到 `provisioned` 的状态。

   ```
   aws ec2 get-ipam-pool-cidrs --region us-east-1 --ipam-pool-id ipam-pool-0da89c821626f1e4b
   ```

   下面的示例输出显示正确的状态。

   ```
   {
       "IpamPoolCidrs": [                     
           {                                  
               "Cidr": "10.0.0.0/16",     
               "State": "provisioned"         
           }                                  
       ]                                      
   }
   ```

1. 运行以下命令查询顶级池以查看分配。区域池被看作是顶级池中的分配。

   ```
   aws ec2 get-ipam-pool-allocations --region us-east-1 --ipam-pool-id ipam-pool-0008f25d7187a08d9
   ```

   在输出中，您将区域池看作是顶级池中的分配。

   ```
   {
       "IpamPoolAllocations": [
           {
               "Cidr": "10.0.0.0/16",
               "IpamPoolAllocationId": "ipam-pool-alloc-fbd525f6c2bf4e77a75690fc2d93479a",
               "ResourceId": "ipam-pool-0da89c821626f1e4b",
               "ResourceType": "ipam-pool",
               "ResourceOwner": "123456789012"
           }
       ]
   }
   ```

## 第 7 步。创建 RAM 共享以启用跨账户的 IP 分配
<a name="cli-tut-create-ram-share-ipam"></a>

此为可选步骤。只有完成 [将 IPAM 与 AWS Organization 中的账户集成](enable-integ-ipam.md) 后，您才能完成此步骤。

当您创建 IPAM 池 AWS RAM 共享时，它将支持跨账户分配 IP。RAM 共享仅在主 AWS 区域中可用。请注意，您可以在与 IPAM 相同的区域中创建此共享，而不能在池的本地区域中。IPAM 资源上的所有管理操作都是通过您 IPAM 所在的主区域进行的。本教程中的示例为单个池创建单个共享，但是您可以将多个池添加到单个共享中。有关更多信息，包括必须输入的选项的说明，请参阅 [使用 AWS RAM 共享 IPAM 池](share-pool-ipam.md)。

使用以下命令创建资源共享。

```
aws ram create-resource-share --region us-east-1 --name pool_share --resource-arns arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0dec9695bca83e606 --principals 123456
```

输出表明，该池已创建。

```
{
    "resourceShare": {
        "resourceShareArn": "arn:aws:ram:us-west-2:123456789012:resource-share/3ab63985-99d9-1cd2-7d24-75e93EXAMPLE",
        "name": "pool_share",
        "owningAccountId": "123456789012",
        "allowExternalPrincipals": false,
        "status": "ACTIVE",
        "creationTime": 1565295733.282,
        "lastUpdatedTime": 1565295733.282
    }
}
```

## 步骤 8：创建 VPC
<a name="cli-tut-create-vpc-ipam"></a>

运行以下命令以创建 VPC 并将 CIDR 块从新创建的 IPAM 中的池分配给 VPC。

```
aws ec2 create-vpc --region us-east-1 --ipv4-ipam-pool-id ipam-pool-04111dca0d960186e --cidr-block 10.0.0.0/24
```

输出表明，VPC 已创建。

```
{
    "Vpc": {
        "CidrBlock": "10.0.0.0/24",
        "DhcpOptionsId": "dopt-19edf471",
        "State": "pending",
        "VpcId": "vpc-0983f3c454f3d8be5",
        "OwnerId": "123456789012",   
        "InstanceTenancy": "default",
        "Ipv6CidrBlockAssociationSet": [],
        "CidrBlockAssociationSet": [
            {
                "AssociationId": "vpc-cidr-assoc-00b24cc1c2EXAMPLE",
                "CidrBlock": "10.0.0.0/24",
                "CidrBlockState": {
                    "State": "associated"
                }
            }
        ],
        "IsDefault": false
    }
}
```

## 第 9 步。清理
<a name="cli-tut-cleanup-ipam"></a>

按照本部分中的步骤删除您在本教程中创建的 IPAM 资源。

1. 删除 VPC。

   ```
   aws ec2 delete-vpc --vpc-id vpc-0983f3c454f3d8be5
   ```

1. 删除 IPAM 池 RAM 共享。

   ```
   aws ram delete-resource-share --resource-share-arn arn:aws:ram:us-west-2:123456789012:resource-share/3ab63985-99d9-1cd2-7d24-75e93EXAMPLE
   ```

1. 从区域池中取消预置池 CIDR。

   ```
    aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-0da89c821626f1e4b --region us-east-1 
   ```

1. 从顶级池中取消预置池 CIDR。

   ```
    aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-0008f25d7187a08d9 --region us-east-1
   ```

1. 删除 IPAM

   ```
   aws ec2 delete-ipam --region us-east-1
   ```

# 教程：使用 AWS CLI 查看 IP 地址历史记录
<a name="tutorials-historical-insights"></a>

本部分中的场景将向您展示如何使用 AWS CLI 分析和审计 IP 地址使用情况。有关使用 AWS CLI 的一般信息，请参阅 *AWS 命令行界面用户指南*中的[使用 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-using.html)。

**Topics**
+ [概述](#cli-tut-view-hist-ipam-overview)
+ [场景](#cli-tut-view-hist-ipam-analyze)

## 概述
<a name="cli-tut-view-hist-ipam-overview"></a>

IPAM 会自动将您的 IP 地址监控数据最多保留三年。您可以使用历史数据来分析和审核网络安全和路由策略。您可以为以下类型的资源搜索历史见解：
+ VPC
+ VPC 子网
+ 弹性 IP 地址
+ 正在运行的 EC2 实例
+ 连接到实例的 EC2 网络接口

**重要**  
尽管 IPAM 不会监控 Amazon EC2 实例或挂载到实例的 EC2 网络接口，但您可以使用搜索 IP 历史记录功能，来搜索 EC2 实例和网络接口 CIDR 上的历史数据。

**注意**  
本教程中的命令必须使用拥有 IPAM 的账户和托管 IPAM 的 AWS 区域运行。
CIDR 更改的记录会在定期快照中拾取，这意味着记录出现或更新可能需要一些时间，SampledStartTime 和 SampledEndTime 的值可能与实际发生时间不同。

## 场景
<a name="cli-tut-view-hist-ipam-analyze"></a>

本部分中的场景将向您展示如何使用 AWS CLI 分析和审计 IP 地址使用情况。有关本教程中提到的采样结束时间和开始时间等值的更多信息，请参阅 [查看 IP 地址历史记录](view-history-cidr-ipam.md)。

**场景 1：2021 年 12 月 27 日上午 1:00 和晚上 9:00 (UTC) 之间有哪些资源与 `10.2.1.155/32` 关联？**

1. 运行如下命令：

   ```
   aws ec2 get-ipam-address-history --region us-east-1 --cidr 10.2.1.155/32 --ipam-scope-id ipam-scope-05b579a1909c5fc7a --start-time 2021-12-20T01:00:00.000Z --end-time 2021-12-27T21:00:00.000Z
   ```

1. 查看分析结果。在下面的示例中，CIDR 在一段时间内分配给网络接口和 EC2 实例。请注意，没有 **SampledEndTime** 值表示记录仍处于活动状态。有关以下输出中显示的值的更多信息，请参阅 [查看 IP 地址历史记录](view-history-cidr-ipam.md)。

   ```
   {                                                     
       "HistoryRecords": [
           {
               "ResourceOwnerId": "123456789012",
               "ResourceRegion": "us-east-1",
               "ResourceType": "network-interface",
               "ResourceId": "eni-0b4e53eb1733aba16",
               "ResourceCidr": "10.2.1.155/32",
               "VpcId": "vpc-0f5ee7e1ba908a378",
               "SampledStartTime": "2021-12-27T20:08:46.672000+00:00"
           },
           {
               "ResourceOwnerId": "123456789012",
               "ResourceRegion": "us-east-1",
               "ResourceType": "instance",
               "ResourceId": "i-064da1f79baed14f3",
               "ResourceCidr": "10.2.1.155/32",
               "VpcId": "vpc-0f5ee7e1ba908a378",
               "SampledStartTime": "2021-12-27T20:08:46.672000+00:00"
           }
       ]
   }
   ```

   如果网络接口连接到的实例的拥有者 ID 与网络接口的所有者 ID 不同（如 NAT 网关、VPC 中的 Lambda 网络接口和其他 AWS 服务的情况），则 `ResourceOwnerId` 为 `amazon-aws`，而不是网络接口拥有者的账户 ID。以下示例显示了与 NAT 网关关联的 CIDR 的记录：

   ```
   {                                                     
       "HistoryRecords": [
           {
               "ResourceOwnerId": "123456789012",
               "ResourceRegion": "us-east-1",
               "ResourceType": "network-interface",
               "ResourceId": "eni-0b4e53eb1733aba16",
               "ResourceCidr": "10.0.0.176/32",
               "VpcId": "vpc-0f5ee7e1ba908a378",
               "SampledStartTime": "2021-12-27T20:08:46.672000+00:00"
           },
           {
               "ResourceOwnerId": "amazon-aws",
               "ResourceRegion": "us-east-1",
               "ResourceType": "instance",
               "ResourceCidr": "10.0.0.176/32",
               "VpcId": "vpc-0f5ee7e1ba908a378",
               "SampledStartTime": "2021-12-27T20:08:46.672000+00:00"
           }
       ]
   }
   ```

**场景 2：2021 年 12 月 1 日至 2021 年 12 月 27 日 (UTC) 有哪些资源与 `10.2.1.0/24` 关联？**

1. 运行如下命令：

   ```
   aws ec2 get-ipam-address-history --region us-east-1 --cidr 10.2.1.0/24 --ipam-scope-id ipam-scope-05b579a1909c5fc7a --start-time 2021-12-01T00:00:00.000Z --end-time 2021-12-27T23:59:59.000Z
   ```

1. 查看分析结果。在下面的示例中，CIDR 在一段时间内分配给子网和 VPC。请注意，没有 **SampledEndTime** 值表示记录仍处于活动状态。有关以下输出中显示的值的更多信息，请参阅 [查看 IP 地址历史记录](view-history-cidr-ipam.md)。

   ```
   {
       "HistoryRecords": [
           {
               "ResourceOwnerId": "123456789012",
               "ResourceRegion": "us-east-1",
               "ResourceType": "subnet",
               "ResourceId": "subnet-0864c82a42f5bffed",
               "ResourceCidr": "10.2.1.0/24",
               "VpcId": "vpc-0f5ee7e1ba908a378",
               "SampledStartTime": "2021-12-27T20:08:46.672000+00:00"
           },
           {
               "ResourceOwnerId": "123456789012",
               "ResourceRegion": "us-east-1",
               "ResourceType": "vpc",
               "ResourceId": "vpc-0f5ee7e1ba908a378",
               "ResourceCidr": "10.2.1.0/24",
               "ResourceComplianceStatus": "compliant",
               "ResourceOverlapStatus": "nonoverlapping",
               "VpcId": "vpc-0f5ee7e1ba908a378",
               "SampledStartTime": "2021-12-27T20:08:46.672000+00:00"
           }
       ]
   }
   ```

**场景 3：2021 年 12 月 1 日至 2021 年 12 月 27 日 (UTC) 有哪些资源与 `2605:9cc0:409::/56` 关联？**

1. 运行以下命令，其中 --region 是指 IPAM 主区域：

   ```
   aws ec2 get-ipam-address-history --region us-east-1 --cidr 2605:9cc0:409::/56 --ipam-scope-id ipam-scope-07cb485c8b4a4d7cc --start-time 2021-12-01T01:00:00.000Z --end-time 2021-12-27T23:59:59.000Z
   ```

1. 查看分析结果。在下面的示例中，在 IPAM 主区域以外的区域，CIDR 在一段时间内分配给两个不同的 VPC。请注意，没有 **SampledEndTime** 值表示记录仍处于活动状态。有关以下输出中显示的值的更多信息，请参阅 [查看 IP 地址历史记录](view-history-cidr-ipam.md)。

   ```
   {
       "HistoryRecords": [
           {
               "ResourceOwnerId": "123456789012",
               "ResourceRegion": "us-east-2",
               "ResourceType": "vpc",
               "ResourceId": "vpc-01d967bf3b923f72c",
               "ResourceCidr": "2605:9cc0:409::/56",
               "ResourceName": "First example VPC",
               "ResourceComplianceStatus": "compliant",
               "ResourceOverlapStatus": "nonoverlapping",
               "VpcId": "vpc-01d967bf3b923f72c",
               "SampledStartTime": "2021-12-23T20:02:00.701000+00:00",
               "SampledEndTime": "2021-12-23T20:12:59.848000+00:00"
           },
           {
               "ResourceOwnerId": "123456789012",
               "ResourceRegion": "us-east-2",
               "ResourceType": "vpc",
               "ResourceId": "vpc-03e62c7eca81cb652",
               "ResourceCidr": "2605:9cc0:409::/56",
               "ResourceName": "Second example VPC",
               "ResourceComplianceStatus": "compliant",
               "ResourceOverlapStatus": "nonoverlapping",
               "VpcId": "vpc-03e62c7eca81cb652",
               "SampledStartTime": "2021-12-27T15:11:00.046000+00:00"
           }
       ]
   }
   ```

**场景 4：在过去的 24 小时内，有哪些资源与 `10.0.0.0/24` 关联（假设当前时间是 2021 年 12 月 27 日午夜 (UTC)）？**

1. 运行如下命令：

   ```
   aws ec2 get-ipam-address-history --region us-east-1 --cidr 10.0.0.0/24 --ipam-scope-id ipam-scope-05b579a1909c5fc7a --start-time 2021-12-27T00:00:00.000Z
   ```

1. 查看分析结果。在下面的示例中，CIDR 已在一段时间内分配给多个子网和 VPC。请注意，没有 **SampledEndTime** 值表示记录仍处于活动状态。有关以下输出中显示的值的更多信息，请参阅 [查看 IP 地址历史记录](view-history-cidr-ipam.md)。

   ```
   {
       "HistoryRecords": [
           {
               "ResourceOwnerId": "123456789012",
               "ResourceRegion": "us-east-2",
               "ResourceType": "subnet",
               "ResourceId": "subnet-0d1b8f899725aa72d",
               "ResourceCidr": "10.0.0.0/24",
               "ResourceName": "Example name",
               "VpcId": "vpc-042b8a44f64267d67",
               "SampledStartTime": "2021-12-11T16:35:59.074000+00:00",
               "SampledEndTime": "2021-12-28T15:34:00.017000+00:00"
           },
           {
               "ResourceOwnerId": "123456789012",
               "ResourceRegion": "us-east-2",
               "ResourceType": "vpc",
               "ResourceId": "vpc-09754dfd85911abec",
               "ResourceCidr": "10.0.0.0/24",
               "ResourceName": "Example name",
               "ResourceComplianceStatus": "unmanaged",
               "ResourceOverlapStatus": "overlapping",
               "VpcId": "vpc-09754dfd85911abec",
               "SampledStartTime": "2021-12-27T20:07:59.947000+00:00",
               "SampledEndTime": "2021-12-28T15:34:00.017000+00:00"
           },
           {
               "ResourceOwnerId": "123456789012",
               "ResourceRegion": "us-west-2",
               "ResourceType": "vpc",
               "ResourceId": "vpc-0a8347f594bea5901",
               "ResourceCidr": "10.0.0.0/24",
               "ResourceName": "Example name",
               "ResourceComplianceStatus": "unmanaged",
               "ResourceOverlapStatus": "overlapping",
               "VpcId": "vpc-0a8347f594bea5901",
               "SampledStartTime": "2021-12-11T16:35:59.318000+00:00"
           },
           {
               "ResourceOwnerId": "123456789012",
               "ResourceRegion": "us-east-1",
               "ResourceType": "subnet",
               "ResourceId": "subnet-0af7eadb0798e9148",
               "ResourceCidr": "10.0.0.0/24",
               "ResourceName": "Example name",
               "VpcId": "vpc-03298ba16756a8736",
               "SampledStartTime": "2021-12-14T21:07:22.357000+00:00"
           }
       ]
   }
   ```

**场景 5：当前有哪些资源与 `10.2.1.155/32` 关联？**

1. 运行如下命令：

   ```
   aws ec2 get-ipam-address-history --region us-east-1 --cidr 10.2.1.155/32 --ipam-scope-id ipam-scope-05b579a1909c5fc7a
   ```

1. 查看分析结果。在下面的示例中，CIDR 在一段时间内分配给网络接口和 EC2 实例。请注意，没有 **SampledEndTime** 值表示记录仍处于活动状态。有关以下输出中显示的值的更多信息，请参阅 [查看 IP 地址历史记录](view-history-cidr-ipam.md)。

   ```
   {
       "HistoryRecords": [
           {
               "ResourceOwnerId": "123456789012",
               "ResourceRegion": "us-east-1",
               "ResourceType": "network-interface",
               "ResourceId": "eni-0b4e53eb1733aba16",
               "ResourceCidr": "10.2.1.155/32",
               "VpcId": "vpc-0f5ee7e1ba908a378",
               "SampledStartTime": "2021-12-27T20:08:46.672000+00:00"
           },
           {
               "ResourceOwnerId": "123456789012",
               "ResourceRegion": "us-east-1",
               "ResourceType": "instance",
               "ResourceId": "i-064da1f79baed14f3",
               "ResourceCidr": "10.2.1.155/32",
               "VpcId": "vpc-0f5ee7e1ba908a378",
               "SampledStartTime": "2021-12-27T20:08:46.672000+00:00"
           }
       ]
   }
   ```

**场景 6：当前有哪些资源与 `10.2.1.0/24` 关联？**

1. 运行如下命令：

   ```
   aws ec2 get-ipam-address-history --region us-east-1 --cidr 10.2.1.0/24 --ipam-scope-id ipam-scope-05b579a1909c5fc7a
   ```

1. 查看分析结果。在下面的示例中，CIDR 在一段时间内分配给 VPC 和子网。只返回与此 `/24` CIDR 完全匹配的结果，而不是 `/24` CIDR 中的所有 `/32 `。请注意，没有 **SampledEndTime** 值表示记录仍处于活动状态。有关以下输出中显示的值的更多信息，请参阅 [查看 IP 地址历史记录](view-history-cidr-ipam.md)。

   ```
   {
       "HistoryRecords": [
           {
               "ResourceOwnerId": "123456789012",
               "ResourceRegion": "us-east-1",
               "ResourceType": "subnet",
               "ResourceId": "subnet-0864c82a42f5bffed",
               "ResourceCidr": "10.2.1.0/24",
               "VpcId": "vpc-0f5ee7e1ba908a378",
               "SampledStartTime": "2021-12-27T20:08:46.672000+00:00"
           },
           {
               "ResourceOwnerId": "123456789012",
               "ResourceRegion": "us-east-1",
               "ResourceType": "vpc",
               "ResourceId": "vpc-0f5ee7e1ba908a378",
               "ResourceCidr": "10.2.1.0/24",
               "ResourceComplianceStatus": "compliant",
               "ResourceOverlapStatus": "nonoverlapping",
               "VpcId": "vpc-0f5ee7e1ba908a378",
               "SampledStartTime": "2021-12-27T20:08:46.672000+00:00"
           }
       ]
   }
   ```

**场景 7：当前有哪些资源与 `54.0.0.9/32` 关联？**

在此示例中，`54.0.0.9/32` 将分配给不属于与 IPAM 集成的 AWS 企业的弹性 IP 地址。

1. 运行如下命令：

   ```
   aws ec2 get-ipam-address-history --region us-east-1 --cidr 54.0.0.9/32 --ipam-scope-id ipam-scope-05b579a1909c5fc7a
   ```

1. 由于 `54.0.0.9/32` 分配给不属于此示例中与 IPAM 集成的 AWS 企业的弹性 IP 地址，因此不会返回任何记录。

   ```
   {
       "HistoryRecords": []
   }
   ```

# 教程：自带 ASN 到 IPAM 中
<a name="tutorials-byoasn"></a>

如果您的应用程序使用的是合作伙伴或客户允许在其网络中列出的可信 IP 地址和自治系统号（ASN），则无需合作伙伴或客户更改允许列表，即可在 AWS 中运行这些应用程序。

自治系统编号 (ASN) 是一个全球唯一的号码，允许通过互联网识别一组网络，并使用[边界网关协议](https://aws.amazon.com/what-is/border-gateway-protocol/)与其他网络动态交换路由数据。例如，互联网服务提供商（ISP）使用 ASN 来识别网络流量来源。并非所有组织都自己购买 ASN，但对于购买了 ASN 的组织，它们可以将自己的 ASN 带到 AWS。

通过自带自治系统编号 (BYOASN)，您能够使用自己的公有 ASN（而不是 AWS ASN）来公开发布自己引入 AWS 的 IPv4 或 IPv6 地址。当您使用 BYOASN 时，来自您的 IP 地址的流量会携带您的 ASN（而不是 AWS ASN），并且根据您的 IP 地址和 ASN 允许列出的流量的客户或合作伙伴可以访问您的工作负载。

**重要**  
使用您的 IPAM 主区域的 IPAM 管理员账户完成本教程。
本教程假定您拥有想要带入 IPAM 的公共 ASN，并且您已经将 BYOIP CIDR 带入 AWS 并配置到公有范围内的池中。您可以随时将 ASN 带入 IPAM，但要使用该 ASN，您必须关联已带入 AWS 账户的 CIDR。本教程假定您已完成这一操作。有关更多信息，请参阅 [教程：将 IP 地址带入 IPAM](tutorials-byoip-ipam.md)。
您可以即时在广告自己的 ASN 或 AWS ASN 之间切换，但每小时只能从 AWS ASN 更改为自己的 ASN 一次。
如果您的 BYOIP CIDR 当前已广告，则无需将其从广告中撤回即可与您的 ASN 关联。

## ASN 的载入先决条件
<a name="tutorials-byoasn-prereqs"></a>

要完成本教程，您需要做以下准备：
+ 您的 2 字节或 4 字节的公有 ASN。
+ 如果您已经通过 [教程：将 IP 地址带入 IPAM](tutorials-byoip-ipam.md) 将一个 IP 地址范围带到 AWS，那么您需要该 IP 地址的 CIDR 范围。您还需要一个私有密钥。您可以使用在将 IP 地址 CIDR 范围带到 AWS 时创建的私有密钥，也可以按照《*Amazon EC2 用户指南*》的[创建私有密钥并生成 X.509 证书](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/prepare-for-byoip.html#byoip-certificate)中所述创建新的私有密钥。
+ 当您通过 [教程：将 IP 地址带入 IPAM](tutorials-byoip-ipam.md) 将 IPv4 或 IPv6 地址范围引入 AWS 时，可以[创建 X.509 证书](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html#byoip-add-certificate)，然后[将 X.509 证书上传到 RIR 中的 RDAP 记录](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html#byoip-add-certificate)。您必须将创建的同一证书上传到 ASN 的 RIR 中的 RDAP 记录中。请务必在编码部分前后包含 `-----BEGIN CERTIFICATE-----` 和 `-----END CERTIFICATE-----` 字符串。所有这些内容必须都在单个长线上。更新 RDAP 的过程取决于您的 RIR：
  + 对于 ARIN，使用[客户经理门户](https://account.arin.net/public/secure/dashboard)，通过“修改 ASN”选项在代表您的 ASN 的“网络信息”对象的“公共注释”部分中添加证书。请勿将其添加到您组织的注释部分。
  + 对于 RIPE，将证书作为新的“descr”字段添加到代表您的 ASN 的“aut-num”对象。通常可在

    [RIPE 数据库门户](https://apps.db.ripe.net/db-web-ui/myresources/overview)的“我的资源”部分中了解到相关信息。请勿将其添加到您所在组织的注释部分或“aut-num”对象的“备注”字段中。
  + 对于 APNIC，通过电子邮件将证书发送到 [helpdesk@apnic.net](mailto:helpdesk@apnic.net)，以手动将其添加到您的 ASN 的“备注”字段中。请以 ASN 的 APNIC 授权联系人身份发送电子邮件。
+ 将 IP 地址范围带入 IPAM 时，可创建一个 ROA 来验证自己是否控制了带入 IPAM 的 IP 地址空间。除了该 ROA 之外，您的 RIR 中还必须有第二个 ROA，其中包含要带入 IPAM 的 ASN。如果 RIR 中没有 ASN 的第二个 ROA，请完成 [3. 在 RIR 中创建 ROA 对象](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/prepare-for-byoip.html#byoip-create-roa-object)。忽略其他步骤。

## 教程步骤
<a name="tutorials-byoasn-process"></a>

使用 AWS 管理控制台或 AWS CLI，完成以下步骤。

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

1. 在 [https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/) 中打开 IPAM 控制台。

1. 在左侧导航窗格中，选择 **IPAM**。

1. 选择您的 IPAM。

1. 选择 **BYOASN** 选项卡，然后选择**预置 BYOASN**。

1. 输入 **ASN**。接下来，**消息**字段会自动填充您在下一步中需要登录的消息。
   + 消息的格式如下，其中 ACCOUNT 是您的 AWS 账号，ASN 是您带到 IPAM 的 ASN，YYYYMMDD 是消息的到期日期（默认为下个月的最后一天）。示例：

     ```
     text_message="1|aws|ACCOUNT|ASN|YYYYMMDD|SHA256|RSAPSS"
     ```

1. 复制该信息，并根据需要使用您自己的值替换到期日期。

1. 使用私有密钥对消息进行签名。示例：

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

1. 在**签名**下，输入签名。

1. （可选）要预置另一个 ASN，请选择**预置其他 ASN**。您最多可以预置 5 个 ASN。要增加此配额，请参阅[IPAM 的配额](quotas-ipam.md)。

1. 选择**预置**。

1. 在 **BYOASN** 选项卡中查看预置过程。等待**状态**从*待预置*更改为*已预置*。处于*预置失败*状态的 BYOASN 将在 7 天后自动删除。成功预置 ASN 后，您可以将其与 BYOIP CIDR 关联。

1. 在左侧导航窗格中，选择**池**。

1. 选择您的公有范围。有关范围的更多信息，请参阅 [IPAM 的工作原理](how-it-works-ipam.md)。

1. 选择已为其预置 BYOIP CIDR 的区域池。该池必须将**服务**设置为 **EC2**，并且必须选择一个区域设置。

1. 选择 **CIDR** 选项卡，然后选择一个 BYOIP CIDR。

1. 选择**操作** > **管理 BYOASN 关联**。

1. 在**已关联的 BYOASN** 下，选择您带入 AWS 的 ASN。如果您有多个 ASN，则可以将多个 ASN 关联到 BYOIP CIDR。您可以将尽可能多的 ASN 关联到 IPAM。请注意，默认情况下，您最多可以将 5 个 ASN 带入 IPAM。有关更多信息，请参阅 [IPAM 的配额](quotas-ipam.md)。

1. 选择**关联**。

1. 等待 ASN 关联完成。在 ASN 成功与 BYOIP CIDR 关联后，您可以再次广告 BYOIP CIDR。

1. 选择池 **CIDR** 选项卡。

1. 选择 BYOIP CIDR，然后选择**操作** > **广告**。接下来，系统会显示您的 ASN 选项：Amazon ASN 和您带入 IPAM 的所有 ASN。

1. 选择您带入 IPAM 的 ASN，然后选择**广告 CIDR**。这样一来，将广告 BYOIP CIDR，并且**广告**列中的值将从“已撤回”变为“已刊登广告”。**自治系统编号**列显示与 CIDR 关联的 ASN。

1. （可选）如果您决定要将 ASN 关联更改回 Amazon ASN，选择 BYOIP CIDR，然后再次选择**操作** > **广告**。这一次我们选择 Amazon ASN。您可以随时换回 Amazon ASN，但每小时只能更改为自定义 ASN 一次。

本教程已完成。

**清理**

1. 解除 ASN 与 BYOIP CIDR 的关联
   + 要从广告中撤回 BYOIP CIDR，在公有范围的池中，选择 BYOIP CIDR，然后选择**操作** > **撤消广告**。
   + 要解除 ASN 与 CIDR 的关联，请选择**操作** > **管理 BYOASN 关联**。

1. 取消预置 ASN
   + 要取消预置 ASN，在“BYOASN”选项卡中，选择 ASN，然后选择**取消预置 ASN。**接下来，ASN 将被取消预置。处于*已取消预置*状态的 BYOASN 将在 7 天后自动删除。

清理完成。

------
#### [ Command line ]

1. 通过包含您的 ASN 和授权消息来预置您的 ASN。签名是用您的私有密钥签署的消息。

   ```
   aws ec2 provision-ipam-byoasn --ipam-id $ipam_id --asn 12345 --asn-authorization-context Message="$text_message",Signature="$signed_message"
   ```

1. 描述您的 ASN 以跟踪预置过程。如果请求成功，您应该会在几分钟后看到*预置状态*被设置为*已预置*。

   ```
   aws ec2 describe-ipam-byoasn 
   ```

1. 将您的 ASN 与 BYOIP CIDR 关联。您希望从中广告的任何自定义 ASN 都必须先与您的 CIDR 关联。

   ```
   aws ec2 associate-ipam-byoasn --asn 12345 --cidr xxx.xxx.xxx.xxx/n
   ```

1. 描述您的 CIDR 以跟踪关联流程。

   ```
   aws ec2 describe-byoip-cidrs --max-results 10
   ```

1. 使用您的 ASN 广告您的 CIDR。如果 CIDR 已广告，则会将源于 Amazon 的 ASN 换成您的 ASN。

   ```
   aws ec2 advertise-byoip-cidr --asn 12345 --cidr xxx.xxx.xxx.xxx/n
   ```

1. 描述您的 CIDR 以查看 ASN 状态从*已关联*更改为*已刊登广告*。

   ```
   aws ec2 describe-byoip-cidrs --max-results 10
   ```

本教程已完成。

**清理**

1. 请执行以下操作之一：
   + 要仅撤回您的 ASN 广告并重新使用 Amazon ASN，同时保留已广告的 CIDR，您必须使用 asn 参数的特殊 AWS 值调用 advertise-byoip-cidr。您可以随时换回 Amazon ASN，但每小时只能更改为自定义 ASN 一次。

     ```
     aws ec2 advertise-byoip-cidr --asn AWS --cidr xxx.xxx.xxx.xxx/n 
     ```
   + 要同时撤回您的 CIDR 和 ASN 广告，你可以调用 withdraw-byoip-cidr。

     ```
     aws ec2 withdraw-byoip-cidr --cidr xxx.xxx.xxx.xxx/n
     ```

1. 要清理您的 ASN，您必须先取消其与 BYOIP CIDR 的关联。

   ```
   aws ec2 disassociate-ipam-byoasn --asn 12345 --cidr xxx.xxx.xxx.xxx/n
   ```

1. 您的 ASN 与已关联的所有 BYOIP CIDR 取消关联后，就可以取消其预置。

   ```
   aws ec2 deprovision-ipam-byoasn --ipam-id $ipam_id --asn 12345 
   ```

1. 删除所有 ASN 关联后，也可以取消预置 BYOIP CIDR。

   ```
   aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-1234567890abcdef0 --cidr xxx.xxx.xxx.xxx/n
   ```

1. 确认取消预置。

   ```
   aws ec2 get-ipam-pool-cidrs --ipam-pool-id ipam-pool-1234567890abcdef0
   ```

清理已完成。

------

# 教程：将 IP 地址带入 IPAM
<a name="tutorials-byoip-ipam"></a>

本部分中的教程将引导您完成将公有 IP 地址空间带到 AWS，并使用 IPAM 管理空间的过程。

使用 IPAM 管理公有 IP 地址空间具有以下益处：
+ **提高整个企业的公有 IP 地址利用率**：您可以使用 IPAM 跨 AWS 账户共享 IP 地址空间。如果不使用 IPAM，您将无法跨 AWS Organizations 账户共享您的公有 IP 空间。
+ **简化将公有 IP 空间带到 AWS 的过程**：您可以使用 IPAM 一次性载入公有 IP 地址空间，然后使用 IPAM 将公有 IP 跨区域分配到 EC2 实例和[应用程序负载均衡器](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-ip-pools.html)等资源。如果没有 IPAM，您必须为每个 AWS 区域登记您的公有 IP。

**Topics**
+ [验证域控制权](tutorials-byoip-ipam-domain-verification-methods.md)
+ [使用 AWS 管理控制台和 AWS CLI 自带 IP 到 IPAM 中](tutorials-byoip-ipam-console-intro.md)
+ [仅使用 AWS CLI 自带 IP CIDR 到 IPAM 中](tutorials-byoip-ipam-cli-only-intro.md)
+ [使用 IPAM 自带 IP 到 CloudFront](tutorials-byoip-cloudfront.md)

# 验证域控制权
<a name="tutorials-byoip-ipam-domain-verification-methods"></a>

在将 IP 地址范围引入 AWS 之前，您必须使用本节中所述的一个选项来验证自己是否控制了 IP 地址空间。之后，如果将 IP 地址范围引入 AWS，AWS 会验证您是否控制了 IP 地址范围。该验证可确保客户无法使用属于他人的 IP 范围，防止出现路由和安全问题。

您可以通过两种方法来验证自己是否控制了相应范围：
+ **X.509 证书**：如果 IP 地址范围是在支持 RDAP 的互联网注册机构（例如 ARIN、RIPE 和 APNIC）注册，您可以使用 X.509 证书验证域的所有权。
+ **DNS TXT 记录**：无论互联网注册机构是否支持 RDAP，您都可以使用验证令牌和 DNS TXT 记录来验证域的所有权。

**Topics**
+ [使用 X.509 证书验证域](#tutorials-byoip-ipam-domain-verification-cert)
+ [使用 DNS TXT 记录验证域](#tutorials-byoip-ipam-domain-verification-dns-txt)

## 使用 X.509 证书验证域
<a name="tutorials-byoip-ipam-domain-verification-cert"></a>

本节旨在介绍在将 IP 地址范围引入 IPAM 之前，如何使用 X.509 证书验证域。

**使用 X.509 证书验证域**

1. 完成《*Amazon EC2 用户指南*》中的 [Amazon EC2 中 BYOIP 的先决条件](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/prepare-for-byoip.html)中的三个步骤。
**注意**  
创建 ROA 时，对于 IPv4 CIDR，您必须将 IP 地址前缀的最大长度设置为 `/24`。对于 IPv6 CIDR，如果要将它们添加到可传播池中，IP 地址前缀的最大长度必须为 `/48`。这可以确保您有充分的灵活性来跨 AWS 区域划分您的公有 IP 地址。IPAM 强制执行您设置的最大长度。最大长度是您对此路由允许的最小前缀长度公告。例如，如果您通过将最大长度设置为 `/20` 将 AWS CIDR 块带入 `/24` 中，您可以根据自己喜欢的方式划分较大的块（例如 `/21`、`/22` 或 `/24`）并将这些较小的 CIDR 块分发到任何区域。如果您要将最大长度设置为 `/23`，您将无法划分和传播来自较大块的 `/24`。另请注意，`/24` 是最小的 IPv4 块，`/48` 是您可以从区域向互联网广告的最小 IPv6 块。

1. 仅完成《Amazon EC2 用户指南》**中[在 AWS 中预置公开发布的地址范围](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html#byoip-provision)下的步骤 1 和 2，**先不预置地址范围（步骤 3）**。保存 `text_message` 和 `signed_message`。本过程后面部分需要使用它们。

完成上述步骤后，继续[使用 AWS 管理控制台和 AWS CLI 自带 IP 到 IPAM 中](tutorials-byoip-ipam-console-intro.md)或[仅使用 AWS CLI 自带 IP CIDR 到 IPAM 中](tutorials-byoip-ipam-cli-only-intro.md)。

## 使用 DNS TXT 记录验证域
<a name="tutorials-byoip-ipam-domain-verification-dns-txt"></a>

在将 IP 地址范围引入 IPAM 之前，请先完成本节中的步骤，使用 DNS TXT 记录验证自己的域。

您可以使用 DNS TXT 记录来验证自己是否控制了公有 IP 地址范围。DNS TXT 记录是一种包含域名信息的 DNS 记录。该功能让您能够使用在任何互联网注册机构（例如 JPNIC、LACNIC 和 AFRINIC）注册的 IP 地址，而不仅仅是那些支持基于 RDAP（注册数据访问协议）记录的（例如 ARIN、RIPE 和 APNIC）的注册机构。

**重要**  
要想继续操作，必须先在免费或高级套餐中创建了 IPAM。如果没有 IPAM，请先完成[创建 IPAM](create-ipam.md)。

**Topics**
+ [步骤 1：创建 ROA（若没有）](#tutorials-byoip-ipam-domain-verification-dns-txt-roa)
+ [步骤 2：创建验证令牌](#tutorials-byoip-ipam-domain-verification-dns-txt-token)
+ [步骤 3：设置 DNS 区域和 TXT 记录](#tutorials-byoip-ipam-domain-verification-dns-txt-dns)

### 步骤 1：创建 ROA（若没有）
<a name="tutorials-byoip-ipam-domain-verification-dns-txt-roa"></a>

必须在区域互联网注册机构（RIR）中为自己要公开发布的 IP 地址范围创建路由来源授权（ROA）。如果 RIR 中没有 ROA，请先完成[ 《Amazon EC2 用户指南》**中的3. 在 RIR 中创建 ROA 对象](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html#byoip-create-roa-object)。忽略其他步骤。

您可以引入的最具体 IPv4 地址范围是 /24。对于公开发布的 CIDR，可以引入的最具体 IPv6 地址范围是 /48；对于不公开发布的 CIDR，可以引入的最具体 IPv6 地址范围是 /60。

### 步骤 2：创建验证令牌
<a name="tutorials-byoip-ipam-domain-verification-dns-txt-token"></a>

验证令牌是 AWS 生成的随机值，可用于证明对外部资源的控制权。例如，当您将 IP 地址范围引入 AWS（BYOIP）时，可以使用验证令牌来验证自己是否控制了公有 IP 地址范围。

完成本节中的步骤，创建好验证令牌；在本教程的后续步骤中，您需要使用该令牌才能将自己的 IP 地址范围引入 IPAM。请按照以下说明，在 AWS 控制台或 AWS CLI 中继续操作。

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

**创建验证令牌**

1. 在 [https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/) 中打开 IPAM 控制台。

1. 在 AWS 管理控制台中，选择要在其中创建 IPAM 的 AWS 区域。

1. 在左侧导航窗格中，选择 **IPAM**。

1. 选择 IPAM，然后选择**验证令牌**选项卡。

1. 选择**创建验证令牌**。

1. 创建令牌后，让该浏览器选项卡保持打开状态。下一步会用到**令牌值**和**令牌名称**，而后续步骤会用到**令牌 ID**。

请注意以下几点：
+ 创建验证令牌后，您可以在 72 小时内将该令牌重复用于从 IPAM 预置的多个 BYOIP CIDR。若想在 72 小时后预置更多 CIDR，必须创建新令牌。
+ 最多可创建 100 个令牌。如果令牌数达到上限，请删除过期令牌。

------
#### [ Command line ]
+ 请求 IPAM 使用 [create-ipam-external-resource-verification-token](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-ipam-external-resource-verification-token.html) 创建一个可用于配置 DNS 的验证令牌：

  ```
  aws ec2 create-ipam-external-resource-verification-token --ipam-id ipam-id
  ```

  该指令会返回一个 IpamExternalResourceVerificationTokenId 和带有 `TokenName` 和 `TokenValue` 的令牌，以及该令牌的到期时间 (`NotAfter`)。

  ```
  { 
      "IpamExternalResourceVerificationToken": { 
          "IpamExternalResourceVerificationTokenId": "ipam-ext-res-ver-token-0309ce7f67a768cf0", 
          "IpamId": "ipam-0f9e8725ac3ae5754", 
          "TokenValue": "a34597c3-5317-4238-9ce7-50da5b6e6dc8", 
          "TokenName": "86950620", 
          "NotAfter": "2024-05-19T14:28:15.927000+00:00", 
          "Status": "valid", 
          "Tags": [], 
          "State": "create-in-progress" }
  }
  ```

请注意以下几点：
+ 创建验证令牌后，您可以在 72 小时内将该令牌重复用于从 IPAM 预置的多个 BYOIP CIDR。若想在 72 小时后预置更多 CIDR，必须创建新令牌。
+ 使用 [describe-ipam-external-resource-verification-tokens](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-ipam-external-resource-verification-tokens.html) 可以查看令牌。
+ 最多可创建 100 个令牌。如果令牌数达到上限，则可以使用 [delete-ipam-external-resource-verification-token](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-ipam-external-resource-verification-token.html) 删除过期令牌。

------

### 步骤 3：设置 DNS 区域和 TXT 记录
<a name="tutorials-byoip-ipam-domain-verification-dns-txt-dns"></a>

完成本部分中的步骤，设置好 DNS 域和 TXT 记录。如果未使用 Route53 作为 DNS，则按照 DNS 提供商提供的文档设置好 DNS 区域并添加 TXT 记录。

如果使用的是 Route53，请注意以下几点：
+ 要在 AWS 控制台中创建反向查找区域，请参阅《Amazon Route 53 Developer Guide》**中的 [Creating a public hosted zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/CreatingHostedZone.html) 或使用 AWS CLI 命令 [create-hosted-zone](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-hosted-zone.html)。
+ 要在 AWS 控制台的反向查找区域中创建记录，请参阅《Amazon Route 53 Developer Guide》**中的 [Creating records by using the Amazon Route 53 console](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-creating.html) 或使用 AWS CLI 命令 [change-resource-record-sets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/change-resource-record-sets.html)。
+ 创建好托管区后，将托管区从 RIR 委托给 Route53 提供的域名服务器（例如 [LACNIC](https://www.lacnic.net/1017/2/lacnic/reverse-dns-resolution) 或 [APNIC](https://www.apnic.net/manage-ip/manage-resources/reverse-dns/)）。

无论使用的是 Route53 还是其他 DNS 提供商，在设置 TXT 记录时，都要注意以下几点：
+ 记录名称应为令牌名称。
+ 记录类型应为 TXT。
+ ResourceRecord 值应为令牌值。

示例：
+ **名称**：`86950620.113.0.203.in-addr.arpa`
+ **类型**：`TXT`
+ **ResourceRecords 值**：`a34597c3-5317-4238-9ce7-50da5b6e6dc8`

其中：
+ `86950620` 为验证令牌名称。
+ `113.0.203.in-addr.arpa` 为反向查找区域的名称。
+ `TXT` 为记录类型。
+ `a34597c3-5317-4238-9ce7-50da5b6e6dc8` 为验证令牌值。

**注意**  
根据要通过 BYOIP 引入 IPAM 的前缀大小，必须在 DNS 中创建一条或多条身份验证记录。这些身份验证记录的记录类型为 TXT，且必须放置在前缀本身或其父前缀的反向区域中。  
对于 IPv4，身份验证记录需要与构成前缀的八位字节边界的范围保持一致。  
**示例**
对于 198.18.123.0/24（已按八位字节边界对齐），您需要创建一条身份验证记录：  
`token-name.123.18.198.in-addr.arpa. IN TXT “token-value”`
对于 198.18.12.0/22（本身未按八位字节边界对齐），您需要创建四条身份验证记录。这些记录必须涵盖子网 198.18.12.0/24、198.18.13.0/24、198.18.14.0/24 和 198.18.15.0/24（这些子网均按八位字节边界对齐）。相应的 DNS 条目必须是：  
`token-name.12.18.198.in-addr.arpa. IN TXT “token-value”`
`token-name.13.18.198.in-addr.arpa. IN TXT “token-value”`
`token-name.14.18.198.in-addr.arpa. IN TXT “token-value”`
`token-name.15.18.198.in-addr.arpa. IN TXT “token-value”`
对于 198.18.0.0/16（已按八位字节边界对齐），您需要创建一条身份验证记录：  
`token-name.18.198.in-addr.arpa. IN TXT “token-value”`
对于 IPv6，身份验证记录需要与构成前缀的半字节边界的范围保持一致。有效的半字节数值包括 32、36、40、44、48、52、56 和 60。  
**示例**  
对于 2001:0db8::/40（已按半字节边界对齐），您需要创建一条身份验证记录：  
`token-name.0.0.8.b.d.0.1.0.0.2.ip6.arpa TXT “token-value”`
对于 2001:0db8:80::/42（本身未按半字节边界对齐），您需要创建四条身份验证记录。这些记录必须涵盖子网 2001:db8:80::/44、2001:db8:90::/44、2001:db8:a0::/44 和 2001:db8:b0::/44（这些子网均按半字节边界对齐）。相应的 DNS 条目必须是：  
`token-name.8.0.0.8.b.d.0.1.0.0.2.ip6.arpa TXT “token-value”`
`token-name.9.0.0.8.b.d.0.1.0.0.2.ip6.arpa TXT “token-value”`
`token-name.a.0.0.8.b.d.0.1.0.0.2.ip6.arpa IN TXT “token-value”`
`token-name.b.0.0.8.b.d.0.1.0.0.2.ip6.arpa IN TXT “token-value”`
对于非公开发布范围 2001:db8:0:1000::/54（该范围本身未按半字节边界对齐），您需要创建四条身份验证记录。这些记录必须涵盖子网 2001:db8:0:1000::/56、2001:db8:0:1100::/56、2001:db8:0:1200::/56 和 2001:db8:0:1300::/56（这些子网均按半字节边界对齐）。相应的 DNS 条目必须是：  
`token-name.0.1.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa IN TXT “token-value”`
`token-name.1.1.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa IN TXT “token-value”`
`token-name.2.1.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa IN TXT “token-value”`
`token-name.3.1.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa IN TXT “token-value”`
要验证 *token-nam* 和 ip6.arpa 字符串之间十六进制数字的正确数量，请将该数量乘以四。结果应与前缀长度一致。例如，对于 /56 前缀，应有 14 个十六进制数字。

完成上述步骤后，继续[使用 AWS 管理控制台和 AWS CLI 自带 IP 到 IPAM 中](tutorials-byoip-ipam-console-intro.md)或[仅使用 AWS CLI 自带 IP CIDR 到 IPAM 中](tutorials-byoip-ipam-cli-only-intro.md)。

# 使用 AWS 管理控制台和 AWS CLI 自带 IP 到 IPAM 中
<a name="tutorials-byoip-ipam-console-intro"></a>

自带 IP（BYOIP）到 IPAM 允许您在 AWS 中使用组织现有的 IPv4 和 IPv6 地址范围。这使您能够在自己的 IP 地址空间下将本地和云环境统一，从而保持一致的品牌形象、提高网络性能、增强安全性并简化管理。

按照以下步骤，使用 AWS 管理控制台和 AWS CLI 将 IPv4 或 IPv6 CIDR 带入 IPAM 中。

**注意**  
开始操作之前，必须先[验证域控制权](tutorials-byoip-ipam-domain-verification-methods.md)。

将 IPv4 地址范围设置为 AWS 后，您可以使用该范围内的所有 IP 地址，包括第一个地址（网络地址）和最后一个地址（广播地址）。

**Topics**
+ [使用 AWS 管理控制台和 AWS CLI 自带 IPv4 CIDR 到 IPAM 中](tutorials-byoip-ipam-console-ipv4.md)
+ [使用 AWS 管理控制台自带 IPv6 CIDR 到 IPAM 中](tutorials-byoip-ipam-console-ipv6.md)

# 使用 AWS 管理控制台和 AWS CLI 自带 IPv4 CIDR 到 IPAM 中
<a name="tutorials-byoip-ipam-console-ipv4"></a>

按照以下步骤将 IPv4 CIDR 带入 IPAM 中，然后使用 AWS 管理控制台和 AWS CLI 分配弹性 IP 地址 (EIP)。

**重要**  
本教程假定您已完成以下部分中的步骤：  
[将 IPAM 与 AWS Organization 中的账户集成](enable-integ-ipam.md).
[创建 IPAM](create-ipam.md).
本教程的每个步骤都必须由以下三个 AWS Organizations 账户之一完成：  
管理账户。
[将 IPAM 与 AWS Organization 中的账户集成](enable-integ-ipam.md) 中配置为 IPAM 管理员的成员账户。在本教程中，此账户将被称为 IPAM 账户。
将从 IPAM 池中分配 CIDR 的企业中的成员账户。在本教程中，此账户将被称为成员账户。

**Topics**
+ [第 1 步：创建 AWS CLI 命名配置文件和 IAM 角色](#tutorials-create-profiles)
+ [步骤 2：创建顶级 IPAM 池](#tutorials-byoip-ipam-ipv4-console-create-top)
+ [步骤 3：在顶级池中创建区域池](#tutorials-byoip-ipam-ipv4-console-create-reg)
+ [步骤 4：传播 CIDR](#tutorials-byoip-ipam-ipv4-console-adv)
+ [步骤 5。共享区域池](#tutorials-byoip-ipam-ipv4-console-share-reg)
+ [步骤 6：从池中分配弹性 IP 地址](#tutorials-byoip-ipam-ipv4-console-all-eip)
+ [步骤 7：将弹性 IP 地址与 EC2 实例相关联](#tutorials-byoip-ipam-ipv4-console-assoc-eip)
+ [步骤 8：清除](#tutorials-byoip-ipam-ipv4-console-cleanup)
+ [步骤 6 的替代方案](#tutorials-byoip-ipam-ipv4-alt)

## 第 1 步：创建 AWS CLI 命名配置文件和 IAM 角色
<a name="tutorials-create-profiles"></a>

要以单个 AWS 用户的身份完成本教程，您可以使用 AWS CLI 命名配置文件在 IAM 角色之间切换。[命名配置文件](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-using-profiles) 是您在将 `--profile` 选项与 AWS CLI 结合使用时引用的设置和凭证集合。有关如何为 AWS 账户创建 IAM 角色和命名配置文件的更多信息，请参阅[在 AWS CLI 中使用 IAM 角色](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html)。

为您将在本教程中使用的三个 AWS 账户分别创建一个角色和一个命名配置文件：
+ 为 AWS Organizations 管理账户创建名为 `management-account` 的配置文件。
+ 为配置为 IPAM 管理员的 AWS Organizations 成员账户创建名为 `ipam-account` 的配置文件。
+ 为将从 IPAM 池中分配 CIDR 的企业中的 AWS Organizations 成员账户创建名为 `member-account` 的配置文件。

创建 IAM 角色和命名配置文件后，请返回本页面并转至下一步。在本教程的其余部分中，您将注意到示例 AWS CLI 命令会将 `--profile` 选项与其中一个命名配置文件一起使用，以指示哪个账户必须运行该命令。

## 步骤 2：创建顶级 IPAM 池
<a name="tutorials-byoip-ipam-ipv4-console-create-top"></a>

完成本部分中的步骤创建顶级 IPAM 池。

此步骤必须由 IPAM 账户完成。

**如需创建池**

1. 在 [https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/) 中打开 IPAM 控制台。

1. 在导航窗格中，选择 **Pools**（池）。

1. 默认情况下，创建池时，默认的私有范围被选中。选择公有范围。有关范围的更多信息，请参阅 [IPAM 的工作原理](how-it-works-ipam.md)。

1. 选择**创建池**。

1. （可选）添加池的**名称标签**和池的**描述**。

1. 在**源**下，选择 **IPAM 范围**。

1. 在**地址系列**下，选择 **IPv4**。

1. 在**资源规划**下，保持选中**在范围内规划 IP 空间**。有关使用此选项规划 VPC 内的子网 IP 空间的更多信息，请参阅 [教程：为子网 IP 分配规划 VPC IP 地址空间](tutorials-subnet-planning.md)。

1. 在**区域设置**下，选择**无**。

   IPAM 与 BYOIP 集成要求在将用于 BYOIP CIDR 的任何一个池上设置区域设置。由于我们将创建一个其中包含一个区域池的顶级 IPAM 池，并且我们将为区域池中的弹性 IP 地址分配空间，因此您将在区域池中设置区域设置，而不是在顶级池中。在后面的步骤中创建区域池时，您将区域设置添加到区域池中。
**注意**  
如果您只创建单个池而不是其中包含区域池的顶级池，则需要为此池选择一个区域设置，以便该池可用于分配。

1. 在**公有 IP 来源**下，选择 **BYOIP**。

1. 在**要预置的 CIDR** 下，执行下列某项操作：
   + 如果[使用 X.509 证书验证域控制权](tutorials-byoip-ipam-domain-verification-methods.md#tutorials-byoip-ipam-domain-verification-cert)，则必须包含 CIDR 和 BYOIP 消息以及在该步骤中创建的证书签名，以便我们验证您是否控制了公共空间。
   + 如果[使用 DNS TXT 记录验证域控制权](tutorials-byoip-ipam-domain-verification-methods.md#tutorials-byoip-ipam-domain-verification-dns-txt)，则必须包含 CIDR 和 IPAM 消息以及在该步骤中创建的验证令牌，以便我们验证您是否控制了公共空间。

   请注意，将 IPv4 CIDR 预置到顶级池中的资源池时，您可以预置的最低 IPv4 CIDR 为 `/24`；不允许使用更具体的 CIDR（例如 `/25`）。
**重要**  
虽然大多数预配置将在两小时内完成，但对于公开发布的范围，完成预配置过程可能需要长达一周的时间。

1. 将**配置此池的分配规则设置**保持未选中状态。

1. （可选）为池选择 **Tags**（标签）。

1. 选择**创建池**。

在继续之前，请确保已预置此 CIDR。您可以在池详细信息页面的 **CIDR** 选项卡中查看资源调配状态。

## 步骤 3：在顶级池中创建区域池
<a name="tutorials-byoip-ipam-ipv4-console-create-reg"></a>

在顶级池中创建区域池。IPAM 与 BYOIP 集成要求在将用于 BYOIP CIDR 的任何一个池上设置区域设置。在本部分中创建区域池时，您将区域设置添加到区域池中。`Locale` 必须是创建 IPAM 时配置的其中一个操作区域的一部分。例如，区域设置为 *us-east-1* 意味着 *us-east-1* 必须是 IPAM 的操作区域。区域设置为 *us-east-1-scl-1*（用于本地区域的网络边界组）意味着 IPAM 的操作区域必须为 *us-east-1*。

此步骤必须由 IPAM 账户完成。

**要在顶级池中创建区域池**

1. 在 [https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/) 中打开 IPAM 控制台。

1. 在导航窗格中，选择 **Pools**（池）。

1. 默认情况下，创建池时，默认的私有范围被选中。如果您不想使用默认的私有范围，请从内容窗格顶部的下拉菜单中选择要使用的范围。有关范围的更多信息，请参阅 [IPAM 的工作原理](how-it-works-ipam.md)。

1. 选择**创建池**。

1. （可选）添加池的**名称标签**和池的**描述**。

1. 在**源池**下，选择您在上一部分中创建的顶级池。

1. 在**资源规划**下，保持选中**在范围内规划 IP 空间**。有关使用此选项规划 VPC 内的子网 IP 空间的更多信息，请参阅 [教程：为子网 IP 分配规划 VPC IP 地址空间](tutorials-subnet-planning.md)。

1. 在 **Locale**（区域设置）下，选择池的区域设置。在本教程中，我们将使用 `us-east-2` 作为区域池的区域设置。可用的选项来自您在创建 IPAM 时选择的运营区域。

   池的区域设置应为以下选项之一：
   + 您希望此 IPAM 池可用于分配的 AWS 区域。
   + 您希望此 IPAM 池可用于分配的 AWS 本地区域的网络边界组（[支持的本地区域](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html#byoip-zone-avail)）。此选项仅适用于公共范围内的 IPAM IPv4 池。
   + [AWS 专用本地区域](https://aws.amazon.com/dedicatedlocalzones/)。要在 AWS 专用本地区域内创建池，请在选择器输入中输入 AWS 专用本地区域。
   + 当您要在全球范围内跨所有 AWS 区域（例如 CloudFront 地点）使用 IP 地址时，为 `Global`。`Global` 区域设置仅适用于公有 IPv4 池。

   例如，您只能从与 VPC 的区域共享区域设置的 IPAM 池中为 VPC 分配 CIDR。请注意，当您为池选择了区域设置后，无法对其进行修改。如果 IPAM 的主区域由于中断而不可用，并且池的区域设置与 IPAM 的主区域不同，则该池仍可用于分配 IP 地址。

   选择区域设置可确保池与从中分配的资源之间没有跨区域依赖关系。

1. 在**服务**下，选择 **EC2 (EIP/VPC)**。您选择的服务将决定可传播 CIDR 的 AWS 服务。目前，唯一的选择是 **EC2（EIP/VPC）**，这意味着从此池中分配的 CIDR 在 Amazon EC2 服务（适用于弹性 IP 地址）和 Amazon VPC 服务（适用于与 VPC 关联的 CIDR）中是可传播的。

1. 在**要预置的 CIDR** 下，选择要为池预置的 CIDR。
**注意**  
将 CIDR 预置到顶级池中的区域池时，您可以预置的最具体的 IPv4 CIDR 为 `/24`；不允许使用更具体的 CIDR（例如 `/25`）。创建区域池后，您可以在该区域池内创建较小的池（例如 `/25`）。请注意，如果您共享该区域池内的一个或多个区域池，则这些池只能在该区域池上设置的区域中使用。

1. 启用**配置此池的分配规则设置**。这里的分配规则选项与创建顶级池时的选项相同。请参阅 [创建顶级 IPv4 池](create-top-ipam.md) 以了解创建池时可用的选项。区域池的分配规则不是从顶级池继承来的。如果您不在此应用任何规则，则不会为池设置分配规则。

1. （可选）为池选择 **Tags**（标签）。

1. 配置完池后，选择**创建池**。

在继续之前，请确保已预置此 CIDR。您可以在池详细信息页面的 **CIDR** 选项卡中查看资源调配状态。

## 步骤 4：传播 CIDR
<a name="tutorials-byoip-ipam-ipv4-console-adv"></a>

本部分中的步骤必须由 IPAM 账户完成。将弹性 IP 地址 (EIP) 与实例或 Elastic Load Balancer 关联后，您就可以开启传播您带到处于已配置了 **Service EC2 (EIP/VPC)**（服务 EC2 (EIP/VPC)）的池中的 AWS 的 CIDR。在本教程中，这就是您的区域池。默认情况下，CIDR 不会被传播，这意味着它不能通过互联网公开访问。

此步骤必须由 IPAM 账户完成。

**注意**  
传播状态不会限制您分配弹性 IP 地址的能力。即使您的 BYOIPv4 CIDR 未传播，您仍然可以从 IPAM 池中创建 EIP。

**要传播 CIDR**

1. 在 [https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/) 中打开 IPAM 控制台。

1. 在导航窗格中，选择 **Pools**（池）。

1. 默认情况下，创建池时，默认的私有范围被选中。选择公有范围。有关范围的更多信息，请参阅 [IPAM 的工作原理](how-it-works-ipam.md)。

1. 选择您在本教程中创建的区域池。

1. 选择 **CIDR** 选项卡。

1. 选择 BYOIP CIDR，然后选择**操作** > **广告**。

1. 选择**广告 CIDR**。

这样一来，将广告 BYOIP CIDR，并且**广告**列中的值将从**已撤回**变为**已刊登广告**。

## 步骤 5。共享区域池
<a name="tutorials-byoip-ipam-ipv4-console-share-reg"></a>

 按照本部分中的步骤使用 AWS Resource Access Manager（RAM）共享 IPAM 池。

### 在 AWS RAM 中启用资源共享
<a name="61-enable-resource-sharing-in-aws-ram-deux"></a>

 创建 IPAM 后，您需要与组织中的其他账户共享区域池。在共享 IPAM 池之前，请先完成本部分中的步骤，启用与 AWS RAM 的资源共享。如果要使用 AWS CLI 启用资源共享，请使用 `--profile management-account` 选项。

**启用资源共享**

1. 使用 AWS Organizations 管理账户打开 AWS RAM 控制台，地址：[https://console.aws.amazon.com/ram/](https://console.aws.amazon.com/ram/)。

1. 在左侧导航窗格中，依次选择**设置**、**启用与 AWS Organizations 共享**、**保存设置**。

 您现在可以与组织的其他成员共享 IPAM 池。

### 使用 AWS RAM 共享 IPAM 池
<a name="62-share-an-ipam-pool-using-aws-ram-deux"></a>

 在这一部分，您将与其他 AWS Organizations 成员账户共享区域池。有关共享 IPAM 池的完整说明，例如所需 IAM 权限的相关信息，请参阅 [使用 AWS RAM 共享 IPAM 池](share-pool-ipam.md)。如果要使用 AWS CLI 启用资源共享，请使用 `--profile ipam-account` 选项。

**使用 AWS RAM 共享 IPAM 池**

1. 使用 IPAM 管理员账户打开 IPAM 控制台，地址：[https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/)。

1. 在导航窗格中，选择**池**。

1. 依次选择私有范围、IPAM 池以及**操作** > **查看详细信息**。

1. 在**资源共享**下，选择**创建资源共享**。AWS RAM 控制台将打开。您将使用 AWS RAM 来共享该池。

1. 选择**创建资源共享**。

1. 在 AWS RAM 控制台中，再次选择**创建资源共享**。

1. 为共享资源添加**名称**。

1. 在**选择资源类型**下，选择 **IPAM 池**，然后选择要共享的池的 ARN。

1. 选择**下一步**。

1. 选择 **AWSRAMPermissionIpamPoolByoipCidrImport** 权限。本教程不提供权限选项的详细信息，但您可以在 [使用 AWS RAM 共享 IPAM 池](share-pool-ipam.md) 中查看有关这些选项的更多信息。

1. 选择**下一步**。

1. 在**委托人** > **选择主体类型**下，选择 **AWS 账户**，输入要为 IPAM 提供 IP 地址范围的账户的账户 ID，然后选择**添加**。

1. 选择**下一步**。

1. 查看资源共享选项和要共享的主体，然后选择**创建**。

1. 要允许 **member-account** 账户从 IPAM 池中分配 IP 地址 CIDRS，请使用 `AWSRAMDefaultPermissionsIpamPool` 创建第二个资源共享。`--resource-arns` 的值是您在上一部分中创建的 IPAM 池的 ARN。`--principals` 的值是 **member-account** 的账户 ID。`--permission-arns` 的值是 `AWSRAMDefaultPermissionsIpamPool` 权限的 ARN。

## 步骤 6：从池中分配弹性 IP 地址
<a name="tutorials-byoip-ipam-ipv4-console-all-eip"></a>

完成本部分中的步骤，以从池中分配弹性 IP 地址。请注意，如果您使用公有 IPv4 池来分配弹性 IP 地址，则可以使用 [步骤 6 的替代方案](#tutorials-byoip-ipam-ipv4-alt) 中的替代步骤而不是本部分中的步骤。

**重要**  
如果您看到与无权调用 ec2:AllocateAddress 相关的错误，则需要更新当前分配给与您共享的 IPAM 池的托管权限。联系创建资源共享的人员，要求他们将托管权限 `AWSRAMPermissionIpamResourceDiscovery` 更新为默认版本。有关更多信息，请参阅《AWS RAM 用户指南》**中的[更新资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-update.html)。

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

按照《Amazon EC2 用户指南》**中的[分配弹性 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-eips.html#using-instance-addressing-eips-allocating)中的步骤分配地址，但请注意以下几点：
+ 此步骤必须由成员账户完成。
+ 确保您的 EC2 控制台所在的 AWS 区域与您在创建区域池时选择的区域设置选项相匹配。
+ 选择地址池时，选择**使用 IPv4 IPAM 池分配**选项，然后选择您创建的区域池。

------
#### [ Command line ]

使用 [allocate-address](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/allocate-address.html) 命令从池中分配一个地址。您使用的 `--region` 必须与您在步骤 2 中创建池时选择的 `-locale` 选项相匹配。包括您在 `--ipam-pool-id` 中在步骤 2 中创建的 IPAM 池的 ID。或者，您也可以使用 `--address` 选项在 IPAM 池中选择特定的 `/32`。

```
aws ec2 allocate-address --region us-east-1 --ipam-pool-id ipam-pool-07ccc86aa41bef7ce
```

示例响应：

```
{                                                    
    "PublicIp": "18.97.0.41",                        
    "AllocationId": "eipalloc-056cdd6019c0f4b46",    
    "PublicIpv4Pool": "ipam-pool-07ccc86aa41bef7ce", 
    "NetworkBorderGroup": "us-east-1",               
    "Domain": "vpc"                                  
}
```

有关更多信息，请参阅《Amazon EC2 用户指南》**中的[分配弹性 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-eips.html#using-instance-addressing-eips-allocating)。

------

## 步骤 7：将弹性 IP 地址与 EC2 实例相关联
<a name="tutorials-byoip-ipam-ipv4-console-assoc-eip"></a>

完成本部分中的步骤将弹性 IP 地址与 EC2 实例相关联。

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

按照《Amazon EC2 用户指南》**中的[关联弹性 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-eips.html#using-instance-addressing-eips-associating)中的步骤从 IPAM 池中分配弹性 IP 地址，但请注意以下几点：使用 AWS 管理控制台选项时，您关联弹性 IP 地址所在的 AWS 区域必须与您在创建区域池时选择的区域设置选项相匹配。

此步骤必须由成员账户完成。

------
#### [ Command line ]

此步骤必须由成员账户完成。使用 `--profile member-account` 选项。

使用 [associate-address](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/allocate-address.html) 命令将弹性 IP 地址与实例相关联。您关联弹性 IP 地址所在的 `--region` 区域必须与您创建区域池时选择的 `--locale` 选项匹配。

```
aws ec2 associate-address --region us-east-1 --instance-id i-07459a6fca5b35823 --public-ip 18.97.0.41
```

示例响应：

```
{                                                
    "AssociationId": "eipassoc-06aa85073d3936e0e"
}
```

有关更多信息，请参阅《Amazon EC2 用户指南》**中的[将弹性 IP 地址与实例或网络接口相关联](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-instance-addressing-eips-associating)。

------

## 步骤 8：清除
<a name="tutorials-byoip-ipam-ipv4-console-cleanup"></a>

按照本部分中的步骤清除您在本教程中预置和创建的资源。

**步骤 1：从传播中撤回 CIDR**

此步骤必须由 IPAM 账户完成。

1. 在 [https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/) 中打开 IPAM 控制台。

1. 在导航窗格中，选择 **Pools**（池）。

1. 默认情况下，创建池时，默认的私有范围被选中。选择公有范围。

1. 选择您在本教程中创建的区域池。

1. 选择 **CIDR** 选项卡。

1. 选择 BYOIP CIDR，然后选择**操作**>**撤回广告**。

1. 选择**撤回 CIDR**。

此时将不再广告 BYOIP CIDR，**广告**栏中的值将从**已刊登广告**变为**已撤回**。

**步骤 2：解除弹性 IP 地址的关联**

此步骤必须由成员账户完成。如果要使用 AWS CLI，请使用 `--profile member-account` 选项。
+ 完成《*Amazon EC2 用户指南*》中的[解除弹性 IP 地址的关联](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-instance-addressing-eips-associating-different)的步骤，以解除 EIP 的关联。在 AWS 管理控制台中打开 EC2 时，解除 EIP 关联的 AWS 区域必须与您在创建将用于 BYOIP CIDR 的池时选择的 `Locale` 选项匹配。在本教程中，该池就是区域池。

**步骤 3：释放弹性 IP 地址**

此步骤必须由成员账户完成。如果要使用 AWS CLI，请使用 `--profile member-account` 选项。
+ 完成《*Amazon EC2 用户指南*》中的[释放弹性 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-instance-addressing-eips-releasing)的步骤，从公有 IPv4 池释放弹性 IP 地址（EIP）。在 AWS 管理控制台中打开 EC2 时，分配 EIP 的 AWS 区域必须与您在创建将用于 BYOIP CIDR 的池时选择的 `Locale` 选项匹配。

**步骤 4：删除 RAM 共享并禁用与 AWS Organizations 的 RAM 集成**

此步骤必须分别由 IPAM 账户和管理账户完成。要使用 AWS CLI 删除 RAM 共享并禁用 RAM 集成，请使用 ` --profile ipam-account` 和 ` --profile management-account` 选项。
+ 完成《AWS RAM 用户指南》中 [删除 AWS RAM 中的资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-delete.html) 和 [禁用与 AWS Organizations 的资源共享](https://docs.aws.amazon.com/ram/latest/userguide/security-disable-sharing-with-orgs.html) 所述的步骤**，删除 RAM 共享并禁用与 AWS Organizations 的 RAM 集成。

**步骤 5：从区域池和顶级池中取消预调配 CIDR**

此步骤必须由 IPAM 账户完成。如果要使用 AWS CLI 共享该池，请使用 `--profile ipam-account` 选项。
+ 按顺序完成 [从池中取消预置 CIDR](depro-pool-cidr-ipam.md) 中的步骤，从区域池中取消预置 CIDR，然后从顶级池中取消预置 CIDR。

**步骤 6：删除区域池和顶级池**

此步骤必须由 IPAM 账户完成。如果要使用 AWS CLI 共享该池，请使用 `--profile ipam-account` 选项。
+ 按顺序完成 [删除池](delete-pool-ipam.md) 中的步骤，删除区域池，然后删除顶级池。

## 步骤 6 的替代方案
<a name="tutorials-byoip-ipam-ipv4-alt"></a>

如果您使用公有 IPv4 池来分配弹性 IP 地址，则可以本部分中的步骤，而不是 [步骤 6：从池中分配弹性 IP 地址](#tutorials-byoip-ipam-ipv4-console-all-eip) 中的步骤。

**Topics**
+ [步骤 1：创建公有 IPv4 池](#tutorials-byoip-ipam-ipv4-console-alt-pool)
+ [步骤 2：将公有 IPv4 CIDR 预调配到您的公有 IPv4 池](#tutorials-byoip-ipam-ipv4-console-alt-cidr)
+ [步骤 3：从公有 IPv4 池分配弹性 IP 地址](#tutorials-byoip-ipam-ipv4-console-alt-eip)
+ [步骤 6 清理的替代方案](#tutorials-byoip-ipam-ipv4-console-alt-cleanup)

### 步骤 1：创建公有 IPv4 池
<a name="tutorials-byoip-ipam-ipv4-console-alt-pool"></a>

此步骤应该由预置弹性 IP 地址的成员账户完成。

**注意**  
此步骤必须由成员账户使用 AWS CLI 完成。
公有 IPv4 池和 IPAM 池由 AWS 中的不同资源管理。公共 IPv4 池是单一账户资源，使您能够将公有 CIDR 转换为弹性 IP 地址。IPAM 池可用于将公有空间分配给公有 IPv4 池。

**要使用 AWS CLI 创建公有 IPv4 池**
+ 请运行以下命令以预置 CIDR。运行本部分中的命令时，`--region` 的值必须与您在创建将用于 BYOIP CIDR 的池时选择的 `Locale` 选项匹配。

  ```
  aws ec2 create-public-ipv4-pool --region us-east-2 --profile member-account
  ```

  在输出中，您将看到公有 IPv4 池 ID。在下一步骤中，您需要用到此 ID。

  ```
  {
      "PoolId": "ipv4pool-ec2-09037ce61cf068f9a"
  }
  ```

### 步骤 2：将公有 IPv4 CIDR 预调配到您的公有 IPv4 池
<a name="tutorials-byoip-ipam-ipv4-console-alt-cidr"></a>

将公有 IPv4 CIDR 预置到您的公有 IPv4 池。`--region` 的值为必须与您在创建将用于 BYOIP CIDR 的池时选择的 `Locale` 值匹配。`--netmask-length` 是指您想添加到公共池的 IPAM 池空间量。该值不能大于 IPAM 池的网络掩码长度。您可以定义的最不具体的 `--netmask-length` 是 `24`。

**注意**  
如果您将 `/24` CIDR 范围引入 IPAM 以便在 AWS 组织内共享，则可以为多个 IPAM 池预置较小的前缀，例如 `/27`（使用 `-- netmask-length 27`），而不是像本教程中所示预置整个 `/24` CIDR（使用 `-- netmask-length 24`）。
此步骤必须由成员账户使用 AWS CLI 完成。

**要使用 AWS CLI 创建公有 IPv4 池**

1. 请运行以下命令以预置 CIDR。

   ```
   aws ec2 provision-public-ipv4-pool-cidr --region us-east-2 --ipam-pool-id ipam-pool-04d8e2d9670eeab21 --pool-id ipv4pool-ec2-09037ce61cf068f9a --netmask-length 24 --profile member-account
   ```

   在输出中，您将看到预置的 CIDR。

   ```
   {                                      
       "PoolId": "ipv4pool-ec2-09037ce61cf068f9a", 
       "PoolAddressRange": {                       
           "FirstAddress": "130.137.245.0",        
           "LastAddress": "130.137.245.255",       
           "AddressCount": 256,                    
           "AvailableAddressCount": 256            
       }                                           
   }
   ```

1. 运行以下命令，以查看公有 IPv4 池中预置的 CIDR。

   ```
   aws ec2 describe-public-ipv4-pools --region us-east-2 --max-results 10 --profile member-account
   ```

   在输出中，您将看到预置的 CIDR。默认情况下，CIDR 不会被传播，这意味着它不能通过互联网公开访问。在本教程的最后一步中，您将有机会将此 CIDR 设置为进行传播。

   ```
   {
       "PublicIpv4Pools": [
           {
               "PoolId": "ipv4pool-ec2-09037ce61cf068f9a",
               "Description": "",
               "PoolAddressRanges": [
                   {
                       "FirstAddress": "130.137.245.0",
                       "LastAddress": "130.137.245.255",
                       "AddressCount": 256,
                       "AvailableAddressCount": 255
                   }
               ],
               "TotalAddressCount": 256,
               "TotalAvailableAddressCount": 255,
               "NetworkBorderGroup": "us-east-2",
               "Tags": []
           }
       ]
   }
   ```

创建公有 IPv4 池后，要查看在 IPAM 区域池中分配的公有 IPv4 池，请打开 IPAM 控制台，并在**分配**或**资源**下查看区域池中的分配。

### 步骤 3：从公有 IPv4 池分配弹性 IP 地址
<a name="tutorials-byoip-ipam-ipv4-console-alt-eip"></a>

完成《Amazon EC2 用户指南》**中的[分配弹性 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-eips.html#using-instance-addressing-eips-allocating)的步骤，从公有 IPv4 池分配 EIP。在 AWS 管理控制台中打开 EC2 时，分配 EIP 的 AWS 区域必须与您在创建将用于 BYOIP CIDR 的池时选择的 `Locale` 选项匹配。

此步骤必须由成员账户完成。如果要使用 AWS CLI，请使用 `--profile member-account` 选项。

完成这三个步骤后，请返回 [步骤 7：将弹性 IP 地址与 EC2 实例相关联](#tutorials-byoip-ipam-ipv4-console-assoc-eip) 并继续操作，直到完成本教程。

### 步骤 6 清理的替代方案
<a name="tutorials-byoip-ipam-ipv4-console-alt-cleanup"></a>

完成以下步骤，以清理使用步骤 9 的替代方法创建的公有 IPv4 池。在 [步骤 8：清除](#tutorials-byoip-ipam-ipv4-console-cleanup) 中的标准清理过程中，您应在释放弹性 IP 地址后完成这些步骤。

**步骤 1：从您的公有 IPv4 池中取消预调配公有 IPv4 CIDR**
**重要**  
此步骤必须由成员账户使用 AWS CLI 完成。

1. 查看您的 BYOIP CIDR。

   ```
   aws ec2 describe-public-ipv4-pools --region us-east-2 --profile member-account
   ```

   在输出中，您将看到 BYOIP CIDR 中的 IP 地址。

   ```
   {
       "PublicIpv4Pools": [
           {
               "PoolId": "ipv4pool-ec2-09037ce61cf068f9a",
               "Description": "",
               "PoolAddressRanges": [
                   {
                       "FirstAddress": "130.137.245.0",
                       "LastAddress": "130.137.245.255",
                       "AddressCount": 256,
                       "AvailableAddressCount": 256
                   }
               ],
               "TotalAddressCount": 256,
               "TotalAvailableAddressCount": 256,
               "NetworkBorderGroup": "us-east-2",
               "Tags": []
           }
       ]
   }
   ```

1. 运行以下命令，从公有 IPv4 池中释放 CIDR。

   ```
   aws ec2 deprovision-public-ipv4-pool-cidr --region us-east-2 --pool-id ipv4pool-ec2-09037ce61cf068f9a --cidr 130.137.245.0/24 --profile member-account
   ```

1. 再次查看您的 BYOIP CIDR，并确保没有更多的预置地址。运行本部分中的命令时，`--region` 的值必须与 IPAM 的区域匹配。

   ```
   aws ec2 describe-public-ipv4-pools --region us-east-2 --profile member-account
   ```

   在输出中，您将看到公有 IPv4 池中的 IP 地址计数。

   ```
   {
       "PublicIpv4Pools": [
           {
               "PoolId": "ipv4pool-ec2-09037ce61cf068f9a",
               "Description": "",
               "PoolAddressRanges": [],
               "TotalAddressCount": 0,
               "TotalAvailableAddressCount": 0,
               "NetworkBorderGroup": "us-east-2",
               "Tags": []
           }
       ]
   }
   ```

**注意**  
IPAM 可能需要一些时间才能发现公有 IPv4 池分配已被删除。在看到已从 IPAM 中删除分配之前，您无法继续清理和取消预置 IPAM 池 CIDR。

**步骤 2：删除公有 IPv4 池**

此步骤必须由成员账户完成。
+ 运行以下命令，以从 CIDR 中删除公有 IPv4 池。运行本部分中的命令时，`--region` 的值必须与您在创建将用于 BYOIP CIDR 的池时选择的 `Locale` 选项匹配。在本教程中，该池就是区域池。必须使用 AWS CLI 完成此步骤。

  ```
  aws ec2 delete-public-ipv4-pool --region us-east-2 --pool-id ipv4pool-ec2-09037ce61cf068f9a --profile member-account
  ```

  在输出中，您将看到返回值**真**。

  ```
  {
  "ReturnValue": true
  }
  ```

  删除该池后，要查看未由 IPAM 管理的分配，请打开 IPAM 控制台，并在**分配**下查看区域池的详细信息。

# 使用 AWS 管理控制台自带 IPv6 CIDR 到 IPAM 中
<a name="tutorials-byoip-ipam-console-ipv6"></a>

按照本教程中的步骤将 IPv6 CIDR 带入 IPAM，并使用 AWS 管理控制台和 AWS CLI 分配带有 CIDR 的 VPC。

如果不需要通过互联网公开发布 IPv6 地址，则可向 IPAM 预置私有 GUA IPv6 地址。有关更多信息，请参阅 [启用预置私有 IPv6 GUA CIDR](enable-prov-ipv6-gua.md)。

**重要**  
本教程假定您已完成以下部分中的步骤：  
[将 IPAM 与 AWS Organization 中的账户集成](enable-integ-ipam.md).
[创建 IPAM](create-ipam.md).
本教程的每个步骤都必须由以下三个 AWS Organizations 账户之一完成：  
管理账户。
[将 IPAM 与 AWS Organization 中的账户集成](enable-integ-ipam.md) 中配置为 IPAM 管理员的成员账户。在本教程中，此账户将被称为 IPAM 账户。
将从 IPAM 池中分配 CIDR 的企业中的成员账户。在本教程中，此账户将被称为成员账户。

**Topics**
+ [步骤 1：创建顶级 IPAM 池](#tutorials-byoip-ipam-ipv6-console-1)
+ [步骤 2：在顶级池中创建区域池](#tutorials-byoip-ipam-ipv6-console-2)
+ [步骤 3：共享区域池](#tutorials-byoip-ipam-ipv4-console-4-deux)
+ [第 4 步：创建 VPC](#tutorials-byoip-ipam-ipv6-console-4)
+ [第 5 步：传播 CIDR](#tutorials-byoip-ipam-ipv6-console-5)
+ [第 6 步：清除](#tutorials-byoip-ipam-ipv6-console-cleanup)

## 步骤 1：创建顶级 IPAM 池
<a name="tutorials-byoip-ipam-ipv6-console-1"></a>

由于您将创建一个其中包含一个区域池的顶级 IPAM 池，并且我们将为区域池中的资源分配空间，因此您将在区域池中设置区域设置，而不是在顶级池中。在后面的步骤中创建区域池时，您将区域设置添加到区域池中。IPAM 与 BYOIP 集成要求在将用于 BYOIP CIDR 的任何一个池上设置区域设置。

此步骤必须由 IPAM 账户完成。

**如需创建池**

1. 在 [https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/) 中打开 IPAM 控制台。

1. 在导航窗格中，选择 **Pools**（池）。

1. 默认情况下，创建池时，默认的私有范围被选中。选择公有范围。有关范围的更多信息，请参阅 [IPAM 的工作原理](how-it-works-ipam.md)。

1. 选择**创建池**。

1. （可选）添加池的**名称标签**和池的**描述**。

1. 在**源**下，选择 **IPAM 范围**。

1. 在**地址系列**下，选择 **IPv6**。

1. 在**资源规划**下，保持选中**在范围内规划 IP 空间**。有关使用此选项规划 VPC 内的子网 IP 空间的更多信息，请参阅 [教程：为子网 IP 分配规划 VPC IP 地址空间](tutorials-subnet-planning.md)。

1. 在**区域设置**下，选择**无**。您将在区域池中设置区域设置。

   区域设置是您希望此 IPAM 池可用于分配的 AWS 区域。例如，您只能从与 VPC 的区域共享区域设置的 IPAM 池中为 VPC 分配 CIDR。请注意，当您为池选择了区域设置后，无法对其进行修改。如果 IPAM 的主区域由于中断而不可用，并且池的区域设置与 IPAM 的主区域不同，则该池仍可用于分配 IP 地址。
**注意**  
如果您只创建单个池而不是其中包含区域池的顶级池，则需要为此池选择一个区域设置，以便该池可用于分配。

1. 在**公有 IP 源**下，**BYOIP** 默认处于选中状态。

1. 在**要预置的 CIDR** 下，执行下列某项操作：
   + 如果[使用 X.509 证书验证域控制权](tutorials-byoip-ipam-domain-verification-methods.md#tutorials-byoip-ipam-domain-verification-cert)，则必须包含 CIDR 和 BYOIP 消息以及在该步骤中创建的证书签名，以便我们验证您是否控制了公共空间。
   + 如果[使用 DNS TXT 记录验证域控制权](tutorials-byoip-ipam-domain-verification-methods.md#tutorials-byoip-ipam-domain-verification-dns-txt)，则必须包含 CIDR 和 IPAM 消息以及在该步骤中创建的验证令牌，以便我们验证您是否控制了公共空间。

   请注意，在将 IPv6 CIDR 预置到顶级池中的池时，对于公开发布的 CIDR，可以引入的最具体 IPv6 地址范围是 /48；对于不公开发布的 CIDR，可以引入的最具体 IPv6 地址范围是 /60。
**重要**  
虽然大多数预配置将在两小时内完成，但对于公开发布的范围，完成预配置过程可能需要长达一周的时间。

1. 将**配置此池的分配规则设置**保持未选中状态。

1. （可选）为池选择 **Tags**（标签）。

1. 选择**创建池**。

在继续之前，请确保已预置此 CIDR。您可以在池详细信息页面的 **CIDR** 选项卡中查看资源调配状态。

## 步骤 2：在顶级池中创建区域池
<a name="tutorials-byoip-ipam-ipv6-console-2"></a>

在顶级池中创建区域池。区域设置在池上是必需的，它必须是您在创建 IPAM 时配置的运营区域之一。

此步骤必须由 IPAM 账户完成。

**要在顶级池中创建区域池**

1. 在 [https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/) 中打开 IPAM 控制台。

1. 在导航窗格中，选择 **Pools**（池）。

1. 默认情况下，创建池时，默认的私有范围被选中。如果您不想使用默认的私有范围，请从内容窗格顶部的下拉菜单中选择要使用的范围。有关范围的更多信息，请参阅 [IPAM 的工作原理](how-it-works-ipam.md)。

1. 选择**创建池**。

1. （可选）添加池的**名称标签**和池的描述。

1. 在**源池**下，选择您在上一部分中创建的顶级池。

1. 在**资源规划**下，保持选中**在范围内规划 IP 空间**。有关使用此选项规划 VPC 内的子网 IP 空间的更多信息，请参阅 [教程：为子网 IP 分配规划 VPC IP 地址空间](tutorials-subnet-planning.md)。

1. 选择池的区域设置。选择区域设置可确保池与从中分配的资源之间没有跨区域依赖关系。可用的选项来自您在创建 IPAM 时选择的运营区域。在本教程中，我们将使用 `us-east-2` 作为区域池的区域设置。

   区域设置是您希望此 IPAM 池可用于分配的 AWS 区域。例如，您只能从与 VPC 的区域共享区域设置的 IPAM 池中为 VPC 分配 CIDR。请注意，当您为池选择了区域设置后，无法对其进行修改。如果 IPAM 的主区域由于中断而不可用，并且池的区域设置与 IPAM 的主区域不同，则该池仍可用于分配 IP 地址。

1. 在**服务**下，选择 **EC2 (EIP/VPC)**。您选择的服务将决定可传播 CIDR 的 AWS 服务。目前，唯一的选择是 **EC2（EIP/VPC）**，这意味着从此池中分配的 CIDR 在 Amazon EC2 服务和 Amazon VPC 服务（适用于与 VPC 关联的 CIDR）中是可传播的。

1. 在**要预置的 CIDR** 下，选择要为池预置的 CIDR。请注意，在将 IPv6 CIDR 预置到顶级池中的池时，对于公开发布的 CIDR，可以引入的最具体 IPv6 地址范围是 /48；对于不公开发布的 CIDR，可以引入的最具体 IPv6 地址范围是 /60。

1. 启用**配置此池的分配规则设置**，并为此池选择可选分配规则：
   + **自动导入发现的资源**：如果**区域设置**被设置为**无**，则此选项不可用。如果选中此选项，IPAM 将持续查找此池的 CIDR 范围内的资源，并将其作为分配自动导入到 IPAM 中。请注意以下几点：
     + 为了成功导入，不得将分配给这些资源的 CIDR 分配给其他资源。
     + 无论 IPAM 是否符合池的分配规则，都将导入 CIDR，因此可能会导入资源且随后会将资源标记为不合规。
     + 如果 IPAM 发现多个重叠的 CIDR，IPAM 将仅导入最大的 CIDR。
     + 如果 IPAM 发现多个具有匹配 CIDR 的 CIDR，IPAM 将只随机导入其中一个。
   + **最短网络掩码长度**：此 IPAM 池中的 CIDR 分配所需的符合要求的最小网络掩码长度以及可以从池中分配的最大大小的 CIDR 块。最短网络掩码长度必须小于最大网络掩码长度。IPv4 地址的可能网络掩码长度为 `0` - `32`。IPv6 地址的可能网络掩码长度为 `0` - `128`。
   + **默认网络掩码长度**：添加到此池的分配的默认网络掩码长度。
   + **最大网络掩码长度**：此池中的 CIDR 分配所需的最大网络掩码长度。此值表示可以从池中分配的最小大小的 CIDR 块。确保此值为最小 **/48** 值。
   + **标记要求**：资源分配池中的空间所需的标签。如果资源在分配空间后更改了标签，或者如果池中的分配标记规则发生了更改，则该资源可能会被标记为不合规。
   + **区域设置**：使用此池中的 CIDR 的资源所需的区域设置。自动导入的没有此区域设置的资源将被标记为不合规。不会自动导入到池中的资源将不允许从池中分配空间，除非它们位于此区域设置。

1. （可选）为池选择**标签**。

1. 配置完池后，选择**创建池**。

在继续之前，请确保已预置此 CIDR。您可以在池详细信息页面的 **CIDR** 选项卡中查看资源调配状态。

## 步骤 3：共享区域池
<a name="tutorials-byoip-ipam-ipv4-console-4-deux"></a>

 按照本部分中的步骤使用 AWS Resource Access Manager（RAM）共享 IPAM 池。

### 在 AWS RAM 中启用资源共享
<a name="61-enable-resource-sharing-in-aws-ram-deux"></a>

 创建 IPAM 后，您需要与组织中的其他账户共享区域池。在共享 IPAM 池之前，请先完成本部分中的步骤，启用与 AWS RAM 的资源共享。如果要使用 AWS CLI 启用资源共享，请使用 `--profile management-account` 选项。

**启用资源共享**

1. 使用 AWS Organizations 管理账户打开 AWS RAM 控制台，地址：[https://console.aws.amazon.com/ram/](https://console.aws.amazon.com/ram/)。

1. 在左侧导航窗格中，依次选择**设置**、**启用与 AWS Organizations 共享**、**保存设置**。

 您现在可以与组织的其他成员共享 IPAM 池。

### 使用 AWS RAM 共享 IPAM 池
<a name="62-share-an-ipam-pool-using-aws-ram-deux"></a>

 在这一部分，您将与其他 AWS Organizations 成员账户共享区域池。有关共享 IPAM 池的完整说明，例如所需 IAM 权限的相关信息，请参阅 [使用 AWS RAM 共享 IPAM 池](share-pool-ipam.md)。如果要使用 AWS CLI 启用资源共享，请使用 `--profile ipam-account` 选项。

**使用 AWS RAM 共享 IPAM 池**

1. 使用 IPAM 管理员账户打开 IPAM 控制台，地址：[https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/)。

1. 在导航窗格中，选择**池**。

1. 依次选择私有范围、IPAM 池以及**操作** > **查看详细信息**。

1. 在**资源共享**下，选择**创建资源共享**。AWS RAM 控制台将打开。您将使用 AWS RAM 来共享该池。

1. 选择**创建资源共享**。

1. 在 AWS RAM 控制台中，再次选择**创建资源共享**。

1. 为共享资源添加**名称**。

1. 在**选择资源类型**下，选择 **IPAM 池**，然后选择要共享的池的 ARN。

1. 选择**下一步**。

1. 选择 **AWSRAMPermissionIpamPoolByoipCidrImport** 权限。本教程不提供权限选项的详细信息，但您可以在 [使用 AWS RAM 共享 IPAM 池](share-pool-ipam.md) 中查看有关这些选项的更多信息。

1. 选择**下一步**。

1. 在**委托人** > **选择主体类型**下，选择 **AWS 账户**，输入要为 IPAM 提供 IP 地址范围的账户的账户 ID，然后选择**添加**。

1. 选择**下一步**。

1. 查看资源共享选项和要共享的主体，然后选择**创建**。

1. 要允许 **member-account** 账户从 IPAM 池中分配 IP 地址 CIDRS，请使用 `AWSRAMDefaultPermissionsIpamPool` 创建第二个资源共享。`--resource-arns` 的值是您在上一部分中创建的 IPAM 池的 ARN。`--principals` 的值是 **member-account** 的账户 ID。`--permission-arns` 的值是 `AWSRAMDefaultPermissionsIpamPool` 权限的 ARN。

## 第 4 步：创建 VPC
<a name="tutorials-byoip-ipam-ipv6-console-4"></a>

完成《*Amazon VPC 用户指南*》中的[创建 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) 中的步骤。

此步骤必须由成员账户完成。

**注意**  
在 AWS 管理控制台中打开 VPC 时，创建 VPC 的 AWS 区域必须与您在创建将用于 BYOIP CIDR 的池时选择的 `Locale` 选项匹配。
当您到达为 VPC 选择 CIDR 的步骤时，您可以选择使用 IPAM 池中的 CIDR。选择您在本教程中创建的区域池。

创建 VPC 时，AWS 会将 IPAM 池中的 CIDR 分配给 VPC。您可以通过在 IPAM 控制台的内容窗格中选择池并查看池的**分配**选项卡来查看 IPAM 中的分配。

## 第 5 步：传播 CIDR
<a name="tutorials-byoip-ipam-ipv6-console-5"></a>

本部分中的步骤必须由 IPAM 账户完成。一旦您创建了 VPC，就可以开启传播您带入位于配置了 **Service EC2 (EIP/VPC)** 的池中的 AWS 的 CIDR。在本教程中，这就是您的区域池。默认情况下，CIDR 不会被传播，这意味着它不能通过互联网公开访问。

此步骤必须由 IPAM 账户完成。

**要传播 CIDR**

1. 在 [https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/) 中打开 IPAM 控制台。

1. 在导航窗格中，选择 **Pools**（池）。

1. 默认情况下，创建池时，默认的私有范围被选中。选择公有范围。有关范围的更多信息，请参阅 [IPAM 的工作原理](how-it-works-ipam.md)。

1. 选择您在本教程中创建的区域池。

1. 选择 **CIDR** 选项卡。

1. 选择 BYOIP CIDR，然后选择**操作** > **广告**。

1. 选择**广告 CIDR**。

这样一来，将广告 BYOIP CIDR，并且**广告**列中的值将从**已撤回**变为**已刊登广告**。

## 第 6 步：清除
<a name="tutorials-byoip-ipam-ipv6-console-cleanup"></a>

按照本部分中的步骤清除您在本教程中预置和创建的资源。

**步骤 1：从传播中撤回 CIDR**

此步骤必须由 IPAM 账户完成。

1. 在 [https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/) 中打开 IPAM 控制台。

1. 在导航窗格中，选择 **Pools**（池）。

1. 默认情况下，创建池时，默认的私有范围被选中。选择公有范围。

1. 选择您在本教程中创建的区域池。

1. 选择 **CIDR** 选项卡。

1. 选择 BYOIP CIDR，然后选择**操作**>**撤回广告**。

1. 选择**撤回 CIDR**。

此时将不再传播 BYOIP CIDR，**Advertising**（传播）栏中的值将从 **Advertised**（已传播）变为 **Withdrawn**（已撤回）。

**步骤 2：删除 VPC**

此步骤必须由成员账户完成。
+ 完成《*Amazon VPC 用户指南*》中的[删除 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/delete-vpc.html) 中的步骤以删除 VPC。在 AWS 管理控制台中打开 VPC 时，从中删除 VPC 的 AWS 区域必须与您在创建将用于 BYOIP CIDR 的池时选择的 `Locale` 选项匹配。在本教程中，该池就是区域池。

  删除 VPC 时，IPAM 需要时间来发现资源已被删除并解除分配给 VPC 的 CIDR。除非在池详细信息**分配**选项卡中看到 IPAM 已从池中删除分配，否则无法继续执行清除中的下一步骤。

**第 3 步：删除 RAM 共享并禁用与 AWS Organizations 的 RAM 集成**

此步骤必须分别由 IPAM 账户和管理账户完成。
+ 完成《AWS RAM 用户指南》中 [删除 AWS RAM 中的资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-delete.html) 和 [禁用与 AWS Organizations 的资源共享](https://docs.aws.amazon.com/ram/latest/userguide/security-disable-sharing-with-orgs.html) 所述的步骤**，删除 RAM 共享并禁用与 AWS Organizations 的 RAM 集成。

**步骤 4：从区域池和顶级池中取消预置 CIDR**

此步骤必须由 IPAM 账户完成。
+ 按顺序完成 [从池中取消预置 CIDR](depro-pool-cidr-ipam.md) 中的步骤，从区域池中取消预置 CIDR，然后从顶级池中取消预置 CIDR。

**步骤 5：删除区域池和顶级池**

此步骤必须由 IPAM 账户完成。
+ 按顺序完成 [删除池](delete-pool-ipam.md) 中的步骤，删除区域池，然后删除顶级池。

# 仅使用 AWS CLI 自带 IP CIDR 到 IPAM 中
<a name="tutorials-byoip-ipam-cli-only-intro"></a>

自带 IP（BYOIP）到 IPAM 允许您在 AWS 中使用组织现有的 IPv4 和 IPv6 地址范围。这使您能够在自己的 IP 地址空间下将本地和云环境统一，从而保持一致的品牌形象、提高网络性能、增强安全性并简化管理。

按照以下步骤，仅使用 AWS CLI 将 IPv4 或 IPv6 CIDR 带入 IPAM 中。

**注意**  
开始操作之前，必须先[验证域控制权](tutorials-byoip-ipam-domain-verification-methods.md)。

将 IPv4 地址范围设置为 AWS 后，您可以使用该范围内的所有 IP 地址，包括第一个地址（网络地址）和最后一个地址（广播地址）。

**Topics**
+ [仅使用 AWS CLI 自带公有 IPv4 CIDR 到 IPAM 中](tutorials-byoip-ipam-ipv4.md)
+ [仅使用 AWS CLI 自带 IPv6 CIDR 到 IPAM 中](tutorials-byoip-ipam-ipv6.md)

# 仅使用 AWS CLI 自带公有 IPv4 CIDR 到 IPAM 中
<a name="tutorials-byoip-ipam-ipv4"></a>

按照以下步骤将 IPv4 CIDR 带入 IPAM 中，然后仅使用 AWS CLI 使用 CIDR 分配弹性 IP 地址 (EIP)。

**重要**  
本教程假定您已完成以下部分中的步骤：  
[将 IPAM 与 AWS Organization 中的账户集成](enable-integ-ipam.md).
[创建 IPAM](create-ipam.md).
本教程的每个步骤都必须由以下三个 AWS Organizations 账户之一完成：  
管理账户。
[将 IPAM 与 AWS Organization 中的账户集成](enable-integ-ipam.md) 中配置为 IPAM 管理员的成员账户。在本教程中，此账户将被称为 IPAM 账户。
将从 IPAM 池中分配 CIDR 的企业中的成员账户。在本教程中，此账户将被称为成员账户。

**Topics**
+ [第 1 步：创建 AWS CLI 命名配置文件和 IAM 角色](#tutorials-create-profiles)
+ [步骤 2：创建 IPAM](#tutorials-byoip-ipam-ipv4-2)
+ [步骤 3：创建顶级 IPAM 池](#tutorials-byoip-ipam-ipv4-3)
+ [步骤 4：向顶级池预置 CIDR](#tutorials-byoip-ipam-ipv4-4)
+ [步骤 5：在顶级池中创建区域池](#tutorials-byoip-ipam-ipv4-5)
+ [步骤 6：向区域池预置 CIDR](#tutorials-byoip-ipam-ipv4-6)
+ [步骤 7：传播 CIDR](#tutorials-byoip-ipam-ipv4-11)
+ [步骤 8：共享区域池](#tutorials-byoip-ipam-ipv4-console-4-deux)
+ [步骤 9：从池中分配弹性 IP 地址](#tutorials-byoip-ipam-ipv4-console-cli-all-eip)
+ [步骤 10：将弹性 IP 地址与 EC2 实例相关联](#tutorials-byoip-ipam-ipv4-console-cli-assoc-eip)
+ [步骤 11：清除](#tutorials-byoip-ipam-ipv4-cli-cleanup)
+ [步骤 9 的替代方案](#tutorials-byoip-ipam-ipv4-cli-alt)

## 第 1 步：创建 AWS CLI 命名配置文件和 IAM 角色
<a name="tutorials-create-profiles"></a>

要以单个 AWS 用户的身份完成本教程，您可以使用 AWS CLI 命名配置文件在 IAM 角色之间切换。[命名配置文件](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-using-profiles) 是您在将 `--profile` 选项与 AWS CLI 结合使用时引用的设置和凭证集合。有关如何为 AWS 账户创建 IAM 角色和命名配置文件的更多信息，请参阅[在 AWS CLI 中使用 IAM 角色](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html)。

为您将在本教程中使用的三个 AWS 账户分别创建一个角色和一个命名配置文件：
+ 为 AWS Organizations 管理账户创建名为 `management-account` 的配置文件。
+ 为配置为 IPAM 管理员的 AWS Organizations 成员账户创建名为 `ipam-account` 的配置文件。
+ 为将从 IPAM 池中分配 CIDR 的企业中的 AWS Organizations 成员账户创建名为 `member-account` 的配置文件。

创建 IAM 角色和命名配置文件后，请返回本页面并转至下一步。在本教程的其余部分中，您将注意到示例 AWS CLI 命令会将 `--profile` 选项与其中一个命名配置文件一起使用，以指示哪个账户必须运行该命令。

## 步骤 2：创建 IPAM
<a name="tutorials-byoip-ipam-ipv4-2"></a>

此为可选步骤。如果您已在创建了 `us-east-1` 和 `us-west-2` 的运营区域的情况下创建了 IPAM，您可以跳过此步骤。创建 IPAM 并指定 `us-east-1` 和 `us-west-2` 的运营区域。您必须选择一个运营区域，以便在创建 IPAM 池时可以使用区域设置选项。IPAM 与 BYOIP 集成要求在将用于 BYOIP CIDR 的任何一个池上设置区域设置。

此步骤必须由 IPAM 账户完成。

运行如下命令：

```
aws ec2 create-ipam --description my-ipam --region us-east-1 --operating-regions RegionName=us-west-2 --profile ipam-account
```

在输出中，您将看到您创建的 IPAM。记下 `PublicDefaultScopeId` 值。在下一步中，您将需要使用公有范围 ID。您使用公有范围是因为 BYOIP CIDR 是公有 IP 地址，这就是公有范围的用途。

```
{
 "Ipam": {                                                                         
        "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-ipv4-3"></a>

完成本部分中的步骤创建顶级 IPAM 池。

此步骤必须由 IPAM 账户完成。

**使用 AWS CLI 为您的所有 AWS 资源创建 IPv4 地址池**

1. 运行以下命令以创建 IPAM 池。请使用您在上一步中创建的 IPAM 的公有范围的 ID。

   此步骤必须由 IPAM 账户完成。

   ```
   aws ec2 create-ipam-pool --region us-east-1 --ipam-scope-id ipam-scope-0087d83896280b594 --description "top-level-IPv4-pool" --address-family ipv4 --profile ipam-account
   ```

   在输出中，您将会看到 `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": "None",
           "PoolDepth": 1,
           "State": "create-in-progress",
           "Description": "top-level-pool",
           "AutoImport": false,
           "AddressFamily": "ipv4",
           "Tags": []
       }
   }
   ```

1. 运行以下命令，直到您在输出中看到 `create-complete` 的状态。

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

   下面的示例输出显示池的状态。

   ```
   {
       "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": "None",
               "PoolDepth": 1,
               "State": "create-complete",
               "Description": "top-level-IPV4-pool",
               "AutoImport": false,
               "AddressFamily": "ipv4",
               "Tags": []
           }
       ]
   }
   ```

## 步骤 4：向顶级池预置 CIDR
<a name="tutorials-byoip-ipam-ipv4-4"></a>

向顶级池预置 CIDR 块。请注意，将 IPv4 CIDR 预置到顶级池中的资源池时，您可以预置的最低 IPv4 CIDR 为 `/24`；不允许使用更具体的 CIDR（例如 `/25`）。

**注意**  
如果[使用 X.509 证书验证域控制权](tutorials-byoip-ipam-domain-verification-methods.md#tutorials-byoip-ipam-domain-verification-cert)，则必须包含 CIDR 和 BYOIP 消息以及在该步骤中创建的证书签名，以便我们验证您是否控制了公共空间。
如果[使用 DNS TXT 记录验证域控制权](tutorials-byoip-ipam-domain-verification-methods.md#tutorials-byoip-ipam-domain-verification-dns-txt)，则必须包含 CIDR 和 IPAM 消息以及在该步骤中创建的验证令牌，以便我们验证您是否控制了公共空间。

在向顶级池预置 BYOIP CIDR 时，您只需要验证域控制权。对于顶级池中的区域池，您可以省略域所有权验证选项。

此步骤必须由 IPAM 账户完成。

**重要**  
在向顶级池预置 BYOIP CIDR 时，您只需要验证域控制权。对于顶级池中的区域池，您可以省略域控制权选项。一旦您将自己的 BYOIP 登录到 IPAM，在跨区域和账户划分 BYOIP 时，您无需执行所有权验证。

**使用 AWS CLI 向池预置 CIDR 块**

1. 要为 CIDR 预置证书信息，请使用以下示例命令。除了根据需要替换示例中的值外，务必还要将 `Message` 和 `Signature` 值替换为在 [使用 X.509 证书验证域](tutorials-byoip-ipam-domain-verification-methods.md#tutorials-byoip-ipam-domain-verification-cert) 中获得的 `text_message` 和 `signed_message` 值。

   ```
   aws ec2 provision-ipam-pool-cidr --region us-east-1 --ipam-pool-id ipam-pool-0a03d430ca3f5c035 --cidr 130.137.245.0/24 --verification-method remarks-x509 --cidr-authorization-context Message="1|aws|470889052444|130.137.245.0/24|20250101|SHA256|RSAPSS",Signature="W3gdQ9PZHLjPmrnGM~cvGx~KCIsMaU0P7ENO7VRnfSuf9NuJU5RUveQzus~QmF~Nx42j3z7d65uyZZiDRX7KMdW4KadaLiClyRXN6ps9ArwiUWSp9yHM~U-hApR89Kt6GxRYOdRaNx8yt-uoZWzxct2yIhWngy-du9pnEHBOX6WhoGYjWszPw0iV4cmaAX9DuMs8ASR83K127VvcBcRXElT5URr3gWEB1CQe3rmuyQk~gAdbXiDN-94-oS9AZlafBbrFxRjFWRCTJhc7Cg3ASbRO-VWNci-C~bWAPczbX3wPQSjtWGV3k1bGuD26ohUc02o8oJZQyYXRpgqcWGVJdQ__" --profile ipam-account
   ```

   要为 CIDR 预置验证令牌信息，请使用以下示例命令。除了根据需要替换示例中的值外，务必还要将 `ipam-ext-res-ver-token-0309ce7f67a768cf0` 替换为在 [使用 DNS TXT 记录验证域](tutorials-byoip-ipam-domain-verification-methods.md#tutorials-byoip-ipam-domain-verification-dns-txt) 中获得的 `IpamExternalResourceVerificationTokenId` 令牌 ID。

   ```
   aws ec2 provision-ipam-pool-cidr --region us-east-1 --ipam-pool-id ipam-pool-0a03d430ca3f5c035 --cidr 130.137.245.0/24 --verification-method dns-token --ipam-external-resource-verification-token-id ipam-ext-res-ver-token-0309ce7f67a768cf0 --profile ipam-account
   ```

   在输出中，您将看到 CIDR 待定预置。

   ```
   {
       "IpamPoolCidr": {                                                                                         
           "Cidr": "130.137.245.0/24",                                                                      
           "State": "pending-provision"                                                                          
       }                                                                                                         
   }
   ```

1. 在继续之前，请确保已预置此 CIDR。
**重要**  
虽然大多数预配置将在两小时内完成，但对于公开发布的范围，完成预配置过程可能需要长达一周的时间。

   运行以下命令，直到您在输出中看到 `provisioned` 的状态。

   ```
   aws ec2 get-ipam-pool-cidrs --region us-east-1 --ipam-pool-id ipam-pool-0a03d430ca3f5c035 --profile ipam-account
   ```

   下面的示例输出显示状态。

   ```
   {
       "IpamPoolCidrs": [                     
           {                                  
               "Cidr": "130.137.245.0/24",     
               "State": "provisioned"         
           }                                  
       ]                                      
   }
   ```

## 步骤 5：在顶级池中创建区域池
<a name="tutorials-byoip-ipam-ipv4-5"></a>

在顶级池中创建区域池。

池的区域设置应为以下选项之一：
+ 您希望此 IPAM 池可用于分配的 AWS 区域。
+ 您希望此 IPAM 池可用于分配的 AWS 本地区域的网络边界组（[支持的本地区域](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html#byoip-zone-avail)）。此选项仅适用于公共范围内的 IPAM IPv4 池。
+ [AWS 专用本地区域](https://aws.amazon.com/dedicatedlocalzones/)。要在 AWS 专用本地区域内创建池，请在选择器输入中输入 AWS 专用本地区域。
+ 当您要在全球范围内跨所有 AWS 区域（例如 CloudFront 地点）使用 IP 地址时，为 `Global`。`Global` 区域设置仅适用于公有 IPv4 池。

例如，您只能从与 VPC 的区域共享区域设置的 IPAM 池中为 VPC 分配 CIDR。请注意，当您为池选择了区域设置后，无法对其进行修改。如果 IPAM 的主区域由于中断而不可用，并且池的区域设置与 IPAM 的主区域不同，则该池仍可用于分配 IP 地址。

运行本部分中的命令时，`--region` 的值必须包括您在创建将用于 BYOIP CIDR 的池时输入的 `--locale` 选项。例如，如果您使用区域设置 *us-east-1* 创建 BYOIP 池，则 `--region` 应为 *us-east-1*。如果您使用区域设置 *us-east-1-scl-1*（用于本地区域的网络边界组）创建 BYOIP 池，则 `--region` 应为 *us-east-1*，因为该区域管理区域设置 *us-east-1-scl-1*。

此步骤必须由 IPAM 账户完成。

选择区域设置可确保池与从中分配的资源之间没有跨区域依赖关系。可用的选项来自您在创建 IPAM 时选择的运营区域。在本教程中，我们将使用 `us-west-2` 作为区域池的区域设置。

**重要**  
创建池时，您必须包括 `--aws-service ec2`。您选择的服务将决定可传播 CIDR 的 AWS 服务。目前，唯一的选择是 `ec2`，这意味着从此池中分配的 CIDR 在 Amazon EC2 服务（适用于弹性 IP 地址）和 Amazon VPC 服务（适用于与 VPC 关联的 CIDR）中是可传播的。

**要使用 AWS CLI 创建区域池**

1. 运行以下命令以创建池。

   ```
   aws ec2 create-ipam-pool --description "Regional-IPv4-pool" --region us-east-1 --ipam-scope-id ipam-scope-0087d83896280b594 --source-ipam-pool-id ipam-pool-0a03d430ca3f5c035 --locale us-west-2 --address-family ipv4 --aws-service ec2 --profile ipam-account
   ```

   在输出中，您将看到创建池的 IPAM。

   ```
   {
        "IpamPool": {
           "OwnerId": "123456789012",
           "IpamPoolId": "ipam-pool-0d8f3646b61ca5987",
           "SourceIpamPoolId": "ipam-pool-0a03d430ca3f5c035",
           "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0d8f3646b61ca5987",
           "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": 2,
           "State": "create-in-progress",
           "Description": "Regional--pool",
           "AutoImport": false,
           "AddressFamily": "ipv4",
           "Tags": [],
           "ServiceType": "ec2"
       }
   }
   ```

1. 运行以下命令，直到您在输出中看到 `create-complete` 的状态。

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

   在输出中，您可以看到您在 IPAM 中拥有的池。在本教程中，我们创建了一个顶级池和一个区域池，所以您会看到这两个池。

## 步骤 6：向区域池预置 CIDR
<a name="tutorials-byoip-ipam-ipv4-6"></a>

向区域池预置 CIDR 块。

**注意**  
将 CIDR 预置到顶级池中的区域池时，您可以预置的最具体的 IPv4 CIDR 为 `/24`；不允许使用更具体的 CIDR（例如 `/25`）。创建区域池后，您可以在该区域池内创建较小的池（例如 `/25`）。请注意，如果您共享该区域池内的一个或多个区域池，则这些池只能在该区域池上设置的区域中使用。

此步骤必须由 IPAM 账户完成。

**要使用 AWS CLI 将 CIDR 块分配到区域池**

1. 请运行以下命令以预置 CIDR。

   ```
   aws ec2 provision-ipam-pool-cidr --region us-east-1 --ipam-pool-id ipam-pool-0d8f3646b61ca5987 --cidr 130.137.245.0/24 --profile ipam-account
   ```

   在输出中，您将看到 CIDR 待定预置。

   ```
   {
       "IpamPoolCidr": {                                                                                         
           "Cidr": "130.137.245.0/24",                                                                      
           "State": "pending-provision"                                                                          
       }                                                                                                         
   }
   ```

1. 运行以下命令，直到您在输出中看到 `provisioned` 的状态。

   ```
   aws ec2 get-ipam-pool-cidrs --region us-east-1 --ipam-pool-id ipam-pool-0d8f3646b61ca5987 --profile ipam-account
   ```

   下面的示例输出显示正确的状态。

   ```
   {
       "IpamPoolCidrs": [
           {
               "Cidr": "130.137.245.0/24",
               "State": "provisioned"
           }
       ]
   }
   ```

## 步骤 7：传播 CIDR
<a name="tutorials-byoip-ipam-ipv4-11"></a>

本部分中的步骤必须由 IPAM 账户完成。将弹性 IP 地址 (EIP) 与实例或 Elastic Load Balancer 关联后，您就可以开始传播您带到处于已定义了 `--aws-service ec2` 的池中的 AWS 的 CIDR。在本教程中，这就是您的区域池。默认情况下，CIDR 不会被传播，这意味着它不能通过互联网公开访问。运行本部分中的命令时，`--region` 的值必须与您在创建将用于 BYOIP CIDR 的池时输入的 `--locale` 选项匹配。

此步骤必须由 IPAM 账户完成。

**注意**  
传播状态不会限制您分配弹性 IP 地址的能力。即使您的 BYOIPv4 CIDR 未传播，您仍然可以从 IPAM 池中创建 EIP。

**开始使用 AWS CLI 传播 CIDR**
+ 请运行以下命令以传播 CIDR。

  ```
  aws ec2 advertise-byoip-cidr --region us-west-2 --cidr 130.137.245.0/24 --profile ipam-account
  ```

  在输出中，您将看到 CIDR 被传播。

  ```
  {
      "ByoipCidr": {
          "Cidr": "130.137.245.0/24",
          "State": "advertised"
      }
  }
  ```

## 步骤 8：共享区域池
<a name="tutorials-byoip-ipam-ipv4-console-4-deux"></a>

 按照本部分中的步骤使用 AWS Resource Access Manager（RAM）共享 IPAM 池。

### 在 AWS RAM 中启用资源共享
<a name="61-enable-resource-sharing-in-aws-ram-deux"></a>

 创建 IPAM 后，您需要与组织中的其他账户共享区域池。在共享 IPAM 池之前，请先完成本部分中的步骤，启用与 AWS RAM 的资源共享。如果要使用 AWS CLI 启用资源共享，请使用 `--profile management-account` 选项。

**启用资源共享**

1. 使用 AWS Organizations 管理账户打开 AWS RAM 控制台，地址：[https://console.aws.amazon.com/ram/](https://console.aws.amazon.com/ram/)。

1. 在左侧导航窗格中，依次选择**设置**、**启用与 AWS Organizations 共享**、**保存设置**。

 您现在可以与组织的其他成员共享 IPAM 池。

### 使用 AWS RAM 共享 IPAM 池
<a name="62-share-an-ipam-pool-using-aws-ram-deux"></a>

 在这一部分，您将与其他 AWS Organizations 成员账户共享区域池。有关共享 IPAM 池的完整说明，例如所需 IAM 权限的相关信息，请参阅 [使用 AWS RAM 共享 IPAM 池](share-pool-ipam.md)。如果要使用 AWS CLI 启用资源共享，请使用 `--profile ipam-account` 选项。

**使用 AWS RAM 共享 IPAM 池**

1. 使用 IPAM 管理员账户打开 IPAM 控制台，地址：[https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/)。

1. 在导航窗格中，选择**池**。

1. 依次选择私有范围、IPAM 池以及**操作** > **查看详细信息**。

1. 在**资源共享**下，选择**创建资源共享**。AWS RAM 控制台将打开。您将使用 AWS RAM 来共享该池。

1. 选择**创建资源共享**。

1. 在 AWS RAM 控制台中，再次选择**创建资源共享**。

1. 为共享资源添加**名称**。

1. 在**选择资源类型**下，选择 **IPAM 池**，然后选择要共享的池的 ARN。

1. 选择**下一步**。

1. 选择 **AWSRAMPermissionIpamPoolByoipCidrImport** 权限。本教程不提供权限选项的详细信息，但您可以在 [使用 AWS RAM 共享 IPAM 池](share-pool-ipam.md) 中查看有关这些选项的更多信息。

1. 选择**下一步**。

1. 在**委托人** > **选择主体类型**下，选择 **AWS 账户**，输入要为 IPAM 提供 IP 地址范围的账户的账户 ID，然后选择**添加**。

1. 选择**下一步**。

1. 查看资源共享选项和要共享的主体，然后选择**创建**。

1. 要允许 **member-account** 账户从 IPAM 池中分配 IP 地址 CIDRS，请使用 `AWSRAMDefaultPermissionsIpamPool` 创建第二个资源共享。`--resource-arns` 的值是您在上一部分中创建的 IPAM 池的 ARN。`--principals` 的值是 **member-account** 的账户 ID。`--permission-arns` 的值是 `AWSRAMDefaultPermissionsIpamPool` 权限的 ARN。

## 步骤 9：从池中分配弹性 IP 地址
<a name="tutorials-byoip-ipam-ipv4-console-cli-all-eip"></a>

完成本部分中的步骤，以从池中分配弹性 IP 地址。请注意，如果您使用公有 IPv4 池来分配弹性 IP 地址，则可以使用 [步骤 9 的替代方案](#tutorials-byoip-ipam-ipv4-cli-alt) 中的替代步骤而不是本部分中的步骤。

**重要**  
如果您看到与无权调用 ec2:AllocateAddress 相关的错误，则需要更新当前分配给与您共享的 IPAM 池的托管权限。联系创建资源共享的人员，要求他们将托管权限 `AWSRAMPermissionIpamResourceDiscovery` 更新为默认版本。有关更多信息，请参阅《AWS RAM 用户指南》**中的[更新资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-update.html)。

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

按照《Amazon EC2 用户指南》**中的[分配弹性 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-eips.html#using-instance-addressing-eips-allocating)中的步骤分配地址，但请注意以下几点：
+ 此步骤必须由成员账户完成。
+ 确保您的 EC2 控制台所在的 AWS 区域与您在创建区域池时选择的区域设置选项相匹配。
+ 选择地址池时，选择**使用 IPv4 IPAM 池分配**选项，然后选择您创建的区域池。

------
#### [ Command line ]

使用 [allocate-address](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/allocate-address.html) 命令从池中分配一个地址。您使用的 `--region` 必须与您在步骤 2 中创建池时选择的 `-locale` 选项相匹配。包括您在 `--ipam-pool-id` 中在步骤 2 中创建的 IPAM 池的 ID。或者，您也可以使用 `--address` 选项在 IPAM 池中选择特定的 `/32`。

```
aws ec2 allocate-address --region us-east-1 --ipam-pool-id ipam-pool-07ccc86aa41bef7ce
```

示例响应：

```
{                                                    
    "PublicIp": "18.97.0.41",                        
    "AllocationId": "eipalloc-056cdd6019c0f4b46",    
    "PublicIpv4Pool": "ipam-pool-07ccc86aa41bef7ce", 
    "NetworkBorderGroup": "us-east-1",               
    "Domain": "vpc"                                  
}
```

有关更多信息，请参阅《Amazon EC2 用户指南》**中的[分配弹性 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-eips.html#using-instance-addressing-eips-allocating)。

------

## 步骤 10：将弹性 IP 地址与 EC2 实例相关联
<a name="tutorials-byoip-ipam-ipv4-console-cli-assoc-eip"></a>

完成本部分中的步骤将弹性 IP 地址与 EC2 实例相关联。

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

按照《Amazon EC2 用户指南》**中的[关联弹性 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-eips.html#using-instance-addressing-eips-associating)中的步骤从 IPAM 池中分配弹性 IP 地址，但请注意以下几点：使用 AWS 管理控制台选项时，您关联弹性 IP 地址所在的 AWS 区域必须与您在创建区域池时选择的区域设置选项相匹配。

此步骤必须由成员账户完成。

------
#### [ Command line ]

此步骤必须由成员账户完成。使用 `--profile member-account` 选项。

使用 [associate-address](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/allocate-address.html) 命令将弹性 IP 地址与实例相关联。您关联弹性 IP 地址所在的 `--region` 区域必须与您创建区域池时选择的 `--locale` 选项匹配。

```
aws ec2 associate-address --region us-east-1 --instance-id i-07459a6fca5b35823 --public-ip 18.97.0.41
```

示例响应：

```
{                                                
    "AssociationId": "eipassoc-06aa85073d3936e0e"
}
```

有关更多信息，请参阅《Amazon EC2 用户指南》**中的[将弹性 IP 地址与实例或网络接口相关联](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-instance-addressing-eips-associating)。

------

## 步骤 11：清除
<a name="tutorials-byoip-ipam-ipv4-cli-cleanup"></a>

按照本部分中的步骤清除您在本教程中预置和创建的资源。运行本部分中的命令时，`--region` 的值必须包括您在创建将用于 BYOIP CIDR 的池时输入的 `--locale` 选项。

**使用 AWS CLI 清除**

1. 查看 IPAM 中管理的 EIP 分配。

   此步骤必须由 IPAM 账户完成。

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

   输出将显示 IPAM 中的分配。

   ```
   {
       "IpamPoolAllocations": [
           {
               "Cidr": "130.137.245.0/24",
               "IpamPoolAllocationId": "ipam-pool-alloc-5dedc8e7937c4261b56dc3e3eb53dc45",
               "ResourceId": "ipv4pool-ec2-0019eed22a684e0b2",
               "ResourceType": "ec2-public-ipv4-pool",
               "ResourceOwner": "123456789012"
           }
       ]
   }
   ```

1. 停止传播 IPv4 CIDR。

   此步骤必须由 IPAM 账户完成。

   ```
   aws ec2 withdraw-byoip-cidr --region us-west-2 --cidr 130.137.245.0/24 --profile ipam-account
   ```

   在输出中，您将看到 CIDR 状态从 **advertised**（已传播）更改为 **provisioned**（已预置）。

   ```
   {
       "ByoipCidr": {
           "Cidr": "130.137.245.0/24",
           "State": "provisioned"
       }
   }
   ```

1. 释放弹性 IP 地址。

   此步骤必须由成员账户完成。

   ```
   aws ec2 release-address --region us-west-2 --allocation-id eipalloc-0db3405026756dbf6 --profile member-account
   ```

   运行此命令时，您不会看到任何输出。

1. 查看 IPAM 中不再管理的 EIP 分配。IPAM 可能需要一些时间才能发现弹性 IP 地址已被删除。在看到已从 IPAM 中删除分配之前，您无法继续清理和取消预置 IPAM 池 CIDR。运行本部分中的命令时，`--region` 的值必须包括您在创建将用于 BYOIP CIDR 的池时输入的 `--locale` 选项。

   此步骤必须由 IPAM 账户完成。

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

   输出将显示 IPAM 中的分配。

   ```
   {
       "IpamPoolAllocations": []
   }
   ```

1. 取消预置区域池 CIDR。运行本步骤中的命令时，`--region` 的值必须与 IPAM 的区域匹配。

   此步骤必须由 IPAM 账户完成。

   ```
   aws ec2 deprovision-ipam-pool-cidr --region us-east-1 --ipam-pool-id ipam-pool-0d8f3646b61ca5987 --cidr 130.137.245.0/24 --profile ipam-account
   ```

   在输出中，您将看到 CIDR 待定取消预置。

   ```
   {
       "IpamPoolCidr": {                                                                                            
           "Cidr": "130.137.245.0/24",                                                                         
           "State": "pending-deprovision"                                                                           
       }                                                                                                            
   }
   ```

   取消预置需要一些时间才能完成。检查取消预置的状态。

   ```
   aws ec2 get-ipam-pool-cidrs --region us-east-1 --ipam-pool-id ipam-pool-0d8f3646b61ca5987 --profile ipam-account
   ```

   等到您看到 **deprovisioned**（取消预置）后再继续下一步。

   ```
   {
       "IpamPoolCidr": {                                                                                            
           "Cidr": "130.137.245.0/24",                                                                         
           "State": "deprovisioned"                                                                           
       }                                                                                                            
   }
   ```

1. 删除 RAM 共享并禁用与 AWS Organizations 的 RAM 集成。完成《AWS RAM 用户指南》中 [删除 AWS RAM 中的资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-delete.html) 和 [禁用与 AWS Organizations 的资源共享](https://docs.aws.amazon.com/ram/latest/userguide/security-disable-sharing-with-orgs.html) 所述的步骤**，删除 RAM 共享并禁用与 AWS Organizations 的 RAM 集成。

   此步骤必须分别由 IPAM 账户和管理账户完成。要使用 AWS CLI 删除 RAM 共享并禁用 RAM 集成，请使用 ` --profile ipam-account` 和 ` --profile management-account` 选项。

1. 删除区域池。运行本步骤中的命令时，`--region` 的值必须与 IPAM 的区域匹配。

   此步骤必须由 IPAM 账户完成。

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

   在输出中，您可以看到删除状态。

   ```
   {
      "IpamPool": {
           "OwnerId": "123456789012",
           "IpamPoolId": "ipam-pool-0d8f3646b61ca5987",
           "SourceIpamPoolId": "ipam-pool-0a03d430ca3f5c035",
           "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0d8f3646b61ca5987",
           "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": "reg-ipv4-pool",
           "AutoImport": false,
           "Advertisable": true,
           "AddressFamily": "ipv4"
       }
   }
   ```

1. 取消预置顶级池 CIDR。运行本步骤中的命令时，`--region` 的值必须与 IPAM 的区域匹配。

   此步骤必须由 IPAM 账户完成。

   ```
   aws ec2 deprovision-ipam-pool-cidr --region us-east-1 --ipam-pool-id ipam-pool-0a03d430ca3f5c035 --cidr 130.137.245.0/24 --profile ipam-account
   ```

   在输出中，您将看到 CIDR 待定取消预置。

   ```
   {
       "IpamPoolCidr": {                                                                                            
           "Cidr": "130.137.245.0/24",                                                                         
           "State": "pending-deprovision"                                                                           
       }                                                                                                            
   }
   ```

   取消预置需要一些时间才能完成。运行以下命令检查取消预置的状态。

   ```
   aws ec2 get-ipam-pool-cidrs --region us-east-1 --ipam-pool-id ipam-pool-0a03d430ca3f5c035 --profile ipam-account
   ```

   等到您看到 **deprovisioned**（取消预置）后再继续下一步。

   ```
   {
       "IpamPoolCidr": {                                                                                            
           "Cidr": "130.137.245.0/24",                                                                         
           "State": "deprovisioned"                                                                           
       }                                                                                                            
   }
   ```

1. 删除顶级池。运行本步骤中的命令时，`--region` 的值必须与 IPAM 的区域匹配。

   此步骤必须由 IPAM 账户完成。

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

   在输出中，您可以看到删除状态。

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

1. 删除 IPAM。运行本步骤中的命令时，`--region` 的值必须与 IPAM 的区域匹配。

   此步骤必须由 IPAM 账户完成。

   ```
   aws ec2 delete-ipam --region us-east-1 --ipam-id ipam-090e48e75758de279 --profile ipam-account
   ```

   在输出中，您将看到 IPAM 响应。这意味着 IPAM 已删除。

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

## 步骤 9 的替代方案
<a name="tutorials-byoip-ipam-ipv4-cli-alt"></a>

如果您使用公有 IPv4 池来分配弹性 IP 地址，则可以本部分中的步骤，而不是 [步骤 9：从池中分配弹性 IP 地址](#tutorials-byoip-ipam-ipv4-console-cli-all-eip) 中的步骤。

**Topics**
+ [步骤 1：创建公有 IPv4 池](#tutorials-byoip-ipam-ipv4-9)
+ [步骤 2：将公有 IPv4 CIDR 预调配到您的公有 IPv4 池](#tutorials-byoip-ipam-ipv4-9)
+ [步骤 3：从公有 IPv4 池创建弹性 IP 地址](#tutorials-byoip-ipam-ipv4-10)
+ [步骤 9 清理的替代方案](#tutorials-byoip-ipam-ipv4-cli-alt-cleanup)

### 步骤 1：创建公有 IPv4 池
<a name="tutorials-byoip-ipam-ipv4-9"></a>

此步骤通常由不同的想要预调配弹性 IP 地址的 AWS 账户完成，如成员账户。

**重要**  
公有 IPv4 池和 IPAM 池由 AWS 中的不同资源管理。公共 IPv4 池是单一账户资源，使您能够将公有 CIDR 转换为弹性 IP 地址。IPAM 池可用于将公有空间分配给公有 IPv4 池。

**要使用 AWS CLI 创建公有 IPv4 池**
+ 请运行以下命令以预置 CIDR。运行本部分中的命令时，`--region` 的值必须与您在创建将用于 BYOIP CIDR 的池时输入的 `--locale` 选项匹配。

  ```
  aws ec2 create-public-ipv4-pool --region us-west-2 --profile member-account
  ```

  在输出中，您将看到公有 IPv4 池 ID。在下一步骤中，您需要用到此 ID。

  ```
  {
      "PoolId": "ipv4pool-ec2-0019eed22a684e0b2"
  }
  ```

### 步骤 2：将公有 IPv4 CIDR 预调配到您的公有 IPv4 池
<a name="tutorials-byoip-ipam-ipv4-9"></a>

将公有 IPv4 CIDR 预置到您的公有 IPv4 池。`--region` 的值为必须与您在创建将用于 BYOIP CIDR 的池时输入的 `--locale` 值匹配。您可以定义的最不具体的 `--netmask-length` 是 `24`。

此步骤必须由成员账户完成。

**要使用 AWS CLI 创建公有 IPv4 池**

1. 请运行以下命令以预置 CIDR。

   ```
   aws ec2 provision-public-ipv4-pool-cidr --region us-west-2 --ipam-pool-id ipam-pool-0d8f3646b61ca5987 --pool-id ipv4pool-ec2-0019eed22a684e0b2 --netmask-length 24 --profile member-account
   ```

   在输出中，您将看到预置的 CIDR。

   ```
   {
       "PoolId": "ipv4pool-ec2-0019eed22a684e0b2",
       "PoolAddressRange": {
           "FirstAddress": "130.137.245.0",
           "LastAddress": "130.137.245.255",
           "AddressCount": 256,
           "AvailableAddressCount": 256
       }
   }
   ```

1. 运行以下命令，以查看公有 IPv4 池中预置的 CIDR。

   ```
   aws ec2 describe-byoip-cidrs --region us-west-2 --max-results 10 --profile member-account
   ```

   在输出中，您将看到预置的 CIDR。默认情况下，CIDR 不会被传播，这意味着它不能通过互联网公开访问。在本教程的最后一步中，您将有机会将此 CIDR 设置为进行传播。

   ```
   {
       "ByoipCidrs": [
           {
               "Cidr": "130.137.245.0/24",
               "StatusMessage": "Cidr successfully provisioned",
               "State": "provisioned"
           }
       ]
   }
   ```

### 步骤 3：从公有 IPv4 池创建弹性 IP 地址
<a name="tutorials-byoip-ipam-ipv4-10"></a>

从公有 IPv4 池创建弹性 IP 地址 (EIP)。运行本部分中的命令时，`--region` 的值必须与您在创建将用于 BYOIP CIDR 的池时输入的 `--locale` 选项匹配。

此步骤必须由成员账户完成。

**要使用 AWS CLI 从公有 IPv4 池中创建 EIP**

1. 运行以下命令以创建 EIP。

   ```
   aws ec2 allocate-address  --region us-west-2 --public-ipv4-pool ipv4pool-ec2-0019eed22a684e0b2 --profile member-account
   ```

   在输出中，您将看到分配。

   ```
   {
       "PublicIp": "130.137.245.100",
       "AllocationId": "eipalloc-0db3405026756dbf6",
       "PublicIpv4Pool": "ipv4pool-ec2-0019eed22a684e0b2",
       "NetworkBorderGroup": "us-east-1",
       "Domain": "vpc"
   }
   ```

1. 运行以下命令，以查看 IPAM 中管理的 EIP 分配。

   此步骤必须由 IPAM 账户完成。

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

   输出将显示 IPAM 中的分配。

   ```
   {
       "IpamPoolAllocations": [
           {
               "Cidr": "130.137.245.0/24",
               "IpamPoolAllocationId": "ipam-pool-alloc-5dedc8e7937c4261b56dc3e3eb53dc45",
               "ResourceId": "ipv4pool-ec2-0019eed22a684e0b2",
               "ResourceType": "ec2-public-ipv4-pool",
               "ResourceOwner": "123456789012"
           }
       ]
   }
   ```

### 步骤 9 清理的替代方案
<a name="tutorials-byoip-ipam-ipv4-cli-alt-cleanup"></a>

完成以下步骤，以清理使用步骤 9 的替代方法创建的公有 IPv4 池。在 [步骤 10：清除](tutorials-byoip-ipam-ipv6.md#tutorials-byoip-ipam-ipv4-cleanup) 中的标准清理过程中，您应在释放弹性 IP 地址后完成这些步骤。

1. 查看您的 BYOIP CIDR。

   此步骤必须由成员账户完成。

   ```
   aws ec2 describe-public-ipv4-pools --region us-west-2 --profile member-account
   ```

   在输出中，您将看到 BYOIP CIDR 中的 IP 地址。

   ```
   {
       "PublicIpv4Pools": [
           {
               "PoolId": "ipv4pool-ec2-0019eed22a684e0b2",
               "Description": "",
               "PoolAddressRanges": [
                   {
                       "FirstAddress": "130.137.245.0",
                       "LastAddress": "130.137.245.255",
                       "AddressCount": 256,
                       "AvailableAddressCount": 256
                   }
               ],
               "TotalAddressCount": 256,
               "TotalAvailableAddressCount": 256,
               "NetworkBorderGroup": "us-east-1",
               "Tags": []
           }
       ]
   }
   ```

1. 从公有 IPv4 池中释放 CIDR。运行本部分中的命令时，`--region` 的值必须与 IPAM 的区域匹配。

   此步骤必须由成员账户完成。

   ```
   aws ec2 deprovision-public-ipv4-pool-cidr --region us-east-1 --pool-id ipv4pool-ec2-0019eed22a684e0b2 --cidr 130.137.245.0/24 --profile member-account
   ```

1. 再次查看您的 BYOIP CIDR，并确保没有更多的预置地址。运行本部分中的命令时，`--region` 的值必须与 IPAM 的区域匹配。

   此步骤必须由成员账户完成。

   ```
   aws ec2 describe-public-ipv4-pools --region us-east-1 --profile member-account
   ```

   在输出中，您将看到公有 IPv4 池中的 IP 地址计数。

   ```
   {
       "PublicIpv4Pools": [
           {
               "PoolId": "ipv4pool-ec2-0019eed22a684e0b2",
               "Description": "",
               "PoolAddressRanges": [],
               "TotalAddressCount": 0,
               "TotalAvailableAddressCount": 0,
               "NetworkBorderGroup": "us-east-1",
               "Tags": []
           }
       ]
   }
   ```

# 仅使用 AWS CLI 自带 IPv6 CIDR 到 IPAM 中
<a name="tutorials-byoip-ipam-ipv6"></a>

按照以下步骤将 IPv6 CIDR 带入 IPAM 中，然后仅使用 AWS CLI 分配 VPC。

如果不需要通过互联网公开发布 IPv6 地址，则可向 IPAM 预置私有 GUA IPv6 地址。有关更多信息，请参阅 [启用预置私有 IPv6 GUA CIDR](enable-prov-ipv6-gua.md)。

**重要**  
本教程假定您已完成以下部分中的步骤：  
[将 IPAM 与 AWS Organization 中的账户集成](enable-integ-ipam.md).
[创建 IPAM](create-ipam.md).
本教程的每个步骤都必须由以下三个 AWS Organizations 账户之一完成：  
管理账户。
[将 IPAM 与 AWS Organization 中的账户集成](enable-integ-ipam.md) 中配置为 IPAM 管理员的成员账户。在本教程中，此账户将被称为 IPAM 账户。
将从 IPAM 池中分配 CIDR 的企业中的成员账户。在本教程中，此账户将被称为成员账户。

**Topics**
+ [第 1 步：创建 AWS CLI 命名配置文件和 IAM 角色](#tutorials-create-profiles)
+ [步骤 2：创建 IPAM](#tutorials-byoip-ipam-ipv6-2)
+ [步骤 3：创建 IPAM 池](#tutorials-byoip-ipam-ipv6-3)
+ [步骤 4：向顶级池预置 CIDR](#tutorials-byoip-ipam-ipv6-4)
+ [步骤 5：在顶级池中创建区域池](#tutorials-byoip-ipam-ipv6-5)
+ [步骤 6：向区域池预置 CIDR](#tutorials-byoip-ipam-ipv6-6)
+ [第 7 步。共享区域池](#tutorials-byoip-ipam-ipv4-console-4-deux)
+ [第 8 步：使用 IPv6 CIDR 创建 VPC](#tutorials-byoip-ipam-ipv6-8)
+ [步骤 9：传播 CIDR](#tutorials-byoip-ipam-ipv6-9)
+ [步骤 10：清除](#tutorials-byoip-ipam-ipv4-cleanup)

## 第 1 步：创建 AWS CLI 命名配置文件和 IAM 角色
<a name="tutorials-create-profiles"></a>

要以单个 AWS 用户的身份完成本教程，您可以使用 AWS CLI 命名配置文件在 IAM 角色之间切换。[命名配置文件](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-using-profiles) 是您在将 `--profile` 选项与 AWS CLI 结合使用时引用的设置和凭证集合。有关如何为 AWS 账户创建 IAM 角色和命名配置文件的更多信息，请参阅[在 AWS CLI 中使用 IAM 角色](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html)。

为您将在本教程中使用的三个 AWS 账户分别创建一个角色和一个命名配置文件：
+ 为 AWS Organizations 管理账户创建名为 `management-account` 的配置文件。
+ 为配置为 IPAM 管理员的 AWS Organizations 成员账户创建名为 `ipam-account` 的配置文件。
+ 为将从 IPAM 池中分配 CIDR 的企业中的 AWS Organizations 成员账户创建名为 `member-account` 的配置文件。

创建 IAM 角色和命名配置文件后，请返回本页面并转至下一步。在本教程的其余部分中，您将注意到示例 AWS CLI 命令会将 `--profile` 选项与其中一个命名配置文件一起使用，以指示哪个账户必须运行该命令。

## 步骤 2：创建 IPAM
<a name="tutorials-byoip-ipam-ipv6-2"></a>

此为可选步骤。如果您已在创建了 `us-east-1` 和 `us-west-2` 的运营区域的情况下创建了 IPAM，您可以跳过此步骤。创建 IPAM 并指定 `us-east-1` 和 `us-west-2` 的运营区域。您必须选择一个运营区域，以便在创建 IPAM 池时可以使用区域设置选项。IPAM 与 BYOIP 集成要求在将用于 BYOIP CIDR 的任何一个池上设置区域设置。

此步骤必须由 IPAM 账户完成。

运行如下命令：

```
aws ec2 create-ipam --description my-ipam --region us-east-1 --operating-regions RegionName=us-west-2 --profile ipam-account
```

在输出中，您将看到您创建的 IPAM。记下 `PublicDefaultScopeId` 值。在下一步中，您将需要使用公有范围 ID。

```
{
 "Ipam": {                                                                         
        "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-ipv6-3"></a>

由于您将创建一个其中包含一个区域池的顶级 IPAM 池，并且我们将为区域池中的资源 (VPC) 分配空间，因此您将在区域池中设置区域设置，而不是在顶级池中。在后面的步骤中创建区域池时，您将区域设置添加到区域池中。IPAM 与 BYOIP 集成要求在将用于 BYOIP CIDR 的任何一个池上设置区域设置。

此步骤必须由 IPAM 账户完成。

选择是否希望此 IPAM 池 CIDR 可以由 AWS 通过公共互联网（`--publicly-advertisable` 或 `--no-publicly-advertisable`）传播。

**注意**  
请注意，范围 ID 必须是公有范围的 ID，且地址系列必须是 `ipv6`。

**要使用 AWS CLI 为您的所有 AWS 资源创建 IPv6 地址池**

1. 运行以下命令以创建 IPAM 池。请使用您在上一步中创建的 IPAM 的公有范围的 ID。

   ```
   aws ec2 create-ipam-pool --region us-east-1 --ipam-scope-id ipam-scope-0087d83896280b594 --description "top-level-IPv6-pool" --address-family ipv6 --publicly-advertisable --profile ipam-account
   ```

   在输出中，您将会看到 `create-in-progress`，这表明池的创建正在进行中。

   ```
   {
       "IpamPool": {                                                                                             
           "OwnerId": "123456789012",
           "IpamPoolId": "ipam-pool-07f2466c7158b50c4",                                                          
           "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-07f2466c7158b50c4",            
           "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-0087d83896280b594",         
           "IpamScopeType": "public",                                                                            
           "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-090e48e75758de279",                          
           "Locale": "None",                                                                                     
           "PoolDepth": 1,                                                                                       
           "State": "create-in-progress",                                                                        
           "Description": "top-level-Ipv6-pool",                                                                 
           "AutoImport": false,                                                                                  
           "Advertisable": true,                                                                                 
           "AddressFamily": "ipv6",                                                                              
           "Tags": []                                                                                            
       }                                                                                                         
   }
   ```

1. 运行以下命令，直到您在输出中看到 `create-complete` 的状态。

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

   下面的示例输出显示池的状态。

   ```
   {
       "IpamPool": {                                                                                             
           "OwnerId": "123456789012",
           "IpamPoolId": "ipam-pool-07f2466c7158b50c4",                                                          
           "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-07f2466c7158b50c4",            
           "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-0087d83896280b594",         
           "IpamScopeType": "public",                                                                            
           "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-090e48e75758de279",                          
           "Locale": "None",                                                                                     
           "PoolDepth": 1,                                                                                       
           "State": "create-complete",                                                                        
           "Description": "top-level-Ipv6-pool",                                                                 
           "AutoImport": false,                                                                                  
           "Advertisable": true,                                                                                 
           "AddressFamily": "ipv6",                                                                              
           "Tags": []                                                                                            
       }                                                                                                         
   }
   ```

## 步骤 4：向顶级池预置 CIDR
<a name="tutorials-byoip-ipam-ipv6-4"></a>

向顶级池预置 CIDR 块。请注意，在将 IPv6 CIDR 预置到顶级池中的池时，对于公开发布的 CIDR，可以引入的最具体 IPv6 地址范围是 /48；对于不公开发布的 CIDR，可以引入的最具体 IPv6 地址范围是 /60。

**注意**  
如果[使用 X.509 证书验证域控制权](tutorials-byoip-ipam-domain-verification-methods.md#tutorials-byoip-ipam-domain-verification-cert)，则必须包含 CIDR 和 BYOIP 消息以及在该步骤中创建的证书签名，以便我们验证您是否控制了公共空间。
如果[使用 DNS TXT 记录验证域控制权](tutorials-byoip-ipam-domain-verification-methods.md#tutorials-byoip-ipam-domain-verification-dns-txt)，则必须包含 CIDR 和 IPAM 消息以及在该步骤中创建的验证令牌，以便我们验证您是否控制了公共空间。

在向顶级池预置 BYOIP CIDR 时，您只需要验证域控制权。对于顶级池中的区域池，您可以省略域所有权选项。

此步骤必须由 IPAM 账户完成。

**使用 AWS CLI 向池预置 CIDR 块**

1. 要为 CIDR 预置证书信息，请使用以下示例命令。除了根据需要替换示例中的值外，务必还要将 `Message` 和 `Signature` 值替换为在 [使用 X.509 证书验证域](tutorials-byoip-ipam-domain-verification-methods.md#tutorials-byoip-ipam-domain-verification-cert) 中获得的 `text_message` 和 `signed_message` 值。

   ```
   aws ec2 provision-ipam-pool-cidr --region us-east-1 --ipam-pool-id ipam-pool-07f2466c7158b50c4 --cidr 2605:9cc0:409::/48 --verification-method remarks-x509 --cidr-authorization-context Message="1|aws|470889052444|2605:9cc0:409::/48|20250101|SHA256|RSAPSS",Signature="FU26~vRG~NUGXa~akxd6dvdcCfvL88g8d~YAuai-CR7HqMwzcgdS9RlpBGtfIdsRGyr77LmWyWqU9Xp1g2R1kSkfD00NiLKLcv9F63k6wdEkyFxNp7RAJDvF1mBwxmSgH~Crt-Vp6LON3yOOXMp4JENB9uM7sMlu6oeoutGyyhXFeYPzlGSRdcdfKNKaimvPCqVsxGN5AwSilKQ8byNqoa~G3dvs8ueSaDcT~tW4CnILura70nyK4f2XzgPKKevAD1g8bpKmOFMbHS30CxduYknnDl75lvEJs1J91u3-wispI~r69fq515UR19TA~fmmxBDh1huQ8DkM1rqcwveWow__" --profile ipam-account
   ```

   要为 CIDR 预置验证令牌信息，请使用以下示例命令。除了根据需要替换示例中的值外，务必还要将 `ipam-ext-res-ver-token-0309ce7f67a768cf0` 替换为在 [使用 DNS TXT 记录验证域](tutorials-byoip-ipam-domain-verification-methods.md#tutorials-byoip-ipam-domain-verification-dns-txt) 中获得的 `IpamExternalResourceVerificationTokenId` 令牌 ID。

   ```
   aws ec2 provision-ipam-pool-cidr --region us-east-1 --ipam-pool-id ipam-pool-07f2466c7158b50c4 --cidr 2605:9cc0:409::/48 --verification-method dns-token --ipam-external-resource-verification-token-id ipam-ext-res-ver-token-0309ce7f67a768cf0 --profile ipam-account
   ```

   在输出中，您将看到 CIDR 待定预置。

   ```
   {
       "IpamPoolCidr": {                                                                                         
           "Cidr": "2605:9cc0:409::/48",                                                                    
           "State": "pending-provision"                                                                          
       }                                                                                                         
   }
   ```

1. 在继续之前，请确保已预置此 CIDR。
**重要**  
虽然大多数预配置将在两小时内完成，但对于公开发布的范围，完成预配置过程可能需要长达一周的时间。

   运行以下命令，直到您在输出中看到 `provisioned` 的状态。

   ```
   aws ec2 get-ipam-pool-cidrs --region us-east-1 --ipam-pool-id ipam-pool-07f2466c7158b50c4 --profile ipam-account
   ```

   下面的示例输出显示状态。

   ```
   {
       "IpamPoolCidrs": [
           {
               "Cidr": "2605:9cc0:409::/48",
               "State": "provisioned"
           }
       ]
   }
   ```

## 步骤 5：在顶级池中创建区域池
<a name="tutorials-byoip-ipam-ipv6-5"></a>

在顶级池中创建区域池。`--locale` 在池上是必需的，它必须是您在创建 IPAM 时配置的运营区域之一。

此步骤必须由 IPAM 账户完成。

**重要**  
创建池时，您必须包括 `--aws-service ec2`。您选择的服务将决定可传播 CIDR 的 AWS 服务。目前，唯一的选择是 `ec2`，这意味着从此池中分配的 CIDR 在 Amazon EC2 服务和 Amazon VPC 服务（适用于与 VPC 关联的 CIDR）中是可传播的。

**要使用 AWS CLI 创建区域池**

1. 运行以下命令以创建池。

   ```
   aws ec2 create-ipam-pool --description "Regional-IPv6-pool" --region us-east-1 --ipam-scope-id ipam-scope-0087d83896280b594 --source-ipam-pool-id ipam-pool-07f2466c7158b50c4 --locale us-west-2 --address-family ipv6 --aws-service ec2 --profile ipam-account
   ```

   在输出中，您将看到创建池的 IPAM。

   ```
   {
       "IpamPool": {
           "OwnerId": "123456789012",
           "IpamPoolId": "ipam-pool-0053b7d2b4fc3f730",
           "SourceIpamPoolId": "ipam-pool-07f2466c7158b50c4",
           "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0053b7d2b4fc3f730",
           "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": 2,
           "State": "create-in-progress",
           "Description": "reg-ipv6-pool",
           "AutoImport": false,
           "Advertisable": true,
           "AddressFamily": "ipv6",
           "Tags": [],
           "ServiceType": "ec2"
       }
   }
   ```

1. 运行以下命令，直到您在输出中看到 `create-complete` 的状态。

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

   在输出中，您可以看到您在 IPAM 中拥有的池。在本教程中，我们创建了一个顶级池和一个区域池，所以您会看到这两个池。

## 步骤 6：向区域池预置 CIDR
<a name="tutorials-byoip-ipam-ipv6-6"></a>

向区域池预置 CIDR 块。请注意，在将 CIDR 预置到顶级池中的池时，对于公开发布的 CIDR，可以引入的最具体 IPv6 地址范围是 /48；对于不公开发布的 CIDR，可以引入的最具体 IPv6 地址范围是 /60。

此步骤必须由 IPAM 账户完成。

**要使用 AWS CLI 将 CIDR 块分配到区域池**

1. 请运行以下命令以预置 CIDR。

   ```
   aws ec2 provision-ipam-pool-cidr --region us-east-1 --ipam-pool-id ipam-pool-0053b7d2b4fc3f730 --cidr 2605:9cc0:409::/48 --profile ipam-account
   ```

   在输出中，您将看到 CIDR 待定预置。

   ```
   {
       "IpamPoolCidr": {
           "Cidr": "2605:9cc0:409::/48",
           "State": "pending-provision"
       }
   }
   ```

1. 运行以下命令，直到您在输出中看到 `provisioned` 的状态。

   ```
   aws ec2 get-ipam-pool-cidrs --region us-east-1 --ipam-pool-id ipam-pool-0053b7d2b4fc3f730 --profile ipam-account
   ```

   下面的示例输出显示正确的状态。

   ```
   {
       "IpamPoolCidrs": [                                                        
           {                                                                     
               "Cidr": "2605:9cc0:409::/48",                                
               "State": "provisioned"                                            
           }                                                                     
       ]                                                                         
   }
   ```

## 第 7 步。共享区域池
<a name="tutorials-byoip-ipam-ipv4-console-4-deux"></a>

 按照本部分中的步骤使用 AWS Resource Access Manager（RAM）共享 IPAM 池。

### 在 AWS RAM 中启用资源共享
<a name="61-enable-resource-sharing-in-aws-ram-deux"></a>

 创建 IPAM 后，您需要与组织中的其他账户共享区域池。在共享 IPAM 池之前，请先完成本部分中的步骤，启用与 AWS RAM 的资源共享。如果要使用 AWS CLI 启用资源共享，请使用 `--profile management-account` 选项。

**启用资源共享**

1. 使用 AWS Organizations 管理账户打开 AWS RAM 控制台，地址：[https://console.aws.amazon.com/ram/](https://console.aws.amazon.com/ram/)。

1. 在左侧导航窗格中，依次选择**设置**、**启用与 AWS Organizations 共享**、**保存设置**。

 您现在可以与组织的其他成员共享 IPAM 池。

### 使用 AWS RAM 共享 IPAM 池
<a name="62-share-an-ipam-pool-using-aws-ram-deux"></a>

 在这一部分，您将与其他 AWS Organizations 成员账户共享区域池。有关共享 IPAM 池的完整说明，例如所需 IAM 权限的相关信息，请参阅 [使用 AWS RAM 共享 IPAM 池](share-pool-ipam.md)。如果要使用 AWS CLI 启用资源共享，请使用 `--profile ipam-account` 选项。

**使用 AWS RAM 共享 IPAM 池**

1. 使用 IPAM 管理员账户打开 IPAM 控制台，地址：[https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/)。

1. 在导航窗格中，选择**池**。

1. 依次选择私有范围、IPAM 池以及**操作** > **查看详细信息**。

1. 在**资源共享**下，选择**创建资源共享**。AWS RAM 控制台将打开。您将使用 AWS RAM 来共享该池。

1. 选择**创建资源共享**。

1. 在 AWS RAM 控制台中，再次选择**创建资源共享**。

1. 为共享资源添加**名称**。

1. 在**选择资源类型**下，选择 **IPAM 池**，然后选择要共享的池的 ARN。

1. 选择**下一步**。

1. 选择 **AWSRAMPermissionIpamPoolByoipCidrImport** 权限。本教程不提供权限选项的详细信息，但您可以在 [使用 AWS RAM 共享 IPAM 池](share-pool-ipam.md) 中查看有关这些选项的更多信息。

1. 选择**下一步**。

1. 在**委托人** > **选择主体类型**下，选择 **AWS 账户**，输入要为 IPAM 提供 IP 地址范围的账户的账户 ID，然后选择**添加**。

1. 选择**下一步**。

1. 查看资源共享选项和要共享的主体，然后选择**创建**。

1. 要允许 **member-account** 账户从 IPAM 池中分配 IP 地址 CIDRS，请使用 `AWSRAMDefaultPermissionsIpamPool` 创建第二个资源共享。`--resource-arns` 的值是您在上一部分中创建的 IPAM 池的 ARN。`--principals` 的值是 **member-account** 的账户 ID。`--permission-arns` 的值是 `AWSRAMDefaultPermissionsIpamPool` 权限的 ARN。

## 第 8 步：使用 IPv6 CIDR 创建 VPC
<a name="tutorials-byoip-ipam-ipv6-8"></a>

使用 IPAM 池 ID 创建 VPC。您还必须使用 `--cidr-block` 选项将 IPv4 CIDR 块与 VPC 关联，否则请求将失败。运行本部分中的命令时，`--region` 的值必须与您在创建将用于 BYOIP CIDR 的池时输入的 `--locale` 选项匹配。

此步骤必须由成员账户完成。

**要使用 AWS CLI 通过 IPv6 CIDR 创建 VPC**

1. 请运行以下命令以预置 CIDR。

   ```
   aws ec2 create-vpc --region us-west-2 --ipv6-ipam-pool-id ipam-pool-0053b7d2b4fc3f730 --cidr-block 10.0.0.0/16 --ipv6-netmask-length 56 --profile member-account
   ```

   在输出中，您将看到正在创建的 VPC。

   ```
   {
       "Vpc": {
           "CidrBlock": "10.0.0.0/16",
           "DhcpOptionsId": "dopt-2afccf50",
           "State": "pending",
           "VpcId": "vpc-00b5573ffc3b31a29",
           "OwnerId": "123456789012",
           "InstanceTenancy": "default",
           "Ipv6CidrBlockAssociationSet": [
               {
                   "AssociationId": "vpc-cidr-assoc-01b5703d6cc695b5b",
                   "Ipv6CidrBlock": "2605:9cc0:409::/56",
                   "Ipv6CidrBlockState": {
                       "State": "associating"
                   },
                   "NetworkBorderGroup": "us-east-1",
                   "Ipv6Pool": "ipam-pool-0053b7d2b4fc3f730"
               }
           ],
           "CidrBlockAssociationSet": [
               {
                   "AssociationId": "vpc-cidr-assoc-09cccb07d4e9a0e0e",
                   "CidrBlock": "10.0.0.0/16",
                   "CidrBlockState": {
                       "State": "associated"
                   }
               }
           ],
           "IsDefault": false
       }
   }
   ```

1. 在 IPAM 中查看 VPC 分配情况。

   ```
   aws ec2 get-ipam-pool-allocations --region us-west-2 --ipam-pool-id ipam-pool-0053b7d2b4fc3f730 --profile ipam-account
   ```

   在输出中，您将看到 IPAM 中的分配。

   ```
   {
       "IpamPoolAllocations": [
           {
               "Cidr": "2605:9cc0:409::/56",
               "IpamPoolAllocationId": "ipam-pool-alloc-5f8db726fb9e4ff0a33836e649283a52",
               "ResourceId": "vpc-00b5573ffc3b31a29",
               "ResourceType": "vpc",
               "ResourceOwner": "123456789012"
           }
       ]
   }
   ```

## 步骤 9：传播 CIDR
<a name="tutorials-byoip-ipam-ipv6-9"></a>

一旦您使用 IPAM 中分配的 CIDR 创建了 VPC，就可以开始传播您带入位于定义了 `--aws-service ec2` 的池中的 AWS 的 CIDR。在本教程中，这就是您的区域池。默认情况下，CIDR 不会被传播，这意味着它不能通过互联网公开访问。运行本部分中的命令时，`--region` 的值为必须与您在创建将用于 BYOIP CIDR 的区域池时输入的 `--locale` 选项匹配。

此步骤必须由 IPAM 账户完成。

**开始使用 AWS CLI 传播 CIDR**
+ 请运行以下命令以传播 CIDR。

  ```
  aws ec2 advertise-byoip-cidr --region us-west-2 --cidr 2605:9cc0:409::/48 --profile ipam-account
  ```

  在输出中，您将看到 CIDR 被传播。

  ```
  {
      "ByoipCidr": {                                                                 
          "Cidr": "2605:9cc0:409::/48",                                              
          "State": "advertised"                                                      
      }                                                                              
  }
  ```

## 步骤 10：清除
<a name="tutorials-byoip-ipam-ipv4-cleanup"></a>

按照本部分中的步骤清除您在本教程中预置和创建的资源。运行本部分中的命令时，`--region` 的值为必须与您在创建将用于 BYOIP CIDR 的区域池时输入的 `--locale` 选项匹配。

**使用 AWS CLI 清除**

1. 运行以下命令以查看 IPAM 中管理的 VPC 分配。

   此步骤必须由 IPAM 账户完成。

   ```
   aws ec2 get-ipam-pool-allocations --region us-west-2 --ipam-pool-id ipam-pool-0053b7d2b4fc3f730 --profile ipam-account
   ```

   输出将显示 IPAM 中的分配。

   ```
   {
       "IpamPoolAllocations": [
           {
               "Cidr": "2605:9cc0:409::/56",
               "IpamPoolAllocationId": "ipam-pool-alloc-5f8db726fb9e4ff0a33836e649283a52",
               "ResourceId": "vpc-00b5573ffc3b31a29",
               "ResourceType": "vpc",
               "ResourceOwner": "123456789012"
           }
       ]
   }
   ```

1. 运行以下命令以停止传播 CIDR。运行本步骤中的命令时，`--region` 的值为必须与您在创建将用于 BYOIP CIDR 的区域池时输入的 `--locale` 选项匹配。

   此步骤必须由 IPAM 账户完成。

   ```
   aws ec2 withdraw-byoip-cidr --region us-west-2 --cidr 2605:9cc0:409::/48 --profile ipam-account
   ```

   在输出中，您将看到 CIDR 状态从 **advertised**（已传播）更改为 **provisioned**（已预置）。

   ```
   {
       "ByoipCidr": {
           "Cidr": "2605:9cc0:409::/48",
           "State": "provisioned"
       }
   }
   ```

1. 运行以下命令以删除 VPC。运行本部分中的命令时，`--region` 的值为必须与您在创建将用于 BYOIP CIDR 的区域池时输入的 `--locale` 选项匹配。

   此步骤必须由成员账户完成。

   ```
   aws ec2 delete-vpc --region us-west-2 --vpc-id vpc-00b5573ffc3b31a29 --profile member-account
   ```

   运行此命令时，您不会看到任何输出。

1. 运行以下命令以查看 IPAM 中的 VPC 分配情况。IPAM 可能需要一些时间才能发现 VPC 已被删除并删除此分配。运行本部分中的命令时，`--region` 的值为必须与您在创建将用于 BYOIP CIDR 的区域池时输入的 `--locale` 选项匹配。

   此步骤必须由 IPAM 账户完成。

   ```
   aws ec2 get-ipam-pool-allocations --region us-west-2 --ipam-pool-id ipam-pool-0053b7d2b4fc3f730 --profile ipam-account
   ```

   输出将显示 IPAM 中的分配。

   ```
   {
      "IpamPoolAllocations": [                                                                                      
           {                                                                                                        
               "Cidr": "2605:9cc0:409::/56",                                                                   
               "IpamPoolAllocationId": "ipam-pool-alloc-5f8db726fb9e4ff0a33836e649283a52",                                        
               "ResourceId": "vpc-00b5573ffc3b31a29",                                                               
               "ResourceType": "vpc",                                                                               
               "ResourceOwner": "123456789012"                                                                      
           }                                                                                                        
       ]                                                                                                            
   }
   ```

   重新运行命令并查找要删除的分配。在看到已从 IPAM 中删除分配之前，您无法继续清理和取消预置 IPAM 池 CIDR。

   ```
   aws ec2 get-ipam-pool-allocations --region us-west-2 --ipam-pool-id ipam-pool-0053b7d2b4fc3f730 --profile ipam-account
   ```

   输出将显示从 IPAM 中删除的分配。

   ```
   {
       "IpamPoolAllocations": []
   }
   ```

1. 删除 RAM 共享并禁用与 AWS Organizations 的 RAM 集成。完成《AWS RAM 用户指南》中 [删除 AWS RAM 中的资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-delete.html) 和 [禁用与 AWS Organizations 的资源共享](https://docs.aws.amazon.com/ram/latest/userguide/security-disable-sharing-with-orgs.html) 所述的步骤**，删除 RAM 共享并禁用与 AWS Organizations 的 RAM 集成。

   此步骤必须分别由 IPAM 账户和管理账户完成。要使用 AWS CLI 删除 RAM 共享并禁用 RAM 集成，请使用 ` --profile ipam-account` 和 ` --profile management-account` 选项。

1. 运行以下命令以取消预置区域池 CIDR。

   此步骤必须由 IPAM 账户完成。

   ```
   aws ec2 deprovision-ipam-pool-cidr --region us-east-1 --ipam-pool-id ipam-pool-0053b7d2b4fc3f730 --cidr 2605:9cc0:409::/48 --profile ipam-account
   ```

   在输出中，您将看到 CIDR 待定取消预置。

   ```
   {
       "IpamPoolCidr": {
           "Cidr": "2605:9cc0:409::/48",
           "State": "pending-deprovision"
       }
   }
   ```

   取消预置需要一些时间才能完成。继续运行命令，直到看到 CIDR 状态 **deprovisioned**（已取消预置）。

   ```
   aws ec2 get-ipam-pool-cidrs --region us-east-1 --ipam-pool-id ipam-pool-0053b7d2b4fc3f730 --cidr 2605:9cc0:409::/48 --profile ipam-account
   ```

   在输出中，您将看到 CIDR 待定取消预置。

   ```
   {
       "IpamPoolCidr": {
           "Cidr": "2605:9cc0:409::/48",
           "State": "deprovisioned"
       }
   }
   ```

1. 运行以下命令，以删除区域池。

   此步骤必须由 IPAM 账户完成。

   ```
   aws ec2 delete-ipam-pool --region us-east-1 --ipam-pool-id ipam-pool-0053b7d2b4fc3f730 --profile ipam-account
   ```

   在输出中，您可以看到 delete（删除）状态。

   ```
   {
       "IpamPool": {
           "OwnerId": "123456789012",
           "IpamPoolId": "ipam-pool-0053b7d2b4fc3f730",
           "SourceIpamPoolId": "ipam-pool-07f2466c7158b50c4",
           "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0053b7d2b4fc3f730",
           "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": "reg-ipv6-pool",
           "AutoImport": false,
           "Advertisable": true,
           "AddressFamily": "ipv6"
       }
   }
   ```

1. 运行以下命令以取消预置顶级池 CIDR。

   此步骤必须由 IPAM 账户完成。

   ```
   aws ec2 deprovision-ipam-pool-cidr --region us-east-1 --ipam-pool-id ipam-pool-07f2466c7158b50c4 --cidr 2605:9cc0:409::/48 --profile ipam-account
   ```

   在输出中，您将看到 CIDR 待定取消预置。

   ```
   {
       "IpamPoolCidr": {
           "Cidr": "2605:9cc0:409::/48",
           "State": "pending-deprovision"
       }
   }
   ```

   取消预置需要一些时间才能完成。运行以下命令检查取消预置的状态。

   ```
   aws ec2 get-ipam-pool-cidrs --region us-east-1 --ipam-pool-id ipam-pool-07f2466c7158b50c4 --profile ipam-account
   ```

   等到您看到 **deprovisioned**（取消预置）后再继续下一步。

   ```
   {
       "IpamPoolCidr": {                                                                                            
           "Cidr": "2605:9cc0:409::/48",                                                                         
           "State": "deprovisioned"                                                                           
       }                                                                                                            
   }
   ```

1. 运行以下命令以删除顶级池。

   此步骤必须由 IPAM 账户完成。

   ```
   aws ec2 delete-ipam-pool --region us-east-1 --ipam-pool-id ipam-pool-07f2466c7158b50c4 --profile ipam-account
   ```

   在输出中，您可以看到删除状态。

   ```
   {
       "IpamPool": {
           "OwnerId": "123456789012",
           "IpamPoolId": "ipam-pool-0053b7d2b4fc3f730",
           "SourceIpamPoolId": "ipam-pool-07f2466c7158b50c4",
           "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0053b7d2b4fc3f730",
           "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": "reg-ipv6-pool",
           "AutoImport": false,
           "Advertisable": true,
           "AddressFamily": "ipv6"
       }
   }
   ```

1. 运行以下命令以删除 IPAM。

   此步骤必须由 IPAM 账户完成。

   ```
   aws ec2 delete-ipam --region us-east-1 --ipam-id ipam-090e48e75758de279 --profile ipam-account
   ```

   在输出中，您将看到 IPAM 响应。这意味着 IPAM 已删除。

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

# 使用 IPAM 自带 IP 到 CloudFront
<a name="tutorials-byoip-cloudfront"></a>

借助使用全局服务的 IPAM BYOIP，您可以将自己的 IPv4 地址用于 CloudFront 等 AWS 全局服务。与区域 BYOIP 不同，您的 IP 地址将通过任播路由从多个边缘站点同时公布。

## 为什么要使用此功能？
<a name="why-use-this-feature"></a>
+ **维护 IP 允许列表**：使用现有批准的 IP 地址，而无需更新防火墙配置
+ **简化迁移**：无需更改 IP 基础设施即可从其他 CDN 迁移
+ **一致的品牌**：在迁移到 AWS 时保留现有的 IP 地址空间

## 此功能的使用对象
<a name="who-should-use-this-feature"></a>

需要使用自己的 IP 地址进行全球内容分发的组织：
+ 具有 IP 允许列表要求的大型企业
+ 使用现有 IP 地址从其他 CDN 迁移的公司
+ 具有严格安全策略且要求特定 IP 范围的组织

## 此功能的使用场景
<a name="when-to-use-this-feature"></a>

适用于全局服务的 BYOIP 适合以下使用场景：
+ 维护合作伙伴/客户的现有 IP 允许列表
+ 使用您的 IP 地址从其他 CDN 迁移
+ 满足特定 IP 范围的合规性要求

**注意**  
需要 /24 IPv4 CIDR 数据块。目前仅适用于 CloudFront。

## 先决条件
<a name="prerequisites"></a>

在开始之前，请完成以下步骤：
+ **IPAM 设置**：[将 IPAM 与 AWS Organization 中的账户集成](enable-integ-ipam.md)和[创建 IPAM](create-ipam.md)
+ **域验证**：[验证域控制权](tutorials-byoip-ipam-domain-verification-methods.md)
+ **创建顶级池**：按照[自带 IPv4 CIDR 到 IPAM](tutorials-byoip-ipam-console-ipv4.md) 中的第 1-2 步进行操作。

## 全局服务配置步骤
<a name="global-service-configuration-steps"></a>

以下步骤不同于标准区域 BYOIP 流程，并且将建立用于全球服务的模式：

### 第 1 步：为任播服务创建一个全局池
<a name="step-1-create-global-pool"></a>

为任播服务创建一个全局池，而不是区域池：

**控制台**  
使用控制台创建全局池：

1. 在 [https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/) 中打开 IPAM 控制台。

1. 在导航窗格中，选择**池**

1. 选择**创建池**

1. **源**：选择您的顶级 BYOIP 池

1. **区域设置**：选择**全局**

1. **服务**：选择**全局服务**（将在选择“全局”后显示）

1. **公有 IP 源**：选择 **BYOIP**

1. **要预调配的 CIDR**：指定您的 /24 CIDR 范围

1. 选择**创建池**

**CLI**  
使用 `aws ec2 create-ipam-pool` 并将区域设置为“Global”，将地址系列设置为“ipv4”。

然后使用 `aws ec2 provision-ipam-pool-cidr` 预调配该 CIDR。

**重要**  
您必须将完整的 /24 数据块分配给该池。您可以在此数据块中预调配更具体的范围，以满足不同用途的需要。

### 第 2 步：创建特定于服务的资源
<a name="step-2-create-service-specific-resources"></a>

对于 CloudFront，创建一个将使用您的 IPAM 池的任播 IP 列表。有关详细说明，请参阅 CloudFront BYOIP 文档（链接待定）。

**IPAM 集成的关键参数：**
+ **IP 地址类型**：请选择 **BYOIP**
+ **IPAM 池**：请选择第 1 步中的全局池
+ **IP 数量**：请输入 **3**（对于 CloudFront 为必需）

### 第 3 步：关联到服务资源
<a name="step-3-associate-with-service-resources"></a>

将您的任播静态 IP 列表关联到某个 CloudFront 分配。有关详细说明，请参阅 CloudFront BYOIP 文档（链接待定）。

**关键配置：**
+ 在分配设置中，请选择第 2 步中的任播 IP 列表

### 步骤 4：准备迁移
<a name="step-4-prepare-for-migration"></a>
+ **DNS TTL 下限**：请将记录的 DNS TTL 设置为 60 秒或更短
+ **传播等待**：新 TTL 在互联网上生效所需的时间

### 步骤 5：全球公布 CIDR
<a name="step-5-advertise-cidr-globally"></a>

使用 IPAM 全局公开命令：

**控制台**  
使用控制台公开 CIDR：

1. 在 [https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/) 中打开 IPAM 控制台。

1. 在导航窗格中，选择**池**

1. 选择您的全局池

1. 选择 **CIDR** 选项卡。

1. 选择您的 CIDR，然后选择**操作** > **公开 CIDR**

1. 确认公开

**CLI**  
使用您的 IPAM 池 ID 和 CIDR 执行 `aws ec2 advertise-ipam-byoip-cidr`。

**重要**  
在运行此命令之前，请撤回来自之前提供商的公开消息
将 DNS 记录更新为指向 CloudFront，以完成迁移

## 清理
<a name="cleanup"></a>

清理在本教程中创建的资源：
+ **删除 CloudFront 资源**：按照 CloudFront BYOIP 文档中的清理说明进行操作（链接待定）
+ **撤回 CIDR 并删除 IPAM 池**：按照[步骤 8：清除](tutorials-byoip-ipam-console-ipv4.md#tutorials-byoip-ipam-ipv4-console-cleanup)中的标准清理流程进行操作

**重要**  
请先删除 CloudFront 资源，然后再清理 IPAM，以避免造成服务中断。

# 教程：将 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) 中的步骤。
本教程的每个步骤都必须由以下两个 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 命名配置文件在 IAM 角色之间切换。[命名配置文件](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-using-profiles) 是您在将 `--profile` 选项与 AWS CLI 结合使用时引用的设置和凭证集合。有关如何为 AWS 账户创建 IAM 角色和命名配置文件的更多信息，请参阅[在 AWS CLI 中使用 IAM 角色](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html)。

为您将在本教程中使用的三个 AWS 账户分别创建一个角色和一个命名配置文件：
+ 为 IPAM 管理员 AWS 账户创建名为 `ipam-account` 的配置文件。
+ 为您所在企业中拥有 BYOIP CIDR 的 AWS 账户创建名为 `byoip-owner-account` 的配置文件。

创建 IAM 角色和命名配置文件后，请返回本页面并转至下一步。在本教程的其余部分中，您将注意到示例 AWS CLI 命令会将 `--profile` 选项与其中一个命名配置文件一起使用，以指示哪个账户必须运行该命令。

## 步骤 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 池必须是 `--locale` 选项与 BYOIP CIDR AWS 区域匹配的顶级池。您只能将 BYOIP 传输到顶级 IPAM 池。

**重要**  
创建池时，您必须包括 `--aws-service ec2`。您选择的服务将决定可传播 CIDR 的 AWS 服务。目前，唯一的选择是 `ec2`，这意味着从此池中分配的 CIDR 在 Amazon EC2 服务（适用于弹性 IP 地址）和 Amazon VPC 服务（适用于与 VPC 关联的 CIDR）中是可传播的。

**要使用 AWS CLI 为传输的 BYOIP CIDR 创建 IPv4 地址池**

1. 运行以下命令以创建 IPAM 池。请使用您在上一步中检索的 IPAM 的公有范围的 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 RAM 来共享 IPAM 池，以便其他 AWS 账户可以将现有 BYOIP IPV4 CIDR 传输到 IPAM 池并使用 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 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. （可选）如果要允许 **byoip-owner-account** 账户在传输完成后将 IP 地址 CIDRS 从 IPAM 池分配到公有 IPv4 池，请复制 `AWSRAMDefaultPermissionsIpamPool` 的 ARN 并创建第二个资源共享。`--resource-arns` 的值是您在上一部分中创建的 IPAM 池的 ARN。`--principals` 的值是 BYOIP 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. 在 [https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/) 以 **byoip-owner-account** 账户身份打开 IPAM 控制台。

1. 在导航窗格中，选择**池**。

1. 选择在本教程中创建和共享的顶级池。

1. 选择**操作** > **传输 BYOIP CIDR**。

1. 选择**传输 BYOIP CIDR**。

1. 选择您的 BYOIP CIDR。

1. 选择**预置**。

------
#### [ Command line ]

使用 AWS CLI 通过以下 AWS CLI 命令将 BYIP 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) 中创建了额外的资源共享，请重复前两个步骤以获取 `PoolShare2` 的第二个资源共享 ARN，然后删除第二个资源共享。

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

# 教程：为子网 IP 分配规划 VPC IP 地址空间
<a name="tutorials-subnet-planning"></a>

完成本教程以规划用于为 VPC 子网分配 IP 地址的 VPC IP 地址空间，并在子网和 VPC 级别监控与 IP 地址相关的指标。

**注意**  
本教程介绍如何在私有 IPAM 范围内向 VPC 和子网分配私有 IPv4 地址空间。您也可以使用 IPv6 CIDR 范围完成本教程，方法是在 VPC 控制台上使用 Amazon 提供的 IPv6 CIDR 块选项创建 VPC。

通过为子网规划 VPC IP 地址空间，您可以执行以下操作：
+ **规划和整理 VPC 的 IP 地址以分配给子网**：您可以将 VPC IP 地址空间划分为较小的 CIDR 块，并将这些 CIDR 块配置给具有不同业务需求的子网，例如在开发或生产子网中运行工作负载。
+ **简化 VPC 子网的 IP 地址分配**：规划和整理 VPC 的地址空间后，您可以选择网络掩码长度，而不必手动输入 CIDR。例如，如果开发人员正在创建用于托管开发工作负载的子网，他们需要为子网选择池和网络掩码长度，而IPAM 会自动将 CIDR 块分配给您的子网。

以下示例显示了池的层次结构，以及您将使用本教程中创建的结构：
+ 私有范围
  + 资源规划池（10.0.0.0/20）
    + 开发子网池（10.0.0.0/24）
      + 开发子网（10.0.0.0/28）
    + 生产子网池（10.0.0.1/24）
      + 生产子网（10.0.0.16/28）

**重要**  
资源规划池可用于将 CIDR 分配给子网，也可以作为源池，您可以在其中创建其他池。在本教程中，我们将资源规划池用作子网池的源池。
如果 VPC 预置了多个 CIDR，则可以使用同一 VPC 创建多个资源规划池；例如，如果一个 VPC 分配了两个 CIDR，则可以创建两个资源规划池，每个 CIDR 一个。每个 CIDR 一次可以分配给一个池。

## 第 1 步：创建 VPC
<a name="tutorials-subnet-planning-1"></a>

完成本部分中的步骤以创建用于子网 IP 地址规划的 VPC。有关创建 VPC 所需的 IAM 权限的更多信息，请参阅《Amazon VPC 用户指南》**中的 [Amazon VPC 策略示例](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-policy-examples.html)。

**注意**  
您可以使用现有 VPC 而不是创建新的 VPC，但本教程重点介绍使用手动分配的 CIDR 块配置 VPC，而不是 IPAM 自动分配的 CIDR 块的场景。

**创建 VPC**

1. 使用 IPAM 管理员账户打开 VPC 控制台，地址：[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 选择**创建 VPC**。

1. 输入 VPC 的名称，如“tool-vpc”。

1. 选择**IPv4 CIDR 手动输入**，然后输入 IPv4 CIDR 块。在本教程中，使用 10.0.0.0/20。

1. 跳过添加 IPv6 CIDR 块的选项。

1. 选择**创建 VPC**。

1. 使用 IPAM 管理员账户打开 IPAM 控制台，地址：[https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/)。

1. 在左侧导航窗格中，选择**资源**。

1. 等待您创建的 VPC 出现。这需要一定的时间，您可能需要刷新窗口才能看到它出现。VPC 必须先由 IPAM 发现，然后才能继续执行下一步。

## 步骤 2：创建资源规划池
<a name="tutorials-subnet-planning-2"></a>

完成本部分中的步骤以创建资源规划池。

**要创建资源规划池**

1. 使用 IPAM 管理员账户打开 IPAM 控制台，地址：[https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/)。

1. 在导航窗格中，选择**池**。

1. 选择私有作用域。

1. 选择**创建池**。

1. 在 **IPAM 范围**下，确保选中私有范围。

1. （可选）添加池的**名称标签**，如“资源规划池”。

1. 在**源**下，选择 **IPAM 范围**。

1. 在**资源规划**下，选择**规划 VPC 内的 IP 空间**，然后选择您在上一步中创建的 VPC。VPC 是用于向资源规划池配置 CIDR 的资源。

1. 在**要预置的 CIDR** 下，选择要为资源池预置的 VPC CIDR。您为资源规划池配置的 CIDR 必须与预置到 VPC 的 CIDR 相匹配。在本教程中，使用 10.0.0.0/20。

1. 选择**创建池**。

1. 创建池后，选择 **CIDR 选项卡**以查看已预置的 CIDR 的状态。刷新页面，等待 CIDR 状态从“待预置”变为“已预置”，然后再进入下一步。****

## 步骤 3：创建子网池
<a name="tutorials-subnet-planning-3"></a>

完成本部分中的步骤以创建两个子网池，它们将用于向子网分配 IP 空间。

**要创建子网池**

1. 使用 IPAM 管理员账户打开 IPAM 控制台，地址：[https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/)。

1. 在导航窗格中，选择**池**。

1. 选择私有作用域。

1. 选择**创建池**。

1. 在 **IPAM 范围**下，确保选中私有范围。

1. （可选）添加池的**名称标签**，如“开发子网池”。

1. 在**源**下，选择 **IPAM 池**，然后选择您在步骤 3 中创建的资源计划池。地址系列、资源规划配置和区域设置是自动从源池继承的。

1. 在**要预置的 CIDR** 下，选择要为子网池预置的 CIDR。在本教程中，使用 10.0.0.0/24。

1. 选择**创建池**。

1. 创建池后，选择 **CIDR 选项卡**以查看已预置的 CIDR 的状态。刷新页面，等待 CIDR 状态从“待预置”变为“已预置”，然后再进入下一步。****

1. 重复此过程以创建另一个名为“生产子网池”的子网。

此时，如果您想让其他 AWS 账户可以使用该子网池，则可以共享该子网池。有关如何执行此操作的说明，请参阅[使用 AWS RAM 共享 IPAM 池](share-pool-ipam.md)。然后返回此处完成教程。

## 步骤 4：创建子网
<a name="tutorials-subnet-planning-4"></a>

完成这些步骤以创建两个子网。

**要创建子网**

1. 使用适当的账户打开 VPC 控制台，地址：[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 选择**子网** > **创建子网**。

1. 选择您在本教程开始时创建的 VPC。

1. 输入子网的名称，如“tutorial-subnet”。

1. （可选）选择一个**可用区**。

1. 在 **IPv4 CIDR 块**下，选择 **IPAM 分配的 IPV4 CIDR 块**，然后选择开发子网池和 /28 网络掩码。

1. 选择**创建子网**。

1. 重复此过程以创建另一个子网。这次选择生产子网池和 /28 网络掩码。

1. 返回 IPAM 控制台并在左侧导航窗格中选择**资源**。

1. 查找您创建的子网池，然后等待您创建的子网出现在其下面。这需要一定的时间，您可能需要刷新窗口才能看到它出现。

本教程已完成。您可以根据需要创建其他子网池，也可以在 EC2 实例中启动到其中一个子网。

IPAM 会发布与子网中 IP 地址使用情况相关的指标。您可以根据 SubnetipUsage 指标设置 CloudWatch 警报，以便在 IP 利用率阈值被突破时采取行动。例如，如果您为子网分配了 /24 CIDR（256 个 IP 地址），并且您希望在 80% 的 IP 已被利用时收到通知，则可以设置 CloudWatch 警报，以便在达到该阈值时收到提醒。有关为子网 IP 使用情况创建警报的更多信息，请参阅 [创建警报的快速提示](cloudwatch-ipam-res-util.md#cloudwatch-ipam-res-util-tip)。

## 步骤 5：清除
<a name="tutorials-subnet-planning-5"></a>

完成以下步骤以删除您在本教程中创建的资源。

**清除资源**

1. 使用 IPAM 管理员账户打开 IPAM 控制台，地址：[https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/)。

1. 在导航窗格中，选择**池**。

1. 选择私有作用域。

1. 选择资源规划库，然后选择**操作** > **删除**。

1. 选择**级联删除**。资源规划池和子网池将被删除。这样做不会删除子网本身。子网将保留分配给自己的 CIDR，尽管这些 CIDR 将不再来自 IPAM 池。

1. 选择**删除**。

1. [删除子网](https://docs.aws.amazon.com/vpc/latest/userguide/subnet-deleting.html)。

1. [删除 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/delete-vpc.html)。

清理已完成。

# 从 IPAM 池中分配连续弹性 IP 地址
<a name="tutorials-eip-pool"></a>

IPAM 允许您向 IPAM 池预调配 Amazon 拥有的公有 IPv4 块，并将这些池中的[连续弹性 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html)分配给 AWS 资源。

连续分配的弹性 IP 地址是按顺序分配的公有 IPv4 地址。例如，如果 Amazon 为您提供了一个公有 IPv4 CIDR 块 `192.0.2.0/30`，而您从该 CIDR 块中分配了四个可用的公有 IPv4 地址，则四个连续弹性 IP 地址的示例是 `192.0.2.0`、`192.0.2.1`、`192.0.2.2` 和 `192.0.2.3`。

连续分配的弹性 IP 地址使您能够通过以下方式来简化安全和联网规则：
+ **安全管理**：使用连续的 IPv4 地址可以降低防火墙管理开销。您可以使用单个规则添加整个前缀，并在扩展时关联来自同一前缀的 IP，从而节省时间和精力。
+ **企业访问**：您可以使用整个 CIDR 块而不是一长串单独的公有 IPv4 地址，以简化与客户端共享的地址空间。这样就无需在应用程序在 AWS 上扩展时不断沟通 IP 变更。
+ **简化的 IP 管理**：使用连续的 IPv4 地址可以简化中央网络团队的公有 IP 管理，因为它减少了跟踪单个公有 IP 的需求，而是使他们能够专注于有限数量的 IP 前缀。

在本教程中，您将完成从 IPAM 池中分配连续弹性 IP 地址所需的步骤。您将使用 Amazon 提供的连续公有 IPv4 CIDR 块创建 IPAM 池，从池中分配弹性 IP 地址，并了解如何监控 IPAM 池的分配。

**注意**  
预调配 Amazon 拥有的公有 IPv4 CIDR 块会产生相关费用。有关更多信息，请参阅 [Amazon VPC 定价页面](https://aws.amazon.com//vpc/pricing/)上的 **Amazon 提供的连续 IPv4 块**选项卡。
本教程假设您想要[将 IPAM 用于单个账户](enable-single-user-ipam.md)以创建 IPAM。如果您想跨账户共享 Amazon 拥有的连续公有 IPv4 区，请先 [将 IPAM 与 AWS Organization 中的账户集成](enable-integ-ipam.md)，然后 [使用 AWS RAM 共享 IPAM 池](share-pool-ipam.md)。如果您与 AWS Organizations 集成，则可以选择创建[服务控制策略](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)，以防止取消预调配分配给池的连续 IPv4 块。
您无法将从 IPAM 池中分配的连续弹性 IP 地址[转移](https://docs.aws.amazon.com/vpc/latest/userguide/WorkWithEIPs.html#transfer-EIPs-intro)到其他 AWS 账户。相反，通过将 IPAM 与 AWS Organizations 集成，IPAM 允许跨 AWS 账户共享 IPAM 池（如上所述）。
您可以预调配的 Amazon 拥有的公有 IPv4 CIDR 块的数量及其大小有限制。有关更多信息，请参阅 [IPAM 的配额](quotas-ipam.md)。

**Topics**
+ [步骤 1：创建 IPAM](#tutorials-eip-pool-1)
+ [步骤 2：创建 IPAM 池并预置 CIDR](#tutorials-eip-pool-2)
+ [步骤 3：从池中分配弹性 IP 地址](#tutorials-eip-pool-3)
+ [步骤 4：将弹性 IP 地址与 EC2 实例相关联](#tutorials-eip-pool-4)
+ [步骤 5：跟踪和监控池使用情况](#track-monitor-eips-ipam)
+ [清理](#tutorials-eip-pool-cleanup)

## 步骤 1：创建 IPAM
<a name="tutorials-eip-pool-1"></a>

完成本部分中的步骤创建 IPAM。

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

**创建 IPAM**

1. 在 [https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/) 中打开 IPAM 控制台。

1. 在 AWS 管理控制台中，选择您要在其中创建 IPAM 的 AWS 区域。在主操作区域创建 IPAM。

1. 在服务主页上，选择**创建 IPAM**。

1. 选择 **Allow Amazon VPC IP Address Manager to replicate data from source account(s) into the IPAM delegate account**（允许 Amazon VPC IP 地址管理器将数据从源账户复制到 IPAM 委托账户中）。如果未选中此选项，则无法创建 IPAM。

1. 选择 **IPAM 等级**。有关每种套餐中提供的功能以及与套餐相关的费用的更多信息，请参阅 [Amazon VPC 定价页面](https://aws.amazon.com//vpc/pricing/)中的 IPAM 选项卡。

1. 在**运营区域**下，选择此 IPAM 可以在其中管理和发现资源的 AWS 区域。默认情况下，您要在其中创建 IPAM 的AWS区域被选为运营区域之一。例如，如果您在 AWS 区域 `us-east-1` 中创建此 IPAM，但是您希望稍后创建区域 IPAM 池，以便在 `us-west-2` 中向 VPC 提供 CIDR，请在此选择 `us-west-2`。如果忘记了运营区域，可以稍后返回并编辑 IPAM 设置。
**注意**  
如果您在免费等级中创建 IPAM，则可以为 IPAM 选择多个运营区域，但唯一可在运营区域中使用的 IPAM 功能是[公共 IP 洞察功能](view-public-ip-insights.md)。您无法跨 IPAM 运营区域中使用免费等级中的其他功能，例如 BYOIP。你只能在 IPAM 的主区域中只能使用这些功能。要跨运营区域使用所有 IPAM 功能，[请在高级等级中创建 IPAM](mod-ipam-tier.md)。

1. 选择**创建 IPAM**。

------
#### [ Command line ]

本部分的命令链接到 AWS CLI 参考文档。本文档提供了运行命令时可以使用的选项的详细说明。

使用 [create-ipam](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-ipam.html) 命令创建 IPAM：

```
aws ec2 create-ipam --region us-east-1
```

示例响应：

```
{
    "Ipam": {
        "OwnerId": "320805250157",
        "IpamId": "ipam-0755477df834ea06b",
        "IpamArn": "arn:aws:ec2::320805250157:ipam/ipam-0755477df834ea06b",
        "IpamRegion": "us-east-1",
        "PublicDefaultScopeId": "ipam-scope-01bc7290e4a9202f9",
        "PrivateDefaultScopeId": "ipam-scope-0a50983b97a7a583a",
        "ScopeCount": 2,
        "OperatingRegions": [
            {
                "RegionName": "us-east-1"
            }
        ],
        "State": "create-in-progress",
        "Tags": [],
        "DefaultResourceDiscoveryId": "ipam-res-disco-02cc5b34cc3f04f09",
        "DefaultResourceDiscoveryAssociationId": "ipam-res-disco-assoc-06b3a4dccfc81f7c1",
        "ResourceDiscoveryAssociationCount": 1,
        "Tier": "advanced"
    }
}
```

在下一步中，您将需要 PublicDefaultScopeId。有关范围的更多信息，请参阅 [IPAM 的工作原理](how-it-works-ipam.md)。

------

## 步骤 2：创建 IPAM 池并预置 CIDR
<a name="tutorials-eip-pool-2"></a>

完成本部分中的步骤创建 IPAM 池，您将从中分配弹性 IP 地址。

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

**如需创建池**

1. 在 [https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/) 中打开 IPAM 控制台。

1. 在导航窗格中，选择**池**。

1. 选择公有范围。有关范围的更多信息，请参阅 [IPAM 的工作原理](how-it-works-ipam.md)。

1. 选择**创建池**。

1. （可选）添加池的**名称标签**和池的**描述**。

1. 在**源**下，选择 **IPAM 范围**。

1. 在**地址系列**下，选择 **IPv4**。

1. 在**资源规划**下，保持选中**在范围内规划 IP 空间**。

1. 在 **Locale**（区域设置）下，选择池的区域设置。区域设置是您希望此 IPAM 池可用于分配的 AWS 区域。可用的选项来自您在创建 IPAM 时选择的运营区域。

1. 在**服务**下，选择 **EC2 (EIP/VPC)**。您选择的服务将决定传播 CIDR 的 AWS 服务。目前，唯一的选择是 **EC2（EIP/VPC）**，这意味着从此池中分配的 CIDR 将在 Amazon EC2 服务（适用于弹性 IP 地址）中传播。

1. 在**公有 IP 来源**下，选择 **Amazon 拥有**。

1. 在**要预调配的 CIDR** 下，选择**添加 Amazon 拥有的公有 CIDR**。选择介于 `/29`（8 个 IP 地址）和 `/30`（4 个 IP 地址）之间的**网络掩码**长度。默认情况下，您最多可以添加 2 个 CIDR。有关提高 Amazon 提供的连续公有 IPv4 CIDR 限制的信息，请参阅 [IPAM 的配额](quotas-ipam.md)。

1. 将**配置此池的分配规则设置**保持未选中状态。

1. （可选）为池选择 **Tags**（标签）。

1. 选择**创建池**。

在继续之前，请确保已预置此 CIDR。您可以在池详细信息页面的 **CIDR** 选项卡中查看资源调配状态。

------
#### [ Command line ]

**如需创建池**

1. 使用 [create-ipam-pool](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-ipam-pool.html) 命令创建 IPAM 池。区域设置是您希望此 IPAM 池可用于分配的 AWS 区域。可用的选项来自您在创建 IPAM 时选择的运营区域。

   ```
   aws ec2 create-ipam-pool --region us-east-1 --ipam-scope-id ipam-scope-01bc7290e4a9202f9 --address-family ipv4 --locale us-east-1 --aws-service ec2 --public-ip-source amazon
   ```

   带有 `create-in-progress` 状态的示例响应：

   ```
   {                                                                                               
       "IpamPool": {                                                                           
           "OwnerId": "320805250157",                                                          
           "IpamPoolId": "ipam-pool-07ccc86aa41bef7ce",                                        
           "IpamPoolArn": "arn:aws:ec2::320805250157:ipam-pool/ipam-pool-07ccc86aa41bef7ce",   
           "IpamScopeArn": "arn:aws:ec2::320805250157:ipam-scope/ipam-scope-01bc7290e4a9202f9",
           "IpamScopeType": "public",                                                          
           "IpamArn": "arn:aws:ec2::320805250157:ipam/ipam-0755477df834ea06b",                 
           "IpamRegion": "us-east-1",                                                          
           "Locale": "us-east-1",                                                              
           "PoolDepth": 1,                                                                     
           "State": "create-in-progress",                                                      
           "AutoImport": false,                                                                
           "AddressFamily": "ipv4",                                                            
           "Tags": [],                                                                         
           "AwsService": "ec2",                                                                
           "PublicIpSource": "amazon"                                                          
       }                                                                                       
   }
   ```

1. 使用 [describe-ipam-pools](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-ipam-pools.html) 命令检查池是否已成功创建。

   ```
   aws ec2 describe-ipam-pools --region us-east-1 --ipam-pool-ids ipam-pool-07ccc86aa41bef7ce
   ```

   带有 `create-complete` 状态的示例响应：

   ```
   {                                                                                               
       "IpamPools": [
           {
               "OwnerId": "320805250157",
               "IpamPoolId": "ipam-pool-07ccc86aa41bef7ce",
               "IpamPoolArn": "arn:aws:ec2::320805250157:ipam-pool/ipam-pool-07ccc86aa41bef7ce",
               "IpamScopeArn": "arn:aws:ec2::320805250157:ipam-scope/ipam-scope-01bc7290e4a9202f9",
               "IpamScopeType": "public",
               "IpamArn": "arn:aws:ec2::320805250157:ipam/ipam-0755477df834ea06b",
               "IpamRegion": "us-east-1",
               "Locale": "us-east-1",
               "PoolDepth": 1,
               "State": "create-complete",
               "AutoImport": false,
               "AddressFamily": "ipv4",
               "Tags": [],
               "AwsService": "ec2",
               "PublicIpSource": "amazon"
           }
       ]
   }
   ```

1. 使用 [provision-ipam-pool-cidr](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/provision-ipam-pool-cidr.html) 命令向池预置 CIDR。选择介于 `/29`（8 个 IP 地址）和 `/30`（4 个 IP 地址）之间的 `--netmask-length`。默认情况下，您最多可以添加 2 个 CIDR。有关提高 Amazon 提供的连续公有 IPv4 CIDR 限制的信息，请参阅 [IPAM 的配额](quotas-ipam.md)。

   ```
   aws ec2 provision-ipam-pool-cidr --region us-east-1 --ipam-pool-id ipam-pool-07ccc86aa41bef7ce --netmask-length 29
   ```

   带有 `pending-provision` 状态的示例响应：

   ```
   {                                                                                               
       "IpamPoolCidr": {
           "State": "pending-provision",
           "IpamPoolCidrId": "ipam-pool-cidr-01856e43994df4913b7bc6aac47adf983",
           "NetmaskLength": 29
       }
   }
   ```

1. 在继续之前，请确保已预置此 CIDR。您可以使用 [get-ipam-pool-cidrs](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/get-ipam-pool-cidrs.html) 命令查看预置状态。

   ```
   aws ec2 get-ipam-pool-cidrs --region us-east-1 --ipam-pool-id ipam-pool-07ccc86aa41bef7ce
   ```

   带有 `provisioned` 状态的示例响应：

   ```
   {                                                                                               
       "IpamPoolCidrs": [
           {
               "Cidr": "18.97.0.40/29",
               "State": "provisioned",
               "IpamPoolCidrId": "ipam-pool-cidr-01856e43994df4913b7bc6aac47adf983",
               "NetmaskLength": 29
           }
       ]
   }
   ```

------

## 步骤 3：从池中分配弹性 IP 地址
<a name="tutorials-eip-pool-3"></a>

完成本部分中的步骤，以从池中分配弹性 IP 地址。

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

按照《Amazon EC2 用户指南》**中的[分配弹性 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-eips.html#using-instance-addressing-eips-allocating)中的步骤分配地址，但请注意以下几点：
+ 确保您的 EC2 控制台所在的 AWS 区域与您在步骤 2 中创建池时选择的区域设置选项相匹配。
+ 选择地址池时，选择**使用 IPv4 IPAM 池分配**选项，然后选择您在步骤 1 中创建的池。

------
#### [ Command line ]

使用 [allocate-address](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/allocate-address.html) 命令从池中分配一个地址。您使用的 `--region` 必须与您在步骤 2 中创建池时选择的 `-locale` 选项相匹配。包括您在 `--ipam-pool-id` 中在步骤 2 中创建的 IPAM 池的 ID。

```
aws ec2 allocate-address --region us-east-1 --ipam-pool-id ipam-pool-07ccc86aa41bef7ce
```

示例响应：

```
{                                                    
    "PublicIp": "18.97.0.41",                        
    "AllocationId": "eipalloc-056cdd6019c0f4b46",    
    "PublicIpv4Pool": "ipam-pool-07ccc86aa41bef7ce", 
    "NetworkBorderGroup": "us-east-1",               
    "Domain": "vpc"                                  
}
```

或者，您也可以使用 `--address` 选项在 IPAM 池中选择特定的 `/32`。

```
aws ec2 allocate-address --region us-east-1 --ipam-pool-id ipam-pool-07ccc86aa41bef7ce --address 18.97.0.41
```

示例响应：

```
{                                                    
    "PublicIp": "18.97.0.41",                        
    "AllocationId": "eipalloc-056cdd6019c0f4b46",    
    "PublicIpv4Pool": "ipam-pool-07ccc86aa41bef7ce", 
    "NetworkBorderGroup": "us-east-1",               
    "Domain": "vpc"                                  
}
```

有关更多信息，请参阅《Amazon EC2 用户指南》**中的[分配弹性 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-eips.html#using-instance-addressing-eips-allocating)。

------

## 步骤 4：将弹性 IP 地址与 EC2 实例相关联
<a name="tutorials-eip-pool-4"></a>

完成本部分中的步骤将弹性 IP 地址与 EC2 实例相关联。

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

按照《Amazon EC2 用户指南》**中的[关联弹性 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-eips.html#using-instance-addressing-eips-associating)中的步骤从 IPAM 池中分配弹性 IP 地址，但请注意以下几点：使用 AWS 管理控制台选项时，您关联弹性 IP 地址所在的 AWS 区域必须与您在步骤 2 中创建池时选择的区域设置选项相匹配。

------
#### [ Command line ]

使用 [associate-address](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/allocate-address.html) 命令将弹性 IP 地址与实例相关联。您关联弹性 IP 地址所在的 `--region` 区域必须与您在步骤 2 中创建池时选择的 `--locale` 选项匹配。

```
aws ec2 associate-address --region us-east-1 --instance-id i-07459a6fca5b35823 --public-ip 18.97.0.41
```

示例响应：

```
{                                                
    "AssociationId": "eipassoc-06aa85073d3936e0e"
}
```

有关更多信息，请参阅《Amazon EC2 用户指南》**中的[将弹性 IP 地址与实例或网络接口相关联](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-instance-addressing-eips-associating)。

------

## 步骤 5：跟踪和监控池使用情况
<a name="track-monitor-eips-ipam"></a>

从 IPAM 池中分配弹性 IP 地址之后，您可以跟踪和监控 IPAM 池的分配：

------
#### [ AWS Management Console ]
+ 在 IPAM 控制台的**分配**选项卡中查看 IPAM 池详细信息。从 IPAM 池分配的任何弹性 IP 地址的**资源类型**均为 **EIP**。
+ 使用[公共 IP 洞察功能](view-public-ip-insights.md)：
  + 在**公有 IP 类型**下，按 **Amazon 拥有的 EIP** 进行筛选。这显示了分配给 Amazon 拥有的弹性 IP 地址的公有 IPv4 地址的总数。如果您按此衡量标准进行筛选并滚动到页面底部的**公有 IP 地址**，则将看到您分配的弹性 IP 地址。
  + 在 **EIP 使用情况**下，按**Amazon 拥有的关联的 EIP**或 **Amazon 拥有的未关联的 EIP** 进行筛选。这将显示您在 AWS 账户中分配且将其与 EC2 实例、网络接口或 AWS 资源关联或未关联的弹性 IP 地址总数。如果您按此衡量标准进行筛选并滚动到页面底部的**公有 IP 地址**，您将会看到有关已筛选资源的详细信息。
  + 在 **Amazon 拥有的 IPv4 连续 IP 使用情况**下，监控一段时间内连续的公有 IPv4 地址使用情况以及 Amazon 拥有的相关的 IPv4 IPAM 池。
+ 使用 Amazon CloudWatch 跟踪和监控与 Amazon 提供的已预调配到 IPAM 池的连续公有 IPv4 区块相关的指标。有关特定于连续 IPv4 区块的可用指标，请参阅 [IPAM 指标](cloudwatch-ipam-ip-address-usage.md) 下方的**公有 IP 指标**。除查看指标外，您还可以在 Amazon CloudWatch 中创建警报，以便在达到阈值时通知您。使用 Amazon CloudWatch 创建告警和设置通知不在本教程的范围内。有关更多信息，请参阅 *Amazon CloudWatch 用户指南*中的[使用 Amazon CloudWatch 警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。

------
#### [ Command line ]
+ 使用 [get-ipam-pool-allocations](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-ipam-pool-allocations.html) 命令查看 IPAM 池分配。从 IPAM 池分配的任何弹性 IP 地址的**资源类型**均为 **eip**。

  ```
  aws ec2 get-ipam-pool-allocations --region us-east-1 --ipam-pool-id ipam-pool-07ccc86aa41bef7ce
  ```

  示例响应：

  ```
  {
       "IpamPoolAllocations": [
          {
              "Cidr": "18.97.0.40/32",
              "IpamPoolAllocationId": "ipam-pool-alloc-0bd07df786e8148aba2763e2b6c1c44bd",
              "ResourceId": "eipalloc-0c9decaa541d89aa9",
              "ResourceType": "eip",
              "ResourceRegion": "us-east-1",
              "ResourceOwner": "320805250157"
          }
      ]
  }
  ```
+ 使用 Amazon CloudWatch 跟踪和监控与 Amazon 提供的已预调配到 IPAM 池的连续公有 IPv4 区块相关的指标。有关特定于连续 IPv4 区块的可用指标，请参阅 [IPAM 指标](cloudwatch-ipam-ip-address-usage.md) 下方的**公有 IP 指标**。除查看指标外，您还可以在 Amazon CloudWatch 中创建警报，以便在达到阈值时通知您。使用 Amazon CloudWatch 创建告警和设置通知不在本教程的范围内。有关更多信息，请参阅 *Amazon CloudWatch 用户指南*中的[使用 Amazon CloudWatch 警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。

------

本教程现已完成。您已经使用 Amazon 提供的连续公有 IPv4 CIDR 块创建 IPAM 池，从池中分配弹性 IP 地址，并了解了如何监控 IPAM 池的分配。继续下一部分以删除您在本教程中创建的资源。

## 清理
<a name="tutorials-eip-pool-cleanup"></a>

按照本部分中的步骤清除您在本教程中创建的资源。

**步骤 1：解除弹性 IP 地址的关联**

完成《Amazon EC2 用户指南》**中的[解除弹性 IP 地址的关联](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-eips.html#using-instance-addressing-eips-associating-different)的步骤，以解除弹性 IP 地址的关联。

**步骤 2：释放弹性 IP 地址**

完成《Amazon EC2 用户指南》**中的[释放弹性 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing-eips-releasing.html)的步骤，从公有 IPv4 池释放弹性 IP 地址。

**步骤 3：从 IPAM 池中取消预调配 CIDR**

完成 [从池中取消预置 CIDR](depro-pool-cidr-ipam.md) 中的步骤，从 IPAM 池中取消预调配 Amazon 拥有的公有 CIDR。此步骤是删除池所必需的。在此步骤完成之前，您需要为 Amazon 提供的连续 IPv4 块付费。

**步骤 4：删除 IPAM 池**

完成 [删除池](delete-pool-ipam.md) 中的步骤以删除 IPAM 池。

**步骤 5：删除 IPAM**

完成 [删除 IPAM](delete-ipam.md) 中的步骤以删除 IPAM。

本教程清理已完成。