我目前正在云端点(ESPv2(后面设置一系列云函数。
我已经通过只允许来自云运行服务的经过身份验证的流量来保护云功能(就像这里一样(。
我想知道是否也可以选择";仅内部业务";作为入口设置。我试过了,但当我启用它时,我只得到403秒。
这个选项应该">仅允许来自同一项目或VPC的流量";。云运行服务在默认的VPC中,功能和服务都在同一个项目中。
编辑:
该功能可在以下位置使用:https://europe-west1-iota-beta-296214.cloudfunctions.net/api-keys
使用VPC连接器时,通过ESPv2(Cloud Run(访问会返回503(如果没有连接器,则有效(https://functions.getiota.fr/auth/jwks
Cloud Run镜像是根据谷歌的教程构建的,使用特定的服务帐户和VPC连接器(请参阅CLI文档(
以下是我的端点服务conf:的摘录
...
host: functions.getiota.fr
schemes:
- https
produces:
- application/json
paths:
/auth/jwks:
get:
summary: Get the JSON web key set for authentication
operationId: jwks
x-google-backend:
address: https://europe-west1-iota-beta-296214.cloudfunctions.net/api-keys
protocol: h2
...
使用变通方法编辑2:
遵循以下答案后,如果ESPv2部署在使用--set-env-vars=ESPv2_ARGS=--backend_dns_lookup_family=v4only
运行的云上,一切都会正常工作。此处对该选项进行了说明。
我在ESPv2的github上关注了这个问题:https://github.com/GoogleCloudPlatform/esp-v2/issues/423
要实现这一点,您需要在承载ESPv2的Cloud Run实例中添加一个无服务器VPC连接器,并将所有出口流量路由到此连接器。
gcloud beta run services update <SERVICE ESPv2>
--vpc-connector projects/<PROJECT_ID>/locations/<REGION>/connectors/<CONNECTOR_NAME>
--vpc-egress all
注意:连接器必须与Cloud Run服务位于同一区域。检查支持的区域