You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
HTTP TLS is automatically enabled for {{es}} and {{kib}} using self-signed certificates, with [several options available for customization](/deploy-manage/security/k8s-https-settings.md), including custom certificates and domain names.
2
+
3
+
{{kib}} instances are automatically configured to connect securely to {{es}}, without requiring manual setup.
ECK provides flexible options for managing SSL certificates in your deployments, including automatic certificate generation and rotation, integration with external tools like `cert-manager`, or using your own custom certificates. Custom HTTP certificates require manual management.
2
+
3
+
ECK automatically rotates any certificates and CAs that were generated by the operator and are under its management.
4
+
5
+
For certificate management configuration options, refer to [ECK configuration flags](cloud-on-k8s://reference/eck-configuration-flags.md).
{{es}} transport security and TLS certificates are automatically configured by the operator, but you can still [customize its service and CA certificates](/deploy-manage/security/k8s-transport-settings.md).
Copy file name to clipboardExpand all lines: deploy-manage/security/eck-tls.md
+6-9Lines changed: 6 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,18 +15,15 @@ Refer to [Communication channels](./secure-cluster-communications.md#communicati
15
15
16
16
## {{es}} transport layer configuration
17
17
18
-
{{es}} transport security and TLS certificates are automatically configured by the operator, but you can still [customize its service and CA certificates](/deploy-manage/security/k8s-transport-settings.md).
18
+
:::{include} ./_snippets/eck-transport.md
19
+
:::
19
20
20
21
## {{es}} and {{kib}} HTTP configuration
21
22
22
-
HTTP TLS is automatically enabled for {{es}} and {{kib}} using self-signed certificates, with [several options available for customization](./k8s-https-settings.md), including custom certificates and domain names.
23
-
24
-
{{kib}} instances are automatically configured to connect securely to {{es}}, without requiring manual setup.
23
+
:::{include} ./_snippets/eck-http.md
24
+
:::
25
25
26
26
## Certificates lifecycle
27
27
28
-
ECK provides flexible options for managing SSL certificates in your deployments, including automatic certificate generation and rotation, integration with external tools like `cert-manager`, or using your own custom certificates. Custom HTTP certificates require manual management.
29
-
30
-
ECK automatically rotates any certificates and CAs that were generated by the operator and are under its management.
31
-
32
-
For certificate management configuration options, refer to [ECK configuration flags](cloud-on-k8s://reference/eck-configuration-flags.md).
Copy file name to clipboardExpand all lines: deploy-manage/security/install-stack-demo-secure.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,8 @@ mapped_urls:
8
8
9
9
# Tutorial: Securing a self-managed {{stack}} [install-stack-demo-secure]
10
10
11
-
TBD: This one feels duplicate (it comes from elastic-stack original book)
11
+
% This doc feels duplicate (it comes from elastic-stack original book), although it includes an end to end guidance and offers different examples for certificates generation
12
+
% we have to decide what to do with this at a later stage
12
13
13
14
This tutorial is a follow-on to [installing a self-managed {{stack}}](/deploy-manage/deploy/self-managed.md) with a multi-node {{es}} cluster, {{kib}}, {{fleet-server}} and {{agent}}. In a production environment, it’s recommended after completing the {{kib}} setup to proceed directly to this tutorial to configure your SSL certificates. These steps guide you through that process, and then describe how to configure {{fleet-server}} and {{agent}} with the certificates in place.
Copy file name to clipboardExpand all lines: deploy-manage/security/k8s-https-settings.md
+10-5Lines changed: 10 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,13 +10,14 @@ mapped_urls:
10
10
11
11
# Manage HTTP certificates on ECK
12
12
13
-
## {{es}} certificates [k8s-tls-certificates]
14
-
13
+
ECK offers several options for securing the HTTP endpoints of {{es}} and {{kib}}. By default, the operator generates a dedicated CA per deployment, and issues individual certificates for each instance. Alternatively, you can supply your own certificates or integrate with external solutions like `cert-manager`.
15
14
16
15
:::{note}
17
-
This section only covers TLS certificates for the HTTP layer. TLS certificates for the transport layer that are used for internal communications between Elasticsearch nodes are managed by ECK and cannot be changed. You can however set your own certificate authority for the [transport layer](/deploy-manage/security/k8s-transport-settings.md#k8s-transport-ca).
16
+
This section only covers TLS certificates for the HTTP layer. TLS certificates for the transport layer that are used for internal communications between {{es}} nodes are managed by ECK and cannot be changed. You can however [set your own certificate authority for the transport layer](/deploy-manage/security/k8s-transport-settings.md#k8s-transport-ca).
18
17
:::
19
18
19
+
## {{es}} certificates [k8s-tls-certificates]
20
+
20
21
By default, the operator manages a self-signed certificate with a custom CA for each resource. The CA, the certificate and the private key are each stored in a separate `Secret`.
21
22
22
23
```sh
@@ -198,9 +199,13 @@ spec:
198
199
199
200
## Kibana HTTP configuration in ECK [k8s-kibana-http-configuration]
200
201
202
+
By default, ECK creates a `ClusterIP` [Service](https://kubernetes.io/docs/concepts/services-networking/service/) and associates it with the {{kib}} deployment.
203
+
204
+
If you need to expose {{kib}} externally or customize the service settings, ECK provides flexible options, including support for load balancers, custom DNS/IP SANs, and user-provided certificates.
205
+
201
206
### Load balancer settings and TLS SANs [k8s-kibana-http-publish]
202
207
203
-
By default a `ClusterIP` [Service](https://kubernetes.io/docs/concepts/services-networking/service/) is created and associated with the {{kib}} deployment. If you want to expose {{kib}} externally with a [load balancer](https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer), it is recommended to include a custom DNS name or IP in the self-generated certificate.
208
+
If you want to expose {{kib}} externally with a [load balancer](https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer), it is recommended to include a custom DNS name or IP in the self-generated certificate.
204
209
205
210
```yaml
206
211
apiVersion: kibana.k8s.elastic.co/v1
@@ -226,7 +231,7 @@ spec:
226
231
227
232
### Provide your own certificate [k8s-kibana-http-custom-tls]
228
233
229
-
If you want to use your own certificate, the required configuration is identical to {{es}}. Refer to [setup your own {{es}} certificate](#k8s-setting-up-your-own-certificate).
234
+
If you want to use your own certificate, the required configuration is identical to {{es}}. Refer to [setup your own {{es}} certificate](#k8s-setting-up-your-own-certificate) for more information.
Copy file name to clipboardExpand all lines: deploy-manage/security/secure-cluster-communications.md
+19-19Lines changed: 19 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,15 +13,22 @@ mapped_urls:
13
13
% Scope: landing page for manually handling TLS certificates, and for information about TLS in Elastic Stack in general.
14
14
# TLS encryption for cluster communications
15
15
16
-
This page explains how to secure communications and set up TLS certificates between components in your {{stack}} deployment.
16
+
This page explains how to secure communications and set up TLS certificates in your {{stack}} deployments.
17
17
18
18
For {{ech}} deployments and {{serverless-full}} projects, communication security is [fully managed by Elastic](/deploy-manage/security.md#managed-security-in-elastic-cloud) with no configuration required, including TLS certificates.
19
19
20
20
For ECE, ECK, and self-managed deployments, some of this process can be automated, with opportunities for manual configuration depending on your requirements. This page provides specific configuration guidance to secure the various communication channels between components.
21
21
22
-
:::{tip}
23
22
For a complete comparison of security feature availability and responsibility by deployment type, refer to [Security features by deployment type](/deploy-manage/security.md#comparison-table).
24
-
:::
23
+
24
+
::::{admonition} Understanding transport contexts
25
+
The term *transport* can be confusing in {{es}} because it's used in two different contexts:
26
+
-**Transport Layer Security (TLS)** is an industry-standard protocol that secures network communication. It's the modern name for SSL, and the Elastic documentation uses the terms TLS and SSL interchangeably.
27
+
- In {{es}}, the **transport layer** refers to internal node-to-node communication, which occurs over port 9300. This communication uses the [transport interface](elasticsearch://reference/elasticsearch/configuration-reference/networking-settings.md), which implements a binary protocol specific to {{es}}.
28
+
29
+
Keep this distinction in mind when configuring security settings.
30
+
::::
31
+
25
32
26
33
## Communication channels overview [communication-channels]
27
34
@@ -37,7 +44,7 @@ To ensure secure operation, it’s important to understand the communication cha
|[{{es}} transport layer](#encrypt-internode-communication)| Communication between {{es}} nodes within a cluster | Mutual TLS/SSL required for multi-node clusters |
39
46
|[{{es}} HTTP layer](#encrypt-http-communication)| Communication between external clients and {{es}} through the REST API | TLS/SSL optional (but recommended) |
40
-
|[{{kib}} HTTP layer](#encrypt-http-communication)| Communication between external browsers and {{kib}} through the REST API| TLS/SSL optional (but recommended) |
47
+
|[{{kib}} HTTP layer](#encrypt-http-communication)| Communication between external browsers or REST clients and {{kib}} | TLS/SSL optional (but recommended) |
41
48
42
49
### Transport layer security [encrypt-internode-communication]
43
50
@@ -62,7 +69,10 @@ The way that transport layer security is managed depends on your deployment type
62
69
63
70
:::{tab-item} ECK
64
71
:sync: eck
65
-
{{es}} transport security and TLS certificates are automatically configured by the operator, but you can still [customize its service and CA certificates](/deploy-manage/security/k8s-transport-settings.md).
72
+
73
+
:::{include} ./_snippets/eck-transport.md
74
+
:::
75
+
66
76
:::
67
77
68
78
:::{tab-item} Self-managed
@@ -72,16 +82,6 @@ The way that transport layer security is managed depends on your deployment type
72
82
73
83
::::
74
84
75
-
::::{admonition} Understanding transport contexts
76
-
Transport Layer Security (TLS) is the name of an industry standard protocol for applying security controls (such as encryption) to network communications. TLS is the modern name for what used to be called Secure Sockets Layer (SSL). The {{es}} documentation uses the terms TLS and SSL interchangeably.
77
-
78
-
Transport Protocol is the name of the protocol that {{es}} nodes use to communicate with one another. This name is specific to {{es}} and distinguishes the transport port (default `9300`) from the HTTP port (default `9200`). Nodes communicate with one another using the transport port, and REST clients communicate with {{es}} using the HTTP port.
79
-
80
-
Although the word *transport* appears in both contexts, they mean different things. It’s possible to apply TLS to both the {{es}} transport port and the HTTP port. We know that these overlapping terms can be confusing, so to clarify, in this scenario we’re applying TLS to the {{es}} transport port.
The HTTP layer includes the service endpoints exposed by both {{es}} and {{kib}}, supporting communications such as REST API requests, browser access to {{kib}}, and {{kib}}’s own traffic to {{es}}. Securing these endpoints helps prevent unauthorized access and protects sensitive data in transit.
@@ -116,9 +116,9 @@ HTTP TLS for deployments is managed at the platform proxy level. Refer to these
116
116
::::{tab-item} ECK
117
117
:sync: eck
118
118
119
-
HTTP TLS is automatically enabled for {{es}} and {{kib}} using self-signed certificates, with [several options available for customization](./k8s-https-settings.md), including custom certificates and domain names.
119
+
:::{include} ./_snippets/eck-http.md
120
+
:::
120
121
121
-
{{kib}} instances are automatically configured to connect securely to {{es}}, without requiring manual setup.
122
122
::::
123
123
124
124
::::{tab-item} Self-managed
@@ -159,9 +159,9 @@ In ECE, the platform automatically renews internal certificates. However, you mu
159
159
:::{tab-item} ECK
160
160
:sync: eck
161
161
162
-
ECK provides flexible options for managing SSL certificates in your deployments, including automatic certificate generation and rotation, integration with external tools like `cert-manager`, or using your own custom certificates. Custom HTTP certificates require manual management.
162
+
:::{include} ./_snippets/eck-lifecycle.md
163
+
:::
163
164
164
-
TBD, add links to cert validity settings and cert configuration
Copy file name to clipboardExpand all lines: deploy-manage/security/self-auto-setup.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,6 +18,10 @@ mapped_pages:
18
18
*[Download](https://www.elastic.co/downloads/elasticsearch) and unpack the `elasticsearch` package distribution for your environment.
19
19
*[Download](https://www.elastic.co/downloads/kibana) and unpack the `kibana` package distribution for your environment.
20
20
21
+
::::{note}
22
+
This guide assumes a `.tar.gz` installation of {{es}} and {{kib}} on Linux.
23
+
For instructions tailored to other installation packages (such as DEB, RPM, Docker, or macOS), refer to the [{{es}}](/deploy-manage/deploy/self-managed/installing-elasticsearch.md#elasticsearch-install-packages) and [{{kib}}](/deploy-manage/deploy/self-managed/install-kibana.md#install) installation guides.
24
+
::::
21
25
22
26
## Start {{es}} and enroll {{kib}} with security enabled [stack-start-with-security]
Copy file name to clipboardExpand all lines: deploy-manage/security/self-tls.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ If you're looking to secure a new or existing cluster by setting up TLS for the
14
14
15
15
The topics in this section focus on post-setup tasks:
16
16
17
-
*[](./kibana-es-mutual-tls.md) (**optional**): Strengthen security by requiring {{kib}} to use a client certificate when connecting to {{es}}.
17
+
*[](./kibana-es-mutual-tls.md): Strengthen security by requiring {{kib}} to use a client certificate when connecting to {{es}}.
18
18
*[](./updating-certificates.md): Renew or replace existing TLS certificates before they expire.
19
19
*[](./supported-ssltls-versions-by-jdk-version.md): Customize the list of supported SSL/TLS versions in your cluster.
20
20
*[](./enabling-cipher-suites-for-stronger-encryption.md): Enable additional cipher suites for TLS communications, including those used with authentication providers.
Copy file name to clipboardExpand all lines: deploy-manage/security/using-kibana-with-security.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,9 +36,9 @@ When {{kib}} traffic is balanced across multiple instances connected to the same
36
36
37
37
The {{kib}} server can instruct browsers to enable additional security controls using HTTP headers.
38
38
39
-
1. Enable HTTP Strict-Transport-Security.
39
+
1. Enable `HTTP StrictTransportSecurity (HSTS)`.
40
40
41
-
Use [`strictTransportSecurity`](https://www.elastic.co/guide/en/kibana/current/settings.html#server-securityResponseHeaders-strictTransportSecurity) to ensure that browsers will only attempt to access {{kib}} with SSL/TLS encryption. This is designed to prevent manipulator-in-the-middle attacks. To configure this with a lifetime of one year in your `kibana.yml`:
41
+
Use [`strictTransportSecurity`](https://www.elastic.co/guide/en/kibana/current/settings.html#server-securityResponseHeaders-strictTransportSecurity) to ensure that browsers will only attempt to access [{{kib}} with SSL/TLS encryption](./set-up-basic-security-plus-https.md#encrypt-kibana-browser). This is designed to prevent manipulator-in-the-middle attacks. To configure this with a lifetime of one year in your `kibana.yml`:
0 commit comments