AWS全球代理 Oncloud AI

谷歌云使用签名URL回源存储桶

  

Backend Bucket + Signed URL Key + Cloud CDN 服务账号

这个方案用的是 Backend Bucket(而不是 Internet NEG + Backend Service),不需要 HMAC 密钥,也不需要创建服务账号。核心思路是让 Cloud CDN 自己的内置服务账号来读取私有 Bucket。


签名 URL 适合的场景:

比如付费内容下载、会员专属资源、临时分享链接等。你的后端应用程序在用户通过身份验证后,自动生成签名 URL 返回给用户,链接到期就失效。所以不是手动一个个去签,而是程序批量生成的。


程序使用签名网址文档  https://docs.cloud.google.com/cdn/docs/using-signed-urls?hl=zh-cn

步骤1:创建负载均衡器

1. 后端选择 "Backend Bucket"(后端存储桶) 而不是 "Backend Service",直接选你的 GCS Bucket,勾选启用 Cloud CDN

image.png

选择存储通


image.png


2. 给 Backend Bucket 添加一个签名密钥

# 生成密钥 打开控制台shell ,右上角激活cloud shell 

head -c 16 /dev/random | base64 | tr +/ -_ > cdn-sign-key.key


# 添加签名密钥到后端存储桶 test04171就是刚创建后端服务的名字 

gcloud compute backend-buckets add-signed-url-key test04171hou \

  --key-file=cdn-sign-key.key \

  --key-name=my-cdn-key


# 授权 Cloud CDN 服务账号读取你的 Bucket 。gs://test0417 是桶的名字 

gcloud storage buckets add-iam-policy-binding gs://test0417 \

  --member=serviceAccount:service-你的项目编号@cloud-cdn-fill.iam.gserviceaccount.com \

  --role=roles/storage.objectViewer


项目编号可以通过这个命令查看:

gcloud projects describe $(gcloud config get-value project) --format="value(projectNumber)"


步骤2:前端配置照常:绑定静态 IP、SSL 证书、自定义域名、DNS A 记录

  1. 导航到Cloud DNS或是你自己域名所在的解析商添加解析

    text
    打开负载均衡器,选择htpps那条,打开能看到一个IP地址:443
  2. 指定解析

    image.png

    image.png


  3. 记录类型:A 记录
    主机记录:oss
    记录值:填写您在 GCP 上创建的 负载均衡器(Frontend)的静态 IP 地址


通过签名 URL 访问(URL 带有时效性签名参数)

在云shell 控制台 ,

gcloud compute sign-url \

  "https://test.你的自定义域名.com/gcp.png" \

  --key-name=my-cdn-key \

  --key-file=cdn-sign-key.key \

  --expires-in=1h

 

这条命令会输出一个带签名参数的完整 URL,用那个 URL 访问就能通了

用户拿到的链接类似:

https://test.abcd.com/GCP.png?Expires=1713500000&KeyName=my-cdn-key&Signature=xxxxx


步骤4:创建安全策略防恶意刷流量

直接在搜索栏搜 "Cloud Armor"

点击 "创建策略",填写:

  • 名称:比如 my-cdn-policy

  • 策略类型:如果是给 Backend Bucket 用,选 "边缘安全策略(Edge security policy)";如果是给 Backend Service(HMAC 方案)用,选 "后端安全策略(Backend security policy)"

  • 默认规则操作:选"允许"(先放行所有,然后加规则去拦截)

image.png

添加速率限制规则

image.png

将策略绑定到指定后端服务,两种方式 1是在创建规则时绑定如下图,

image.png

2是负载均衡器 → 编辑 → 后端配置,在后端存储桶或后端服务的设置里,有一个 "Cloud Armor 安全策略" 下拉框,选择你刚创建的策略


image.png


高级CDN配置(可选)

  1. 缓存策略配置

    text
    负载均衡器 → [后端配置] → 点击后端存储桶名称
    • 包含查询参数

    • 排除特定头部

    • 缓存静态内容

    • 强制缓存模式

    • 使用缓存键和缓存策略

    • 缓存模式:

    • 缓存键策略:






WhatsApp
Telegram
Email