我在 Google Cloud Functions 上运行了一些服务,需要连接到 AWS 上的端点。由于没有固定的 IP 集可以列入白名单,您能否分享一下如何最好地处理这个问题的想法?我理解可以按照说明列出 IP这里,但请分享关于动态处理此问题/监控 IP 变化的想法。
亚马逊提供了可以订阅的 sns 主题,其中列出了所有 AWS IP,并且我们有使用 lambda 函数订阅其 sns 主题的用例,以使我们的安全组保持最新状态。但试图找出与谷歌打交道以满足类似需求的最佳方法。
答案1
保护传入流量的常用方法有三种:
- 位置 — 流量的 IP 地址。
- 谁——流量的身份(OAuth 身份令牌等)
- 什么 - 流量拥有的秘密(密钥、API 密钥等)。
对于 Google Cloud Functions,您无法可靠地使用第一种方法。Google 尚未发布 Cloud Function IP 网络块。很容易确定 Cloud Functions 来自哪些网络块,但其中包括许多其他 Google Cloud 服务。
Google Cloud Functions 支持--service-account
使用服务帐户在 HTTP“authorization: bearer”标头中提供 OAuth 身份令牌的部署选项。这是 GCP 世界中验证身份的常规方法(OAuth)。
第三种方法(密钥)是您想要的任何方法。您可以创建自定义标头、自定义主体负载等,并包含您的密钥。
Google Cloud Functions 调用的端点或端点前面的网关需要验证您正在使用的方法。