为了让 S3 正常工作,我应该要求系统管理员打开哪个 IP 范围?

为了让 S3 正常工作,我应该要求系统管理员打开哪个 IP 范围?

我为 Raspberry Pi 编写了一些程序,一些小公司对此很感兴趣。我向他们出售了预配置的 Raspberry Pi,上面有我的程序,除了其中一家公司外,其他公司都可以使用它。他们的政策非常严格,这是可以理解的。

我的程序使用亚马逊的 S3 服务。我已给出说明,说明需要打开哪些端口和服务才能使程序正常运行并访问 S3,系统管理员对所有操作都表示同意,但有一件事除外:他们不能允许端口 443 访问整个互联网。他们说,我需要指定 IP 范围。

我做了一些研究,发现 S3 似乎需要很大的 IP 范围才能工作,而且所需的 IP 地址不断增加。我发现的大多数文档都清楚地说明了“端口 80 和端口 443 需要打开”,并且 S3 服务器的 IP 地址各不相同。

您对我的建议有什么建议吗?是否有可以通过域名 (*.amazonaws.com) 进行过滤的防火墙?或者我还能做些什么?是否有定期更新的 S3 官方 IP 范围列表?

非常感谢您的任何帮助。谢谢。

答案1

在开始构建允许的 IP 范围之前,请先确定区域。S3 区域列表可用这里

假设您需要一个 IP 范围s3-us-west-2.amazonaws.com

您可以在Linux系统上执行以下命令来获取它,或者在其他系统上执行等效命令。

获取域名的 IP 地址:

$ host s3-us-west-2.amazonaws.com
s3-us-west-2.amazonaws.com has address 54.231.161.248

域将有多个与之关联的 IP 地址,这些地址可能位于不同的网络中。尝试多次运行此命令,以查看返回的 IP 地址是否位于同一网络中。如果不是,请尝试识别来自不同网络的 IP,并对所有这些 IP 运行以下命令。遗憾的是,无法要求 DNS 服务器返回与特定域关联的所有 A 记录。

运行whois以获取有关IP地址的信息:

$ whois 54.231.161.248
...
NetRange:       54.230.0.0 - 54.231.255.255
CIDR:           54.230.0.0/15
...

Whois 输出将包含大量您不需要的额外信息,并且不同 IP 地址的输出可能不同。但是您应该能够在其输出中找到 IP 范围。

替代方法:

亚马逊有一个论坛邮政其中列出了他们的 IP 范围并定期更新,因此您也可以使用它。

因为这些 IP 范围会随时间而变化,理想情况下,您需要一个脚本来为您探测它们,并在发现新 IP 时发出通知。如下面的评论所述,您可能不希望在未先确认 IP 范围正确的情况下更新防火墙配置。

答案2

亚马逊现在在此处发布了每个服务的自动更新的 IP 范围列表:https://ip-ranges.amazonaws.com/ip-ranges.json- 看http://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html了解语义以及如何获得变更通知。

相关内容