限制对特定来源的存储桶访问
Restrict Bucket Access to Certain Origin(s)
我有一个 Google Cloud Storage 存储桶,其中包含我想提供给我网站用户的图像。 public URL 是这样的:
https://storage.googleapis.com/example-bucket/filename.jpg
所以我的网站可以轻松访问它,并且任何随机的互联网用户都可以直接在浏览器中输入 URL 来访问它。
是否可以通过 Google 云来限制这一点,以便如果我的网站尝试访问该文件,它会成功,但如果随机用户尝试将 URL 输入浏览器 window,他们被拒绝了?
Cloud Storage 允许我们设置 CORS 策略,但它们仅适用于 XML API:https://cloud.google.com/storage/docs/cross-origin#server-side-support
是否可以通过负载均衡器、Cloud Armor 或 Cloud CDN 来限制它?
仅供参考,假设我的网站直接从 DOM 访问它,如下所示:
<html>
<body>
<img src="https://storage.googleapis.com/example-bucket/filename.jpg"></img>
</body
</html>
基于您的用例。 Google Cloud Storage 目前没有允许读取但限制下载的机制。一旦 image/file 设置为 public,任何带有 URL 的随机 user/website 都可以读取或下载文件。
我建议:
- 使用另一个第 3 方应用程序将文档呈现为应用程序内的 graphic/image,从而阻止任何用户下载。
- 您可以更改您的用例。让用户使用他们的 google 帐户登录您的网站并使用 IAM permissions with ACLs 进行配置,这使得 Google Cloud Storage 对象只有在他们被允许读取并经过身份验证时才能访问。
您还可以查看此 blog 如何控制对 Google 云存储的访问。
我有一个 Google Cloud Storage 存储桶,其中包含我想提供给我网站用户的图像。 public URL 是这样的:
https://storage.googleapis.com/example-bucket/filename.jpg
所以我的网站可以轻松访问它,并且任何随机的互联网用户都可以直接在浏览器中输入 URL 来访问它。
是否可以通过 Google 云来限制这一点,以便如果我的网站尝试访问该文件,它会成功,但如果随机用户尝试将 URL 输入浏览器 window,他们被拒绝了?
Cloud Storage 允许我们设置 CORS 策略,但它们仅适用于 XML API:https://cloud.google.com/storage/docs/cross-origin#server-side-support
是否可以通过负载均衡器、Cloud Armor 或 Cloud CDN 来限制它?
仅供参考,假设我的网站直接从 DOM 访问它,如下所示:
<html>
<body>
<img src="https://storage.googleapis.com/example-bucket/filename.jpg"></img>
</body
</html>
基于您的用例。 Google Cloud Storage 目前没有允许读取但限制下载的机制。一旦 image/file 设置为 public,任何带有 URL 的随机 user/website 都可以读取或下载文件。
我建议:
- 使用另一个第 3 方应用程序将文档呈现为应用程序内的 graphic/image,从而阻止任何用户下载。
- 您可以更改您的用例。让用户使用他们的 google 帐户登录您的网站并使用 IAM permissions with ACLs 进行配置,这使得 Google Cloud Storage 对象只有在他们被允许读取并经过身份验证时才能访问。
您还可以查看此 blog 如何控制对 Google 云存储的访问。