Google maps 在私有谷歌访问环境中为我们限制谷歌地图API密钥

Google maps 在私有谷歌访问环境中为我们限制谷歌地图API密钥,google-maps,networking,google-cloud-platform,Google Maps,Networking,Google Cloud Platform,我有一个应用程序在GCP上的VM中运行,没有外部IP地址。该应用程序位于启用了“谷歌私有访问”的专有网络内,允许该应用程序使用谷歌地图API,而无需公共互联网访问 我已经创建了一个API密钥,它可以访问地理编码API,并且在没有IP限制的情况下工作。但是,当我尝试为我的虚拟机(172.16.0.0/24)限制CIDR的密钥时,我从google返回了一个错误,如下所示: # curl "https://maps.googleapis.com/maps/api/geocode/json?a

我有一个应用程序在GCP上的VM中运行,没有外部IP地址。该应用程序位于启用了“谷歌私有访问”的专有网络内,允许该应用程序使用谷歌地图API,而无需公共互联网访问

我已经创建了一个API密钥,它可以访问地理编码API,并且在没有IP限制的情况下工作。但是,当我尝试为我的虚拟机(172.16.0.0/24)限制CIDR的密钥时,我从google返回了一个错误,如下所示:

# curl "https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=${GOOGLE_MAPS_API_KEY}"
{
   "error_message" : "This IP, site or mobile application is not authorized to use this API key. Request received from IP address fda3:e722:ac3:10:4a:dc74:ac10:5, with empty referer",
   "results" : [],
   "status" : "REQUEST_DENIED"
}

我不确定IP是从哪里来的,我假设它是谷歌用来将请求保持在GCP内而不是通过互联网发出的基础设施的一部分。但我不清楚输入哪些值可以安全地限制密钥的使用。

似乎您正在云环境中发出地理编码API web请求。根据API,web服务的API密钥只支持IP地址限制。但是,IP限制可能是不切实际的,例如在依赖
动态
IP地址的移动应用程序和云环境中。在这些场景中使用地图Web服务API时,您可以使用以下一种或多种技术保护应用程序:

  • 代理服务器
  • 混淆
  • 钉住
虽然我在虚拟机方面不是专家,但虚拟机也可能有一个静态IP,这是您在响应中可以看到的(fda3:e722:ac3:10:4a:dc74:ac10:5)。确认这一点的一种方法是使用该IP地址限制您的API密钥,并查看它是否在重新启动VM后仍然有效


另外,我注意到您提到可以使用Maps API服务,而无需公共互联网接入。所以有可能正在进行一些下载。说到这一点,请注意3.2.3(a.无刮擦)中的规定。

我不太清楚您是如何设置专用网络的,因为这似乎主要是api调用之间的差异。请您详细说明,并分享您可能关注的任何文档或网页,好吗?我在下一个链接中发现,您可以将199.36.153.8/30设置为一个范围,但我不确定文档是否描述了您的设置。对我的配置最好的描述是:应用程序请求将来自图中的VM A1。您只需在“接受来自这些服务器IP地址的请求”部分复制并粘贴该值(fda3:e722:ac3:10:4a:dc74:ac10:5)当你调用地理编码API时,消息应该停止出现。是的,我试过了,但它一直在变化,我不知道它是从哪里得到的