security.asciidoc 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. [float]
  2. [[breaking_80_security_changes]]
  3. === Security changes
  4. //NOTE: The notable-breaking-changes tagged regions are re-used in the
  5. //Installation and Upgrade Guide
  6. //tag::notable-breaking-changes[]
  7. .The realm `order` setting is now required.
  8. [%collapsible]
  9. ====
  10. *Details* +
  11. The `xpack.security.authc.realms.{type}.{name}.order` setting is now required and must be
  12. specified for each explicitly configured realm. Each value must be unique.
  13. *Impact* +
  14. The cluster will fail to start if the requirements are not met.
  15. For example, the following configuration is invalid:
  16. [source,yaml]
  17. --------------------------------------------------
  18. xpack.security.authc.realms.kerberos.kerb1:
  19. keytab.path: es.keytab
  20. remove_realm_name: false
  21. --------------------------------------------------
  22. And must be configured as:
  23. [source,yaml]
  24. --------------------------------------------------
  25. xpack.security.authc.realms.kerberos.kerb1:
  26. order: 0
  27. keytab.path: es.keytab
  28. remove_realm_name: false
  29. --------------------------------------------------
  30. ====
  31. // end::notable-breaking-changes[]
  32. [[accept-default-password-removed]]
  33. .The `accept_default_password` setting has been removed.
  34. [%collapsible]
  35. ====
  36. *Details* +
  37. The `xpack.security.authc.accept_default_password` setting has not had any affect
  38. since the 6.0 release of {es}. It has been removed and cannot be used.
  39. *Impact* +
  40. Discontinue use of the `xpack.security.authc.accept_default_password` setting.
  41. Specifying this setting in `elasticsearch.yml` will result in an error on
  42. startup.
  43. ====
  44. [[roles-index-cache-removed]]
  45. .The `roles.index.cache.*` settings have been removed.
  46. [%collapsible]
  47. ====
  48. *Details* +
  49. The `xpack.security.authz.store.roles.index.cache.max_size` and
  50. `xpack.security.authz.store.roles.index.cache.ttl` settings have
  51. been removed. These settings have been redundant and deprecated
  52. since the 5.2 release of {es}.
  53. *Impact* +
  54. Discontinue use of the `xpack.security.authz.store.roles.index.cache.max_size`
  55. and `xpack.security.authz.store.roles.index.cache.ttl` settings. Specifying
  56. these settings in `elasticsearch.yml` will result in an error on startup.
  57. ====
  58. [[migrate-tool-removed]]
  59. .The `elasticsearch-migrate` tool has been removed.
  60. [%collapsible]
  61. ====
  62. *Details* +
  63. The `elasticsearch-migrate` tool provided a way to convert file
  64. realm users and roles into the native realm. It has been deprecated
  65. since 7.2.0. Users and roles should now be created in the native
  66. realm directly.
  67. *Impact* +
  68. Discontinue use of the `elasticsearch-migrate` tool. Attempts to use the
  69. `elasticsearch-migrate` tool will result in an error.
  70. ====
  71. [[separating-node-and-client-traffic]]
  72. .The `transport.profiles.*.xpack.security.type` setting has been removed.
  73. [%collapsible]
  74. ====
  75. *Details* +
  76. The `transport.profiles.*.xpack.security.type` setting has been removed since
  77. the Transport Client has been removed and therefore all client traffic now uses
  78. the HTTP transport. Transport profiles using this setting should be removed.
  79. *Impact* +
  80. Discontinue use of the `transport.profiles.*.xpack.security.type` setting.
  81. Specifying this setting in a transport profile in `elasticsearch.yml` will
  82. result in an error on startup.
  83. ====
  84. [discrete]
  85. [[ssl-validation-changes]]
  86. ==== SSL/TLS configuration validation
  87. .The `xpack.security.transport.ssl.enabled` setting is now required to configure `xpack.security.transport.ssl` settings.
  88. [%collapsible]
  89. ====
  90. *Details* +
  91. It is now an error to configure any SSL settings for
  92. `xpack.security.transport.ssl` without also configuring
  93. `xpack.security.transport.ssl.enabled`.
  94. *Impact* +
  95. If using other `xpack.security.transport.ssl` settings, you must explicitly
  96. specify the `xpack.security.transport.ssl.enabled` setting.
  97. If you do not want to enable SSL and are currently using other
  98. `xpack.security.transport.ssl` settings, do one of the following:
  99. * Explicitly specify `xpack.security.transport.ssl.enabled` as `false`
  100. * Discontinue use of other `xpack.security.transport.ssl` settings
  101. If you want to enable SSL, follow the instructions in
  102. {ref}/configuring-tls.html#tls-transport[Encrypting communications between nodes
  103. in a cluster]. As part of this configuration, explicitly specify
  104. `xpack.security.transport.ssl.enabled` as `true`.
  105. For example, the following configuration is invalid:
  106. [source,yaml]
  107. --------------------------------------------------
  108. xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
  109. xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
  110. --------------------------------------------------
  111. And must be configured as:
  112. [source,yaml]
  113. --------------------------------------------------
  114. xpack.security.transport.ssl.enabled: true <1>
  115. xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
  116. xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
  117. --------------------------------------------------
  118. <1> or `false`.
  119. ====
  120. .The `xpack.security.http.ssl.enabled` setting is now required to configure `xpack.security.http.ssl` settings.
  121. [%collapsible]
  122. ====
  123. *Details* +
  124. It is now an error to configure any SSL settings for
  125. `xpack.security.http.ssl` without also configuring
  126. `xpack.security.http.ssl.enabled`.
  127. *Impact* +
  128. If using other `xpack.security.http.ssl` settings, you must explicitly
  129. specify the `xpack.security.http.ssl.enabled` setting.
  130. If you do not want to enable SSL and are currently using other
  131. `xpack.security.http.ssl` settings, do one of the following:
  132. * Explicitly specify `xpack.security.http.ssl.enabled` as `false`
  133. * Discontinue use of other `xpack.security.http.ssl` settings
  134. If you want to enable SSL, follow the instructions in
  135. {ref}/configuring-tls.html#tls-http[Encrypting HTTP client communications]. As part
  136. of this configuration, explicitly specify `xpack.security.http.ssl.enabled`
  137. as `true`.
  138. For example, the following configuration is invalid:
  139. [source,yaml]
  140. --------------------------------------------------
  141. xpack.security.http.ssl.certificate: elasticsearch.crt
  142. xpack.security.http.ssl.key: elasticsearch.key
  143. xpack.security.http.ssl.certificate_authorities: [ "corporate-ca.crt" ]
  144. --------------------------------------------------
  145. And must be configured as either:
  146. [source,yaml]
  147. --------------------------------------------------
  148. xpack.security.http.ssl.enabled: true <1>
  149. xpack.security.http.ssl.certificate: elasticsearch.crt
  150. xpack.security.http.ssl.key: elasticsearch.key
  151. xpack.security.http.ssl.certificate_authorities: [ "corporate-ca.crt" ]
  152. --------------------------------------------------
  153. <1> or `false`.
  154. ====
  155. .A `xpack.security.transport.ssl` certificate and key are now required to enable SSL for the transport interface.
  156. [%collapsible]
  157. ====
  158. *Details* +
  159. It is now an error to enable SSL for the transport interface without also configuring
  160. a certificate and key through use of the `xpack.security.transport.ssl.keystore.path`
  161. setting or the `xpack.security.transport.ssl.certificate` and
  162. `xpack.security.transport.ssl.key` settings.
  163. *Impact* +
  164. If `xpack.security.transport.ssl.enabled` is set to `true`, provide a
  165. certificate and key using the `xpack.security.transport.ssl.keystore.path`
  166. setting or the `xpack.security.transport.ssl.certificate` and
  167. `xpack.security.transport.ssl.key` settings. If a certificate and key is not
  168. provided, {es} will return in an error on startup.
  169. ====
  170. .A `xpack.security.http.ssl` certificate and key are now required to enable SSL for the HTTP server.
  171. [%collapsible]
  172. ====
  173. *Details* +
  174. It is now an error to enable SSL for the HTTP (Rest) server without also configuring
  175. a certificate and key through use of the `xpack.security.http.ssl.keystore.path`
  176. setting or the `xpack.security.http.ssl.certificate` and
  177. `xpack.security.http.ssl.key` settings.
  178. *Impact* +
  179. If `xpack.security.http.ssl.enabled` is set to `true`, provide a certificate and
  180. key using the `xpack.security.http.ssl.keystore.path` setting or the
  181. `xpack.security.http.ssl.certificate` and `xpack.security.http.ssl.key`
  182. settings. If certificate and key is not provided, {es} will return in an error
  183. on startup.
  184. ====
  185. [discrete]
  186. [[builtin-users-changes]]
  187. ==== Changes to built-in users
  188. .The `kibana` user has been renamed `kibana_system`.
  189. [%collapsible]
  190. ====
  191. *Details* +
  192. The `kibana` user was historically used to authenticate {kib} to {es}.
  193. The name of this user was confusing, and was often mistakenly used to login to {kib}.
  194. This has been renamed to `kibana_system` in order to reduce confusion, and to better
  195. align with other built-in system accounts.
  196. *Impact* +
  197. Replace any use of the `kibana` user with the `kibana_system` user. Specifying
  198. the `kibana` user in `kibana.yml` will result in an error on startup.
  199. If your `kibana.yml` used to contain:
  200. [source,yaml]
  201. --------------------------------------------------
  202. elasticsearch.username: kibana
  203. --------------------------------------------------
  204. then you should update to use the new `kibana_system` user instead:
  205. [source,yaml]
  206. --------------------------------------------------
  207. elasticsearch.username: kibana_system
  208. --------------------------------------------------
  209. ====
  210. [discrete]
  211. [[builtin-roles-changes]]
  212. ==== Changes to built-in roles
  213. .The `kibana_user` role has been renamed `kibana_admin`.
  214. [%collapsible]
  215. ====
  216. *Details* +
  217. Users who were previously assigned the `kibana_user` role should instead be assigned
  218. the `kibana_admin` role. This role grants the same set of privileges as `kibana_user`, but has been
  219. renamed to better reflect its intended use.
  220. *Impact* +
  221. Assign users with the `kibana_user` role to the `kibana_admin` role.
  222. Discontinue use of the `kibana_user` role.
  223. ====