执行gcloud builds submit部署Django到Cloud Run报storage.objects.get权限错误
GCP Cloud Build部署Django到Cloud Run 403权限错误解决方案
可能遗漏的配置及修复方式
- 存储桶访问控制模式不匹配
如果你的trouwfeestwebsite_cloudbuild存储桶使用的是细粒度(旧版)访问控制模式,仅授予存储桶级的权限不会自动同步到存储对象。你可以切换存储桶为统一访问控制模式,或在项目级IAM中为934957811880@cloudbuild.gserviceaccount.com授予作用范围包含该存储桶的roles/storage.objectViewer角色。 - IAM权限生效延迟
GCP IAM权限配置最长存在5分钟的生效延迟,配置完成后请等待几分钟再重新执行gcloud builds submit命令重试。 - 跨项目权限配置错误
执行gcloud config get-value project确认当前gcloud激活的项目,和trouwfeestwebsite_cloudbuild存储桶所属项目是否一致。如果为跨项目部署,你需要在存储桶所属的项目中为该Cloud Build服务账号授权,而非当前激活项目的IAM中配置。 - 客户管理加密密钥(CMEK)权限缺失
如果该存储桶使用了KMS客户管理密钥加密,除存储权限外,还需要为Cloud Build服务账号授予对应密钥的roles/cloudkms.cryptoKeyEncrypterDecrypter角色,否则无法读取加密后的存储对象。 - 命令缺失替换变量
你当前执行的命令仅传入了_INSTANCE_NAME和_REGION两个替换变量,虽然yaml中配置了其他变量的默认值,建议执行命令时完整传入所有变量,避免替换错误导致访问了不存在的存储资源:gcloud builds submit --config cloudmigrate.yaml --substitutions _INSTANCE_NAME=trouwfeestwebsite-db,_REGION=europe-west6,_SERVICE_NAME=invites-service,_SECRET_SETTINGS_NAME=django_settings
快速验证方式
执行以下命令查看存储桶当前IAM配置,确认Cloud Build服务账号已正确加入权限列表:
gsutil iam get gs://trouwfeestwebsite_cloudbuild
内容的提问来源于stack exchange,提问作者Sander Vanden Hautte
相关产品推荐
相关产品推荐

