我正在尝试禁用Private Google Access,这可以在子网上实现,但不能用于无服务器VPC接入连接器。或者,如果可以禁用云NAT上的私有访问,我相信这也可以工作。对于这两个选项中的任何一个都有什么选择吗?
原因是,我需要云函数请求使用静态ip作为白名单。这对于非Google服务工作正常,但是GCP服务无法识别ip,这可能是因为Private Google Access在GCP网络上内部路由流量。
发布于 2020-09-17 02:47:17
我认为这是不可能的。主要是因为谷歌一次又一次地说:不要相信网络。
正确的模式是使用IAM授权来达到私有功能。
问题出在您的外部呼叫。同样,最好的方法是使用IAM,在非Google环境中部署一个服务帐户和一个服务帐户密钥文件。然而,并不是所有的系统都符合这一点。所以,你可以想象像这样的事情
External environment --> Cloud Function IP Check --IAM--> Private Cloud Function
^
|
Google environment ----------------------IAM------------------
您可以使用函数来检查IP,然后私下(使用自己的服务帐户凭据)调用私有函数;就像代理一样。
其他解决方案
如果您真的想只使用IP进行身份验证,即使不推荐这样做,我认为您也可以使用serverless NEG on HTTP Global Load balancer来实现。
HTTP全局负载均衡器是一个代理,HTTPS连接在负载均衡器级别终止。所以,originator IP can be found in the header
External environment --> Global Load Balancer with pubic IP--> Cloud Function
^
|
Public internet
|
Google Environment --> NAT/VPC Connector
要降低安全级别,需要设置很多东西。它解决了你的问题,但它很糟糕!
https://stackoverflow.com/questions/63921208
复制相似问题