版本: 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());
}





