繁体   English   中英

从K8S集群调用时,Google API的“身份验证范围不足”

[英]“insufficient authentication scopes” from Google API when calling from K8S cluster

我正在尝试通过在带有RBAC的GCP / GKE集群上运行的我们的kubernetes部署之一将Node.js错误报告给Google Error Reporting。 (即,在与群集关联的服务帐户中定义的权限)

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

这仅在某些环境中有效:

  • 当使用具有“错误编写者”角色的服务帐户在笔记本电脑上运行时,它可以工作
  • 在将“错误编写器”角色添加到该群集的服务帐户后,在作为K8S作业在我的群集中运行时,它可以工作
  • 从在我的K8S部署之一中运行的Node.js应用程序调用时,它将导致以下错误:

ERROR:@ google-cloud / error-reporting:尝试将错误传输到Stackdriver Error Reporting API时遇到错误。

错误:请求的身份验证范围不足。

感觉这项工作确实获得了群集服务帐户的权限更改,而我的部署却没有。

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

有任何想法吗?

更新 :我最终遵循JérémieGirault的建议 :创建一个服务帐户并将其绑定到我的部署中。 有用!

错误消息与使用默认服务帐户时在群集上设置的访问范围有关。 您必须启用对相应API的访问。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM