【发布时间】:2020-08-19 10:07:25
【问题描述】:
我有一个简单的 Spring Boot 服务“say-hi”来接受 /say-hi 下的 GET 请求并返回“hello”。它部署在托管 Cloud Run 中。假设我不想向公众开放它。现在我想做两件事: 1. 允许开发者(我自己)访问“say-hi” 2. 允许 Cloud Run 之外的另一个 Spring Boot 服务能够调用“say-hi”
为了我的目标 1:
奇怪的是 curl 命令不起作用,但 Insomnia 工作正常。基本上,我关注了the doc,我将我的google 帐户添加到了roles/run.invoker,但是curl 命令说Network is unrechable:curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" http://say-hi-0-1-0-q6g2cgbzna-ew.a.run.app:8080/say-hi -v
错误:
* Trying 216.239.36.53...
* Trying 2001:4860:4802:36::35...
* Immediate connect fail for 2001:4860:4802:36::35: Network is unreachable
* Trying 2001:4860:4802:36::35...
* Immediate connect fail for 2001:4860:4802:36::35: Network is unreachable
* Trying 2001:4860:4802:36::35...
* Immediate connect fail for 2001:4860:4802:36::35: Network is unreachable
但是,如果我单独运行 gcloud auth print-identity-token 以先获取令牌,然后从 Insomnia 客户端发送 GET 请求,它可以工作...我想知道为什么...
为了我的目标 2 我假设正确的会话来查看它here。这是否意味着如果我想从受管理的 Cloud Run 外部(从我自己的笔记本电脑和其他 GKE 实例)访问“say-hi”,我需要为我的项目启用 IAP?如果是,如何将云运行与 IAP 集成?
【问题讨论】:
标签: google-cloud-run google-iap