执行GCP Cloud Asset Export时提示AUTH_PERMISSION_DENIED权限报错
问题根因
你遇到的PERMISSION_DENIED报错和项目Owner角色本身无关,核心触发逻辑是:
首次在项目中使用Cloud Asset API执行导出操作时,Google Cloud会自动为该API创建专属的服务身份(系统托管的服务账号),创建这个服务身份需要调用Service Consumer Management API的serviceconsumermanagement.consumers.generateServiceAccount权限,该权限不在项目Owner角色的默认权限列表中,因此即使你是项目Owner,也会因为缺少对应权限被拦截。
如果你的项目上层有文件夹/组织级别的IAM权限限制,会进一步放大这个问题。
解决步骤
按顺序执行以下操作即可修复:
- 先确保依赖的Service Consumer Management API已在目标项目启用:
gcloud services enable serviceconsumermanagement.googleapis.com --project jcalderon-openx-sandbox - 给当前使用的个人账号绑定服务身份创建所需的角色,在项目层级绑定
roles/serviceconsumermanagement.serviceAgentAdmin即可:gcloud projects add-iam-policy-binding jcalderon-openx-sandbox \ --member=user:<替换为你当前认证用的个人账号邮箱> \ --role=roles/serviceconsumermanagement.serviceAgentAdmin - 等待1-2分钟让IAM权限生效后,手动触发Cloud Asset API的服务身份创建,不需要等导出命令自动触发:
gcloud beta services identity create --service=cloudasset.googleapis.com --project jcalderon-openx-sandbox - 上述命令执行成功返回服务账号信息后,重新执行你最初的资产导出命令即可正常运行:
gcloud asset export --content-type resource --project jcalderon-openx-sandbox --asset-types container.googleapis.com/Cluster --output-path "gs://mybucket/NEW_FILE"
补充说明:如果执行服务身份创建命令时仍然报权限错误,说明你的账号被组织层级的IAM策略限制了权限修改/服务身份创建能力,需要联系组织级管理员协助完成Cloud Asset API服务身份的创建操作。
内容的提问来源于stack exchange,提问作者user994165
相关产品推荐
相关产品推荐

