📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 7.16-8.9

简要来说,当Elasticsearch尝试为一个不存在的服务账户加载角色时,就会出现这个错误。这可能是由于服务账户名称拼写错误,或者该账户已被删除造成的。要解决这个问题,您可以验证服务账户名称是否存在拼写错误,或者检查该账户是否存在。如果账户不存在,您需要创建该服务账户。此外,还要确保Elasticsearch拥有访问该服务账户的必要权限。

日志上下文 #

日志"cannot load role for service account [" + principal + “] – no such service account"的类名是 ServiceAccountService.java。 我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人参考:

public void getRoleDescriptorForPrincipal(String principal; ActionListener<RoleDescriptor> listener) {
 final ServiceAccount account = ACCOUNTS.get(principal);
 if (account == null) {
 listener.onFailure(
 new ElasticsearchSecurityException("cannot load role for service account [" + principal + "] - no such service account")
 );
 return;
 }
 listener.onResponse(account.roleDescriptor());
 }