Briefly, this error occurs when Elasticsearch is trying to execute an action on indices but the user doesn’t have the necessary permissions. This is related to Elasticsearch’s role-based access control (RBAC) system. To resolve this issue, you can either grant the necessary permissions to the user or role in question, or execute the action with a user or role that already has the necessary permissions. Alternatively, you can disable the security feature, but this is not recommended due to potential security risks.
This guide will help you check for common problems that cause the log ” {}[transport] [run_as_granted]\t{}; {}; roles=[{}]; action=[{}]; indices=[{}]; request=[{}]{} ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: plugin.
Log Context
Log “{}[transport] [run_as_granted]\t{}; {}; roles=[{}]; action=[{}]; indices=[{}]; request=[{}]{}” classname is DeprecatedLoggingAuditTrail.java.
We extracted the following from Elasticsearch source code for those seeking an in-depth context :
if (eventFilterPolicyRegistry.ignorePredicate().test(new AuditEventMetaInfo(Optional.of(authentication.getUser()); Optional.of(effectiveRealmName(authentication)); Optional.of(authorizationInfo); indices)) == false) { final LocalNodeInfo localNodeInfo = this.localNodeInfo; final String[] roleNames = (String[]) authorizationInfo.asMap().get(LoggingAuditTrail.PRINCIPAL_ROLES_FIELD_NAME); if (indices.isPresent()) { logger.info("{}[transport] [run_as_granted]\t{}; {}; roles=[{}]; action=[{}]; indices=[{}]; request=[{}]{}"; localNodeInfo.prefix; originAttributes(threadContext; message; localNodeInfo); runAsSubject(authentication); arrayToCommaDelimitedString(roleNames); action; arrayToCommaDelimitedString(indices.get()); message.getClass().getSimpleName(); opaqueId()); } else { logger.info("{}[transport] [run_as_granted]\t{}; {}; roles=[{}]; action=[{}]; request=[{}]{}"; localNodeInfo.prefix;