问题描述
我正在尝试禁用私有Google Access,我可以在子网中实现此功能,但不能禁用无服务器VPC访问连接器。或者,如果有可能禁用我认为也可以使用的云NAT上的私有访问。这些都可以选择吗?
原因是,我需要云功能发出的请求,才能将静态ip用于白名单。对于非Google服务,这可以正常运行,但是GCP服务无法识别ip,这大概是因为Google私有访问在GCP网络上内部路由流量。
解决方法
我认为这是不可能的。主要是因为Google反复说:不要信任网络。
正确的模式是使用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
IMO,为降低安全级别需要做很多事情。它可以解决您的问题,但这很糟糕!