仅使用域,并禁用https://storage.googleapis.com网址访问权限

时间:2019-02-23 17:10:35

标签: google-cloud-storage

我是云服务器上的新手,并且我已经开设了一个Google云存储来托管图像文件。我已经验证了我的域并将其配置为通过我的域查看图像。问题是,可以通过我的域 example.com/images/tiny.png storage.googleapis.com/访问同一文件example.com/images/tiny.png 有什么解决方法禁用通过storage.googleapis.com 的访问,仅使用我的域?

2 个答案:

答案 0 :(得分:1)

有,但是这需要您做更多的工作。

您当前的解决方案之所以有效,是因为您已公开访问GCS存储桶(example.com),然后从您的域中获取DNS别名。

另一种方法是让您将对GCS存储桶的访问限制为一个(可能是多个)帐户,然后运行使用该帐户之一访问图像文件的Web服务器。然后,您也可以允许任何人访问您的Web服务器,也可以限制对其的访问。

为您提供更多的工作(可能还会增加成本),但控制更多。

答案 1 :(得分:0)

Google Cloud Platform支持版本:

注意:这是Google Cloud Platform支持通过电子邮件联系时的回复...

我了解到您已经为其中一个Cloud Storage存储桶设置了域名,并且希望确保只有以域名开头的URL可以访问此存储桶。

由于云存储权限的工作原理,这恐怕是不可能的。

使Cloud Storage存储桶成为公共可读的对象,还会为其每个文件提供一个公共链接。目前无法禁用此公共链接。

一种解决方法是实施代理程序,然后在Compute Engine虚拟机上运行它。该虚拟机将需要一个静态的外部IP,以便您可以将域映射到它。代理程序将负责从预定义的Cloud Storage存储桶中返回请求的文件,而该存储桶将保持公众无法访问。

如果您对此解决方法感兴趣,可能会发现这些文档很有帮助:
1.快速开始设置Linux VM(1)。
2.用于访问Cloud Storage文件的Python API(2)。
3.如何下载服务帐户密钥以授予程序对一组服务的访问权限(3)。
4.定价计算器,用于了解VM的成本(4)。

(1) https://cloud.google.com/compute/docs/quickstart-linux
(2) https://pypi.org/project/google-cloud-storage/
(3) https://cloud.google.com/iam/docs/creating-managing-service-account-keys
(4) https://cloud.google.com/products/calculator/

我的版本:

这个问题的解决方案似乎非常简单,只需将FUSE Google Cloud Storage与VM实例融合即可。

FUSE之后,可以通过VM的IP地址访问来自GCS的私人文件。它使Google Cloud Storage Bucket像目录一样。

有关如何在Google Cloud中设置FUSE的详细文档为here