"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');
这仅适用于某些环境:
- 当 运行 在我的笔记本电脑上使用具有 "Errors Writer" 角色
的服务帐户时,它可以工作
- 当运行在我的集群中作为 K8S 作业运行时,在将 "Errors Writer" 角色添加到该集群的服务帐户后
- 在我的一个 K8S 部署中从我的 Node.js 应用程序 运行ning 调用时会导致以下错误:
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 权限并将其链接到您的集群或工作负载也将绕过此错误。
我正在尝试向 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');
这仅适用于某些环境:
- 当 运行 在我的笔记本电脑上使用具有 "Errors Writer" 角色 的服务帐户时,它可以工作
- 当运行在我的集群中作为 K8S 作业运行时,在将 "Errors Writer" 角色添加到该集群的服务帐户后
- 在我的一个 K8S 部署中从我的 Node.js 应用程序 运行ning 调用时会导致以下错误:
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 权限并将其链接到您的集群或工作负载也将绕过此错误。