"insufficient authentication scopes" 来自 Google API 从 K8S 集群调用时

"insufficient authentication scopes" from Google API when calling from K8S cluster

我正在尝试向 Google 错误报告报告 Node.js 错误,来自我们的一个 kubernetes 部署 运行ning 在 GCP/GKE 集群上使用 RBAC。 (即在与集群关联的服务帐户中定义的权限)

const googleCloud = require('@google-cloud/error-reporting');
const googleCloudErrorReporting = new googleCloud.ErrorReporting();
googleCloudErrorReporting.report('[test] dummy error message');

这仅适用于某些环境:

ERROR:@google-cloud/error-reporting: Encountered an error while attempting to transmit an error to the Stackdriver Error Reporting API.

Error: Request had insufficient authentication scopes.

感觉作业确实获取了集群服务帐户的权限更改,而我的部署没有。

我确实尝试重新创建部署以使其刷新其身份验证令牌,但错误仍在发生...

有什么想法吗?

UPDATE: I ended up following Jérémie Girault's suggestion: create a service account and bind it to my deployment. It works!

错误消息与使用默认服务帐户时在集群上设置的访问范围有关。您必须允许访问适当的 API.

正如您所提到的,创建一个单独的服务帐户,为其提供适当的 IAM 权限并将其链接到您的集群或工作负载也将绕过此错误。