Secure the Elastic Stack

edit

Secure the Elastic Stack

edit

The Elastic Stack is comprised of many moving parts. There are the Elasticsearch nodes that form the cluster, plus Logstash instances, Kibana instances, Beats agents, and clients all communicating with the cluster. To keep your cluster safe, adhere to the Elasticsearch security principles.

Implementing security is a critical step in configuring the Elastic Stack. Security is not enabled by default, so it’s incredibly important that you configure security for the Elastic Stack to secure Elasticsearch clusters and any clients that communicate with your clusters. Explicitly running Elasticsearch without enabling security leaves your cluster exposed to anyone who can send network traffic to Elasticsearch.

You can password protect access to your data as well as enable more advanced security by configuring Transport Layer Security (TLS). This additional layer provides confidentiality and integrity protection to your communications with the Elastic Stack. You can also implement additional security measures, such as role-based access control, IP filtering, and auditing.

Enabling security protects Elasticsearch clusters by:

If you plan to run Elasticsearch in a Federal Information Processing Standard (FIPS) 140-2 enabled JVM, see FIPS 140-2.

Preventing unauthorized access

edit

To prevent unauthorized access to your Elasticsearch cluster, you need a way to authenticate users in order to validate that a user is who they claim to be. For example, making sure that only the person named Kelsey Andorra can sign in as the user kandorra. The Elasticsearch security features provide a standalone authentication mechanism that enables you to quickly password-protect your cluster.

If you’re already using LDAP, Active Directory, or PKI to manage users in your organization, the security features integrate with those systems to perform user authentication.

In many cases, authenticating users isn’t enough. You also need a way to control what data users can access and what tasks they can perform. By enabling the Elasticsearch security features, you can authorize users by assigning access privileges to roles and assigning those roles to users. Using this role-based access control mechanism (RBAC), you can limit the user kandorra to only perform read operations on the events index restrict access to all other indices.

The security features also enable you to restrict the nodes and clients that can connect to the cluster based on IP filters. You can block and allow specific IP addresses, subnets, or DNS domains to control network-level access to a cluster.

See User authentication and User authorization.

Preserving data integrity and confidentiality

edit

A critical part of security is keeping confidential data secured. Elasticsearch has built-in protections against accidental data loss and corruption. However, there’s nothing to stop deliberate tampering or data interception. The Elastic Stack security features use TLS to preserve the integrity of your data against tampering, while also providing confidentiality by encrypting communications to, from, and within the cluster. For even greater protection, you can increase the encryption strength.

See Configure security for the Elastic Stack.

Maintaining an audit trail

edit

Keeping a system secure takes vigilance. By using Elastic Stack security features to maintain an audit trail, you can easily see who is accessing your cluster and what they’re doing. You can configure the audit level, which accounts for the type of events that are logged. These events include failed authentication attempts, user access denied, node connection denied, and more. By analyzing access patterns and failed attempts to access your cluster, you can gain insights into attempted attacks and data breaches. Keeping an auditable log of the activity in your cluster can also help diagnose operational issues.

See Enable audit logging.