【问题标题】:Deny outgoing traffic on Google Cloud VM, but allow access to Cloud Storage拒绝 Google Cloud VM 上的传出流量,但允许访问 Cloud Storage
【发布时间】:2023-11-12 02:11:01
【问题描述】:

在 Google Cloud 上,我有一个虚拟机,我想几乎完全切断与互联网的连接(出于安全原因)。我知道我可以通过 iptables 和云防火墙规则切断,包括传出流量。

但是,我仍然需要虚拟机读取数据并将数据写入 Cloud Storage 存储桶 - 这当然使用 HTTPS 和(相当)随机的外部 IP:s。

有什么方法可以允许 Cloud Storage 访问,但拒绝所有其他传出的内容?

到目前为止,我认为我可能可以设置一个只允许访问某些域的 HTTPS 代理,但感觉有点像 hack(另外需要其他服务)。

【问题讨论】:

    标签: google-cloud-platform google-cloud-storage google-cloud-networking


    【解决方案1】:

    事实证明,您可以(不知道从什么时候开始,我以前从未见过此功能)配置“私人 Google 访问”,这看起来适合我的用例。

    来自documentation

    私人 Google 访问权限可启用虚拟机 (VM) 实例 使用内部 IP 访问 Google API 和服务的子网 地址而不是外部 IP 地址。外部 IP 地址是 可通过 Internet 路由和访问。内部(私有)IP 地址在 Google Cloud Platform 内部,不可路由 或可通过 Internet 访问。您可以使用私人 Google 访问权限 允许无法访问互联网的虚拟机访问 Google 服务。

    操作方法太长,无法放入问答中,但Configuring Private Google Access 页面应该可以工作(Google 往往很擅长不更改其文档 URL)。

    您可以使用以下方法标记应允许“私人 ip google 访问”的子网:

    gcloud compute networks subnets update subnet-a \
        --enable-private-ip-google-access
    

    文档中对该参数的描述:

     --enable-private-ip-google-access
        Enable/disable access to Google Cloud APIs from this subnet for
        instances without a public ip address.
    

    【讨论】:

    • 请记住,私有 Google 访问权限允许 VM 连接到 Google 的所有服务。不仅是谷歌云存储。 VM 还可以解析任何 DNS 域。
    相关资源