GCP中从VM实例复制文件到Cloud Storage存储桶报403错误如何解决?
GCP GCE向Cloud Storage传文件403权限报错修复方案
遗漏配置项说明
你遇到的Provided scope(s) are not authorized403报错是GCP权限两层校验不匹配导致的,遗漏配置如下:
- GCE实例绑定的服务账号未被授予目标存储桶的写入权限:实例API访问范围仅为权限上限,实际生效权限需要服务账号的IAM权限匹配,二者缺一不可
- 修改实例API访问范围后未重启实例,配置未生效
- 未排除存储桶IAM条件、组织策略等额外权限拦截规则
修复操作步骤
- 首先获取GCE实例绑定的服务账号:进入GCE实例详情页,找到「API和身份管理」板块,复制绑定的服务账号邮箱地址
- 配置存储桶权限:进入目标存储桶
gs://kukroid-gcp的权限管理页面,点击「授予访问权限」,粘贴之前复制的服务账号邮箱,为其分配存储对象创建者角色(仅需写入权限可选该角色,需全量桶操作权限可分配存储管理员角色),保存配置 - 生效实例访问范围配置:停止运行中的GCE实例,进入编辑页面,找到「访问权限范围」板块,选择「为每个API设置访问权限」,找到Cloud Storage选项,勾选「读写」权限,保存配置后重新启动实例
- 验证修复效果:实例启动后重新执行复制命令即可:
gsutil cp test.text gs://kukroid-gcp
若仍报错,可在实例内执行
gcloud auth list确认当前默认激活的凭证为实例服务账号,避免个人账号登录覆盖了默认服务账号凭证
内容的提问来源于stack exchange,提问作者kukroid
相关产品推荐
相关产品推荐

