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

使用Python创建Cloud Storage存储桶时遇403权限不足问题求助

解决Google Cloud Storage创建桶时的403权限不足问题

嘿,我之前也碰到过类似的情况,用默认服务账号和默认API范围创建GCS桶时踩了403的坑,咱们一步步来排查:

1. 先查默认服务账号的IAM角色

默认服务账号(格式一般是[项目编号]-compute@developer.gserviceaccount.com)正常情况下在Compute Engine实例上是带Editor角色的,这个角色包含创建存储桶的权限,但难保不会被误改或者项目有特殊限制:

  • 打开Cloud Console的IAM & Admin > IAM页面
  • 找到你的默认服务账号,看看它的角色列表里有没有Storage Admin、Storage Bucket Creator或者Editor(Editor包含前两个权限)
  • 如果没有,直接给它添加Storage Bucket Creator角色就行,遵循最小权限原则

2. 确认实例的API访问范围

你说用了默认范围,但得确认这个范围真的包含GCS权限:

  • 去Compute Engine > VM实例页面,找到你的实例点编辑
  • 滚动到「Cloud API访问范围」,看看是不是选了允许所有Cloud API访问,或者至少包含Storage相关的范围(比如https://www.googleapis.com/auth/devstorage.full_control)
  • 如果之前选的是受限范围,改完之后记得重启实例,不然范围变更不会生效

3. 搞清楚代码是在哪跑的——本地还是GCE实例?

你的错误日志里是python2.7 sample.py,这点很关键:

  • 如果是本地机器跑代码:默认服务账号不会自动生效,你得先通过gcloud auth application-default login获取本地认证凭据,或者设置GOOGLE_APPLICATION_CREDENTIALS环境变量指向服务账号的密钥JSON文件
  • 如果是在GCE实例上跑:那除了前面的IAM和范围,还要确保实例的元数据里正确关联了默认服务账号,有时候元数据同步慢,重启实例能解决

4. 排查组织政策的限制

如果是企业级项目,可能有组织政策卡着不让创建桶:

  • 打开IAM & Admin > 组织政策页面
  • 搜索「Storage Bucket Creation」相关的政策,看看有没有禁止创建桶或者限制桶位置的规则,要是有的话得找管理员调整

补充:看完整错误信息定位根源

你的错误回溯截断了,完整的错误提示其实能直接点出问题:

如果提示Insufficient Permission: Request had insufficient authentication scopes.——那就是API范围的问题
如果提示Insufficient Permission: The caller does not have permission 'storage.buckets.create'——那就是IAM角色的问题

给你个简化的测试代码,用来快速验证权限:

from google.cloud import storage

def create_bucket(bucket_name):
    storage_client = storage.Client()
    bucket = storage_client.create_bucket(bucket_name)
    print(f"Bucket {bucket.name} created successfully")

if __name__ == "__main__":
    # 替换成你的桶名,注意桶名要全局唯一
    create_bucket("my-test-bucket-12345")

另外,记得把google-cloud-storage库更到最新版本,旧版本可能有兼容性问题:

pip install --upgrade google-cloud-storage

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:44:20