remote-clusters-cert.asciidoc 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. [[remote-clusters-cert]]
  2. === Add remote clusters using TLS certificate authentication
  3. To add a remote cluster using TLS certificate authentication:
  4. . <<remote-clusters-prerequisites-cert,Review the prerequisites>>
  5. . <<remote-clusters-security-cert>>
  6. . <<remote-clusters-connect-cert>>
  7. . <<remote-clusters-privileges-cert>>
  8. If you run into any issues, refer to <<remote-clusters-troubleshooting>>.
  9. [[remote-clusters-prerequisites-cert]]
  10. ==== Prerequisites
  11. . The {es} security features need to be enabled on both clusters, on every node.
  12. Security is enabled by default. If it's disabled, set `xpack.security.enabled`
  13. to `true` in `elasticsearch.yml`. Refer to <<general-security-settings>>.
  14. . The local and remote clusters versions must be compatible.
  15. ** Any node can communicate with another node on the same
  16. major version. For example, 7.0 can talk to any 7.x node.
  17. ** Only nodes on the last minor version of a certain major version can
  18. communicate with nodes on the following major version. In the 6.x series, 6.8
  19. can communicate with any 7.x node, while 6.7 can only communicate with 7.0.
  20. ** Version compatibility is
  21. symmetric, meaning that if 6.7 can communicate with 7.0, 7.0 can also
  22. communicate with 6.7. The following table depicts version compatibility between
  23. local and remote nodes.
  24. +
  25. [%collapsible%open]
  26. .Version compatibility table
  27. ====
  28. include::../remote-clusters-shared.asciidoc[tag=remote-cluster-compatibility-matrix]
  29. ====
  30. +
  31. IMPORTANT: Elastic only supports {ccs} on a subset of these configurations. See
  32. <<ccs-supported-configurations>>.
  33. [[remote-clusters-security-cert]]
  34. ==== Establish trust with a remote cluster
  35. To use {ccr} or {ccs} safely with remote clusters, enable security on all
  36. connected clusters and configure Transport Layer Security (TLS) on every node.
  37. Configuring TLS security on the transport interface is minimally required for
  38. remote clusters. For additional security, configure TLS on the
  39. <<security-basic-setup-https,HTTP interface>> as well.
  40. All connected clusters must trust one another and be mutually authenticated
  41. with TLS on the transport interface. This means that the local cluster
  42. trusts the certificate authority (CA) of the remote cluster, and the remote
  43. cluster trusts the CA of the local cluster. When establishing a connection, all
  44. nodes will verify certificates from nodes on the other side. This mutual trust
  45. is required to securely connect a remote cluster, because all connected nodes
  46. effectively form a single security domain.
  47. User authentication is performed on the local cluster and the user and user’s
  48. roles names are passed to the remote clusters. A remote cluster checks the
  49. user’s role names against its local role definitions to determine which indices
  50. the user is allowed to access.
  51. Before using {ccr} or {ccs} with secured {es} clusters, complete the following
  52. configuration task:
  53. . Configure Transport Layer Security (TLS) on every node to encrypt internode
  54. traffic and authenticate nodes in the local cluster with nodes in all remote
  55. clusters. Refer to
  56. <<security-basic-setup,set up basic security for the {stack}>> for the required
  57. steps to configure security.
  58. +
  59. NOTE: This procedure uses the same CA to generate certificates for all nodes.
  60. Alternatively, you can add the certificates from the local cluster as a
  61. trusted CA in each remote cluster. You must also add the certificates from
  62. remote clusters as a trusted CA on the local cluster. Using the same CA to
  63. generate certificates for all nodes simplifies this task.
  64. [[remote-clusters-connect-cert]]
  65. ==== Connect to a remote cluster
  66. :trust-mechanism: cert
  67. include::remote-clusters-connect.asciidoc[]
  68. :!trust-mechanism:
  69. include::{es-ref-dir}/security/authentication/remote-clusters-privileges-cert.asciidoc[leveloffset=+1]