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

从VM实例上传文件至Google Cloud Storage时遭遇访问拒绝错误

解决GCS上传访问拒绝问题的排查步骤
  • 确认存储桶有效性
    先验证存储桶是否存在且名称正确:

    gcloud storage buckets list | grep test-us-east
    

    注意GCS桶名是全局唯一的,若输出为空,说明桶不存在或拼写错误(包括大小写、特殊字符)。

  • 验证VM绑定的服务账号状态

    1. 检查VM当前活跃的服务账号:
      gcloud auth list
      
      确保输出中vm-instances-sa@gcpplatform.iam.gserviceaccount.com是当前活跃账号,若不是,切换账号:
      gcloud config set account vm-instances-sa@gcpplatform.iam.gserviceaccount.com
      
    2. 若刚绑定服务账号到VM,必须重启VM才能让服务账号权限生效,重启后再执行上传命令。
  • 检查存储桶Bucket Policy Only(BPO)设置
    如果存储桶开启了BPO,项目级IAM权限会被忽略,仅桶级IAM权限生效。验证BPO状态:

    gcloud storage buckets describe gs://test-us-east --format="value(bucketPolicyOnly.enabled)"
    

    若返回True,需确认桶级IAM中确实已添加该服务账号的Storage Admin权限,可通过以下命令查看:

    gcloud storage buckets get-iam-policy gs://test-us-east
    
  • 排查组织级拒绝政策
    检查组织或项目是否存在IAM拒绝政策,限制了该服务账号的GCS操作:

    1. 进入Google Cloud控制台的IAM页面
    2. 切换到「拒绝政策」标签
    3. 查找是否有针对vm-instances-sa@gcpplatform.iam.gserviceaccount.com或存储桶test-us-east的拒绝规则
  • 测试基础权限与工具兼容性

    1. 用gsutil替代gcloud storage测试上传,排查工具差异:
      gsutil cp temp_files/test.txt gs://test-us-east/test.txt
      
    2. 先测试桶的访问权限:
      gcloud storage ls gs://test-us-east
      
      若此命令也报错,说明确实是桶的访问权限问题;若能正常列出,再排查文件读取权限:
      ls -l temp_files/test.txt
      
      确保当前用户对源文件有读取权限(权限位包含r)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 17:15:05