仅允许内部流量用于云端点后面的云功能

Allowing internal traffic only for cloud function behind cloud endpoints

我目前正在云端点 (ESPv2) 后面设置一系列云功能。

我已经通过仅允许来自云 运行 服务(如 )的经过身份验证的流量来保护云功能。

我想知道是否可以 select“仅限内部流量”作为入口设置。我试过了,但是当我启用它时我只收到 403。

此选项应“仅允许来自同一项目或 VPC 的流量”。云运行服务在默认VPC中,功能和服务在同一个项目中。


编辑:

功能有效,可在此处获得: https://europe-west1-iota-beta-296214.cloudfunctions.net/api-keys

通过 ESPv2(云 运行)访问它 returns 使用 VPC 连接器时出现 503(如果没有连接器,它会工作) https://functions.getiota.fr/auth/jwks

Cloud 运行 映像是在 google's tutorial using a specific service account and VPC Connector (see CLI doc)

之后构建的

这是我的端点服务配置文件的摘录:

...
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 上,一切正常。此选项描述为 here

我在 ESPv2 的 github 上关注了这个问题:https://github.com/GoogleCloudPlatform/esp-v2/issues/423

为此,您需要添加一个serverless VPC Connector to your Cloud Run instance that host ESPv2, and to route all the egress traffic to this connector

gcloud beta run services update <SERVICE ESPv2> \
  --vpc-connector projects/<PROJECT_ID>/locations/<REGION>/connectors/<CONNECTOR_NAME> \  
  --vpc-egress all

注意:连接器必须与云 运行 服务位于同一区域。检查 the supported region