Skip to content

Commit 90668a3

Browse files
authored
Merge branch 'main' into 586-siem-migration-guide
2 parents 64f887b + 6ab3bbe commit 90668a3

File tree

56 files changed

+592
-2900
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+592
-2900
lines changed

deploy-manage/deploy/cloud-on-k8s.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,11 @@ Alpha, beta, and stable API versions follow the same [conventions used by Kubern
8080

8181
ECK is compatible with the following Elastic Stack applications:
8282

83-
* Elasticsearch, Kibana, APM Server: 6.8+, 7.1+, 8+
84-
* Enterprise Search: 7.7+, 8+
85-
* Beats: 7.0+, 8+
86-
* Elastic Agent: 7.10+ (standalone), 7.14+ (Fleet), 8+
87-
* Elastic Maps Server: 7.11+, 8+
83+
* Elasticsearch, Kibana, APM Server: 7.17+, 8+
84+
* Enterprise Search: 7.17+, 8+
85+
* Beats: 7.17+, 8+
86+
* Elastic Agent: 7.10+ (standalone), 7.17+ (Fleet), 8+
87+
* Elastic Maps Server: 7.17+, 8+
8888
* Logstash: 8.7+
8989

9090
Elastic Stack application images for the OpenShift-certified Elasticsearch (ECK) Operator are only available from version 7.10 and later.

deploy-manage/security.md

Lines changed: 114 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -75,102 +75,157 @@ $$$maintaining-audit-trail$$$
7575

7676
# Security
7777

78-
This section covers how to secure your Elastic environment. Learn how to implement TLS encryption, network security controls, and data protection measures.
78+
This overview page helps you understand Elastic's security capabilities across different deployment types. You'll find:
79+
80+
- Key security features for protecting your Elastic deployment
81+
- Security capabilities specific to each deployment type
82+
- Comparison tables showing feature availability and configurability by deployment type
83+
- Links to detailed implementation guides
7984

8085
## Security overview
8186

82-
An Elastic implementation comprises many moving parts: {es} nodes forming the cluster, {kib} instances, additional stack components such as Logstash and Beats, and various clients and integrations communicating with your deployment.
87+
An Elastic implementation comprises many moving parts: {{es}} nodes forming the cluster, {{kib}} instances, additional stack components such as Logstash and Beats, and various clients and integrations communicating with your deployment.
8388

8489
To keep your data secured, Elastic offers comprehensive security features that:
8590
- Prevent unauthorized access to your deployment
8691
- Encrypt communications between components
8792
- Protect data at rest
8893
- Secure sensitive settings and saved objects
8994

90-
Security requirements and capabilities vary by deployment. Features may be managed automatically by Elastic, require configuration, or must be fully self-managed. Refer to [Security by deployment type](#security-by-deployment-type) for details.
95+
:::{note}
96+
The availability and configurability of security features vary by deployment type. Refer to [Security by deployment type](#security-features-by-deployment-type) for a comparison table.
97+
:::
9198

92-
::::{tip}
93-
See the [Deployment overview](/deploy-manage/deploy.md) to understand your options for deploying Elastic.
94-
::::
99+
## Security topics
95100

96-
### Security by deployment type
101+
The documentation is organized into three main areas.
97102

98-
Security features have one of these statuses across deployment types:
103+
On every page, you'll see deployment type indicators that show which content applies to specific deployment types. Focus on sections tagged with your deployment type and look for subsections specifically addressing your deployment model.
99104

100-
| Status | Description |
101-
|--------|-------------|
102-
| **Managed** | Handled automatically by Elastic with no user configuration needed |
103-
| **Configurable** | Built-in feature that needs your configuration (like IP filters or passwords) |
104-
| **Self-managed** | Infrastructure-level security you implement and maintain |
105-
| **N/A** | Not available for this deployment type |
105+
### 1. Secure your orchestrator
106106

107-
#### Communication security
107+
The [security of your orchestrator](security/secure-hosting-environment.md) forms the foundation of your overall security posture. This section covers environment-specific security controls:
108108

109-
| **Security feature** | Serverless | Elastic Cloud Hosted | ECE | ECK | Self-managed |
110-
|------------------|------------|--------------|-----|-----|--------------|
111-
| **TLS (HTTP Layer)** | Managed | Managed | Configurable | Configurable | Self-managed |
112-
| **TLS (Transport Layer)** | Managed | Managed | Managed | Managed | Self-managed |
109+
- [**Elastic Cloud Hosted and Serverless**](security/secure-your-elastic-cloud-organization.md)
110+
- [**Elastic Cloud Enterprise**](security/secure-your-elastic-cloud-enterprise-installation.md)
111+
- [**Elastic Cloud on Kubernetes**](security/secure-your-eck-installation.md)
113112

114-
#### Network security
113+
:::{note}
114+
There is no orchestration layer for self-managed deployments because you directly control the host environment. Refer to [](security/manually-configure-security-in-self-managed-cluster.md) to learn more about securing self-managed installations.
115+
:::
115116

116-
| **Security feature** | Serverless | Elastic Cloud Hosted | ECE | ECK | Self-managed |
117-
|------------------|------------|--------------|-----|-----|--------------|
118-
| **IP traffic filtering** | Configurable | Configurable | Configurable | Configurable | Configurable |
119-
| **Private link** | N/A | Configurable | N/A | N/A | N/A |
120-
| **Static IPs** | Configurable | Configurable | N/A | N/A | N/A |
117+
### 2. Secure your deployments and clusters
121118

122-
#### Data security
119+
[Secure your deployments](security/secure-your-cluster-deployment.md) with features available across all deployment types:
123120

124-
| **Security feature** | Serverless | Elastic Cloud Hosted | ECE | ECK | Self-managed |
125-
|------------------|------------|--------------|-----|-----|--------------|
126-
| **Encryption at rest** | Managed | Managed | Self-managed | Self-managed | Self-managed |
127-
| **Bring your own encryption key** | N/A | Configurable | N/A | N/A | N/A |
128-
| **Keystore security** | Managed | Managed | Configurable | Configurable | Configurable |
129-
| **Saved object encryption** | Managed | Managed | Configurable | Configurable | Configurable |
121+
- [**Traffic filtering**](security/traffic-filtering.md): IP filtering, private links, and static IPs
122+
- [**Secure communications**](security/secure-cluster-communications.md): TLS configuration, certificates management
123+
- [**Data protection**](security/data-security.md): Encryption at rest, secure settings, saved objects
124+
- [**Session management**](security/kibana-session-management.md): Kibana session controls
125+
- [**FIPS 140-2 compliance**](security/fips-140-2.md): Federal security standards
130126

131-
#### User session security
127+
### 3. Secure your clients and integrations
132128

133-
| **Security feature** | Serverless | Elastic Cloud Hosted | ECE | ECK | Self-managed |
134-
|------------------|------------|--------------|-----|-----|--------------|
135-
| **Kibana Sessions** | Managed | Configurable | Configurable | Configurable | Configurable |
129+
[Secure your clients and integrations](security/secure-clients-integrations.md) to ensure secure communication between your applications and Elastic:
136130

137-
### Using this documentation
131+
- [**Client security**](security/httprest-clients-security.md): Best practices for securely connecting applications to {{es}}
132+
- **Integration security**: Secure configuration for Beats, Logstash, and other integrations
138133

139-
Throughout this security documentation, you'll see deployment type indicators that show which content applies to specific deployment types. Each section clearly identifies which deployment types it applies to, and deployment-specific details are separated within each topic.
134+
## Security features by deployment type
140135

141-
To get the most relevant information for your environment, focus on sections tagged with your deployment type and look for subsections specifically addressing your deployment model.
136+
Security feature availability varies by deployment type, with each feature having one of the following statuses:
142137

143-
## Security topics
138+
| **Status** | **Description** |
139+
|--------|-------------|
140+
| **Managed** | Handled automatically by Elastic with no user configuration needed |
141+
| **Configurable** | Built-in feature that needs your configuration (like IP filters or passwords) |
142+
| **Self-managed** | Infrastructure-level security you implement and maintain |
143+
| **N/A** | Not available for this deployment type |
144144

145-
This security documentation is organized into four main areas:
145+
Select your deployment type below to see what's available and how implementation responsibilities are distributed:
146146

147-
% TODO: Add links to the sections below
147+
::::{tab-set}
148+
:group: deployment-type
148149

149-
### 1. Secure your hosting environment
150+
:::{tab-item} Elastic Cloud Hosted
151+
:sync: cloud-hosted
150152

151-
The security of your hosting environment forms the foundation of your overall security posture. This section covers environment-specific security controls:
153+
| **Security Category** | **Security Feature** | **Status** | **Description** |
154+
|------------------|------------|--------------|-------------|
155+
| **Communication** | TLS (HTTP Layer) | Managed | Automatically configured by Elastic |
156+
| | TLS (Transport Layer) | Managed | Automatically configured by Elastic |
157+
| **Network** | IP traffic filtering | Configurable | Configure IP-based access restrictions |
158+
| | Private link | Configurable | Establish secure VPC connection |
159+
| | Static IPs | Configurable | Enable fixed IP addresses |
160+
| **Data** | Encryption at rest | Managed | Automatically encrypted by Elastic |
161+
| | Bring your own encryption key | Configurable | Implement customer-provided keys |
162+
| | Keystore security | Managed | Automatically protected by Elastic |
163+
| | Saved object encryption | Managed | Automatically encrypted by Elastic |
164+
| **User Session** | Kibana Sessions | Configurable | Customize session parameters |
152165

153-
- **Elastic Cloud Hosted and Serverless**: Organization-level SSO, role-based access control, and cloud API keys
154-
- **Elastic Cloud Enterprise**: TLS certificates, role-based access control, and cloud API keys
155-
- **Self-managed environments**: TLS certificates, HTTPS configuration
166+
:::
156167

157-
### 2. Secure your deployments and clusters
168+
:::{tab-item} Serverless
169+
:sync: serverless
170+
171+
| **Security Category** | **Security Feature** | **Status** | **Description** |
172+
|------------------|------------|--------------|-------------|
173+
| **Communication** | TLS (HTTP Layer) | Managed | Automatically configured by Elastic |
174+
| | TLS (Transport Layer) | Managed | Automatically configured by Elastic |
175+
| **Network** | IP traffic filtering | Configurable | Configure IP-based access restrictions |
176+
| | Private link | N/A | X |
177+
| | Static IPs | Configurable | Enable fixed IP addresses |
178+
| **Data** | Encryption at rest | Managed | Automatically encrypted by Elastic |
179+
| | Bring your own encryption key | N/A | X |
180+
| | Keystore security | Managed | Automatically protected by Elastic |
181+
| | Saved object encryption | Managed | Automatically encrypted by Elastic |
182+
| **User Session** | Kibana Sessions | Managed | Automatically configured by Elastic |
158183

159-
Protect your deployments with features available across all deployment types:
184+
:::
185+
186+
:::{tab-item} ECE/ECK
187+
:sync: ece-eck
188+
189+
| **Security Category** | **Security Feature** | **Status** | **Description** |
190+
|------------------|------------|--------------|-------------|
191+
| **Communication** | TLS (HTTP Layer) | Configurable | Configure custom certificates |
192+
| | TLS (Transport Layer) | Managed | Automatically configured by Elastic |
193+
| **Network** | IP traffic filtering | Configurable | Configure IP-based access restrictions |
194+
| | Private link | N/A | X |
195+
| | Static IPs | N/A | X |
196+
| **Data** | Encryption at rest | Self-managed | Implement at infrastructure level |
197+
| | Bring your own encryption key | N/A | X |
198+
| | Keystore security | Configurable | Configure secure settings storage |
199+
| | Saved object encryption | Configurable | Enable encryption for saved objects |
200+
| **User Session** | Kibana Sessions | Configurable | Customize session parameters |
160201

161-
- **Authentication and access controls**: User management, API keys, authentication protocols, and traffic filtering
162-
- **Data protection**: Encryption, sensitive settings, and document-level security
163-
- **Monitoring and compliance**: Audit logging and security best practices
202+
:::
164203

165-
### 3. Secure your user accounts
204+
:::{tab-item} Self-managed
205+
:sync: self-managed
206+
207+
| **Security Category** | **Security Feature** | **Status** | **Description** |
208+
|------------------|------------|--------------|-------------|
209+
| **Communication** | TLS (HTTP Layer) | Self-managed | Implement and maintain certificates |
210+
| | TLS (Transport Layer) | Self-managed | Implement and maintain certificates |
211+
| **Network** | IP traffic filtering | Configurable | Configure IP-based access restrictions |
212+
| | Private link | N/A | X |
213+
| | Static IPs | N/A | X |
214+
| **Data** | Encryption at rest | Self-managed | Implement at infrastructure level |
215+
| | Bring your own encryption key | N/A | X |
216+
| | Keystore security | Configurable | Configure secure settings storage |
217+
| | Saved object encryption | Configurable | Enable encryption for saved objects |
218+
| **User Session** | Kibana Sessions | Configurable | Customize session parameters |
166219

167-
Individual user security helps prevent unauthorized access:
220+
:::
168221

169-
- **Multi-factor authentication**: Add an extra layer of security to your login process
222+
::::
170223

171-
### 4. Secure your clients and integrations
224+
## Next steps
172225

173-
Ensure secure communication between your applications and Elastic:
226+
Refer to the following sections for detailed instructions about securing your hosting environment:
174227

175-
- **Client security**: Best practices for securely connecting applications to {es}
176-
- **Integration security**: Secure configuration for Beats, Logstash, and other integrations
228+
* [Elastic Cloud Hosted and Serverless security setup](/deploy-manage/security/secure-your-elastic-cloud-organization.md)
229+
* [Elastic Cloud Enterprise (ECE) security setup](/deploy-manage/security/secure-your-elastic-cloud-enterprise-installation.md)
230+
* [Elastic Cloud on Kubernetes (ECK) security setup](/deploy-manage/security/secure-your-eck-installation.md)
231+
* [Self-managed cluster security setup](/deploy-manage/security/manually-configure-security-in-self-managed-cluster.md)

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

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
1-
# Tutorial 2: Securing a self-managed {{stack}} [install-stack-demo-secure]
1+
---
2+
applies_to:
3+
deployment:
4+
self: ga
5+
---
26

3-
This tutorial is a follow-on to [Tutorial 1: Installing a self-managed {{stack}}](/deploy-manage/deploy/self-managed.md). The first tutorial describes how to configure a multi-node {{es}} cluster and then set up {{kib}}, followed by {{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.
7+
# Tutorial: Securing a self-managed {{stack}} [install-stack-demo-secure]
8+
9+
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.
410

511
**Securing the {{stack}}**
612

7-
Beginning with Elastic 8.0, security is enabled in the {{stack}} by default, meaning that traffic between {{es}} nodes and between {{kib}} and {{es}} is SSL-encrypted. While this is suitable for testing non-production viability of the Elastic platform, most production networks have requirements for the use of trusted CA-signed certificates. These steps demonstrate how to update the out-of-the-box self-signed certificates with your own trusted CA-signed certificates.
13+
Since {{stack}} 8.0, security is enabled by default, meaning that traffic between {{es}} nodes and between {{kib}} and {{es}} is SSL-encrypted. While this is suitable for testing non-production viability of the Elastic platform, most production networks have requirements for the use of trusted CA-signed certificates. These steps demonstrate how to update the out-of-the-box self-signed certificates with your own trusted CA-signed certificates.
814

915
For traffic to be encrypted between {{es}} cluster nodes and between {{kib}} and {{es}}, SSL certificates must be created for the transport ({{es}} inter-node communication) and HTTP (for the {{es}} REST API) layers. Similarly, when setting up {{fleet-server}} you’ll generate and configure a new certificate bundle, and then {{elastic-agent}} uses the generated certificates to communicate with both {{fleet-server}} and {{es}}. The process to set things up is as follows:
1016

@@ -23,7 +29,7 @@ It should take between one and two hours to complete these steps.
2329

2430
## Prerequisites and assumptions [install-stack-demo-secure-prereqs]
2531

26-
Before starting, you’ll need to have set up an on-premises {{es}} cluster with {{kib}}, following the steps in [Tutorial 1: Installing a self-managed {{stack}}](/deploy-manage/deploy/self-managed.md).
32+
Before starting, you’ll need to have set up an on-premises {{es}} cluster with {{kib}}, following the steps for [installing a self-managed {{stack}}](/deploy-manage/deploy/self-managed.md).
2733

2834
The examples in this guide use RPM packages to install the {{stack}} components on hosts running Red Hat Enterprise Linux 8. The steps for other install methods and operating systems are similar, and can be found in the documentation linked from each section.
2935

@@ -227,7 +233,7 @@ Now that communication between {{es}} nodes (the transport layer) has been secur
227233
```
228234

229235
2. When prompted, confirm that the settings are correct.
230-
3. Add the network IP address that clients can use to connect to the first {{es}} node. This is the same value that’s described in Step 2 of [Tutorial 1: Installing a self-managed {{stack}}](/deploy-manage/deploy/self-managed.md), for example `10.128.0.84`:
236+
3. Add the network IP address that clients can use to connect to the first {{es}} node. For example `10.128.0.84`:
231237

232238
```shell
233239
10.128.0.84
@@ -617,7 +623,7 @@ Now that the transport and HTTP layers are configured with encryption using the
617623

618624
Open a web browser to the external IP address of the Kibana host machine: `https://<kibana-host-address>:5601`. Note that the URL should use the `https` and not the `http` protocol.
619625

620-
15. Log in using the `elastic` user and password that you configured in Step 1 of [Tutorial 1: Installing a self-managed {{stack}}](/deploy-manage/deploy/self-managed.md).
626+
15. Log in using the `elastic` user and password that you configured when [installing your self-managed {{stack}}](/deploy-manage/deploy/self-managed.md).
621627

622628
Congratulations! You’ve successfully updated the SSL certificates between {{es}} and {{kib}}.
623629

0 commit comments

Comments
 (0)