2020-07-23 23:48:22 +08:00
|
|
|
[discrete]
|
2019-03-29 15:04:49 +08:00
|
|
|
[[breaking_80_security_changes]]
|
2021-01-15 01:14:48 +08:00
|
|
|
==== Security changes
|
2019-03-29 15:04:49 +08:00
|
|
|
|
2019-04-09 09:20:59 +08:00
|
|
|
//NOTE: The notable-breaking-changes tagged regions are re-used in the
|
|
|
|
//Installation and Upgrade Guide
|
|
|
|
|
|
|
|
//tag::notable-breaking-changes[]
|
2020-05-08 22:21:33 +08:00
|
|
|
.The realm `order` setting is now required.
|
|
|
|
[%collapsible]
|
|
|
|
====
|
|
|
|
*Details* +
|
2020-01-28 14:59:54 +08:00
|
|
|
The `xpack.security.authc.realms.{type}.{name}.order` setting is now required and must be
|
|
|
|
specified for each explicitly configured realm. Each value must be unique.
|
2020-05-26 21:20:06 +08:00
|
|
|
|
|
|
|
*Impact* +
|
2020-01-28 14:59:54 +08:00
|
|
|
The cluster will fail to start if the requirements are not met.
|
|
|
|
|
|
|
|
For example, the following configuration is invalid:
|
|
|
|
[source,yaml]
|
|
|
|
--------------------------------------------------
|
|
|
|
xpack.security.authc.realms.kerberos.kerb1:
|
|
|
|
keytab.path: es.keytab
|
|
|
|
remove_realm_name: false
|
|
|
|
--------------------------------------------------
|
|
|
|
|
|
|
|
And must be configured as:
|
|
|
|
[source,yaml]
|
|
|
|
--------------------------------------------------
|
|
|
|
xpack.security.authc.realms.kerberos.kerb1:
|
|
|
|
order: 0
|
|
|
|
keytab.path: es.keytab
|
|
|
|
remove_realm_name: false
|
|
|
|
--------------------------------------------------
|
2020-05-08 22:21:33 +08:00
|
|
|
====
|
2020-12-03 00:36:31 +08:00
|
|
|
|
|
|
|
[[audit-logs-are-rolled-over-and-archived-by-size]]
|
|
|
|
.Audit logs are rolled-over and archived by size.
|
|
|
|
[%collapsible]
|
|
|
|
====
|
|
|
|
*Details* +
|
|
|
|
In addition to the existing daily rollover, the security audit logs are
|
|
|
|
now rolled-over by disk size limit as well. Moreover, the rolled-over logs
|
|
|
|
are also gzip compressed.
|
|
|
|
|
|
|
|
*Impact* +
|
|
|
|
The names of rolled over audit logfiles (but not the name of the current log)
|
|
|
|
have changed.
|
|
|
|
If you've setup automated tools to consume these files, you must configure them
|
|
|
|
to use the new names and to possibly account for gzip archives instead of plaintext.
|
|
|
|
The Docker build of Elasticsearch is not affected since it logs on stdout where
|
|
|
|
rollover is not performed.
|
|
|
|
====
|
2019-04-09 09:20:59 +08:00
|
|
|
|
2019-04-30 22:19:09 +08:00
|
|
|
[[accept-default-password-removed]]
|
2020-05-08 22:21:33 +08:00
|
|
|
.The `accept_default_password` setting has been removed.
|
|
|
|
[%collapsible]
|
|
|
|
====
|
|
|
|
*Details* +
|
2019-03-29 15:04:49 +08:00
|
|
|
The `xpack.security.authc.accept_default_password` setting has not had any affect
|
|
|
|
since the 6.0 release of {es}. It has been removed and cannot be used.
|
2020-05-26 21:20:06 +08:00
|
|
|
|
|
|
|
*Impact* +
|
|
|
|
Discontinue use of the `xpack.security.authc.accept_default_password` setting.
|
|
|
|
Specifying this setting in `elasticsearch.yml` will result in an error on
|
|
|
|
startup.
|
2020-05-08 22:21:33 +08:00
|
|
|
====
|
2019-03-29 15:04:49 +08:00
|
|
|
|
2019-04-30 22:19:09 +08:00
|
|
|
[[roles-index-cache-removed]]
|
2020-05-08 22:21:33 +08:00
|
|
|
.The `roles.index.cache.*` settings have been removed.
|
|
|
|
[%collapsible]
|
|
|
|
====
|
|
|
|
*Details* +
|
2019-03-29 15:04:49 +08:00
|
|
|
The `xpack.security.authz.store.roles.index.cache.max_size` and
|
|
|
|
`xpack.security.authz.store.roles.index.cache.ttl` settings have
|
|
|
|
been removed. These settings have been redundant and deprecated
|
|
|
|
since the 5.2 release of {es}.
|
2020-05-26 21:20:06 +08:00
|
|
|
|
|
|
|
*Impact* +
|
|
|
|
Discontinue use of the `xpack.security.authz.store.roles.index.cache.max_size`
|
|
|
|
and `xpack.security.authz.store.roles.index.cache.ttl` settings. Specifying
|
|
|
|
these settings in `elasticsearch.yml` will result in an error on startup.
|
2020-05-08 22:21:33 +08:00
|
|
|
====
|
2019-03-29 15:04:49 +08:00
|
|
|
|
2019-05-18 02:49:05 +08:00
|
|
|
[[migrate-tool-removed]]
|
2020-05-08 22:21:33 +08:00
|
|
|
.The `elasticsearch-migrate` tool has been removed.
|
|
|
|
[%collapsible]
|
|
|
|
====
|
|
|
|
*Details* +
|
2019-05-18 02:49:05 +08:00
|
|
|
The `elasticsearch-migrate` tool provided a way to convert file
|
|
|
|
realm users and roles into the native realm. It has been deprecated
|
|
|
|
since 7.2.0. Users and roles should now be created in the native
|
|
|
|
realm directly.
|
2020-05-26 21:20:06 +08:00
|
|
|
|
|
|
|
*Impact* +
|
|
|
|
Discontinue use of the `elasticsearch-migrate` tool. Attempts to use the
|
|
|
|
`elasticsearch-migrate` tool will result in an error.
|
2020-05-08 22:21:33 +08:00
|
|
|
====
|
2019-07-03 17:32:24 +08:00
|
|
|
|
|
|
|
[[separating-node-and-client-traffic]]
|
2020-05-08 22:21:33 +08:00
|
|
|
.The `transport.profiles.*.xpack.security.type` setting has been removed.
|
|
|
|
[%collapsible]
|
|
|
|
====
|
|
|
|
*Details* +
|
2019-07-03 17:32:24 +08:00
|
|
|
The `transport.profiles.*.xpack.security.type` setting has been removed since
|
|
|
|
the Transport Client has been removed and therefore all client traffic now uses
|
|
|
|
the HTTP transport. Transport profiles using this setting should be removed.
|
2020-05-26 21:20:06 +08:00
|
|
|
|
|
|
|
*Impact* +
|
|
|
|
Discontinue use of the `transport.profiles.*.xpack.security.type` setting.
|
|
|
|
Specifying this setting in a transport profile in `elasticsearch.yml` will
|
|
|
|
result in an error on startup.
|
2020-05-08 22:21:33 +08:00
|
|
|
====
|
2019-11-08 00:51:48 +08:00
|
|
|
|
2020-05-08 22:21:33 +08:00
|
|
|
[discrete]
|
2019-11-08 00:51:48 +08:00
|
|
|
[[ssl-validation-changes]]
|
2021-07-27 06:46:58 +08:00
|
|
|
===== SSL/TLS configuration validation
|
2019-11-08 00:51:48 +08:00
|
|
|
|
2020-05-08 22:21:33 +08:00
|
|
|
.The `xpack.security.transport.ssl.enabled` setting is now required to configure `xpack.security.transport.ssl` settings.
|
|
|
|
[%collapsible]
|
|
|
|
====
|
|
|
|
*Details* +
|
2019-11-08 00:51:48 +08:00
|
|
|
It is now an error to configure any SSL settings for
|
|
|
|
`xpack.security.transport.ssl` without also configuring
|
|
|
|
`xpack.security.transport.ssl.enabled`.
|
|
|
|
|
2020-05-26 21:20:06 +08:00
|
|
|
*Impact* +
|
|
|
|
If using other `xpack.security.transport.ssl` settings, you must explicitly
|
|
|
|
specify the `xpack.security.transport.ssl.enabled` setting.
|
|
|
|
|
|
|
|
If you do not want to enable SSL and are currently using other
|
|
|
|
`xpack.security.transport.ssl` settings, do one of the following:
|
|
|
|
|
|
|
|
* Explicitly specify `xpack.security.transport.ssl.enabled` as `false`
|
|
|
|
* Discontinue use of other `xpack.security.transport.ssl` settings
|
|
|
|
|
|
|
|
If you want to enable SSL, follow the instructions in
|
|
|
|
{ref}/configuring-tls.html#tls-transport[Encrypting communications between nodes
|
|
|
|
in a cluster]. As part of this configuration, explicitly specify
|
|
|
|
`xpack.security.transport.ssl.enabled` as `true`.
|
|
|
|
|
2019-11-08 00:51:48 +08:00
|
|
|
For example, the following configuration is invalid:
|
|
|
|
[source,yaml]
|
|
|
|
--------------------------------------------------
|
|
|
|
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
|
|
|
|
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
|
|
|
|
--------------------------------------------------
|
|
|
|
|
|
|
|
And must be configured as:
|
|
|
|
[source,yaml]
|
|
|
|
--------------------------------------------------
|
|
|
|
xpack.security.transport.ssl.enabled: true <1>
|
|
|
|
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
|
|
|
|
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
|
|
|
|
--------------------------------------------------
|
|
|
|
<1> or `false`.
|
2020-05-08 22:21:33 +08:00
|
|
|
====
|
2019-11-08 00:51:48 +08:00
|
|
|
|
2020-05-08 22:21:33 +08:00
|
|
|
.The `xpack.security.http.ssl.enabled` setting is now required to configure `xpack.security.http.ssl` settings.
|
|
|
|
[%collapsible]
|
|
|
|
====
|
|
|
|
*Details* +
|
2019-11-08 00:51:48 +08:00
|
|
|
It is now an error to configure any SSL settings for
|
|
|
|
`xpack.security.http.ssl` without also configuring
|
|
|
|
`xpack.security.http.ssl.enabled`.
|
|
|
|
|
2020-05-26 21:20:06 +08:00
|
|
|
*Impact* +
|
|
|
|
If using other `xpack.security.http.ssl` settings, you must explicitly
|
|
|
|
specify the `xpack.security.http.ssl.enabled` setting.
|
|
|
|
|
|
|
|
If you do not want to enable SSL and are currently using other
|
|
|
|
`xpack.security.http.ssl` settings, do one of the following:
|
|
|
|
|
|
|
|
* Explicitly specify `xpack.security.http.ssl.enabled` as `false`
|
|
|
|
* Discontinue use of other `xpack.security.http.ssl` settings
|
|
|
|
|
|
|
|
If you want to enable SSL, follow the instructions in
|
|
|
|
{ref}/configuring-tls.html#tls-http[Encrypting HTTP client communications]. As part
|
|
|
|
of this configuration, explicitly specify `xpack.security.http.ssl.enabled`
|
|
|
|
as `true`.
|
|
|
|
|
2019-11-08 00:51:48 +08:00
|
|
|
For example, the following configuration is invalid:
|
|
|
|
[source,yaml]
|
|
|
|
--------------------------------------------------
|
2020-01-28 14:59:54 +08:00
|
|
|
xpack.security.http.ssl.certificate: elasticsearch.crt
|
|
|
|
xpack.security.http.ssl.key: elasticsearch.key
|
2019-11-08 00:51:48 +08:00
|
|
|
xpack.security.http.ssl.certificate_authorities: [ "corporate-ca.crt" ]
|
|
|
|
--------------------------------------------------
|
|
|
|
|
|
|
|
And must be configured as either:
|
|
|
|
[source,yaml]
|
|
|
|
--------------------------------------------------
|
|
|
|
xpack.security.http.ssl.enabled: true <1>
|
2020-01-28 14:59:54 +08:00
|
|
|
xpack.security.http.ssl.certificate: elasticsearch.crt
|
|
|
|
xpack.security.http.ssl.key: elasticsearch.key
|
2019-11-08 00:51:48 +08:00
|
|
|
xpack.security.http.ssl.certificate_authorities: [ "corporate-ca.crt" ]
|
|
|
|
--------------------------------------------------
|
|
|
|
<1> or `false`.
|
2020-05-08 22:21:33 +08:00
|
|
|
====
|
2019-11-08 00:51:48 +08:00
|
|
|
|
2020-12-03 00:36:31 +08:00
|
|
|
.A `xpack.security.transport.ssl` certificate and key are now required to enable SSL for the transport interface.
|
2020-05-08 22:21:33 +08:00
|
|
|
[%collapsible]
|
|
|
|
====
|
|
|
|
*Details* +
|
2019-11-08 00:51:48 +08:00
|
|
|
It is now an error to enable SSL for the transport interface without also configuring
|
|
|
|
a certificate and key through use of the `xpack.security.transport.ssl.keystore.path`
|
|
|
|
setting or the `xpack.security.transport.ssl.certificate` and
|
|
|
|
`xpack.security.transport.ssl.key` settings.
|
2020-05-26 21:20:06 +08:00
|
|
|
|
|
|
|
*Impact* +
|
|
|
|
If `xpack.security.transport.ssl.enabled` is set to `true`, provide a
|
|
|
|
certificate and key using the `xpack.security.transport.ssl.keystore.path`
|
|
|
|
setting or the `xpack.security.transport.ssl.certificate` and
|
|
|
|
`xpack.security.transport.ssl.key` settings. If a certificate and key is not
|
|
|
|
provided, {es} will return in an error on startup.
|
2020-05-08 22:21:33 +08:00
|
|
|
====
|
2019-11-08 00:51:48 +08:00
|
|
|
|
2020-05-08 22:21:33 +08:00
|
|
|
.A `xpack.security.http.ssl` certificate and key are now required to enable SSL for the HTTP server.
|
|
|
|
[%collapsible]
|
|
|
|
====
|
|
|
|
*Details* +
|
2019-11-08 00:51:48 +08:00
|
|
|
It is now an error to enable SSL for the HTTP (Rest) server without also configuring
|
|
|
|
a certificate and key through use of the `xpack.security.http.ssl.keystore.path`
|
|
|
|
setting or the `xpack.security.http.ssl.certificate` and
|
|
|
|
`xpack.security.http.ssl.key` settings.
|
2020-05-26 21:20:06 +08:00
|
|
|
|
|
|
|
*Impact* +
|
|
|
|
If `xpack.security.http.ssl.enabled` is set to `true`, provide a certificate and
|
|
|
|
key using the `xpack.security.http.ssl.keystore.path` setting or the
|
|
|
|
`xpack.security.http.ssl.certificate` and `xpack.security.http.ssl.key`
|
|
|
|
settings. If certificate and key is not provided, {es} will return in an error
|
|
|
|
on startup.
|
2020-05-08 22:21:33 +08:00
|
|
|
====
|
2020-04-28 01:31:21 +08:00
|
|
|
|
2021-08-03 10:50:43 +08:00
|
|
|
[discrete]
|
|
|
|
[[ssl-misc-changes]]
|
2021-08-13 10:18:44 +08:00
|
|
|
===== Other SSL/TLS changes
|
2021-08-03 10:50:43 +08:00
|
|
|
|
|
|
|
.PKCS#11 keystores and trustores cannot be configured in `elasticsearch.yml`
|
|
|
|
[%collapsible]
|
|
|
|
====
|
|
|
|
*Details* +
|
|
|
|
The settings `*.ssl.keystore.type` and `*.ssl.truststore.type` no longer accept "PKCS11" as a valid type.
|
|
|
|
This applies to all SSL settings in Elasticsearch, including
|
|
|
|
|
|
|
|
- `xpack.security.http.keystore.type`
|
|
|
|
- `xpack.security.transport.keystore.type`
|
|
|
|
- `xpack.security.http.truststore.type`
|
|
|
|
- `xpack.security.transport.truststore.type`
|
|
|
|
|
|
|
|
As well as SSL settings for security realms, watcher and monitoring.
|
|
|
|
|
|
|
|
Use of a PKCS#11 keystore or truststore as the JRE's default store is not affected.
|
|
|
|
|
|
|
|
*Impact* +
|
|
|
|
If you have a PKCS#11 keystore configured within your `elasticsearch.yml` file, you must remove that
|
|
|
|
configuration and switch to a supported keystore type, or configure your PKCS#11 keystore as the
|
|
|
|
JRE default store.
|
|
|
|
====
|
|
|
|
|
2020-05-08 22:21:33 +08:00
|
|
|
[discrete]
|
2020-04-28 01:31:21 +08:00
|
|
|
[[builtin-users-changes]]
|
2021-07-27 06:46:58 +08:00
|
|
|
===== Changes to built-in users
|
2020-04-28 01:31:21 +08:00
|
|
|
|
2020-07-14 03:58:36 +08:00
|
|
|
.The `kibana` user has been replaced by `kibana_system`.
|
2020-05-08 22:21:33 +08:00
|
|
|
[%collapsible]
|
|
|
|
====
|
|
|
|
*Details* +
|
2020-04-28 01:31:21 +08:00
|
|
|
The `kibana` user was historically used to authenticate {kib} to {es}.
|
|
|
|
The name of this user was confusing, and was often mistakenly used to login to {kib}.
|
|
|
|
This has been renamed to `kibana_system` in order to reduce confusion, and to better
|
|
|
|
align with other built-in system accounts.
|
|
|
|
|
2020-05-26 21:20:06 +08:00
|
|
|
*Impact* +
|
|
|
|
Replace any use of the `kibana` user with the `kibana_system` user. Specifying
|
|
|
|
the `kibana` user in `kibana.yml` will result in an error on startup.
|
|
|
|
|
2020-04-28 01:31:21 +08:00
|
|
|
If your `kibana.yml` used to contain:
|
|
|
|
[source,yaml]
|
|
|
|
--------------------------------------------------
|
|
|
|
elasticsearch.username: kibana
|
|
|
|
--------------------------------------------------
|
|
|
|
|
|
|
|
then you should update to use the new `kibana_system` user instead:
|
|
|
|
[source,yaml]
|
|
|
|
--------------------------------------------------
|
|
|
|
elasticsearch.username: kibana_system
|
|
|
|
--------------------------------------------------
|
2020-07-14 03:58:36 +08:00
|
|
|
|
|
|
|
IMPORTANT: The new `kibana_system` user does not preserve the previous `kibana`
|
|
|
|
user password. You must explicitly set a password for the `kibana_system` user.
|
2020-05-08 22:21:33 +08:00
|
|
|
====
|
2020-04-28 01:31:21 +08:00
|
|
|
|
2020-05-08 22:21:33 +08:00
|
|
|
[discrete]
|
2020-04-28 01:31:21 +08:00
|
|
|
[[builtin-roles-changes]]
|
2021-07-27 06:46:58 +08:00
|
|
|
===== Changes to built-in roles
|
2020-04-28 01:31:21 +08:00
|
|
|
|
2020-05-11 23:43:59 +08:00
|
|
|
.The `kibana_user` role has been renamed `kibana_admin`.
|
2020-05-08 22:21:33 +08:00
|
|
|
[%collapsible]
|
|
|
|
====
|
|
|
|
*Details* +
|
2020-04-28 01:31:21 +08:00
|
|
|
Users who were previously assigned the `kibana_user` role should instead be assigned
|
|
|
|
the `kibana_admin` role. This role grants the same set of privileges as `kibana_user`, but has been
|
|
|
|
renamed to better reflect its intended use.
|
2020-05-26 21:20:06 +08:00
|
|
|
|
|
|
|
*Impact* +
|
|
|
|
Assign users with the `kibana_user` role to the `kibana_admin` role.
|
|
|
|
Discontinue use of the `kibana_user` role.
|
2020-05-08 22:21:33 +08:00
|
|
|
====
|
2021-07-27 05:43:39 +08:00
|
|
|
// end::notable-breaking-changes[]
|
2021-08-13 10:18:44 +08:00
|
|
|
|
|
|
|
// These are non-notable changes
|
|
|
|
|
|
|
|
[discrete]
|
|
|
|
// This change is not notable because it should not have any impact on upgrades
|
|
|
|
// However we document it here out of an abundance of caution
|
|
|
|
[[fips-default-hash-changed]]
|
|
|
|
===== Changes to FIPS 140 mode
|
|
|
|
.When FIPS mode is enabled the default password hash is now PBKDF2_STRETCH
|
|
|
|
[%collapsible]
|
|
|
|
====
|
|
|
|
*Details* +
|
|
|
|
If `xpack.security.fips_mode.enabled` is true (see <<fips-140-compliance>>),
|
|
|
|
the value of `xpack.security.authc.password_hashing.algorithm` now defaults to
|
|
|
|
`pbkdf2_stretch`.
|
|
|
|
|
|
|
|
In earlier versions this setting would always default to `bcrypt` and a runtime
|
|
|
|
check would prevent a node from starting unless the value was explicitly set to
|
|
|
|
a "pbkdf2" variant.
|
|
|
|
|
|
|
|
There is no change for clusters that do not enable FIPS 140 mode.
|
|
|
|
|
|
|
|
*Impact* +
|
|
|
|
This change should not have any impact on upgraded nodes.
|
|
|
|
Any node with an explicitly configured value for the password hashing algorithm
|
|
|
|
will continue to use that configured value.
|
|
|
|
Any node that did not have an explicitly configured password hashing algorithm in
|
|
|
|
{es} 6.x or {es} 7.x would have failed to start.
|
|
|
|
====
|
|
|
|
|