问题我正在寻找一种敏捷的方法,将docker容器(存储在GCR.IO上(发送到GCP:上的托管服务
- 一个带有私有数据的docker容器
gcr.io/project/helloworld
(比如云SQL后端(无法面对现实世界 - 我想把它暴露在一堆IP中:比如["1.2.3.4","2.3.4.0/24"]
我的理想平台是Cloud Run,但GAE也可以工作。
我想以敏捷的方式进行开发(比如用2-3行代码进行部署(,是否可以秘密地运行我的服务,但又非常容易?我们谈论的不是一个巨大的制作项目,我们谈论的是四处玩耍,写一个POC,你想通过互联网安全地分享给几个朋友,确保世界其他地方都能获得403。
到目前为止我已经尝试过了
唯一一个容易工作的想法是一个带有docker友好操作系统(如cos(的GCE vm,我可以在那里设置防火墙规则。这是可行的,但它是一次性虚拟机上的一个蹩脚的docker应用程序。除非我在cron/startup上稳定它,否则机器会永远运行并在重新启动时死亡。看起来我在做别人的工作。
到目前为止,我尝试过的其他一切都失败了:
- 云运行。太神奇了,但无法在上面设置防火墙规则,或者云控制器。。似乎只适用于IAP,这很难建立
- GAE。适用于多个IP,无法分离公共IP或防火墙。我设法在应用程序中获得了IP过滤,但似乎有点风险。我不想相信我的编码技能:(
- 云甲。只支持HTTPS负载均衡器,而我没有。我也没有多边投资担保机构,我想要简单
- 流量控制器并且需要HTTP L7平衡器。但我有一个码头集装箱,在一个单独的吊舱上。为什么我需要LB
- GKE。事实上,这似乎是可行的:[1],但它不是完全管理的(我需要创建集群、pod等(
这是产品缺陷还是我看错了产品?实现我想要的东西最简单的方法是什么?
[1] 如何向gke服务添加防火墙规则?
请将您的问题限制在一个服务上。并不是每个人都是所有谷歌云服务的专家。如果每项服务都是单独的问题,那么您将有更好的机会获得好的答案。
总之,如果你想使用谷歌云安全组来控制基于IP的访问,你需要使用在计算引擎上运行的服务,因为安全组是VPC功能集的一部分。App Engine Standard和Cloud Run不在您项目的专有网络中运行。这就给您留下了App Engine Flex、计算引擎和Kubernetes。
我会改变策略,使用通过身份验证管理的Google Cloud Run。访问由Google Cloud IAM通过OAuth令牌控制。
云运行身份验证概述
我同意约翰·汉利的回答,并对他的回答投了赞成票。
此外,我了解到您正在研究如何通过GCP限制对您的服务的访问。
通过设置防火墙规则,您可以通过将"源IP"范围限制为"允许的源"来限制对服务的访问,以便仅允许此地址作为源IP。
请查看服务器故障[1]中的另一个线程,说明如何"仅限制对单个IP的访问"。
https://serverfault.com/questions/901364/restrict-access-to-single-ip-only
您可以很容易地使用无服务器NEG进行云运行或GAE
如果你在Terraform中这样做,你可以关注这篇文章