在谷歌云上,我有一个虚拟机,我想几乎完全切断互联网(出于安全原因)。我知道我可以通过 iptables 和云防火墙规则切断,包括传出流量。
但是,我仍然需要虚拟机读取和写入数据到 Cloud Storage 存储桶——这当然使用 HTTPS 和(相当)随机的外部 IP:s。
有什么方法可以允许云存储访问,但拒绝其他所有传出的内容?
到目前为止,我认为我可能可以设置一个只允许访问某些域的 HTTPS 代理,但感觉有点像 hack(加上需要其他服务)。
在谷歌云上,我有一个虚拟机,我想几乎完全切断互联网(出于安全原因)。我知道我可以通过 iptables 和云防火墙规则切断,包括传出流量。
但是,我仍然需要虚拟机读取和写入数据到 Cloud Storage 存储桶——这当然使用 HTTPS 和(相当)随机的外部 IP:s。
有什么方法可以允许云存储访问,但拒绝其他所有传出的内容?
到目前为止,我认为我可能可以设置一个只允许访问某些域的 HTTPS 代理,但感觉有点像 hack(加上需要其他服务)。
事实证明,您可以(不确定从什么时候开始,我以前没有见过这个功能)配置“私人 Google 访问”,这看起来适合我的用例。
从文档:
私有 Google 访问使子网上的虚拟机 (VM) 实例能够使用内部 IP 地址而不是外部 IP 地址访问 Google API 和服务。外部 IP 地址可通过 Internet 路由和访问。内部(私有)IP 地址是 Google Cloud Platform 的内部地址,无法通过 Internet 路由或访问。您可以使用私人 Google 访问权限来允许没有 Internet 访问权限的虚拟机访问 Google 服务。
操作方法太长,无法放入问答中,但配置私人 Google 访问页面应该可以工作(Google 往往非常擅长不更改其文档 URL)。
您可以使用以下方法标记应允许“private ip google access”的子网:
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.