Google cloud platform ESPV2云运行

Google cloud platform ESPV2云运行,google-cloud-platform,google-cloud-run,Google Cloud Platform,Google Cloud Run,我正在设置ESPv2,它将访问另一个以NodeJS+Express编写的云运行服务。我可以直接访问NodeJS+Express服务,但希望使用ESPv2限制访问 ESPv2安装没有任何问题,但我有以下问题 当我使用ESPv2访问NodeJS+Express云运行服务时,NodeJS+Express服务触发器必须使用“允许所有流量”和“允许未经授权的调用” 如果我将访问限制为仅允许内部流量,ESPv2将无法访问NodeJS+Express云运行服务 我应该做些什么来授权ESPv2和被呼叫的Node

我正在设置ESPv2,它将访问另一个以NodeJS+Express编写的云运行服务。我可以直接访问NodeJS+Express服务,但希望使用ESPv2限制访问

ESPv2安装没有任何问题,但我有以下问题

当我使用ESPv2访问NodeJS+Express云运行服务时,NodeJS+Express服务触发器必须使用“允许所有流量”和“允许未经授权的调用”

如果我将访问限制为仅允许内部流量,ESPv2将无法访问NodeJS+Express云运行服务

我应该做些什么来授权ESPv2和被呼叫的NodeJS服务之间的呼叫吗

yaml的顶部如下所示

swagger: "2.0"
info:
  description: "APIs for managing My Site"
  version: "0.0.3"
  title: "My API"
  contact:
    email: "email@email.com"
  license:
    name: "Copyright Amzu IT Ltd"
host: "apihost-xxxx.a.run.app"
x-google-endpoints:
  - name: "apihost-xxxx.a.run.app"
    allowCors: True
x-google-backend:
  address: https://<nodejs-expess-cloud-run-url>.a.run.app
  protocol: h2
schemes:
  - "https"
paths:
  /test:
    get:
      operationId: Testing
      summary: A Test Endpoint to check if the URL is working.
      description: A Test Endpoint to check if the URL is working, does not have any security enabled for this URL.
      responses:
        200:
          description: Success
          schema:
            type: "string"
      security:
        - key: []
securityDefinitions:
  key:
    type: apiKey
    in: header
    name: x-api-key
  firebase:
    authorizationUrl: ""
    flow: "implicit"
    type: "oauth2"
    x-google-issuer: "https://securetoken.google.com/REMOVED"
    x-google-jwks_uri: "https://www.googleapis.com/service_accounts/v1/metadata/x509/securetoken@system.gserviceaccount.com"
    x-google-audiences: "REMOVED"
昂首阔步:“2.0”
信息:
描述:“用于管理我的站点的API”
版本:“0.0.3”
标题:“我的API”
联系人:
电子邮件:“email@email.com"
许可证:
名称:“Amzu IT有限公司版权所有”
主机:“apihost xxxx.a.run.app”
x-google-endpoints:
-名称:“apihost xxxx.a.run.app”
allowCors:正确
x-google-backend:
地址:https://.a.run.app
协议:h2
计划:
-“https”
路径:
/测试:
获取:
操作ID:测试
摘要:用于检查URL是否工作的测试端点。
描述:用于检查URL是否正常工作的测试端点没有为此URL启用任何安全性。
响应:
200:
描述:成功
模式:
类型:“字符串”
安全:
-钥匙:[]
证券定义:
关键:
类型:apiKey
在:标题
名称:x-api-key
火基:
授权URL:“
流:“隐式”
类型:“oauth2”
x-google-issuer:“https://securetoken.google.com/REMOVED"
x-google-jwks_uri:“https://www.googleapis.com/service_accounts/v1/metadata/x509/securetoken@system.gserviceaccount.com“
x-谷歌-受众:“删除”

好的,我知道您的ESPv2部署在云计算运行中,您希望进入另一个云计算运行

  • 最简单的方法是以noallow unauthenticated模式部署NodeJS云运行,然后授予ESPv2云运行服务帐户访问NodeJS云运行。IAM过滤流量,只有有效流量到达您的NodeJS云运行
  • 您可以在NodeJS云运行中将上一个选项与ingress=internal组合。这一次,只有经过身份验证的(因为您处于不允许未经身份验证的模式)和来自部署NodeJS云运行服务的当前项目的VPC的流量,您需要
  • 您也可以只拥有内部流量,但我不建议这样做,对IAM服务的信任是强大的优势

我写道,如果您愿意,您可以依赖它。

我将为一个项目重新访问云端点,因此您的问题是及时的。自从我上次使用端点v2已经有一段时间了,但是IIRC。。。。您不希望云运行服务以
的形式运行——允许未经验证的
(因为它会,而且您可以很容易地向自己证明这一点)。您希望将云运行限制为仅由为您运行端点服务的服务帐户调用。请看:我以前尝试过这个功能时在博客上写过(使用Golang,但应该有点不同)。唯一的变化是ESP映像现在包含了这个版本(我将更新帖子)。请参阅带有
gcloud运行服务添加iam策略绑定的部分