You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过TLS客户端认证限制Google Cloud Storage存储桶的读访问权限

实现Google Cloud Storage存储桶的TLS客户端认证访问控制

前提说明

Google Cloud Storage(GCS)本身不直接支持TLS客户端证书认证,需要通过**Cloud Load Balancer(CLB)**作为中转层,由CLB完成客户端证书的校验,再将合法请求转发到GCS存储桶。以下是完整实现步骤:


1. 生成客户端证书及CA根证书

如果没有现成的CA证书,先创建自签CA,再用它签发客户端证书:

  • 生成CA私钥和证书:
    openssl req -x509 -newkey rsa:4096 -keyout ca.key -out ca.crt -days 365 -nodes -subj "/CN=MyGCS-CA"
    
  • 生成客户端私钥和证书签名请求(CSR):
    openssl req -newkey rsa:4096 -keyout client.key -out client.csr -days 365 -nodes -subj "/CN=GCS-Client-01"
    
  • 用CA签发客户端证书:
    openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days 365
    

2. 配置Cloud Load Balancer

2.1 创建后端服务

  • 进入Cloud Console的负载均衡页面,创建HTTPS负载均衡
  • 后端服务选择Cloud Storage bucket,指定你的目标存储桶
  • 配置后端服务的权限:确保LB的服务账号(默认是service-<project-number>@gcp-sa-loadbalancing.iam.gserviceaccount.com)拥有storage.objects.get权限(可通过IAM或Bucket Policy授予)

2.2 配置SSL校验规则

  • 在负载均衡的SSL配置中,上传你的**CA根证书(ca.crt)**到客户端CA列表
  • 开启强制客户端证书校验,拒绝未提供有效客户端证书的请求

2.3 完成LB配置

  • 配置URL映射,将所有请求路径转发到GCS后端服务
  • 创建转发规则,分配外部IP地址,绑定LB的SSL服务证书(用于HTTPS连接)

3. 限制GCS存储桶的直接访问

  • 修改存储桶权限,移除所有公开访问权限(确保allUsers和allAuthenticatedUsers没有读权限)
  • 仅保留LB服务账号的读权限,确保所有访问必须通过LB中转

4. 使用wget测试下载

使用生成的客户端证书和私钥发起请求:

wget --certificate=client.crt --private-key=client.key https://<LB-外部IP>/<存储桶名称>/目标文件路径
  • 若客户端证书合法,将成功下载文件
  • 若证书无效/未被CA信任,会返回403 Forbidden或SSL握手失败

关键注意事项

  • 客户端证书必须由你上传到LB的CA根证书签发,否则会被拒绝
  • 确保LB的服务账号拥有足够的GCS访问权限,避免后端返回403
  • 不要将GCS存储桶设置为公开,否则会绕过LB的认证控制

内容的提问来源于stack exchange,提问作者user97576

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 06:27:13