Skip to content

Commit beca853

Browse files
committed
working on reviews
1 parent 7da7542 commit beca853

File tree

10 files changed

+54
-37
lines changed

10 files changed

+54
-37
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
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.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
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).
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{{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).

deploy-manage/security/eck-tls.md

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,15 @@ Refer to [Communication channels](./secure-cluster-communications.md#communicati
1515

1616
## {{es}} transport layer configuration
1717

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+
:::
1920

2021
## {{es}} and {{kib}} HTTP configuration
2122

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+
:::
2525

2626
## Certificates lifecycle
2727

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).
28+
:::{include} ./_snippets/eck-lifecycle.md
29+
:::

deploy-manage/security/install-stack-demo-secure.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ mapped_urls:
88

99
# Tutorial: Securing a self-managed {{stack}} [install-stack-demo-secure]
1010

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
1213

1314
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.
1415

deploy-manage/security/k8s-https-settings.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,14 @@ mapped_urls:
1010

1111
# Manage HTTP certificates on ECK
1212

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`.
1514

1615
:::{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).
1817
:::
1918

19+
## {{es}} certificates [k8s-tls-certificates]
20+
2021
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`.
2122

2223
```sh
@@ -198,9 +199,13 @@ spec:
198199

199200
## Kibana HTTP configuration in ECK [k8s-kibana-http-configuration]
200201

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+
201206
### Load balancer settings and TLS SANs [k8s-kibana-http-publish]
202207

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.
204209

205210
```yaml
206211
apiVersion: kibana.k8s.elastic.co/v1
@@ -226,7 +231,7 @@ spec:
226231

227232
### Provide your own certificate [k8s-kibana-http-custom-tls]
228233

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.
230235

231236
## Disable TLS [k8s-disable-tls]
232237

deploy-manage/security/secure-cluster-communications.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,22 @@ mapped_urls:
1313
% Scope: landing page for manually handling TLS certificates, and for information about TLS in Elastic Stack in general.
1414
# TLS encryption for cluster communications
1515

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.
1717

1818
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.
1919

2020
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.
2121

22-
:::{tip}
2322
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+
2532

2633
## Communication channels overview [communication-channels]
2734

@@ -37,7 +44,7 @@ To ensure secure operation, it’s important to understand the communication cha
3744
|-------------|-----------------|--------------------|
3845
| [{{es}} transport layer](#encrypt-internode-communication) | Communication between {{es}} nodes within a cluster | Mutual TLS/SSL required for multi-node clusters |
3946
| [{{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) |
4148

4249
### Transport layer security [encrypt-internode-communication]
4350

@@ -62,7 +69,10 @@ The way that transport layer security is managed depends on your deployment type
6269

6370
:::{tab-item} ECK
6471
: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+
6676
:::
6777

6878
:::{tab-item} Self-managed
@@ -72,16 +82,6 @@ The way that transport layer security is managed depends on your deployment type
7282

7383
::::
7484

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.
81-
::::
82-
83-
84-
8585
### HTTP layer security [encrypt-http-communication]
8686

8787
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
116116
::::{tab-item} ECK
117117
:sync: eck
118118

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+
:::
120121

121-
{{kib}} instances are automatically configured to connect securely to {{es}}, without requiring manual setup.
122122
::::
123123

124124
::::{tab-item} Self-managed
@@ -159,9 +159,9 @@ In ECE, the platform automatically renews internal certificates. However, you mu
159159
:::{tab-item} ECK
160160
:sync: eck
161161

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+
:::
163164

164-
TBD, add links to cert validity settings and cert configuration
165165
:::
166166

167167
:::{tab-item} Self-managed

deploy-manage/security/self-auto-setup.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ mapped_pages:
1818
* [Download](https://www.elastic.co/downloads/elasticsearch) and unpack the `elasticsearch` package distribution for your environment.
1919
* [Download](https://www.elastic.co/downloads/kibana) and unpack the `kibana` package distribution for your environment.
2020

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+
::::
2125

2226
## Start {{es}} and enroll {{kib}} with security enabled [stack-start-with-security]
2327

deploy-manage/security/self-tls.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ If you're looking to secure a new or existing cluster by setting up TLS for the
1414

1515
The topics in this section focus on post-setup tasks:
1616

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}}.
1818
* [](./updating-certificates.md): Renew or replace existing TLS certificates before they expire.
1919
* [](./supported-ssltls-versions-by-jdk-version.md): Customize the list of supported SSL/TLS versions in your cluster.
2020
* [](./enabling-cipher-suites-for-stronger-encryption.md): Enable additional cipher suites for TLS communications, including those used with authentication providers.

deploy-manage/security/using-kibana-with-security.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ When {{kib}} traffic is balanced across multiple instances connected to the same
3636

3737
The {{kib}} server can instruct browsers to enable additional security controls using HTTP headers.
3838

39-
1. Enable HTTP Strict-Transport-Security.
39+
1. Enable `HTTP Strict Transport Security (HSTS)`.
4040

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`:
4242

4343
```js
4444
server.securityResponseHeaders.strictTransportSecurity: "max-age=31536000"
@@ -76,6 +76,7 @@ The following {{kib}} security features are not covered in this document because
7676

7777
* [Session management](./kibana-session-management.md)
7878
* [Saved objects encryption](./secure-saved-objects.md)
79+
* [Secure settings](./secure-settings.md)
7980
* [Security events audit logging](./logging-configuration/security-event-audit-logging.md)
8081

8182
For more details, refer to [](./secure-your-cluster-deployment.md).

0 commit comments

Comments
 (0)