Skip to content

Commit 497383d

Browse files
authored
Update security docs (#87215) (#87334)
1 parent 74f3472 commit 497383d

3 files changed

Lines changed: 50 additions & 54 deletions

File tree

docs/management/managing-saved-objects.asciidoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ You have two options for exporting saved objects.
6060
* Select the checkboxes of objects that you want to export, and then click *Export*.
6161
* Click *Export x objects*, and export objects by type.
6262

63-
This action creates an NDJSON with all your saved objects. By default,
64-
the NDJSON includes related objects. Exported dashboards include their associated index patterns.
63+
This action creates an NDJSON with all your saved objects. By default, the NDJSON includes child objects that are related to the saved
64+
objects. Exported dashboards include their associated index patterns.
6565

6666
[float]
6767
[role="xpack"]
@@ -73,8 +73,8 @@ and select *Copy to space*. From here, you can select the spaces in which to cop
7373
You can also select whether to automatically overwrite any conflicts in the target spaces, or
7474
resolve them manually.
7575

76-
WARNING: The copy operation automatically includes related objects. If you don't want this behavior,
77-
use the <<spaces-api-copy-saved-objects, copy saved objects to space API>> instead.
76+
WARNING: The copy operation automatically includes child objects that are related to the saved objects. If you don't want this behavior, use
77+
the <<spaces-api-copy-saved-objects, copy saved objects to space API>> instead.
7878

7979

8080
[float]

docs/user/security/securing-communications/index.asciidoc

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -26,65 +26,65 @@ NOTE: You do not need to enable the {es} {security-features} for this type of en
2626
When you obtain a server certificate, you must set its subject alternative name (SAN) correctly to ensure that modern web browsers with
2727
hostname verification will trust it. You can set one or more SANs to the {kib} server's fully-qualified domain name (FQDN), hostname, or IP
2828
address. When choosing the SAN, you should pick whichever attribute you will be using to connect to {kib} in your browser, which is likely
29-
the FQDN.
29+
the FQDN in a production environment.
3030

31-
32-
You may choose to generate a certificate signing request (CSR) and private key using the {ref}/certutil.html[`elasticsearch-certutil`] tool.
31+
You may choose to generate a signed certificate and private key using the {ref}/certutil.html[`elasticsearch-certutil`] tool.
3332
For example:
3433

3534
[source,sh]
3635
--------------------------------------------------------------------------------
37-
bin/elasticsearch-certutil csr -name kibana-server -dns some-website.com,www.some-website.com
36+
bin/elasticsearch-certutil cert -name kibana-server -dns localhost,127.0.0.1
3837
--------------------------------------------------------------------------------
3938

40-
This will produce a ZIP archive named `kibana-server.zip`. Extract that archive to obtain the PEM-formatted CSR (`kibana-server.csr`) and
41-
unencrypted private key (`kibana-server.key`). In this example, the CSR has a common name (CN) of `kibana-server`, a SAN of
42-
`some-website.com`, and another SAN of `www.some-website.com`.
39+
This will produce a PKCS#12 file named `kibana-server.p12`, which contains the server certificate and private key.
4340

44-
NOTE: You will need to use a certificate authority (CA) to sign your CSR to obtain your server certificate. This certificate's signature
45-
will be verified by web browsers that are configured to trust the CA.
41+
NOTE: In this example, the server certificate is signed by a locally-generated certificate authority (CA). This is not suitable for a
42+
production environment, and it will result in warnings in your web browser until you configure your browser to trust the certificate. Steps
43+
to configure certificate trust vary depending upon your browser and operating system. If you want to obtain a server certificate for a
44+
production environment, you can instead generate a certificate signing request (CSR) with `elasticsearch-certutil` using
45+
{ref}/certutil.html#certutil-csr[CSR mode].
4646
--
4747

4848
. Configure {kib} to access the server certificate and private key.
4949

50-
.. If your server certificate and private key are in PEM format:
50+
.. If your server certificate and private key are contained in a PKCS#12 file:
5151
+
5252
--
53-
Specify your server certificate and private key in `kibana.yml`:
53+
Specify your PKCS#12 file in `kibana.yml`:
5454

5555
[source,yaml]
5656
--------------------------------------------------------------------------------
57-
server.ssl.certificate: "/path/to/kibana-server.crt"
58-
server.ssl.key: "/path/to/kibana-server.key"
57+
server.ssl.keystore.path: "/path/to/kibana-server.p12"
5958
--------------------------------------------------------------------------------
6059

61-
If your private key is encrypted, add the decryption password to your <<secure-settings,{kib} keystore>>:
60+
If your PKCS#12 file is encrypted, add the decryption password to your <<secure-settings,{kib} keystore>>:
6261

6362
[source,yaml]
6463
--------------------------------------------------------------------------------
65-
bin/kibana-keystore add server.ssl.keyPassphrase
64+
bin/kibana-keystore add server.ssl.keystore.password
6665
--------------------------------------------------------------------------------
66+
67+
NOTE: If you used `elasticsearch-certutil` to generate a PKCS#12 file and you did not specify a password, the file is encrypted, and you
68+
need to set `server.ssl.keystore.password` to an empty string.
6769
--
6870

69-
.. Otherwise, if your server certificate and private key are contained in a PKCS#12 file:
71+
.. Otherwise, if your server certificate and private key are in PEM format:
7072
+
7173
--
72-
Specify your PKCS#12 file in `kibana.yml`:
74+
Specify your server certificate and private key in `kibana.yml`:
7375

7476
[source,yaml]
7577
--------------------------------------------------------------------------------
76-
server.ssl.keystore.path: "/path/to/kibana-server.p12"
78+
server.ssl.certificate: "/path/to/kibana-server.crt"
79+
server.ssl.key: "/path/to/kibana-server.key"
7780
--------------------------------------------------------------------------------
7881

79-
If your PKCS#12 file is encrypted, add the decryption password to your <<secure-settings,{kib} keystore>>:
82+
If your private key is encrypted, add the decryption password to your <<secure-settings,{kib} keystore>>:
8083

8184
[source,yaml]
8285
--------------------------------------------------------------------------------
83-
bin/kibana-keystore add server.ssl.keystore.password
86+
bin/kibana-keystore add server.ssl.keyPassphrase
8487
--------------------------------------------------------------------------------
85-
86-
TIP: If your PKCS#12 file isn't protected with a password, depending on how it was generated, you may need to set
87-
`server.ssl.keystore.password` to an empty string.
8888
--
8989

9090
+
@@ -103,7 +103,7 @@ server.ssl.enabled: true
103103

104104
. Restart {kib}.
105105

106-
After making these changes, you must always access {kib} via HTTPS. For example, https://<your_kibana_host>.com.
106+
After making these changes, you must always access {kib} via HTTPS. For example, `https://localhost:5601`.
107107

108108
[[configuring-tls-kib-es]]
109109
==== Encrypt traffic between {kib} and {es}
@@ -166,8 +166,8 @@ If your PKCS#12 file is encrypted, add the decryption password to your <<secure-
166166
bin/kibana-keystore add elasticsearch.ssl.truststore.password
167167
--------------------------------------------------------------------------------
168168

169-
TIP: If your PKCS#12 file isn't protected with a password, depending on how it was generated, you may need to set
170-
`elasticsearch.ssl.truststore.password` to an empty string.
169+
NOTE: If you used `elasticsearch-certutil` to generate a PKCS#12 file and you did not specify a password, the file is encrypted, and you
170+
need to set `server.ssl.truststore.password` to an empty string.
171171
--
172172

173173
+

docs/user/security/securing-kibana.asciidoc

Lines changed: 20 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,8 @@ elasticsearch.password: "kibanapassword"
3838
The {kib} server submits requests as this user to access the cluster monitoring
3939
APIs and the `.kibana` index. The server does _not_ need access to user indices.
4040

41-
The password for the built-in `kibana_system` user is typically set as part of
42-
the security configuration process on {es}. For more information, see
43-
{ref}/built-in-users.html[Built-in users].
41+
NOTE: The password for the built-in `kibana_system` user is typically set as part of the security configuration process on {es}. For more
42+
information, see {ref}/built-in-users.html[Built-in users].
4443
--
4544

4645
. Set the `xpack.security.encryptionKey` property in the `kibana.yml`
@@ -74,20 +73,21 @@ For more information, see <<xpack-security-session-management, Session managemen
7473

7574
. Restart {kib}.
7675

77-
. [[kibana-roles]]Choose an authentication mechanism and grant users the privileges they need to
78-
use {kib}.
76+
. Temporarily log in to {kib} using the built-in `elastic` superuser so you can create new users and assign roles. If you are running {kib}
77+
locally, go to `https://localhost:5601` to view the login page.
7978
+
80-
--
81-
For more information on Basic Authentication and additional methods of
82-
authenticating {kib} users, see <<kibana-authentication>>.
79+
NOTE: The password for the built-in `elastic` user is typically set as part of the security configuration process on {es}. For more
80+
information, see {ref}/built-in-users.html[Built-in users].
8381

84-
To manage privileges, open the main menu, then click *Stack Management > Roles*.
82+
. [[kibana-roles]]Create roles and users to grant access to {kib}.
83+
+
84+
--
85+
To manage privileges in {kib}, open the main menu, then click *Stack Management > Roles*. The built-in `kibana_admin` role will grant
86+
access to {kib} with administrator privileges. Alternatively, you can create additional roles that grant limited access to {kib}.
8587

86-
If you're using the native realm with Basic Authentication, open then main menu,
87-
then click *Stack Management > Users* to assign roles, or use the
88-
{ref}/security-api.html#security-user-apis[user management APIs]. For example,
89-
the following creates a user named `jacknich` and assigns it the `kibana_admin`
90-
role:
88+
If you're using the default native realm with Basic Authentication, open the main menu, then click *Stack Management > Users* to create
89+
users and assign roles, or use the {es} {ref}/security-api.html#security-user-apis[user management APIs]. For example, the following creates
90+
a user named `jacknich` and assigns it the `kibana_admin` role:
9191

9292
[source,js]
9393
--------------------------------------------------------------------------------
@@ -98,6 +98,8 @@ POST /_security/user/jacknich
9898
}
9999
--------------------------------------------------------------------------------
100100
// CONSOLE
101+
102+
TIP: For more information on Basic Authentication and additional methods of authenticating {kib} users, see <<kibana-authentication>>.
101103
--
102104

103105
. Grant users access to the indices that they will be working with in {kib}.
@@ -111,17 +113,11 @@ on specific index patterns. For more information, see
111113

112114
--
113115

114-
. Verify that you can log in as a user. If you are running
115-
{kib} locally, go to `https://localhost:5601` and enter the credentials for a
116-
user you've assigned a {kib} user role. For example, you could log in as the user
117-
`jacknich`.
116+
. Log out of {kib} and verify that you can log in as a normal user. If you are running {kib} locally, go to `https://localhost:5601` and
117+
enter the credentials for a user you've assigned a {kib} user role. For example, you could log in as the user `jacknich`.
118118
+
119-
--
120-
121-
NOTE: This must be a user who has been assigned <<kibana-privileges, Kibana privileges>>.
122-
{kib} server credentials should only be used internally by the {kib} server.
123-
124-
--
119+
NOTE: This must be a user who has been assigned <<kibana-privileges, Kibana privileges>>. {kib} server credentials (the built-in
120+
`kibana_system` user) should only be used internally by the {kib} server.
125121

126122
include::authentication/index.asciidoc[]
127123
include::securing-communications/index.asciidoc[]

0 commit comments

Comments
 (0)