Skip to content

Latest commit

 

History

History
14 lines (8 loc) · 1.5 KB

index.asciidoc

File metadata and controls

14 lines (8 loc) · 1.5 KB

Security

{kib} has generally been able to implement security transparently to core and plugin developers, and this largely remains the case. {kib} on two methods that the {es} Cluster provides: callWithRequest and callWithInternalUser.

callWithRequest executes requests against {es} using the authentication credentials of the {kib} end-user. So, if you log into {kib} with the user of foo when callWithRequest is used, {kib} execute the request against {es} as the user foo. Historically, callWithRequest has been used extensively to perform actions that are initiated at the request of {kib} end-users.

callWithInternalUser executes requests against {es} using the internal {kib} server user, and has historically been used for performing actions that aren’t initiated by {kib} end users; for example, creating the initial .kibana index or performing health checks against {es}.

However, with the changes that role-based access control (RBAC) introduces, this is no longer cut and dry. {kib} now requires all access to the .kibana index goes through the SavedObjectsClient. This used to be a best practice, as the SavedObjectsClient was responsible for translating the documents stored in {es} to and from Saved Objects, but RBAC is now taking advantage of this abstraction to implement access control and determine when to use callWithRequest versus callWithInternalUser.