新部署的云 运行 应用程序无法访问,尽管具有必要的权限 (403)
Newly deployed cloud run app inaccessible, despite having requisite permissions (403)
按照 this 快速入门指南(Python 版本),我能够快速创建 Python Flask 应用程序并将其部署到我的组织拥有的项目中。但是,指南最后指示“通过在 Web 浏览器中打开服务 URL 来访问已部署的容器”,但这是我无法开始工作的步骤。
奇怪的是,在日志中
(https://console.cloud.google.com/logs/) 请求的 'textPayload' 数据元素是“请求未经过身份验证。要么...”,这似乎很不寻常,因为我希望对 return 的未经身份验证的请求401,而不是 403。无论如何,它都没有在请求中列出我的组织电子邮件地址,这表明出于某种原因没有提供我的身份。有什么方法可以解决此问题,以便我可以使用具有适当权限的用户访问 URL?
注意:我可以通过手动访问URL 运行 "curl -H 'Authorization: Bearer <my token>'"
Cloud 运行 URLs aren't directly accessible 如果该服务仅允许经过身份验证的调用,因为在您的浏览器上传递 URL 不会为您生成凭据。您必须根据请求传递 auth 凭据,调用该服务的最简单方法是使用 curl 之类的工具,这正是您所注意到的。
您有两个选项来验证您的最终用户,如下所示:
- 集成 Google 登录。
- 实施身份平台或 Firebase 身份验证。
In either of the above choices, you need a public web or mobile app that handles the sign-in flow and then makes authenticated API calls to a Cloud Run (fully managed) service.
有关验证最终用户的更多信息,请查看官方 documentation。
为了补充 Donnald Cucharo 先生所说的内容,您还可以使用 Identity Aware Proxy (IAP) 以安全的方式公开您的应用程序。
按照 this 快速入门指南(Python 版本),我能够快速创建 Python Flask 应用程序并将其部署到我的组织拥有的项目中。但是,指南最后指示“通过在 Web 浏览器中打开服务 URL 来访问已部署的容器”,但这是我无法开始工作的步骤。
奇怪的是,在日志中 (https://console.cloud.google.com/logs/) 请求的 'textPayload' 数据元素是“请求未经过身份验证。要么...”,这似乎很不寻常,因为我希望对 return 的未经身份验证的请求401,而不是 403。无论如何,它都没有在请求中列出我的组织电子邮件地址,这表明出于某种原因没有提供我的身份。有什么方法可以解决此问题,以便我可以使用具有适当权限的用户访问 URL?
注意:我可以通过手动访问URL 运行 "curl -H 'Authorization: Bearer <my token>'"
Cloud 运行 URLs aren't directly accessible 如果该服务仅允许经过身份验证的调用,因为在您的浏览器上传递 URL 不会为您生成凭据。您必须根据请求传递 auth 凭据,调用该服务的最简单方法是使用 curl 之类的工具,这正是您所注意到的。
您有两个选项来验证您的最终用户,如下所示:
- 集成 Google 登录。
- 实施身份平台或 Firebase 身份验证。
In either of the above choices, you need a public web or mobile app that handles the sign-in flow and then makes authenticated API calls to a Cloud Run (fully managed) service.
有关验证最终用户的更多信息,请查看官方 documentation。
为了补充 Donnald Cucharo 先生所说的内容,您还可以使用 Identity Aware Proxy (IAP) 以安全的方式公开您的应用程序。