Pulumi Up执行失败:GCP SecurityProfile配额项目未配置问题
解决Pulumi创建GCP组织级SecurityProfile的配额项目403错误
问题场景
使用Pulumi定义GCP组织级SecurityProfile代码如下:
const globalSecurityPolicy = new gcp.networksecurity.SecurityProfile( 'default-sp', { name: `${args.name}-sp`, parent: parentOrg, location: args.region, labels, description: '...description...', type: args.type ?? 'THREAT_PREVENTION', }, { parent: this } );
执行pulumi up时触发403错误,提示本地Application Default Credentials(ADC)认证模式下,networksecurity.googleapis.com API要求配置配额项目但未设置。
已尝试无效操作
- 确认
gcloud config set billing/quota_project指定项目已启用相关API - 执行
gcloud auth application-default set-quota-project YOUR_PROJECT - 执行
gcloud config set billing/quota_project YOUR_PROJECT
针对性排查与解决步骤
1. 验证ADC配额项目配置是否生效
执行命令确认当前ADC的配额项目设置:
gcloud auth application-default print-access-token | grep -o '"quota_project_id":"[^"]*"' | cut -d'"' -f4
若输出为空,说明配额项目未正确绑定,重新执行:
gcloud auth application-default set-quota-project YOUR_QUOTA_PROJECT_ID
替换YOUR_QUOTA_PROJECT_ID为已启用networksecurity.googleapis.com API的项目ID。
2. 确认ADC身份拥有配额项目权限
登录GCP控制台,进入配额项目的IAM页面,检查当前ADC身份(本地用户或服务账号)是否被授予Service Usage Consumer角色(roles/serviceusage.serviceConsumer),该角色允许身份使用配额项目的API资源。
3. 在Pulumi中显式指定配额项目
避免依赖本地ADC默认配置,直接在Pulumi中设置:
- 通过命令行配置:
pulumi config set gcp:quotaProject YOUR_QUOTA_PROJECT_ID
- 或在代码中显式声明:
const globalSecurityPolicy = new gcp.networksecurity.SecurityProfile( 'default-sp', { name: `${args.name}-sp`, parent: parentOrg, location: args.region, labels, description: '...description...', type: args.type ?? 'THREAT_PREVENTION', quotaProject: "YOUR_QUOTA_PROJECT_ID" }, { parent: this } );
4. 重置ADC凭证缓存
若存在旧缓存导致配置不生效,重置ADC:
gcloud auth application-default revoke gcloud auth application-default login
登录完成后立即执行配额项目绑定命令:
gcloud auth application-default set-quota-project YOUR_QUOTA_PROJECT_ID
5. 检查组织级权限
由于创建的是组织级对象,需确认ADC身份在组织IAM中拥有networksecurity.securityProfiles.create权限,可通过授予Network Security Admin角色(roles/networksecurity.admin)或自定义角色实现;同时确保配额项目已绑定有效账单账号。
内容的提问来源于stack exchange,提问作者Adam Smooch
相关产品推荐
相关产品推荐

