6

问题。我正在寻找一种敏捷的方式将 docker 容器(存储在 GCR.IO 上)拍摄到 GCP 上的托管服务:

  • 一个带有私有数据的 docker 容器gcr.io/project/helloworld(比如 Cloud SQL 后端)——无法面对现实世界。
  • 一堆我想公开的IP:说[“1.2.3.4”,“2.3.4.0/24”]。

理想的平台是 Cloud Run,但 GAE 也可以工作。

我想以敏捷的方式开发(比如用 2-3 行代码部署),是否可以秘密地运行我的服务,但又超级容易?我们不是在谈论一个庞大的制作项目,我们是在谈论玩耍和编写一个 POC,您想通过互联网安全地分享给几个朋友,以确保世界其他地方获得 403。

到目前为止我所尝试的。

唯一可以轻松工作的是具有 docker 友好操作系统(如 cos)的 GCE vm,我可以在其中设置防火墙规则。这可行,但它是一次性 VM 上的蹩脚 docker 应用程序。机器永远运行并在重新启动时死机,除非我在 cron/startup 上稳定它。看来我在做别人的工作。

到目前为止我尝试过的所有其他事情都失败了:

  • 云跑。令人惊叹,但无法在其上设置防火墙规则,或者 Cloud Director,.. 似乎仅适用于设置起来很痛苦的 IAP。
  • 盖伊。适用于多个 IP,不能分离公共 IP 或对其进行防火墙保护。我设法在应用程序中进行了 IP 过滤,但似乎有点冒险。我不想 [想] 相信我的编码技能 :)
  • 云铠。只支持我没有的 HTTPS 负载均衡器。我也没有 MIG 可以指出。我想要简单。
  • Traffic Director需要一个 HTTP L7 平衡器。但我有一个 docker 容器,在一个 pod 上。为什么我需要 LB?
  • GKE。实际上这似乎有效:[1] 但它没有完全管理(我需要创建集群、pod、..)

这是产品缺陷还是我看错了产品?实现我想要的最简单的方法是什么?

[1]如何向 gke 服务添加防火墙规则?

4

2 回答 2

4

请将您的问题限制在一项服务上。并非每个人都是所有 Google Cloud 服务的专家。如果它们是单独的问题,您将有更好的机会为每项服务提供一个好的答案。

总之,如果您想使用 Google Cloud 安全组来控制基于 IP 的访问,您需要使用在 Compute Engine 上运行的服务,因为安全组是 VPC 功能集的一部分。App Engine Standard 和 Cloud Run 不在您项目的 VPC 中运行。剩下的就是 App Engine Flex、Compute Engine 和 Kubernetes。

我会改变策略并使用由身份验证管理的 Google Cloud Run。访问由 Google Cloud IAM 通过 OAuth 令牌控制。

Cloud Run 身份验证概述

于 2019-11-09T20:59:20.343 回答
0

我同意 John Hanley 的回复,并且对他的回答投了赞成票。

另外,我了解到您正在研究如何通过 GCP 限制对您的服务的访问。

通过设置防火墙规则,您可以通过将源 IP 范围限制为允许的源来限制对您的服务的访问,以便仅允许此地址作为源 IP。

请查看 Server Fault [1] 中的另一个线程,说明如何“仅限制对单个 IP 的访问”。

https://serverfault.com/questions/901364/restrict-access-to-single-ip-only

于 2019-11-11T19:33:47.127 回答