拥有Owner角色却无法在GCP创建Kubernetes集群
可能的原因及解决步骤
确认实际使用的账号
先执行gcloud config get-value account确认当前gcloud活跃账号,再检查Terraform代码里的googleprovider是否指定了其他service_account——有时候本地配置的默认账号可能和你预期的不一样。核对项目ID格式
错误信息里的projects/projects-test格式有误,GCP项目ID应为projects-test(不带projects/前缀)。检查Terraform中googleprovider的project字段,或者环境变量GOOGLE_PROJECT是否写错格式。检查默认网络的IAM约束
虽然Owner角色默认包含compute.networks.get权限,但如果default网络被单独设置了IAM条件绑定(比如限制访问时间、特定IP段),可能导致权限失效。去GCP控制台的VPC网络页面,找到default网络查看它的IAM权限列表,确认你的账号确实拥有该权限。排查组织级政策限制
你的GCP组织可能最近新增了组织政策约束,比如compute.restrictDefaultNetworkAccess这类限制默认网络访问的政策,或者其他限制Compute Engine API的规则。去GCP控制台的组织政策页面搜索相关约束,确认是否存在影响。回退Terraform Provider版本测试
两周前能用现在报错,有可能是Google Provider版本更新后,API调用逻辑变化导致权限检查更严格。查看versions.tf里的provider版本,临时回退到之前可用的版本再运行脚本试试。确认Owner权限的作用范围
检查你的账号的Owner角色是绑定在项目级别,还是仅部分资源。有些场景下,权限可能被限制在特定资源组而非整个项目,去GCP IAM页面查看角色绑定详情即可确认。
内容的提问来源于stack exchange,提问作者握草行天下

