google-cloud-platform - 内部服务之间的 Google Cloud Run 通信
问题描述
我有 2 个云运行服务:
- https://calculator-api.a.run.app (入口:允许所有流量,身份验证:allUsers)
- https://add-api.a.run.app(入口:内部,身份验证:CloudIAM)
这个想法是calculator-api
公开的,它将向add-api
. add-api
出于某种原因,当入口是403 时,我会得到一个 403,internal
但是如果我将入口更改为Allow all traffic
,它会完美运行。
我使用以下代码正确获取 IdToken ,然后将令牌注入标头中Authorization: Bearer IdToken
。我的接收者具有角色add-api
权限。calculator-api
Cloud Run Invoker
GET request "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/identity?audience=https://add-api.a.run.app"
Header: {"Metadata-Flavor", "Google"}
所以,我认为问题不在于身份验证,而是当入口设置为internal
.
解决方案
您需要在与您的calculator-api 服务相同的区域中创建一个无服务器VPC 连接器并将其添加到您的calculator-api 服务并将出口值设置为all
目前的限制是:2 个服务必须在同一个项目中(或者您需要执行 VPC 对等来实现此目的)
推荐阅读
- c++ - 折叠表达式:解析器stackoverflow
- r - 包含行和列索引的数据框列表,用于从更大的数据框中选择数据
- sql - 显示每种定义类型的项目总数
- sql-server - 在 T-SQL 存储过程中格式化 SQL Server 中的日期和时间值时出现问题
- html - 引导网格,得到小于 col -xx-1
- html - CSS:类似 Youtube 的视频页面布局
- html - 提取 html 数据时遇到问题
- swift - 在 MVVM 中清除集合视图的正确方法
- google-places-api - 来自 Google 的奇怪结果为重复字母序列设置了自动完成功能
- linux - Linux Kernel configs 官方文档