如何在同一区域的 AWS 账户之间转移弹性 IP 地址?
我使用 Amazon 弹性 IP 地址,我想将该地址转移到另一个 AWS 账户。
概述
要在同一 AWS 区域的账户之间转移弹性 IP 地址,请使用以下任一方法:
- Amazon Elastic Compute Cloud(Amazon EC2)控制台
- Amazon EC2 API
当您转移弹性 IP 地址时,源账户和目标账户之间会有一个两步握手操作。源账户可以是标准 AWS 账户或 AWS Organizations 账户。当源账户开始发起转移时,目标账户有 7 天的时间接受转移。否则,弹性 IP 地址将返回其原始所有者。
AWS 不会通知目标账户存在待处理的弹性 IP 地址转移请求。为了便于在规定时间内完成转移,源账户所有者必须告知目标账户所有者此请求。
解决方法
使用 Amazon EC2 控制台
有关如何通过 Amazon EC2 控制台发送转移请求的步骤及其先决条件,请参阅激活弹性 IP 地址转移。
在您发送转移请求后,转移账户的所有者必须接受该请求。有关如何在 Amazon EC2 控制台中完成转移的步骤,请参阅接受转移的弹性 IP 地址。
使用 AWS CLI 转移单个弹性 IP 地址
注意: 如果您在运行 AWS 命令行界面(AWS CLI)命令时收到错误,请确保您使用的是最新版本的 AWS CLI。要验证您是否正确配置了 AWS CLI,请参阅配置 AWS CLI。
在以下示例用例中,源账户 A(111111111111)正在向目标账户 B(222222222222)转移弹性 IP 地址。
在下面的命令中,请将 ELASTIC_IP 替换为您的弹性 IP 地址。将 us-east-1 替换为您的 AWS 区域。
1. 在原账户中,使用 Amazon EC2 控制台或 AWS CLI 获取弹性 IP 地址的 AllocationId。对于 AWS CLI,请使用 describe-addresses API 调用:
aws ec2 describe-addresses --filters "Name=public-ip,Values=ELASTIC_IP" --region us-east-1 { "Addresses": [ { "PublicIp": "ELASTIC_IP", "AllocationId": "eipalloc-1111111111111111", "Domain": "vpc", "PublicIpv4Pool": "amazon", "NetworkBorderGroup": "us-east-1" } ] }
2. 在源账户中,检查弹性 IP 地址是否存在任何现有或待处理的地址转移请求。要执行此操作,请查看 AllocationId(在本例中为 eipalloc-1111111111111111):
aws ec2 describe-address-transfers --query "AddressTransfers[?AllocationId=='eipalloc-11111111111111111']" --region us-east-1 [ ]
在此示例中,没有任何现有或待处理的地址转移请求。这意味着您可以继续进行新的转移。
3. 使用 enable-address-transfer API 调用启动地址转移:
aws ec2 enable-address-transfer --allocation-id eipalloc-11111111111111111 --transfer-account-id 222222222222 --region us-east-1 "AddressTransfer": { "PublicIp": "3.", "AllocationId": "eipalloc-11111111111111111", "TransferAccountId": "222222222222", "TransferOfferExpirationTimestamp": "2022-10-28T08:44:41+00:00", "AddressTransferStatus": "pending" } }
4. 通知目标账户所有者弹性 IP 地址转移处于待处理状态,他们必须接受该转移。要接受转移,目标账户所有者使用 accept-address-transfer API 调用。
注意:目标账户看不到处于待处理状态的弹性 IP 地址。这是一种安全保障功能,以防您不小心将 IP 地址发送到错误的账户。在这种情况下,您可以在另一个账户看到相关 IP 地址之前取消转移。
aws ec2 accept-address-transfer --address ELASTIC_IP --region us-east-1 "AddressTransfer": { "PublicIp": "ELASTIC_IP", "AllocationId": "eipalloc-11111111111111111", "TransferAccountId": "222222222222", "TransferOfferExpirationTimestamp": "2022-10-28T08:44:41+00:00", "AddressTransferStatus": "accepted" } }
如果接受失败,您会看到以下错误之一:
- AddressLimitExceeded
- InvalidTransfer.AddressCustomPtrSet
- InvalidTransfer.AddressAssociated
要排除这些错误,请参阅接受转移的弹性 IP 地址。
5. 成功转移弹性 IP 地址后,目标账户可以使用 describe-addresses API 来确认转移:
**注意:**成功转移会为转移所有者账户中的弹性 IP 地址生成新的 AllocationId。
aws ec2 describe-addresses --filters "Name=public-ip,Values=ELASTIC_IP" --region us-east-1 { "Addresses": [ { "PublicIp": "ELASTIC_IP", "AllocationId": "eipalloc-22222222222222222", "Domain": "vpc", "PublicIpv4Pool": "amazon", "NetworkBorderGroup": "us-east-1" } ] }
6. 源账户可以使用 describe-address-transfers API 来确认转移成功:
aws ec2 describe-address-transfers --query "AddressTransfers[?AllocationId=='eipalloc-11111111111111111']" --region us-east-1 [ { "PublicIp": "ELASTIC_IP", "AllocationId": "eipalloc-11111111111111111", "TransferAccountId": "222222222222", "TransferOfferExpirationTimestamp": "2022-10-28T10:44:41+00:00", "AddressTransferStatus": "accepted" } ]
相关信息
相关内容
- 已提问 1 年前lg...
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 10 个月前
- AWS 官方已更新 10 个月前