如何使用 Amazon Web Services (AWS) 中的 API 获取特定帐户的 public IP 地址

how to get public IP addresses for a specific account using APIs in Amazon Web Services (AWS)

我想检索已分配给 Amazon Web Services 帐户的所有 public IP 地址。

有两种类型的 public IP 地址:

  • 弹性 IP 地址(静态)
  • 自动分配的 IP 地址(如果实例停止和启动可能会发生变化)

此外,许多不同的服务都分配有 IP 地址:

  • 亚马逊 EC2 实例
  • Amazon RDS 实例
  • Amazon Elasticache 实例
  • Amazon Redshift 实例
  • Amazon EMR 主节点
  • Elastic Load Balancer(IP 地址发生变化,永远不应 cached/stored)
  • 等等

您需要对每个单独的服务执行 describe 命令以检索 IP 地址信息。 没有可以跨所有服务检索此信息的命令。

您可以使用 AWS Config configuration snapshot -- 它可能包含您为大多数服务寻找的信息。

示例:获取弹性 IP 地址

获取弹性 IP 地址(分配给 EC2 实例的静态地址)列表的最简单方法是使用 AWS Command-Line Interface (CLI), which has a describe-addresses 命令:

aws ec2 describe-addresses --region ap-southeast-2

获取实例 ID 和 IP 地址列表:

$ aws ec2 describe-addresses --region ap-southeast-2 --query 'Addresses[*].[InstanceId,PublicIp]' --output text

i-0c9c9394b3583afdc 54.222.207.37
i-0ef605853622f705e 54.79.149.39

需要针对每个区域分别发出该命令。 (您可以创建一个循环遍历它们的脚本。)