【问题标题】:Restrict network activity in Google Cloud Run限制 Google Cloud Run 中的网络活动
【发布时间】:2020-04-23 19:14:14
【问题描述】:

我正在使用 Cloud Run 容器来运行不受信任的(用户提供的)代码。容器接收 POST 请求,运行代码,并以结果响应。出于安全原因,它部署在锁定的服务帐户上,但我还想阻止所有其他网络活动。这如何实现?

【问题讨论】:

    标签: google-cloud-platform google-cloud-run


    【解决方案1】:

    Cloud Run(托管)目前不提供防火墙限制来选择性地阻止 IP/主机的入站或出站流量。我假设您正在尝试阻止从容器到外部发起的连接。未来,Cloud Run 计划添加对 Google Cloud VPC 服务控制功能的支持,这可能会有所帮助。

    但是,如果您有机会使用 Cloud Run for Anthos(在 GKE 上),它具有类似的开发人员体验但在 Kubernetes 集群上运行,您实际上可以轻松编写 Kubernetes NetworkPolicy 策略(我有一些食谱 @987654321 @) 来控制哪些流量可以来自运行的容器。使用 Kubernetes 集群时也可以使用GCE firewall rulesVPC service controls

    除此之外,您在 Cloud Run(完全托管)环境中的唯一选择是在启动容器时使用 Linux iptables 命令来阻止某些网络模式。重要的是,请注意 Cloud Run(完全托管)在模拟系统调用的 gVisor 沙箱上运行。 iptables 中的许多功能目前在 gVisor 中没有实现/支持。通过查看 issue trackerpatches ,我可以看出它在路线图上,有些甚至可能在今天起作用。

    【讨论】:

    • 您能否详细说明iptables 解决方案?假设我只有一个允许向云运行容器发出请求的云功能。有没有一种简单的方法可以使用iptables 只允许传出流量返回该云功能? /这是你提议的吗?谢谢!
    • 我建议阅读互联网上的 iptables。 Cloud Functions 不在静态 IP 上运行,而 iptables 需要使用 IP。如果您向 Cloud Functions 发出请求,则可能无法通过 iptables 区分这些。不过,您可以阻止您的 Cloud Run 应用建立外部请求(这有点像您在问题中所说的。:))
    【解决方案2】:

    您可以将 Cloud Run(托管)部署耦合到没有任何互联网访问权限的 VPC Network

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-21
      • 2017-09-20
      • 2020-09-16
      • 2019-10-14
      • 2020-03-31
      • 2020-04-05
      • 2018-01-20
      • 2021-03-15
      相关资源
      最近更新 更多