【问题标题】:Checking for internet connection in VPC/ subnet using Boto3使用 Boto3 检查 VPC/子网中的互联网连接
【发布时间】:2019-12-09 07:16:07
【问题描述】:

我需要能够查看一个帐户中的所有 VPC,并查​​看哪些通过 NAT 网关/互联网网关/VPC 对等连接访问互联网。

我考虑过尝试查看每个 VPC 路由表,手动检查是否存在上述任何连接,然后我不确定。 我曾考虑过以某种方式尝试 Ping,但这似乎不可行。 有没有人有这样做的经验或对更好的方法有任何想法? 谢谢!

【问题讨论】:

  • 这还不清楚。您如何定义对 Internet 的访问?您是否想查明您的 VPC 中的某些资源是否可以访问 Internet?如果是这样,您还需要检查 SG、NACL 等。或者您是否想查明某个子网是否有通往 Internet 的路由?另请注意,路由表附加到子网,而不是 VPC。您的 VPC 中可以有多个子网,其中一些具有到 Internet 的路由,而另一些则没有,无论是入口还是出口。
  • 你如何定义“可以上网”?如果您的意思是“可能有 Internet 访问权限”,那么只需选择任何具有 Internet 网关的 VPC。如果您需要了解每个特定资源,则必须检查路由表、安全组、NACL 和实例上安装的实际软件(例如,它可能配置了防火墙)。
  • AWS 目前正在开发一个名为 provable-security (aws.amazon.com/de/security/provable-security) 的项目,该项目可能已经能够确定互联网的可访问性……我不确定。我只知道您可以使用 AWS Inspector 的网络可达性测试 (docs.aws.amazon.com/inspector/latest/userguide/…) 测试另一个方向,因为这是他们在 AWS 安全专业认证中教给我们的内容。

标签: amazon-web-services amazon-ec2 aws-sdk boto3


【解决方案1】:

当然,您可以检查路由表和所有相关资源,但您并不能真正证明您可以通过它访问互联网。
为了证明这一点,您需要从您的 VPC 中的资源访问 Internet 上的某些内容。

所以我建议您按需创建一个 EC2 实例,通过 SSH 访问它并在此实例中执行 curl(或类似的东西)。
如果curl 给您预期的响应,则证明您可以访问互联网。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-15
    相关资源
    最近更新 更多