微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在标准 AppEngine 与共享 VPC 内的另一个标准 AppEngine 之间进行通信?

如何解决如何在标准 AppEngine 与共享 VPC 内的另一个标准 AppEngine 之间进行通信?

我有标准的应用引擎,它对同一共享 VPC 和项目中的另一个应用引擎进行 api 调用,但响应是 403 禁止错误。也是我以 gcloud app services update service-name --ingress=internal-only 进行 api 调用的标准应用引擎,但是一旦我将 appEngine 的配置更新为 gcloud app services update service-name --ingress=all。所有 API 调用均成功。

注意:根据 gcp 的要求,无服务器连接器已创建并正在使用中。

问题

1。如何在标准 AppEngine 与共享 VPC 内的另一个标准 AppEngine 之间进行通信?

2。我如何使用 gcloud app services update service-name --ingress=internal-only 配置在 AppEngnies 之间进行通信。

解决方法

当您将入口设置为内部时,您会告诉 App Engine:仅接受来自该项目 VPC 的流量。

因此,您需要告诉您的其他 App Engine 服务:只能通过 VPC 访问此(App Engine)服务,否则您将被禁止。


首先,当您在无服务器环境、App Engine、Cloud Run 或 Cloud Functions 上进行部署时,您是在 Google Cloud VPC 上,而不是在您的项目 VPC 上。

因此,您必须设置 App Engine 的出口才能使用 VPC。您需要插入一个 VPC connector 以在 GOOGLE 无服务器 VPC 世界和您的 VPC 之间架起这座桥梁。

但是,它不起作用。实际上,当您在 App Engine 上设置它时,只有到私有 IP 的流量使用无服务器 VPC 连接器,而不是公共 IP。您没有能力将 VPC 出口设置为 all 以通过 VPC、公共和私有路由所有流量(就像您可以使用 Cloud Functions 和 Cloud Run)

因此,无论是否使用无服务器 VPC 连接器,App Engine 都将通过互联网而不是通过 VPC 联系内部 App Engine 服务,您每次都会收到 403。

总而言之,您不能使用 App Engine 做到这一点,请查看 Cloud Run 或 Cloud Functions 以进行此类设置。您还可以检查您的安全设计,不依赖流量的来源(来自 VPC),而是依赖流量的身份验证(使用身份令牌和 IAM 服务来确保通信安全)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。