使用GCP工作负载身份时KEDA PubSub自动扩缩容遇权限问题求助
解决KEDA结合GCP PubSub使用工作负载身份时的monitoring.timeSeries.list权限问题
问题核心:你配置的
roles/monitoring.metricWriter仅授予监控指标写入权限,而KEDA基于PubSub做自动扩缩容时,需要读取GCP监控时间序列的权限(monitoring.timeSeries.list),这个角色不包含该权限,导致权限拒绝。修复步骤:
- 给关联的GCP服务账号添加
roles/monitoring.viewer角色,该角色包含monitoring.timeSeries.list等读取监控数据的必要权限,足以满足KEDA的扩缩容需求。 - 若遵循最小权限原则,可创建自定义IAM角色,仅包含
monitoring.timeSeries.list权限,再绑定到目标服务账号。
- 给关联的GCP服务账号添加
验证操作:
- 运行以下命令确认权限已正确绑定:
gcloud projects get-iam-policy YOUR_PROJECT_ID --filter="bindings.members:serviceAccount:YOUR_SERVICE_ACCOUNT@YOUR_PROJECT_ID.iam.gserviceaccount.com" --format="value(bindings.role)" - 等待IAM权限生效(通常1-2分钟),重启KEDA Operator Pod或触发一次扩缩容事件,检查错误是否消失。
- 运行以下命令确认权限已正确绑定:
额外排查点:
- 确认K8s侧的KEDA ServiceAccount已正确与GCP目标服务账号完成工作负载身份绑定。
- 检查KEDA PubSub触发器配置,确保已明确设置
podIdentity: gcp,且未残留JSON凭据相关配置。
内容的提问来源于stack exchange,提问作者susanilmh
相关产品推荐
相关产品推荐

