【发布时间】:2021-04-07 21:20:43
【问题描述】:
我们正在尝试从计算引擎访问云运行服务 url。
Cloud Run 服务以 ingress 模式作为内部部署。
目前在访问服务 url 时会给出“禁止访问”状态。
但是,当入口模式设置为所有我可以访问但只想通过我的计算引擎在谷歌网络中访问它时。
我什至将计算引擎的计算服务帐户添加为云运行权限中的成员。
有什么解决办法吗?
更新
项目设置 我有一个共享的 vpc 设置(截至目前只有 us-central1 子网共享),主机项目的 vm 尝试访问云运行 url。从宿主项目的 vm 执行 Curl 失败并显示“禁止访问”。
但是,我尝试在存在云运行服务的同一个项目中创建一个临时虚拟机。我仍然从这个虚拟机看到同样的错误。
根据文档,设置内部入口将允许直接访问项目中的任何内容。但这似乎没有发生。
我什至为计算引擎的服务帐户添加了 roles/run.invoker 角色,作为云运行服务的成员。
Cloud Run 正在使用宿主项目的 Serverless vpc 连接器。
【问题讨论】:
-
计算引擎和 Cloud Run 服务是否在同一个项目中?您能否分享更多关于您的 VM、子网和 Cloud Run 服务的配置?
-
@guillaumeblaquiere 我刚刚添加了与设置相关的更新
-
我想知道这是否不是“网络”问题,您确实可以从计算引擎访问您的 Cloud Run 服务,但您无权调用它。作为测试,尝试将 Cloud Run 服务设置为允许未经身份验证。那么它会运行吗?
-
您有身份验证吗?您是否尝试过使用 allow-unauthenticated 参数?
-
我没有尝试使用共享 VPC,但只是在我的项目中使用 VPC 就可以了!最令人惊讶的是与 ingress=all 的正确通信。您对项目 VPC(不是共享 VPC)有相同的行为吗?
标签: google-cloud-run