Class LoggingAuditTrail
java.lang.Object
org.elasticsearch.xpack.security.audit.logfile.LoggingAuditTrail
- All Implemented Interfaces:
org.elasticsearch.cluster.ClusterStateListener,AuditTrail
public class LoggingAuditTrail
extends Object
implements AuditTrail, org.elasticsearch.cluster.ClusterStateListener
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final org.elasticsearch.common.settings.Setting<Boolean>static final org.elasticsearch.common.settings.Setting<Boolean>static final org.elasticsearch.common.settings.Setting<Boolean>static final org.elasticsearch.common.settings.Setting<Boolean>static final org.elasticsearch.common.settings.Setting<Boolean>static final org.elasticsearch.common.settings.Setting<Boolean>static final Stringstatic final Stringstatic final Stringstatic final Stringstatic final org.elasticsearch.common.settings.Setting<Boolean>static final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final StringFields inherited from interface org.elasticsearch.xpack.security.audit.AuditTrail
X_FORWARDED_FOR_HEADER -
Constructor Summary
ConstructorsConstructorDescriptionLoggingAuditTrail(org.elasticsearch.common.settings.Settings settings, org.elasticsearch.cluster.service.ClusterService clusterService, org.elasticsearch.threadpool.ThreadPool threadPool) -
Method Summary
Modifier and TypeMethodDescriptionvoidaccessDenied(String requestId, org.elasticsearch.xpack.core.security.authc.Authentication authentication, String action, org.elasticsearch.transport.TransportRequest transportRequest, org.elasticsearch.xpack.core.security.authz.AuthorizationEngine.AuthorizationInfo authorizationInfo) voidaccessGranted(String requestId, org.elasticsearch.xpack.core.security.authc.Authentication authentication, String action, org.elasticsearch.transport.TransportRequest msg, org.elasticsearch.xpack.core.security.authz.AuthorizationEngine.AuthorizationInfo authorizationInfo) voidanonymousAccessDenied(String requestId, String action, org.elasticsearch.transport.TransportRequest transportRequest) voidanonymousAccessDenied(String requestId, org.elasticsearch.rest.RestRequest request) voidauthenticationFailed(String requestId, String action, org.elasticsearch.transport.TransportRequest transportRequest) voidauthenticationFailed(String requestId, String realm, org.elasticsearch.xpack.core.security.authc.AuthenticationToken token, String action, org.elasticsearch.transport.TransportRequest transportRequest) voidauthenticationFailed(String requestId, String realm, org.elasticsearch.xpack.core.security.authc.AuthenticationToken token, org.elasticsearch.rest.RestRequest request) voidauthenticationFailed(String requestId, org.elasticsearch.rest.RestRequest request) voidauthenticationFailed(String requestId, org.elasticsearch.xpack.core.security.authc.AuthenticationToken token, String action, org.elasticsearch.transport.TransportRequest transportRequest) voidauthenticationFailed(String requestId, org.elasticsearch.xpack.core.security.authc.AuthenticationToken token, org.elasticsearch.rest.RestRequest request) voidauthenticationSuccess(String requestId, org.elasticsearch.xpack.core.security.authc.Authentication authentication, String action, org.elasticsearch.transport.TransportRequest transportRequest) voidauthenticationSuccess(String requestId, org.elasticsearch.xpack.core.security.authc.Authentication authentication, org.elasticsearch.rest.RestRequest request) voidclusterChanged(org.elasticsearch.cluster.ClusterChangedEvent event) voidconnectionDenied(InetAddress inetAddress, String profile, SecurityIpFilterRule rule) voidconnectionGranted(InetAddress inetAddress, String profile, SecurityIpFilterRule rule) TheAuditTrail.connectionGranted(InetAddress, String, SecurityIpFilterRule)andAuditTrail.connectionDenied(InetAddress, String, SecurityIpFilterRule)methods do not have a requestId because they related to a potentially long-lived TCP connection, not a single request.voidcoordinatingActionResponse(String requestId, org.elasticsearch.xpack.core.security.authc.Authentication authentication, String action, org.elasticsearch.transport.TransportRequest transportRequest, org.elasticsearch.transport.TransportResponse transportResponse) voidexplicitIndexAccessEvent(String requestId, AuditLevel eventType, org.elasticsearch.xpack.core.security.authc.Authentication authentication, String action, String index, String requestName, InetSocketAddress remoteAddress, org.elasticsearch.xpack.core.security.authz.AuthorizationEngine.AuthorizationInfo authorizationInfo) This is a "workaround" method to log index "access_granted" and "access_denied" events for actions not tied to aTransportMessage, or when the connection is not 1:1, i.e.name()static voidregisterSettings(List<org.elasticsearch.common.settings.Setting<?>> settings) voidrunAsDenied(String requestId, org.elasticsearch.xpack.core.security.authc.Authentication authentication, String action, org.elasticsearch.transport.TransportRequest transportRequest, org.elasticsearch.xpack.core.security.authz.AuthorizationEngine.AuthorizationInfo authorizationInfo) voidrunAsDenied(String requestId, org.elasticsearch.xpack.core.security.authc.Authentication authentication, org.elasticsearch.rest.RestRequest request, org.elasticsearch.xpack.core.security.authz.AuthorizationEngine.AuthorizationInfo authorizationInfo) voidrunAsGranted(String requestId, org.elasticsearch.xpack.core.security.authc.Authentication authentication, String action, org.elasticsearch.transport.TransportRequest transportRequest, org.elasticsearch.xpack.core.security.authz.AuthorizationEngine.AuthorizationInfo authorizationInfo) voidtamperedRequest(String requestId, String action, org.elasticsearch.transport.TransportRequest transportRequest) voidtamperedRequest(String requestId, org.elasticsearch.rest.RestRequest request) voidtamperedRequest(String requestId, org.elasticsearch.xpack.core.security.authc.Authentication authentication, String action, org.elasticsearch.transport.TransportRequest transportRequest)
-
Field Details
-
REST_ORIGIN_FIELD_VALUE
- See Also:
-
LOCAL_ORIGIN_FIELD_VALUE
- See Also:
-
TRANSPORT_ORIGIN_FIELD_VALUE
- See Also:
-
IP_FILTER_ORIGIN_FIELD_VALUE
- See Also:
-
SECURITY_CHANGE_ORIGIN_FIELD_VALUE
- See Also:
-
LOG_TYPE
- See Also:
-
TIMESTAMP
- See Also:
-
ORIGIN_TYPE_FIELD_NAME
- See Also:
-
ORIGIN_ADDRESS_FIELD_NAME
- See Also:
-
NODE_NAME_FIELD_NAME
- See Also:
-
NODE_ID_FIELD_NAME
- See Also:
-
HOST_ADDRESS_FIELD_NAME
- See Also:
-
HOST_NAME_FIELD_NAME
- See Also:
-
CLUSTER_NAME_FIELD_NAME
- See Also:
-
CLUSTER_UUID_FIELD_NAME
- See Also:
-
EVENT_TYPE_FIELD_NAME
- See Also:
-
EVENT_ACTION_FIELD_NAME
- See Also:
-
PRINCIPAL_FIELD_NAME
- See Also:
-
PRINCIPAL_RUN_BY_FIELD_NAME
- See Also:
-
PRINCIPAL_RUN_AS_FIELD_NAME
- See Also:
-
PRINCIPAL_REALM_FIELD_NAME
- See Also:
-
PRINCIPAL_RUN_BY_REALM_FIELD_NAME
- See Also:
-
PRINCIPAL_RUN_AS_REALM_FIELD_NAME
- See Also:
-
API_KEY_ID_FIELD_NAME
- See Also:
-
API_KEY_NAME_FIELD_NAME
- See Also:
-
SERVICE_TOKEN_NAME_FIELD_NAME
- See Also:
-
SERVICE_TOKEN_TYPE_FIELD_NAME
- See Also:
-
PRINCIPAL_ROLES_FIELD_NAME
- See Also:
-
AUTHENTICATION_TYPE_FIELD_NAME
- See Also:
-
REALM_FIELD_NAME
- See Also:
-
URL_PATH_FIELD_NAME
- See Also:
-
URL_QUERY_FIELD_NAME
- See Also:
-
REQUEST_METHOD_FIELD_NAME
- See Also:
-
REQUEST_BODY_FIELD_NAME
- See Also:
-
REQUEST_ID_FIELD_NAME
- See Also:
-
ACTION_FIELD_NAME
- See Also:
-
INDICES_FIELD_NAME
- See Also:
-
REQUEST_NAME_FIELD_NAME
- See Also:
-
TRANSPORT_PROFILE_FIELD_NAME
- See Also:
-
RULE_FIELD_NAME
- See Also:
-
OPAQUE_ID_FIELD_NAME
- See Also:
-
TRACE_ID_FIELD_NAME
- See Also:
-
X_FORWARDED_FOR_FIELD_NAME
- See Also:
-
PUT_CONFIG_FIELD_NAME
- See Also:
-
DELETE_CONFIG_FIELD_NAME
- See Also:
-
CHANGE_CONFIG_FIELD_NAME
- See Also:
-
CREATE_CONFIG_FIELD_NAME
- See Also:
-
INVALIDATE_API_KEYS_FIELD_NAME
- See Also:
-
NAME
- See Also:
-
EMIT_HOST_ADDRESS_SETTING
-
EMIT_HOST_NAME_SETTING
-
EMIT_NODE_NAME_SETTING
-
EMIT_NODE_ID_SETTING
-
EMIT_CLUSTER_NAME_SETTING
-
EMIT_CLUSTER_UUID_SETTING
-
INCLUDE_EVENT_SETTINGS
-
EXCLUDE_EVENT_SETTINGS
-
INCLUDE_REQUEST_BODY
-
SECURITY_CHANGE_ACTIONS
-
FILTER_POLICY_IGNORE_PRINCIPALS
-
FILTER_POLICY_IGNORE_REALMS
-
FILTER_POLICY_IGNORE_ROLES
-
FILTER_POLICY_IGNORE_INDICES
-
FILTER_POLICY_IGNORE_ACTIONS
-
-
Constructor Details
-
LoggingAuditTrail
public LoggingAuditTrail(org.elasticsearch.common.settings.Settings settings, org.elasticsearch.cluster.service.ClusterService clusterService, org.elasticsearch.threadpool.ThreadPool threadPool)
-
-
Method Details
-
name
- Specified by:
namein interfaceAuditTrail
-
authenticationSuccess
public void authenticationSuccess(String requestId, org.elasticsearch.xpack.core.security.authc.Authentication authentication, org.elasticsearch.rest.RestRequest request) - Specified by:
authenticationSuccessin interfaceAuditTrail
-
authenticationSuccess
public void authenticationSuccess(String requestId, org.elasticsearch.xpack.core.security.authc.Authentication authentication, String action, org.elasticsearch.transport.TransportRequest transportRequest) - Specified by:
authenticationSuccessin interfaceAuditTrail
-
anonymousAccessDenied
public void anonymousAccessDenied(String requestId, String action, org.elasticsearch.transport.TransportRequest transportRequest) - Specified by:
anonymousAccessDeniedin interfaceAuditTrail
-
anonymousAccessDenied
- Specified by:
anonymousAccessDeniedin interfaceAuditTrail
-
authenticationFailed
public void authenticationFailed(String requestId, org.elasticsearch.xpack.core.security.authc.AuthenticationToken token, String action, org.elasticsearch.transport.TransportRequest transportRequest) - Specified by:
authenticationFailedin interfaceAuditTrail
-
authenticationFailed
- Specified by:
authenticationFailedin interfaceAuditTrail
-
authenticationFailed
public void authenticationFailed(String requestId, String action, org.elasticsearch.transport.TransportRequest transportRequest) - Specified by:
authenticationFailedin interfaceAuditTrail
-
authenticationFailed
public void authenticationFailed(String requestId, org.elasticsearch.xpack.core.security.authc.AuthenticationToken token, org.elasticsearch.rest.RestRequest request) - Specified by:
authenticationFailedin interfaceAuditTrail
-
authenticationFailed
public void authenticationFailed(String requestId, String realm, org.elasticsearch.xpack.core.security.authc.AuthenticationToken token, String action, org.elasticsearch.transport.TransportRequest transportRequest) - Specified by:
authenticationFailedin interfaceAuditTrail
-
authenticationFailed
public void authenticationFailed(String requestId, String realm, org.elasticsearch.xpack.core.security.authc.AuthenticationToken token, org.elasticsearch.rest.RestRequest request) - Specified by:
authenticationFailedin interfaceAuditTrail
-
accessGranted
public void accessGranted(String requestId, org.elasticsearch.xpack.core.security.authc.Authentication authentication, String action, org.elasticsearch.transport.TransportRequest msg, org.elasticsearch.xpack.core.security.authz.AuthorizationEngine.AuthorizationInfo authorizationInfo) - Specified by:
accessGrantedin interfaceAuditTrail
-
explicitIndexAccessEvent
public void explicitIndexAccessEvent(String requestId, AuditLevel eventType, org.elasticsearch.xpack.core.security.authc.Authentication authentication, String action, String index, String requestName, InetSocketAddress remoteAddress, org.elasticsearch.xpack.core.security.authz.AuthorizationEngine.AuthorizationInfo authorizationInfo) Description copied from interface:AuditTrailThis is a "workaround" method to log index "access_granted" and "access_denied" events for actions not tied to aTransportMessage, or when the connection is not 1:1, i.e. several audit events for an action associated with the same message. It is currently only used to audit the resolved index (alias) name for eachBulkItemRequestcomprised by aBulkShardRequest. We should strive to not use this and TODO refactor it out!- Specified by:
explicitIndexAccessEventin interfaceAuditTrail
-
accessDenied
public void accessDenied(String requestId, org.elasticsearch.xpack.core.security.authc.Authentication authentication, String action, org.elasticsearch.transport.TransportRequest transportRequest, org.elasticsearch.xpack.core.security.authz.AuthorizationEngine.AuthorizationInfo authorizationInfo) - Specified by:
accessDeniedin interfaceAuditTrail
-
tamperedRequest
- Specified by:
tamperedRequestin interfaceAuditTrail
-
tamperedRequest
public void tamperedRequest(String requestId, String action, org.elasticsearch.transport.TransportRequest transportRequest) - Specified by:
tamperedRequestin interfaceAuditTrail
-
tamperedRequest
public void tamperedRequest(String requestId, org.elasticsearch.xpack.core.security.authc.Authentication authentication, String action, org.elasticsearch.transport.TransportRequest transportRequest) - Specified by:
tamperedRequestin interfaceAuditTrail
-
connectionGranted
Description copied from interface:AuditTrailTheAuditTrail.connectionGranted(InetAddress, String, SecurityIpFilterRule)andAuditTrail.connectionDenied(InetAddress, String, SecurityIpFilterRule)methods do not have a requestId because they related to a potentially long-lived TCP connection, not a single request. For both Transport and Rest connections, a single connection granted/denied event is generated even if that connection is used for multiple Elasticsearch actions (potentially as different users)- Specified by:
connectionGrantedin interfaceAuditTrail
-
connectionDenied
- Specified by:
connectionDeniedin interfaceAuditTrail
-
runAsGranted
public void runAsGranted(String requestId, org.elasticsearch.xpack.core.security.authc.Authentication authentication, String action, org.elasticsearch.transport.TransportRequest transportRequest, org.elasticsearch.xpack.core.security.authz.AuthorizationEngine.AuthorizationInfo authorizationInfo) - Specified by:
runAsGrantedin interfaceAuditTrail
-
runAsDenied
public void runAsDenied(String requestId, org.elasticsearch.xpack.core.security.authc.Authentication authentication, String action, org.elasticsearch.transport.TransportRequest transportRequest, org.elasticsearch.xpack.core.security.authz.AuthorizationEngine.AuthorizationInfo authorizationInfo) - Specified by:
runAsDeniedin interfaceAuditTrail
-
runAsDenied
public void runAsDenied(String requestId, org.elasticsearch.xpack.core.security.authc.Authentication authentication, org.elasticsearch.rest.RestRequest request, org.elasticsearch.xpack.core.security.authz.AuthorizationEngine.AuthorizationInfo authorizationInfo) - Specified by:
runAsDeniedin interfaceAuditTrail
-
coordinatingActionResponse
public void coordinatingActionResponse(String requestId, org.elasticsearch.xpack.core.security.authc.Authentication authentication, String action, org.elasticsearch.transport.TransportRequest transportRequest, org.elasticsearch.transport.TransportResponse transportResponse) - Specified by:
coordinatingActionResponsein interfaceAuditTrail
-
registerSettings
-
clusterChanged
public void clusterChanged(org.elasticsearch.cluster.ClusterChangedEvent event) - Specified by:
clusterChangedin interfaceorg.elasticsearch.cluster.ClusterStateListener
-