【问题标题】:Google Cloud Endpoints security谷歌云端点安全
【发布时间】:2019-11-13 00:09:58
【问题描述】:

我是 Google Cloud 的新手,并试图了解 Google Cloud 端点与 App Engine 上的后端应用之间的关系。

看起来当我部署我的应用程序 (gcloud app deploy) 时,我得到一个类似于 https://my-service-dot-my-app@appspot.com/path/operation/etc 的 URL。这个 URL 是通过云端点还是直接到容器?

当我以这种方式调用服务时,我看不到任何流向云端点的流量。事实上,当我尝试使用我认为的云端点访问服务时,它只会给我一个 404 (https://my-app@appspot.com/path/operation/etc)。为什么我无法使用端点访问?权限?

我最初的想法是端点是一个单独的东西,它将流量路由到后端。但是,当我在 openapi.yaml 中更改安全配置并重新部署端点定义(gcloud endpoints services deploy openapi.yaml)时,这实际上似乎没有任何效果。

例如,初始部署具有 Firebase 安全性。我删除了它并重新部署了端点定义,但调用服务时安全性仍然存在。看来我必须重新部署后端以禁用安全性。

任何见解将不胜感激。

【问题讨论】:

    标签: node.js google-app-engine google-cloud-platform


    【解决方案1】:

    Cloud Endpoint 是位于 API 前面的安全层。它充当代理并执行安全检查(基于 API 密钥、OAuth、SAML...)并路由到正确的端点。端点定义基于 OpenAPI 2(不是 3,小心!)。有新的高级功能,例如速率限制和很快的计费。

    最初集成到 AppEngine,这个产品已经open sourced,可以部署在Cloud Run, Cloud Function and on GKE/Kubernetes。一个类似的付费和更强大的产品是Apigee

    wrote an article 使用部署在 Cloud Run 上的 Endpoint,具有 API Key 安全性,并将请求路由到 Cloud Run、Cloud Function 和 App Engine。

    Cloud Endpoint 还提供developer portal 以允许您的客户、供应商和开发人员查看您的 API 规范并在线动态测试它。

    我希望这些元素能让您更好地了解 Cloud Endpoint,从而抽象出您的底层 API 部署。

    【讨论】:

      【解决方案2】:

      我认为在提供正确的前进方向之前,我们需要解决几个问题:

      第一个问题:

      此 URL 是通过云端点还是直接到达容器?

      将应用程序部署到 App Engine 将为该应用程序生成一个 @appspot 网址。此 URL 用于直接访问应用程序,除非您启用 Cloud IAP 或对该服务设置任何其他限制,否则它仍可用于 Internet。

      第二个问题:

      为什么我无法通过端点访问?

      如果您指的是https://my-app@appspot.com/path/operation/etc,它不起作用的原因可能有很多,这取决于您是设置过程的哪个步骤。

      通常使用 OpenAPI 设置 Cloud Endpoints,使用 App Engine 后端,您需要限制对@appspot URL 的访问,但还需要部署Extensible Service Proxy (ESP) to Cloud Run 以便以后访问它。

      结论:

      现在,为了实际实现这个设置,我建议你关注Getting Started with Endpoints for App Engine standard environment

      根据指南,以下是使用 Cloud Endpoints 为 App Engine 标准后端设置 Endpoints 所需的完整任务列表:

      1 - 配置 IAP 以保护您的应用。

      2 - 将 ESP 容器部署到 Cloud Run。

      3 - 创建一个描述您的 API 的 OpenAPI 文档,并配置 App Engine 的路由。

      4 - 部署 OpenAPI 文档以创建托管服务。

      5 - 配置 ESP,以便它可以找到您的服务的配置。

      请记住,一旦您设置了 ESP 配置,任何调用都需要通过 [YOUR-GATEWAY-NAME].a.run.app

      如果您碰巧卡在任何特定步骤,请提供您到目前为止所做的工作。

      我希望这会有所帮助。

      【讨论】:

        【解决方案3】:

        此 URL 是通过云端点还是直接到达容器?

        应用引擎是在 Google 基础架构上基于容器的部署。该 url 是在您部署它时创建的,请注意它不是 API。

        当我以这种方式调用服务时,我看不到任何流向云端点的流量

        我认为默认情况下不会创建 Cloud Endpoint

        检查 Cloud Endpoint 是否已创建的一种方法是检查其 API 是否已在您的项目中启用,或者是否在 IAM 页面中创建了服务帐号

        按照this 过程为 App 引擎配置 Cloud Endpoint

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-05-10
          • 1970-01-01
          • 1970-01-01
          • 2015-10-27
          • 2014-07-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多