[DOCS] Update X-Pack terminology in security docs (#36564)

This commit is contained in:
Lisa Cawley 2018-12-19 14:53:37 -08:00 committed by GitHub
parent 9c1e47d434
commit 4140b9eede
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
63 changed files with 331 additions and 311 deletions

View File

@ -51,7 +51,8 @@ keys for each instance. If you chose to generate a CA, which is the default
behavior, the certificate and private key are included in the output file. If behavior, the certificate and private key are included in the output file. If
you chose to generate CSRs, you should provide them to your commercial or you chose to generate CSRs, you should provide them to your commercial or
organization-specific certificate authority to obtain signed certificates. The organization-specific certificate authority to obtain signed certificates. The
signed certificates must be in PEM format to work with {security}. signed certificates must be in PEM format to work with the {stack}
{security-features}.
[float] [float]
=== Parameters === Parameters

View File

@ -93,7 +93,8 @@ the command produces a zip file containing the generated certificates and keys.
The `csr` mode generates certificate signing requests (CSRs) that you can send The `csr` mode generates certificate signing requests (CSRs) that you can send
to a trusted certificate authority to obtain signed certificates. The signed to a trusted certificate authority to obtain signed certificates. The signed
certificates must be in PEM or PKCS#12 format to work with {security}. certificates must be in PEM or PKCS#12 format to work with {es}
{security-features}.
By default, the command produces a single CSR for a single instance. By default, the command produces a single CSR for a single instance.

View File

@ -19,8 +19,8 @@ bin/elasticsearch-setup-passwords auto|interactive
[float] [float]
=== Description === Description
This command is intended for use only during the initial configuration of This command is intended for use only during the initial configuration of the
{xpack}. It uses the {es} {security-features}. It uses the
{stack-ov}/built-in-users.html#bootstrap-elastic-passwords[`elastic` bootstrap password] {stack-ov}/built-in-users.html#bootstrap-elastic-passwords[`elastic` bootstrap password]
to run user management API requests. After you set a password for the `elastic` to run user management API requests. After you set a password for the `elastic`
user, the bootstrap password is no longer active and you cannot use this command. user, the bootstrap password is no longer active and you cannot use this command.
@ -36,7 +36,7 @@ location, ensure that the *ES_PATH_CONF* environment variable returns the
correct path before you run the `elasticsearch-setup-passwords` command. You can correct path before you run the `elasticsearch-setup-passwords` command. You can
override settings in your `elasticsearch.yml` file by using the `-E` command override settings in your `elasticsearch.yml` file by using the `-E` command
option. For more information about debugging connection failures, see option. For more information about debugging connection failures, see
{xpack-ref}/trb-security-setup.html[`elasticsearch-setup-passwords` command fails due to connection failure]. {stack-ov}/trb-security-setup.html[`elasticsearch-setup-passwords` command fails due to connection failure].
[float] [float]
=== Parameters === Parameters

View File

@ -40,12 +40,12 @@ https://www.elastic.co/subscriptions.
[float] [float]
==== Authorization ==== Authorization
If {security} is enabled, you need `manage` cluster privileges to install the If {es} {security-features} are enabled, you need `manage` cluster privileges to
license. install the license.
If {security} is enabled and you are installing a gold or platinum license, you If {es} {security-features} are enabled and you are installing a gold or platinum
must enable TLS on the transport networking layer before you install the license. license, you must enable TLS on the transport networking layer before you
See <<configuring-tls>>. install the license. See <<configuring-tls>>.
[float] [float]
==== Examples ==== Examples

View File

@ -88,10 +88,10 @@ When putting stored scripts, support for storing them with the deprecated `templ
now removed. Scripts must be stored using the `script` context as mentioned in the documentation. now removed. Scripts must be stored using the `script` context as mentioned in the documentation.
[float] [float]
==== Get Aliases API limitations when {security} is enabled removed ==== Removed Get Aliases API limitations when {security-features} are enabled
The behavior and response codes of the get aliases API no longer vary The behavior and response codes of the get aliases API no longer vary
depending on whether {security} is enabled. Previously a depending on whether {security-features} are enabled. Previously a
404 - NOT FOUND (IndexNotFoundException) could be returned in case the 404 - NOT FOUND (IndexNotFoundException) could be returned in case the
current user was not authorized for any alias. An empty response with current user was not authorized for any alias. An empty response with
status 200 - OK is now returned instead at all times. status 200 - OK is now returned instead at all times.

View File

@ -19,9 +19,9 @@ Deletes an existing anomaly detection job.
All job configuration, model state and results are deleted. All job configuration, model state and results are deleted.
IMPORTANT: Deleting a job must be done via this API only. Do not delete the IMPORTANT: Deleting a job must be done via this API only. Do not delete the
job directly from the `.ml-*` indices using the Elasticsearch job directly from the `.ml-*` indices using the Elasticsearch delete document
DELETE Document API. When {security} is enabled, make sure no `write` API. When {es} {security-features} are enabled, make sure no `write` privileges
privileges are granted to anyone over the `.ml-*` indices. are granted to anyone over the `.ml-*` indices.
Before you can delete a job, you must delete the {dfeeds} that are associated Before you can delete a job, you must delete the {dfeeds} that are associated
with it. See <<ml-delete-datafeed,Delete {dfeeds-cap}>>. Unless the `force` parameter with it. See <<ml-delete-datafeed,Delete {dfeeds-cap}>>. Unless the `force` parameter
@ -47,8 +47,9 @@ separated list.
==== Authorization ==== Authorization
You must have `manage_ml`, or `manage` cluster privileges to use this API. If {es} {security-features} are enabled, you must have `manage_ml`, or `manage`
For more information, see {xpack-ref}/security-privileges.html[Security Privileges]. cluster privileges to use this API.
For more information, see {stack-ov}/security-privileges.html[Security Privileges].
==== Examples ==== Examples

View File

@ -29,16 +29,17 @@ structure of the data that will be passed to the anomaly detection engine.
==== Authorization ==== Authorization
You must have `monitor_ml`, `monitor`, `manage_ml`, or `manage` cluster If {es} {security-features} are enabled, you must have `monitor_ml`, `monitor`,
privileges to use this API. For more information, see `manage_ml`, or `manage` cluster privileges to use this API. For more
{xpack-ref}/security-privileges.html[Security Privileges]. information, see
{stack-ov}/security-privileges.html[Security Privileges].
==== Security Integration ==== Security Integration
When {security} is enabled, the {dfeed} query will be previewed using the When {es} {security-features} are enabled, the {dfeed} query is previewed using
credentials of the user calling the preview {dfeed} API. When the {dfeed} the credentials of the user calling the preview {dfeed} API. When the {dfeed}
is started it will run the query using the roles of the last user to is started it runs the query using the roles of the last user to
create or update it. If the two sets of roles differ then the preview may create or update it. If the two sets of roles differ then the preview may
not accurately reflect what the {dfeed} will return when started. To avoid not accurately reflect what the {dfeed} will return when started. To avoid
such problems, the same user that creates/updates the {dfeed} should preview such problems, the same user that creates/updates the {dfeed} should preview

View File

@ -88,15 +88,16 @@ see <<ml-datafeed-resource>>.
==== Authorization ==== Authorization
You must have `manage_ml`, or `manage` cluster privileges to use this API. If {es} {security-features} are enabled, you must have `manage_ml`, or `manage`
For more information, see cluster privileges to use this API. For more information, see
{xpack-ref}/security-privileges.html[Security Privileges]. {stack-ov}/security-privileges.html[Security Privileges].
==== Security Integration ==== Security integration
When {security} is enabled, your {dfeed} will remember which roles the user who When {es} {security-features} are enabled, your {dfeed} remembers which roles the
created it had at the time of creation, and run the query using those same roles. user who created it had at the time of creation and runs the query using those
same roles.
==== Examples ==== Examples

View File

@ -77,16 +77,16 @@ of the latest processed record.
==== Authorization ==== Authorization
You must have `manage_ml`, or `manage` cluster privileges to use this API. If {es} {security-features} are enabled, you must have `manage_ml`, or `manage`
For more information, see cluster privileges to use this API. For more information, see
{xpack-ref}/security-privileges.html[Security Privileges]. {stack-ov}/security-privileges.html[Security Privileges].
==== Security Integration ==== Security integration
When {security} is enabled, your {dfeed} will remember which roles the last When {es} {security-features} are enabled, your {dfeed} remembers which roles the
user to create or update it had at the time of creation/update, and run the query last user to create or update it had at the time of creation/update and runs the
using those same roles. query using those same roles.
==== Examples ==== Examples

View File

@ -79,15 +79,16 @@ see <<ml-datafeed-resource>>.
==== Authorization ==== Authorization
You must have `manage_ml`, or `manage` cluster privileges to use this API. If {es} {security-features} are enabled, you must have `manage_ml`, or `manage`
For more information, see cluster privileges to use this API. For more information, see
{xpack-ref}/security-privileges.html[Security Privileges]. {stack-ov}/security-privileges.html[Security Privileges].
==== Security Integration ==== Security Integration
When {security} is enabled, your {dfeed} will remember which roles the user who When {es} {security-features} are enabled, your {dfeed} remembers which roles the
updated it had at the time of update, and run the query using those same roles. user who updated it had at the time of update and runs the query using those
same roles.
==== Examples ==== Examples

View File

@ -47,7 +47,7 @@ xpack.monitoring.exporters:
uniquely defines the exporter but is otherwise unused. uniquely defines the exporter but is otherwise unused.
<3> `host` is a required setting for `http` exporters. It must specify the HTTP <3> `host` is a required setting for `http` exporters. It must specify the HTTP
port rather than the transport port. The default port value is `9200`. port rather than the transport port. The default port value is `9200`.
<4> User authentication for those using {security} or some other <4> User authentication for those using {stack} {security-features} or some other
form of user authentication protecting the cluster. form of user authentication protecting the cluster.
<5> See <<http-exporter-settings>> for all TLS/SSL settings. If not supplied, <5> See <<http-exporter-settings>> for all TLS/SSL settings. If not supplied,
the default node-level TLS/SSL settings are used. the default node-level TLS/SSL settings are used.

View File

@ -47,10 +47,10 @@ a message indicating that they are waiting for the resources to be set up.
One benefit of the `local` exporter is that it lives within the cluster and One benefit of the `local` exporter is that it lives within the cluster and
therefore no extra configuration is required when the cluster is secured with therefore no extra configuration is required when the cluster is secured with
{security}. All operations, including indexing operations, that occur from a {stack} {security-features}. All operations, including indexing operations, that
`local` exporter make use of the internal transport mechanisms within {es}. This occur from a `local` exporter make use of the internal transport mechanisms
behavior enables the exporter to be used without providing any user credentials within {es}. This behavior enables the exporter to be used without providing any
when {security} is enabled. user credentials when {security-features} are enabled.
For more information about the configuration options for the `local` exporter, For more information about the configuration options for the `local` exporter,
see <<local-exporter-settings>>. see <<local-exporter-settings>>.

View File

@ -2,8 +2,8 @@
[[api-definitions]] [[api-definitions]]
== Definitions == Definitions
These resource definitions are used in {ml} and {security} APIs and in {kib} These resource definitions are used in APIs related to {ml-features} and
advanced {ml} job configuration options. {security-features} and in {kib} advanced {ml} job configuration options.
* <<ml-calendar-resource,Calendars>> * <<ml-calendar-resource,Calendars>>
* <<ml-datafeed-resource,{dfeeds-cap}>> * <<ml-datafeed-resource,{dfeeds-cap}>>

View File

@ -1,8 +1,10 @@
[role="xpack"] [role="xpack"]
[[configuring-tls-docker]] [[configuring-tls-docker]]
=== Encrypting Communications in an {es} Docker Container === Encrypting communications in an {es} Docker Container
Starting with version 6.0.0, {security} (Gold, Platinum or Enterprise subscriptions) https://www.elastic.co/guide/en/elasticsearch/reference/6.0/breaking-6.0.0-xes.html[requires SSL/TLS] Starting with version 6.0.0, {stack} {security-features}
(Gold, Platinum or Enterprise subscriptions)
https://www.elastic.co/guide/en/elasticsearch/reference/6.0/breaking-6.0.0-xes.html[require SSL/TLS]
encryption for the transport networking layer. encryption for the transport networking layer.
This section demonstrates an easy path to get started with SSL/TLS for both This section demonstrates an easy path to get started with SSL/TLS for both
@ -10,7 +12,7 @@ HTTPS and transport using the {es} Docker image. The example uses
Docker Compose to manage the containers. Docker Compose to manage the containers.
For further details, please refer to For further details, please refer to
{xpack-ref}/encrypting-communications.html[Encrypting Communications] and {stack-ov}/encrypting-communications.html[Encrypting communications] and
https://www.elastic.co/subscriptions[available subscriptions]. https://www.elastic.co/subscriptions[available subscriptions].
[float] [float]
@ -156,7 +158,7 @@ volumes: {"esdata_01": {"driver": "local"}, "esdata_02": {"driver": "local"}}
<1> Bootstrap `elastic` with the password defined in `.env`. See <1> Bootstrap `elastic` with the password defined in `.env`. See
{stack-ov}/built-in-users.html#bootstrap-elastic-passwords[the Elastic Bootstrap Password]. {stack-ov}/built-in-users.html#bootstrap-elastic-passwords[the Elastic Bootstrap Password].
<2> Automatically generate and apply a trial subscription, in order to enable <2> Automatically generate and apply a trial subscription, in order to enable
{security}. {security-features}.
<3> Disable verification of authenticity for inter-node communication. Allows <3> Disable verification of authenticity for inter-node communication. Allows
creating self-signed certificates without having to pin specific internal IP addresses. creating self-signed certificates without having to pin specific internal IP addresses.
endif::[] endif::[]

View File

@ -16,8 +16,8 @@ The _JCE Unlimited Strength Jurisdiction Policy Files`_ are required for
encryption with key lengths greater than 128 bits, such as 256-bit AES encryption. encryption with key lengths greater than 128 bits, such as 256-bit AES encryption.
After installation, all cipher suites in the JCE are available for use but requires After installation, all cipher suites in the JCE are available for use but requires
configuration in order to use them. To enable the use of stronger cipher suites with configuration in order to use them. To enable the use of stronger cipher suites
{security}, configure the `cipher_suites` parameter. See the with {es} {security-features}, configure the `cipher_suites` parameter. See the
{ref}/security-settings.html#ssl-tls-settings[Configuration Parameters for TLS/SSL] {ref}/security-settings.html#ssl-tls-settings[Configuration Parameters for TLS/SSL]
section of this document for specific parameter information. section of this document for specific parameter information.

View File

@ -12,14 +12,12 @@ Additionally, it is recommended that the certificates contain subject alternativ
names (SAN) that correspond to the node's IP address and DNS name so that names (SAN) that correspond to the node's IP address and DNS name so that
hostname verification can be performed. hostname verification can be performed.
In order to simplify the process of generating certificates for the Elastic The {ref}/certutil.html[`elasticsearch-certutil`] command simplifies the process
Stack, a command line tool, {ref}/certutil.html[`elasticsearch-certutil`] has been of generating certificates for the {stack}. It takes care of generating a CA and
included with {xpack}. This tool takes care of generating a CA and signing signing certificates with the CA. It can be used interactively or in a silent
certificates with the CA. `elasticsearch-certutil` can be used interactively or mode through the use of an input file. It also supports generation of
in a silent mode through the use of an input file. The `elasticsearch-certutil` certificate signing requests (CSR), so that a commercial- or
tool also supports generation of certificate signing requests (CSR), so that a organization-specific CA can be used to sign the certificates. For example:
commercial- or organization-specific CA can be used to sign the certificates.
For example:
. Optional: Create a certificate authority for your {es} cluster. . Optional: Create a certificate authority for your {es} cluster.
+ +

View File

@ -2,11 +2,13 @@
[[configuring-tls]] [[configuring-tls]]
=== Encrypting communications in {es} === Encrypting communications in {es}
{security} enables you to encrypt traffic to, from, and within your {es} cluster. {stack} {security-features} enable you to encrypt traffic to, from, and within
Connections are secured using Transport Layer Security (TLS/SSL). your {es} cluster. Connections are secured using Transport Layer Security
(TLS/SSL).
WARNING: Clusters that do not have encryption enabled send all data in plain text WARNING: Clusters that do not have encryption enabled send all data in plain text
including passwords and will not be able to install a license that enables {security}. including passwords and will not be able to install a license that enables
{security-features}.
To enable encryption, you need to perform the following steps on each node in To enable encryption, you need to perform the following steps on each node in
the cluster: the cluster:
@ -27,7 +29,7 @@ information, see <<security-settings>>.
<<tls-ldap,encrypt communications between {es} and your LDAP server>>. <<tls-ldap,encrypt communications between {es} and your LDAP server>>.
For more information about encrypting communications across the Elastic Stack, For more information about encrypting communications across the Elastic Stack,
see {xpack-ref}/encrypting-communications.html[Encrypting Communications]. see {stack-ov}/encrypting-communications.html[Encrypting Communications].
:edit_url: https://github.com/elastic/elasticsearch/edit/{branch}/docs/reference/security/securing-communications/node-certificates.asciidoc :edit_url: https://github.com/elastic/elasticsearch/edit/{branch}/docs/reference/security/securing-communications/node-certificates.asciidoc
include::node-certificates.asciidoc[] include::node-certificates.asciidoc[]

View File

@ -3,7 +3,7 @@
=== Separating node-to-node and client traffic === Separating node-to-node and client traffic
Elasticsearch has the feature of so called {ref}/modules-transport.html[TCP transport profiles] Elasticsearch has the feature of so called {ref}/modules-transport.html[TCP transport profiles]
that allows it to bind to several ports and addresses. {security} extends on this that allows it to bind to several ports and addresses. {es} {security-features} extends on this
functionality to enhance the security of the cluster by enabling the separation functionality to enhance the security of the cluster by enabling the separation
of node-to-node transport traffic from client transport traffic. This is important of node-to-node transport traffic from client transport traffic. This is important
if the client transport traffic is not trusted and could potentially be malicious. if the client transport traffic is not trusted and could potentially be malicious.

View File

@ -1,12 +1,13 @@
[[ssl-tls]] [[ssl-tls]]
=== Setting Up TLS on a Cluster === Setting Up TLS on a cluster
{security} enables you to encrypt traffic to, from, and within your {es} The {stack} {security-features} enables you to encrypt traffic to, from, and
cluster. Connections are secured using Transport Layer Security (TLS), which is within your {es} cluster. Connections are secured using Transport Layer Security
commonly referred to as "SSL". (TLS), which is commonly referred to as "SSL".
WARNING: Clusters that do not have encryption enabled send all data in plain text WARNING: Clusters that do not have encryption enabled send all data in plain text
including passwords and will not be able to install a license that enables {security}. including passwords and will not be able to install a license that enables
{security-features}.
The following steps describe how to enable encryption across the various The following steps describe how to enable encryption across the various
components of the Elastic Stack. You must perform each of the steps that are components of the Elastic Stack. You must perform each of the steps that are

View File

@ -5,7 +5,7 @@
To protect the user credentials that are sent for authentication, it's highly To protect the user credentials that are sent for authentication, it's highly
recommended to encrypt communications between {es} and your Active Directory recommended to encrypt communications between {es} and your Active Directory
server. Connecting via SSL/TLS ensures that the identity of the Active Directory server. Connecting via SSL/TLS ensures that the identity of the Active Directory
server is authenticated before {security} transmits the user credentials and the server is authenticated before {es} transmits the user credentials and the
usernames and passwords are encrypted in transit. usernames and passwords are encrypted in transit.
Clients and nodes that connect via SSL/TLS to the Active Directory server need Clients and nodes that connect via SSL/TLS to the Active Directory server need
@ -47,11 +47,11 @@ For more information about these settings, see <<ref-ad-settings>>.
. Restart {es}. . Restart {es}.
NOTE: By default, when you configure {security} to connect to Active Directory NOTE: By default, when you configure {es} to connect to Active Directory
using SSL/TLS, {security} attempts to verify the hostname or IP address using SSL/TLS, it attempts to verify the hostname or IP address
specified with the `url` attribute in the realm configuration with the specified with the `url` attribute in the realm configuration with the
values in the certificate. If the values in the certificate and realm values in the certificate. If the values in the certificate and realm
configuration do not match, {security} does not allow a connection to the configuration do not match, {es} does not allow a connection to the
Active Directory server. This is done to protect against man-in-the-middle Active Directory server. This is done to protect against man-in-the-middle
attacks. If necessary, you can disable this behavior by setting the attacks. If necessary, you can disable this behavior by setting the
`ssl.verification_mode` property to `certificate`. `ssl.verification_mode` property to `certificate`.

View File

@ -1,8 +1,8 @@
[role="xpack"] [role="xpack"]
[[tls-http]] [[tls-http]]
==== Encrypting HTTP Client Communications ==== Encrypting HTTP Client communications
When {security} is enabled, you can optionally use TLS to ensure that When {security-features} are enabled, you can optionally use TLS to ensure that
communication between HTTP clients and the cluster is encrypted. communication between HTTP clients and the cluster is encrypted.
NOTE: Enabling TLS on the HTTP layer is strongly recommended but is not required. NOTE: Enabling TLS on the HTTP layer is strongly recommended but is not required.

View File

@ -5,7 +5,7 @@
To protect the user credentials that are sent for authentication in an LDAP To protect the user credentials that are sent for authentication in an LDAP
realm, it's highly recommended to encrypt communications between {es} and your realm, it's highly recommended to encrypt communications between {es} and your
LDAP server. Connecting via SSL/TLS ensures that the identity of the LDAP server LDAP server. Connecting via SSL/TLS ensures that the identity of the LDAP server
is authenticated before {security} transmits the user credentials and the is authenticated before {es} transmits the user credentials and the
contents of the connection are encrypted. Clients and nodes that connect via contents of the connection are encrypted. Clients and nodes that connect via
TLS to the LDAP server need to have the LDAP server's certificate or the TLS to the LDAP server need to have the LDAP server's certificate or the
server's root CA certificate installed in their keystore or truststore. server's root CA certificate installed in their keystore or truststore.
@ -15,7 +15,7 @@ For more information, see <<configuring-ldap-realm>>.
. Configure the realm's TLS settings on each node to trust certificates signed . Configure the realm's TLS settings on each node to trust certificates signed
by the CA that signed your LDAP server certificates. The following example by the CA that signed your LDAP server certificates. The following example
demonstrates how to trust a CA certificate, `cacert.pem`, located within the demonstrates how to trust a CA certificate, `cacert.pem`, located within the
{xpack} configuration directory: {es} configuration directory (ES_PATH_CONF):
+ +
-- --
[source,shell] [source,shell]
@ -45,11 +45,11 @@ protocol and the secure port number. For example, `url: ldaps://ldap.example.com
. Restart {es}. . Restart {es}.
NOTE: By default, when you configure {security} to connect to an LDAP server NOTE: By default, when you configure {es} to connect to an LDAP server
using SSL/TLS, {security} attempts to verify the hostname or IP address using SSL/TLS, it attempts to verify the hostname or IP address
specified with the `url` attribute in the realm configuration with the specified with the `url` attribute in the realm configuration with the
values in the certificate. If the values in the certificate and realm values in the certificate. If the values in the certificate and realm
configuration do not match, {security} does not allow a connection to the configuration do not match, {es} does not allow a connection to the
LDAP server. This is done to protect against man-in-the-middle attacks. If LDAP server. This is done to protect against man-in-the-middle attacks. If
necessary, you can disable this behavior by setting the necessary, you can disable this behavior by setting the
`ssl.verification_mode` property to `certificate`. `ssl.verification_mode` property to `certificate`.

View File

@ -1,10 +1,10 @@
[role="xpack"] [role="xpack"]
[[tls-transport]] [[tls-transport]]
==== Encrypting Communications Between Nodes in a Cluster ==== Encrypting communications between nodes in a cluster
The transport networking layer is used for internal communication between nodes The transport networking layer is used for internal communication between nodes
in a cluster. When {security} is enabled, you must use TLS to ensure that in a cluster. When {security-features} are enabled, you must use TLS to ensure
communication between the nodes is encrypted. that communication between the nodes is encrypted.
. <<node-certificates,Generate node certificates>>. . <<node-certificates,Generate node certificates>>.

View File

@ -161,9 +161,9 @@ xpack.security.audit.index.settings:
-- --
NOTE: These settings apply to the local audit indices, as well as to the NOTE: These settings apply to the local audit indices, as well as to the
<<remote-audit-settings, remote audit indices>>, but only if the remote cluster <<remote-audit-settings, remote audit indices>>, but only if the remote cluster
does *not* have {security} installed, or the {es} versions are different. does *not* have {security-features} enabled or the {es} versions are different.
If the remote cluster has {security} installed, and the versions coincide, the If the remote cluster has {security-features} enabled and the versions coincide,
settings for the audit indices there will take precedence, the settings for the audit indices there will take precedence,
even if they are unspecified (i.e. left to defaults). even if they are unspecified (i.e. left to defaults).
-- --

View File

@ -90,9 +90,10 @@ access. Defaults to `true`.
[float] [float]
[[security-automata-settings]] [[security-automata-settings]]
==== Automata Settings ==== Automata Settings
In places where {security} accepts wildcard patterns (e.g. index patterns in In places where the {security-features} accept wildcard patterns (e.g. index
roles, group matches in the role mapping API), each pattern is compiled into patterns in roles, group matches in the role mapping API), each pattern is
an Automaton. The follow settings are available to control this behaviour. compiled into an Automaton. The follow settings are available to control this
behaviour.
`xpack.security.automata.max_determinized_states`:: `xpack.security.automata.max_determinized_states`::
The upper limit on how many automaton states may be created by a single pattern. The upper limit on how many automaton states may be created by a single pattern.
@ -357,7 +358,7 @@ Defaults to `60s`.
`group_search.base_dn`:: `group_search.base_dn`::
The container DN to search for groups in which the user has membership. When The container DN to search for groups in which the user has membership. When
this element is absent, {security} searches for the attribute specified by this element is absent, {es} searches for the attribute specified by
`user_group_attribute` set on the user in order to determine group membership. `user_group_attribute` set on the user in order to determine group membership.
`group_search.scope`:: `group_search.scope`::
@ -391,7 +392,7 @@ YAML role mapping configuration file]. Defaults to
`ES_PATH_CONF/role_mapping.yml`. `ES_PATH_CONF/role_mapping.yml`.
`follow_referrals`:: `follow_referrals`::
Specifies whether {security} should follow referrals returned Specifies whether {es} should follow referrals returned
by the LDAP server. Referrals are URLs returned by the server that are to be by the LDAP server. Referrals are URLs returned by the server that are to be
used to continue the LDAP operation (for example, search). Defaults to `true`. used to continue the LDAP operation (for example, search). Defaults to `true`.
@ -517,7 +518,7 @@ The `type` setting must be set to `active_directory`. In addition to the
the following settings: the following settings:
`url`:: `url`::
An LDAP URL of the form `ldap[s]://<server>:<port>`. {security} attempts to An LDAP URL of the form `ldap[s]://<server>:<port>`. {es} attempts to
authenticate against this URL. If the URL is not specified, it is derived from authenticate against this URL. If the URL is not specified, it is derived from
the `domain_name` setting and assumes an unencrypted connection to port 389. the `domain_name` setting and assumes an unencrypted connection to port 389.
Defaults to `ldap://<domain_name>:389`. This setting is required when connecting Defaults to `ldap://<domain_name>:389`. This setting is required when connecting
@ -756,7 +757,7 @@ this realm, so that it only supports user lookups.
Defaults to `true`. Defaults to `true`.
`follow_referrals`:: `follow_referrals`::
If set to `true` {security} follows referrals returned by the LDAP server. If set to `true`, {es} follows referrals returned by the LDAP server.
Referrals are URLs returned by the server that are to be used to continue the Referrals are URLs returned by the server that are to be used to continue the
LDAP operation (such as `search`). Defaults to `true`. LDAP operation (such as `search`). Defaults to `true`.
@ -832,7 +833,7 @@ capabilities and configuration of the Identity Provider.
If a path is provided, then it is resolved relative to the {es} config If a path is provided, then it is resolved relative to the {es} config
directory. directory.
If a URL is provided, then it must be either a `file` URL or a `https` URL. If a URL is provided, then it must be either a `file` URL or a `https` URL.
{security} automatically polls this metadata resource and reloads {es} automatically polls this metadata resource and reloads
the IdP configuration when changes are detected. the IdP configuration when changes are detected.
File based resources are polled at a frequency determined by the global {es} File based resources are polled at a frequency determined by the global {es}
`resource.reload.interval.high` setting, which defaults to 5 seconds. `resource.reload.interval.high` setting, which defaults to 5 seconds.
@ -864,24 +865,20 @@ The URL of the Single Logout service within {kib}. Typically this is the
`https://kibana.example.com/logout`. `https://kibana.example.com/logout`.
`attributes.principal`:: `attributes.principal`::
The Name of the SAML attribute that should be used as the {security} user's The Name of the SAML attribute that contains the user's principal (username).
principal (username).
`attributes.groups`:: `attributes.groups`::
The Name of the SAML attribute that should be used to populate {security} The Name of the SAML attribute that contains the user's groups.
user's groups.
`attributes.name`:: `attributes.name`::
The Name of the SAML attribute that should be used to populate {security} The Name of the SAML attribute that contains the user's full name.
user's full name.
`attributes.mail`:: `attributes.mail`::
The Name of the SAML attribute that should be used to populate {security} The Name of the SAML attribute that contains the user's email address.
user's email address.
`attributes.dn`:: `attributes.dn`::
The Name of the SAML attribute that should be used to populate {security} The Name of the SAML attribute that contains the user's X.50
user's X.500 _Distinguished Name_. _Distinguished Name_.
`attribute_patterns.principal`:: `attribute_patterns.principal`::
A Java regular expression that is matched against the SAML attribute specified A Java regular expression that is matched against the SAML attribute specified
@ -950,7 +947,7 @@ For more information, see
===== SAML realm signing settings ===== SAML realm signing settings
If a signing key is configured (that is, either `signing.key` or If a signing key is configured (that is, either `signing.key` or
`signing.keystore.path` is set), then {security} signs outgoing SAML messages. `signing.keystore.path` is set), then {es} signs outgoing SAML messages.
Signing can be configured using the following settings: Signing can be configured using the following settings:
`signing.saml_messages`:: `signing.saml_messages`::
@ -1001,7 +998,7 @@ Defaults to the keystore password.
===== SAML realm encryption settings ===== SAML realm encryption settings
If an encryption key is configured (that is, either `encryption.key` or If an encryption key is configured (that is, either `encryption.key` or
`encryption.keystore.path` is set), then {security} publishes an encryption `encryption.keystore.path` is set), then {es} publishes an encryption
certificate when generating metadata and attempts to decrypt incoming SAML certificate when generating metadata and attempts to decrypt incoming SAML
content. Encryption can be configured using the following settings: content. Encryption can be configured using the following settings:
@ -1210,8 +1207,8 @@ through the list of URLs will continue until a successful connection is made.
==== Default TLS/SSL settings ==== Default TLS/SSL settings
You can configure the following TLS/SSL settings in You can configure the following TLS/SSL settings in
`elasticsearch.yml`. For more information, see `elasticsearch.yml`. For more information, see
{stack-ov}/encrypting-communications.html[Encrypting communications]. These settings will be used {stack-ov}/encrypting-communications.html[Encrypting communications]. These
for all of {xpack} unless they have been overridden by more specific settings are used unless they have been overridden by more specific
settings such as those for HTTP or Transport. settings such as those for HTTP or Transport.
`xpack.ssl.supported_protocols`:: `xpack.ssl.supported_protocols`::
@ -1262,8 +1259,8 @@ Jurisdiction Policy Files_ has been installed, the default value also includes `
The following settings are used to specify a private key, certificate, and the The following settings are used to specify a private key, certificate, and the
trusted certificates that should be used when communicating over an SSL/TLS connection. trusted certificates that should be used when communicating over an SSL/TLS connection.
If none of the settings below are specified, this will default to the <<ssl-tls-settings, {xpack} If none of the settings below are specified, the
defaults>>. If no trusted certificates are configured, the default certificates that are trusted by the JVM will be <<ssl-tls-settings,default settings>> are used. If no trusted certificates are configured, the default certificates that are trusted by the JVM will be
trusted along with the certificate(s) from the <<tls-ssl-key-settings, key settings>>. The key and certificate must be in place trusted along with the certificate(s) from the <<tls-ssl-key-settings, key settings>>. The key and certificate must be in place
for connections that require client authentication or when acting as a SSL enabled server. for connections that require client authentication or when acting as a SSL enabled server.

View File

@ -110,7 +110,7 @@ Password to the truststore.
===== PKCS#12 Files ===== PKCS#12 Files
{security} can be configured to use PKCS#12 container files (`.p12` or `.pfx` files) {es} can be configured to use PKCS#12 container files (`.p12` or `.pfx` files)
that contain the private key, certificate and certificates that should be trusted. that contain the private key, certificate and certificates that should be trusted.
PKCS#12 files are configured in the same way as Java Keystore Files: PKCS#12 files are configured in the same way as Java Keystore Files:
@ -148,7 +148,7 @@ Password to the PKCS#12 file.
===== PKCS#11 Tokens ===== PKCS#11 Tokens
{security} can be configured to use a PKCS#11 token that contains the private key, {es} can be configured to use a PKCS#11 token that contains the private key,
certificate and certificates that should be trusted. certificate and certificates that should be trusted.
PKCS#11 token require additional configuration on the JVM level and can be enabled PKCS#11 token require additional configuration on the JVM level and can be enabled

View File

@ -21,11 +21,11 @@ on each node in the cluster. For more information, see
=== PKI realm check === PKI realm check
//See PkiRealmBootstrapCheckTests.java //See PkiRealmBootstrapCheckTests.java
If you use {security} and a Public Key Infrastructure (PKI) realm, you must If you use {es} {security-features} and a Public Key Infrastructure (PKI) realm,
configure Transport Layer Security (TLS) on your cluster and enable client you must configure Transport Layer Security (TLS) on your cluster and enable
authentication on the network layers (either transport or http). For more client authentication on the network layers (either transport or http). For more
information, see {xpack-ref}/pki-realm.html[PKI User Authentication] and information, see {stack-ov}/pki-realm.html[PKI user authentication] and
{xpack-ref}/ssl-tls.html[Setting Up TLS on a Cluster]. {stack-ov}/ssl-tls.html[Setting up TLS on a cluster].
To pass this bootstrap check, if a PKI realm is enabled, you must configure TLS To pass this bootstrap check, if a PKI realm is enabled, you must configure TLS
and enable client authentication on at least one network communication layer. and enable client authentication on at least one network communication layer.
@ -42,7 +42,7 @@ and copy it to each node in the cluster. By default, role mappings are stored in
`ES_PATH_CONF/role_mapping.yml`. Alternatively, you can specify a `ES_PATH_CONF/role_mapping.yml`. Alternatively, you can specify a
different role mapping file for each type of realm and specify its location in different role mapping file for each type of realm and specify its location in
the `elasticsearch.yml` file. For more information, see the `elasticsearch.yml` file. For more information, see
{xpack-ref}/mapping-roles.html#mapping-roles-file[Using Role Mapping Files]. {stack-ov}/mapping-roles.html#mapping-roles-file[Using role mapping files].
To pass this bootstrap check, the role mapping files must exist and must be To pass this bootstrap check, the role mapping files must exist and must be
valid. The Distinguished Names (DNs) that are listed in the role mappings files valid. The Distinguished Names (DNs) that are listed in the role mappings files
@ -54,24 +54,24 @@ must also be valid.
//See TLSLicenseBootstrapCheck.java //See TLSLicenseBootstrapCheck.java
In 6.0 and later releases, if you have a gold, platinum, or enterprise license In 6.0 and later releases, if you have a gold, platinum, or enterprise license
and {security} is enabled, you must configure SSL/TLS for and {es} {security-features} are enabled, you must configure SSL/TLS for
internode-communication. internode-communication.
NOTE: Single-node clusters that use a loopback interface do not have this NOTE: Single-node clusters that use a loopback interface do not have this
requirement. For more information, see requirement. For more information, see
{xpack-ref}/encrypting-communications.html[Encrypting Communications]. {stack-ov}/encrypting-communications.html[Encrypting communications].
To pass this bootstrap check, you must To pass this bootstrap check, you must
{xpack-ref}/ssl-tls.html[set up SSL/TLS in your cluster]. {stack-ov}/ssl-tls.html[set up SSL/TLS in your cluster].
[float] [float]
=== Token SSL check === Token SSL check
//See TokenSSLBootstrapCheckTests.java //See TokenSSLBootstrapCheckTests.java
If you use {security} and the built-in token service is enabled, you must If you use {es} {security-features} and the built-in token service is enabled,
configure your cluster to use SSL/TLS for the HTTP interface. HTTPS is required you must configure your cluster to use SSL/TLS for the HTTP interface. HTTPS is
in order to use the token service. required in order to use the token service.
In particular, if `xpack.security.authc.token.enabled` is In particular, if `xpack.security.authc.token.enabled` is
set to `true` in the `elasticsearch.yml` file, you must also set set to `true` in the `elasticsearch.yml` file, you must also set
@ -79,4 +79,4 @@ set to `true` in the `elasticsearch.yml` file, you must also set
settings, see <<security-settings>> and <<modules-http>>. settings, see <<security-settings>> and <<modules-http>>.
To pass this bootstrap check, you must enable HTTPS or disable the built-in To pass this bootstrap check, you must enable HTTPS or disable the built-in
token service by using the {security} settings. token service.

View File

@ -76,12 +76,18 @@ TIP: Ensure the installation machine has access to the internet and that any cor
[[msi-installer-selected-plugins]] [[msi-installer-selected-plugins]]
image::images/msi_installer/msi_installer_selected_plugins.png[] image::images/msi_installer/msi_installer_selected_plugins.png[]
As of version 6.3.0, X-Pack is now https://www.elastic.co/products/x-pack/open[bundled by default]. The final step allows a choice of the type of X-Pack license to install, in addition to security configuration and built-in user configuration: As of version 6.3.0, {xpack} is now https://www.elastic.co/products/x-pack/open[bundled by default].
The final step allows a choice of the type of license to install, in addition to
security configuration and built-in user configuration:
[[msi-installer-xpack]] [[msi-installer-xpack]]
image::images/msi_installer/msi_installer_xpack.png[] image::images/msi_installer/msi_installer_xpack.png[]
NOTE: X-Pack includes a choice of a Trial or Basic license. A Trial license is valid for 30 days, after which you can obtain one of the available subscriptions. The Basic license is free and perpetual. Consult the https://www.elastic.co/subscriptions[available subscriptions] for further details on which features are available under which license. NOTE: {xpack} includes a choice of a Trial or Basic license. A Trial license is
valid for 30 days, after which you can obtain one of the available subscriptions.
The Basic license is free and perpetual. Consult the
https://www.elastic.co/subscriptions[available subscriptions] for further
details on which features are available under which license.
After clicking the install button, the installation will begin: After clicking the install button, the installation will begin:
@ -260,7 +266,8 @@ as _properties_ within Windows Installer documentation) that can be passed to `m
`PLUGINS`:: `PLUGINS`::
A comma separated list of the plugins to download and install as part of the installation. Defaults to `""` A comma separated list of the plugins to download and install as part of the
installation. Defaults to `""`
`HTTPSPROXYHOST`:: `HTTPSPROXYHOST`::
@ -280,47 +287,47 @@ as _properties_ within Windows Installer documentation) that can be passed to `m
`XPACKLICENSE`:: `XPACKLICENSE`::
The type of X-Pack license to install, either `Basic` or `Trial`. Defaults to `Basic` The type of license to install, either `Basic` or `Trial`. Defaults to `Basic`
`XPACKSECURITYENABLED`:: `XPACKSECURITYENABLED`::
When installing with a `Trial` license, whether X-Pack Security should be enabled. When installing with a `Trial` license, whether {security-features} are
Defaults to `true` enabled. Defaults to `true`
`BOOTSTRAPPASSWORD`:: `BOOTSTRAPPASSWORD`::
When installing with a `Trial` license and X-Pack Security enabled, the password to When installing with a `Trial` license and {security-features} are enabled,
used to bootstrap the cluster and persisted as the `bootstrap.password` setting in the keystore. the password to used to bootstrap the cluster and persisted as the
Defaults to a randomized value. `bootstrap.password` setting in the keystore. Defaults to a randomized value.
`SKIPSETTINGPASSWORDS`:: `SKIPSETTINGPASSWORDS`::
When installing with a `Trial` license and {security} enabled, whether the When installing with a `Trial` license and {security-features} enabled,
installation should skip setting up the built-in users `elastic`, `kibana`, whether the installation should skip setting up the built-in users.
`logstash_system`, `apm_system`, and `beats_system`.
Defaults to `false` Defaults to `false`
`ELASTICUSERPASSWORD`:: `ELASTICUSERPASSWORD`::
When installing with a `Trial` license and X-Pack Security enabled, the password When installing with a `Trial` license and {security-features} are enabled,
to use for the built-in user `elastic`. Defaults to `""` the password to use for the built-in user `elastic`. Defaults to `""`
`KIBANAUSERPASSWORD`:: `KIBANAUSERPASSWORD`::
When installing with a `Trial` license and X-Pack Security enabled, the password When installing with a `Trial` license and {security-features} are enabled,
to use for the built-in user `kibana`. Defaults to `""` the password to use for the built-in user `kibana`. Defaults to `""`
`LOGSTASHSYSTEMUSERPASSWORD`:: `LOGSTASHSYSTEMUSERPASSWORD`::
When installing with a `Trial` license and X-Pack Security enabled, the password When installing with a `Trial` license and {security-features} are enabled,
to use for the built-in user `logstash_system`. Defaults to `""` the password to use for the built-in user `logstash_system`. Defaults to `""`
To pass a value, simply append the property name and value using the format `<PROPERTYNAME>="<VALUE>"` to To pass a value, simply append the property name and value using the format
the installation command. For example, to use a different installation directory to the default one and to install https://www.elastic.co/products/x-pack[X-Pack]: `<PROPERTYNAME>="<VALUE>"` to the installation command. For example, to use a
different installation directory to the default one:
["source","sh",subs="attributes,callouts"] ["source","sh",subs="attributes,callouts"]
-------------------------------------------- --------------------------------------------
start /wait msiexec.exe /i elasticsearch-{version}.msi /qn INSTALLDIR="C:\Custom Install Directory\{version}" PLUGINS="x-pack" start /wait msiexec.exe /i elasticsearch-{version}.msi /qn INSTALLDIR="C:\Custom Install Directory\{version}"
-------------------------------------------- --------------------------------------------
Consult the https://msdn.microsoft.com/en-us/library/windows/desktop/aa367988(v=vs.85).aspx[Windows Installer SDK Command-Line Options] Consult the https://msdn.microsoft.com/en-us/library/windows/desktop/aa367988(v=vs.85).aspx[Windows Installer SDK Command-Line Options]
@ -328,10 +335,10 @@ for additional rules related to values containing quotation marks.
ifdef::include-xpack[] ifdef::include-xpack[]
[[msi-installer-enable-indices]] [[msi-installer-enable-indices]]
==== Enable automatic creation of X-Pack indices ==== Enable automatic creation of {xpack} indices
X-Pack will try to automatically create a number of indices within Elasticsearch. The {stack} features try to automatically create a number of indices within {es}.
include::xpack-indices.asciidoc[] include::xpack-indices.asciidoc[]
endif::include-xpack[] endif::include-xpack[]

View File

@ -111,5 +111,5 @@ Then in your project's `pom.xml` if using maven, add the following repositories
-------------------------------------------------------------- --------------------------------------------------------------
-- --
. If you are using {security}, there are more configuration steps. See . If you are using {stack} {security-features}, there are more configuration
{xpack-ref}/java-clients.html[Java Client and Security]. steps. See {stack-ov}/java-clients.html[Java Client and Security].

View File

@ -2,7 +2,7 @@
[[security-api]] [[security-api]]
== Security APIs == Security APIs
You can use the following APIs to perform {security} activities. You can use the following APIs to perform security activities.
* <<security-api-authenticate>> * <<security-api-authenticate>>
* <<security-api-clear-cache>> * <<security-api-clear-cache>>

View File

@ -63,7 +63,8 @@ The value specified in the field rule can be one of the following types:
The _user object_ against which rules are evaluated has the following fields: The _user object_ against which rules are evaluated has the following fields:
`username`:: `username`::
(string) The username by which {security} knows this user. For example, `"username": "jsmith"`. (string) The username by which the {es} {security-features} knows this user. For
example, `"username": "jsmith"`.
`dn`:: `dn`::
(string) The _Distinguished Name_ of the user. For example, `"dn": "cn=jsmith,ou=users,dc=example,dc=com",`. (string) The _Distinguished Name_ of the user. For example, `"dn": "cn=jsmith,ou=users,dc=example,dc=com",`.
`groups`:: `groups`::

View File

@ -14,12 +14,12 @@ certificates that are used to encrypt communications in your {es} cluster.
For more information about how certificates are configured in conjunction with For more information about how certificates are configured in conjunction with
Transport Layer Security (TLS), see Transport Layer Security (TLS), see
{xpack-ref}/ssl-tls.html[Setting up SSL/TLS on a cluster]. {stack-ov}/ssl-tls.html[Setting up SSL/TLS on a cluster].
The API returns a list that includes certificates from all TLS contexts The API returns a list that includes certificates from all TLS contexts
including: including:
* {xpack} default TLS settings * Default {es} TLS settings
* Settings for transport and HTTP interfaces * Settings for transport and HTTP interfaces
* TLS settings that are used within authentication realms * TLS settings that are used within authentication realms
* TLS settings for remote monitoring exporters * TLS settings for remote monitoring exporters
@ -32,13 +32,13 @@ that are used for configuring server identity, such as `xpack.ssl.keystore` and
The list does not include certificates that are sourced from the default SSL The list does not include certificates that are sourced from the default SSL
context of the Java Runtime Environment (JRE), even if those certificates are in context of the Java Runtime Environment (JRE), even if those certificates are in
use within {xpack}. use within {es}.
NOTE: When a PKCS#11 token is configured as the truststore of the JRE, the API NOTE: When a PKCS#11 token is configured as the truststore of the JRE, the API
will return all the certificates that are included in the PKCS#11 token will return all the certificates that are included in the PKCS#11 token
irrespectively to whether these are used in the {es} TLS configuration or not. irrespectively to whether these are used in the {es} TLS configuration or not.
If {xpack} is configured to use a keystore or truststore, the API output If {es} is configured to use a keystore or truststore, the API output
includes all certificates in that store, even though some of the certificates includes all certificates in that store, even though some of the certificates
might not be in active use within the cluster. might not be in active use within the cluster.
@ -56,16 +56,16 @@ single certificate. The fields in each object are:
`subject_dn`:: (string) The Distinguished Name of the certificate's subject. `subject_dn`:: (string) The Distinguished Name of the certificate's subject.
`serial_number`:: (string) The hexadecimal representation of the certificate's `serial_number`:: (string) The hexadecimal representation of the certificate's
serial number. serial number.
`has_private_key`:: (boolean) If {xpack} has access to the private key for this `has_private_key`:: (boolean) If {es} has access to the private key for this
certificate, this field has a value of `true`. certificate, this field has a value of `true`.
`expiry`:: (string) The ISO formatted date of the certificate's expiry `expiry`:: (string) The ISO formatted date of the certificate's expiry
(not-after) date. (not-after) date.
==== Authorization ==== Authorization
If {security} is enabled, you must have `monitor` cluster privileges to use this If the {security-features} are enabled, you must have `monitor` cluster
API. For more information, see privileges to use this API. For more information, see
{xpack-ref}/security-privileges.html[Security Privileges]. {stack-ov}/security-privileges.html[Security Privileges].
==== Examples ==== Examples

View File

@ -20,8 +20,9 @@ related to this watch from the watch history.
IMPORTANT: Deleting a watch must be done via this API only. Do not delete the IMPORTANT: Deleting a watch must be done via this API only. Do not delete the
watch directly from the `.watches` index using the Elasticsearch watch directly from the `.watches` index using the Elasticsearch
DELETE Document API. When {security} is enabled, make sure no `write` DELETE Document API. When {es} {security-features} are enabled, make
privileges are granted to anyone over the `.watches` index. sure no `write` privileges are granted to anyone over the `.watches`
index.
[float] [float]
==== Path Parameters ==== Path Parameters

View File

@ -56,7 +56,7 @@ This API supports the following fields:
that will be used during the watch execution that will be used during the watch execution
| `ignore_condition` | no | false | When set to `true`, the watch execution uses the | `ignore_condition` | no | false | When set to `true`, the watch execution uses the
{xpack-ref}/condition-always.html[Always Condition]. {stack-ov}/condition-always.html[Always Condition].
This can also be specified as an HTTP parameter. This can also be specified as an HTTP parameter.
| `alternative_input` | no | null | When present, the watch uses this object as a payload | `alternative_input` | no | null | When present, the watch uses this object as a payload
@ -73,7 +73,7 @@ This API supports the following fields:
This can also be specified as an HTTP parameter. This can also be specified as an HTTP parameter.
| `watch` | no | null | When present, this | `watch` | no | null | When present, this
{xpack-ref}/how-watcher-works.html#watch-definition[watch] is used {stack-ov}/how-watcher-works.html#watch-definition[watch] is used
instead of the one specified in the request. This watch is instead of the one specified in the request. This watch is
not persisted to the index and record_execution cannot be set. not persisted to the index and record_execution cannot be set.
|====== |======
@ -91,7 +91,7 @@ are five possible modes an action can be associated with:
| `simulate` | The action execution is simulated. Each action type | `simulate` | The action execution is simulated. Each action type
define its own simulation operation mode. For example, the define its own simulation operation mode. For example, the
{xpack-ref}/actions-email.html[email] action creates {stack-ov}/actions-email.html[email] action creates
the email that would have been sent but does not actually the email that would have been sent but does not actually
send it. In this mode, the action might be throttled if the send it. In this mode, the action might be throttled if the
current state of the watch indicates it should be. current state of the watch indicates it should be.
@ -116,14 +116,14 @@ are five possible modes an action can be associated with:
[float] [float]
==== Authorization ==== Authorization
You must have `manage_watcher` cluster privileges to use this API. For more You must have `manage_watcher` cluster privileges to use this API. For more
information, see {xpack-ref}/security-privileges.html[Security Privileges]. information, see {stack-ov}/security-privileges.html[Security Privileges].
[float] [float]
==== Security Integration ==== Security Integration
When {security} is enabled on your Elasticsearch cluster, then watches will be When {es} {security-features} are enabled on your cluster, watches
executed with the privileges of the user that stored the watches. If your user are executed with the privileges of the user that stored the watches. If your
is allowed to read index `a`, but not index `b`, then the exact same set of user is allowed to read index `a`, but not index `b`, then the exact same set of
rules will apply during execution of a watch. rules will apply during execution of a watch.
When using the execute watch API, the authorization data of the user that When using the execute watch API, the authorization data of the user that

View File

@ -20,8 +20,8 @@ trigger engine.
IMPORTANT: Putting a watch must be done via this API only. Do not put a watch IMPORTANT: Putting a watch must be done via this API only. Do not put a watch
directly to the `.watches` index using the Elasticsearch Index API. directly to the `.watches` index using the Elasticsearch Index API.
If {security} is enabled, make sure no `write` privileges are If {es} {security-features} are enabled, make sure no `write`
granted to anyone over the `.watches` index. privileges are granted to anyone over the `.watches` index.
When adding a watch you can also define its initial When adding a watch you can also define its initial
{xpack-ref}/how-watcher-works.html#watch-active-state[active state]. You do that {xpack-ref}/how-watcher-works.html#watch-active-state[active state]. You do that
@ -77,9 +77,9 @@ information, see {xpack-ref}/security-privileges.html[Security Privileges].
[float] [float]
==== Security Integration ==== Security Integration
When {security} is enabled, your watch will only be able to index or search on When {es} {security-features} are enabled, your watch can index or search only
indices for which the user that stored the watch, has privileges. If the user is on indices for which the user that stored the watch has privileges. If the user
able to read index `a`, but not index `b`, the same will apply, when the watch is able to read index `a`, but not index `b`, the same will apply, when the watch
is executed. is executed.
[float] [float]

View File

@ -29,7 +29,7 @@ The following is a list of the events that can be generated:
| `run_as_denied` | | | Logged when an authenticated user attempts to <<run-as-privilege, run as>> | `run_as_denied` | | | Logged when an authenticated user attempts to <<run-as-privilege, run as>>
another user action they do not have the necessary another user action they do not have the necessary
<<security-reference, privilege>> to do so. <<security-reference, privilege>> to do so.
| `tampered_request` | | | Logged when {security} detects that the request has | `tampered_request` | | | Logged when the {security-features} detect that the request has
been tampered with. Typically relates to `search/scroll` been tampered with. Typically relates to `search/scroll`
requests when the scroll ID is believed to have been requests when the scroll ID is believed to have been
tampered with. tampered with.

View File

@ -38,9 +38,9 @@ xpack.security.audit.index.settings:
These settings apply to the local audit indices, as well as to the These settings apply to the local audit indices, as well as to the
<<forwarding-audit-logfiles, remote audit indices>>, but only if the remote cluster <<forwarding-audit-logfiles, remote audit indices>>, but only if the remote cluster
does *not* have {security} installed, or the {es} versions are different. does *not* have {security-features} enabled or the {es} versions are different.
If the remote cluster has {security} installed, and the versions coincide, the If the remote cluster has {security-features} enabled and the versions coincide,
settings for the audit indices there will take precedence, the settings for the audit indices there will take precedence,
even if they are unspecified (i.e. left to defaults). even if they are unspecified (i.e. left to defaults).
NOTE: Audit events are batched for indexing so there is a lag before NOTE: Audit events are batched for indexing so there is a lag before

View File

@ -13,7 +13,7 @@ Audit logs are **disabled** by default. To enable this functionality, you
must set `xpack.security.audit.enabled` to `true` in `elasticsearch.yml`. must set `xpack.security.audit.enabled` to `true` in `elasticsearch.yml`.
============================================================================ ============================================================================
{Security} provides two ways to persist audit logs: The {es} {security-features} provide two ways to persist audit logs:
* The <<audit-log-output, `logfile`>> output, which persists events to * The <<audit-log-output, `logfile`>> output, which persists events to
a dedicated `<clustername>_audit.log` file on the host's file system. a dedicated `<clustername>_audit.log` file on the host's file system.

View File

@ -2,13 +2,12 @@
[[configuring-ad-realm]] [[configuring-ad-realm]]
=== Configuring an Active Directory realm === Configuring an Active Directory realm
You can configure {security} to communicate with Active Directory to authenticate You can configure {es} to communicate with Active Directory to authenticate
users. To integrate with Active Directory, you configure an `active_directory` users. To integrate with Active Directory, you configure an `active_directory`
realm and map Active Directory users and groups to {security} roles in the role realm and map Active Directory users and groups to roles in the role mapping file.
mapping file.
For more information about Active Directory realms, see For more information about Active Directory realms, see
{xpack-ref}/active-directory-realm.html[Active Directory User Authentication]. {stack-ov}/active-directory-realm.html[Active Directory User Authentication].
. Add a realm configuration of type `active_directory` to `elasticsearch.yml` . Add a realm configuration of type `active_directory` to `elasticsearch.yml`
under the `xpack.security.authc.realms.active_directory` namespace. under the `xpack.security.authc.realms.active_directory` namespace.
@ -25,7 +24,7 @@ NOTE: Binding to Active Directory fails if the domain name is not mapped in DNS.
If DNS is not being provided by a Windows DNS server, add a mapping for If DNS is not being provided by a Windows DNS server, add a mapping for
the domain in the local `/etc/hosts` file. the domain in the local `/etc/hosts` file.
For example, the following realm configuration configures {security} to connect For example, the following realm configuration configures {es} to connect
to `ldaps://example.com:636` to authenticate users through Active Directory: to `ldaps://example.com:636` to authenticate users through Active Directory:
[source, yaml] [source, yaml]
@ -60,7 +59,7 @@ You must also set the `url` setting, since you must authenticate against the
Global Catalog, which uses a different port and might not be running on every Global Catalog, which uses a different port and might not be running on every
Domain Controller. Domain Controller.
For example, the following realm configuration configures {security} to connect For example, the following realm configuration configures {es} to connect
to specific Domain Controllers on the Global Catalog port with the domain name to specific Domain Controllers on the Global Catalog port with the domain name
set to the forest root: set to the forest root:
@ -96,7 +95,7 @@ ports (389 or 636) in order to query the configuration container to retrieve the
domain name from the NetBIOS name. domain name from the NetBIOS name.
-- --
. (Optional) Configure how {security} should interact with multiple Active . (Optional) Configure how {es} should interact with multiple Active
Directory servers. Directory servers.
+ +
-- --
@ -113,14 +112,14 @@ operation are supported: failover and load balancing. See <<ref-ad-settings>>.
+ +
-- --
The Active Directory realm authenticates users using an LDAP bind request. By The Active Directory realm authenticates users using an LDAP bind request. By
default, all of the LDAP operations are run by the user that {security} is default, all of the LDAP operations are run by the user that {es} is
authenticating. In some cases, regular users may not be able to access all of the authenticating. In some cases, regular users may not be able to access all of the
necessary items within Active Directory and a _bind user_ is needed. A bind user necessary items within Active Directory and a _bind user_ is needed. A bind user
can be configured and is used to perform all operations other than the LDAP bind can be configured and is used to perform all operations other than the LDAP bind
request, which is required to authenticate the credentials provided by the user. request, which is required to authenticate the credentials provided by the user.
The use of a bind user enables the The use of a bind user enables the
{xpack-ref}/run-as-privilege.html[run as feature] to be used with the Active {stack-ov}/run-as-privilege.html[run as feature] to be used with the Active
Directory realm and the ability to maintain a set of pooled connections to Directory realm and the ability to maintain a set of pooled connections to
Active Directory. These pooled connection reduce the number of resources that Active Directory. These pooled connection reduce the number of resources that
must be created and destroyed with every user authentication. must be created and destroyed with every user authentication.
@ -235,7 +234,7 @@ user:
<4> The Active Directory distinguished name (DN) of the user `John Doe`. <4> The Active Directory distinguished name (DN) of the user `John Doe`.
For more information, see For more information, see
{xpack-ref}/mapping-roles.html[Mapping users and groups to roles]. {stack-ov}/mapping-roles.html[Mapping users and groups to roles].
-- --
. (Optional) Configure the `metadata` setting in the Active Directory realm to . (Optional) Configure the `metadata` setting in the Active Directory realm to

View File

@ -76,7 +76,8 @@ required changes.
IMPORTANT: As the administrator of the cluster, it is your responsibility to IMPORTANT: As the administrator of the cluster, it is your responsibility to
ensure the same users are defined on every node in the cluster. ensure the same users are defined on every node in the cluster.
{security} does not deliver any mechanism to guarantee this. The {es} {security-features} do not deliver any mechanisms to
guarantee this.
-- --
@ -103,7 +104,7 @@ the same changes are made on every node in the cluster.
. (Optional) Change how often the `users` and `users_roles` files are checked. . (Optional) Change how often the `users` and `users_roles` files are checked.
+ +
-- --
By default, {security} checks these files for changes every 5 seconds. You can By default, {es} checks these files for changes every 5 seconds. You can
change this default behavior by changing the `resource.reload.interval.high` change this default behavior by changing the `resource.reload.interval.high`
setting in the `elasticsearch.yml` file (as this is a common setting in {es}, setting in the `elasticsearch.yml` file (as this is a common setting in {es},
changing its value may effect other schedules in the system). changing its value may effect other schedules in the system).

View File

@ -2,15 +2,14 @@
[[configuring-pki-realm]] [[configuring-pki-realm]]
=== Configuring a PKI realm === Configuring a PKI realm
You can configure {security} to use Public Key Infrastructure (PKI) certificates You can configure {es} to use Public Key Infrastructure (PKI) certificates
to authenticate users in {es}. This requires clients to present X.509 to authenticate users. This requires clients to present X.509 certificates.
certificates.
NOTE: You cannot use PKI certificates to authenticate users in {kib}. NOTE: You cannot use PKI certificates to authenticate users in {kib}.
To use PKI in {es}, you configure a PKI realm, enable client authentication on To use PKI in {es}, you configure a PKI realm, enable client authentication on
the desired network layers (transport or http), and map the Distinguished Names the desired network layers (transport or http), and map the Distinguished Names
(DNs) from the user certificates to {security} roles in the (DNs) from the user certificates to roles in the
<<security-api-role-mapping,role-mapping API>> or role-mapping file. <<security-api-role-mapping,role-mapping API>> or role-mapping file.
You can also use a combination of PKI and username/password authentication. For You can also use a combination of PKI and username/password authentication. For
@ -22,7 +21,7 @@ allow clients without certificates to authenticate with other credentials.
IMPORTANT: You must enable SSL/TLS and enable client authentication to use PKI. IMPORTANT: You must enable SSL/TLS and enable client authentication to use PKI.
For more information, see {xpack-ref}/pki-realm.html[PKI User Authentication]. For more information, see {stack-ov}/pki-realm.html[PKI User Authentication].
. Add a realm configuration for a `pki` realm to `elasticsearch.yml` under the . Add a realm configuration for a `pki` realm to `elasticsearch.yml` under the
`xpack.security.authc.realms.pki` namespace. `xpack.security.authc.realms.pki` namespace.
@ -75,8 +74,7 @@ xpack:
. Enable client authentication on the desired network layers (transport or http). . Enable client authentication on the desired network layers (transport or http).
+ +
-- --
//TBD: This step might need to be split into a separate topic with additional details
//about setting up client authentication.
The PKI realm relies on the TLS settings of the node's network interface. The The PKI realm relies on the TLS settings of the node's network interface. The
realm can be configured to be more restrictive than the underlying network realm can be configured to be more restrictive than the underlying network
connection - that is, it is possible to configure the node such that some connection - that is, it is possible to configure the node such that some
@ -174,7 +172,7 @@ the result. The user's distinguished name will be populated under the `pki_dn`
key. You can also use the authenticate API to validate your role mapping. key. You can also use the authenticate API to validate your role mapping.
For more information, see For more information, see
{xpack-ref}/mapping-roles.html[Mapping Users and Groups to Roles]. {stack-ov}/mapping-roles.html[Mapping Users and Groups to Roles].
NOTE: The PKI realm supports NOTE: The PKI realm supports
{stack-ov}/realm-chains.html#authorization_realms[authorization realms] as an {stack-ov}/realm-chains.html#authorization_realms[authorization realms] as an

View File

@ -101,7 +101,7 @@ introduction to realms, see {stack-ov}/realms.html[Realms].
It is recommended that the SAML realm be at the bottom of your authentication It is recommended that the SAML realm be at the bottom of your authentication
chain (that is, it has the _highest_ order). chain (that is, it has the _highest_ order).
<4> This is the path to the metadata file that you saved for your identity provider. <4> This is the path to the metadata file that you saved for your identity provider.
The path that you enter here is relative to your `config/` directory. {security} The path that you enter here is relative to your `config/` directory. {es}
automatically monitors this file for changes and reloads the configuration automatically monitors this file for changes and reloads the configuration
whenever it is updated. whenever it is updated.
<5> This is the identifier (SAML EntityID) that your IdP uses. It should match <5> This is the identifier (SAML EntityID) that your IdP uses. It should match
@ -218,8 +218,8 @@ When a user authenticates using SAML, they are identified to the {stack},
but this does not automatically grant them access to perform any actions or but this does not automatically grant them access to perform any actions or
access any data. access any data.
Your SAML users cannot do anything until they are mapped to {security} Your SAML users cannot do anything until they are mapped to roles. See
roles. See {stack-ov}/saml-role-mapping.html[Configuring role mappings]. {stack-ov}/saml-role-mapping.html[Configuring role mappings].
NOTE: The SAML realm supports NOTE: The SAML realm supports
{stack-ov}/realm-chains.html#authorization_realms[authorization realms] as an {stack-ov}/realm-chains.html#authorization_realms[authorization realms] as an

View File

@ -3,9 +3,9 @@
=== Integrating with other authentication systems === Integrating with other authentication systems
If you are using an authentication system that is not supported out-of-the-box If you are using an authentication system that is not supported out-of-the-box
by {security}, you can create a custom realm to interact with it to authenticate by the {es} {security-features}, you can create a custom realm to interact with
users. You implement a custom realm as an SPI loaded security extension it to authenticate users. You implement a custom realm as an SPI loaded security
as part of an ordinary elasticsearch plugin. extension as part of an ordinary elasticsearch plugin.
[[implementing-custom-realm]] [[implementing-custom-realm]]
==== Implementing a custom realm ==== Implementing a custom realm
@ -50,8 +50,8 @@ public AuthenticationFailureHandler getAuthenticationFailureHandler() {
---------------------------------------------------- ----------------------------------------------------
+ +
The `getAuthenticationFailureHandler` method is used to optionally provide a The `getAuthenticationFailureHandler` method is used to optionally provide a
custom `AuthenticationFailureHandler`, which will control how {security} responds custom `AuthenticationFailureHandler`, which will control how the
in certain authentication failure events. {es} {security-features} respond in certain authentication failure events.
+ +
[source,java] [source,java]
---------------------------------------------------- ----------------------------------------------------

View File

@ -151,7 +151,7 @@ order::
idp.metadata.path:: idp.metadata.path::
This is the path to the metadata file that you saved for your Identity Provider. This is the path to the metadata file that you saved for your Identity Provider.
The path that you enter here is relative to your `config/` directory. The path that you enter here is relative to your `config/` directory.
{security} will automatically monitor this file for changes and will {es} will automatically monitor this file for changes and will
reload the configuration whenever it is updated. reload the configuration whenever it is updated.
idp.entity_id:: idp.entity_id::
@ -207,14 +207,14 @@ Attributes in SAML are named using a URI such as
more values associated with them. more values associated with them.
These attribute identifiers vary between IdPs, and most IdPs offer ways to These attribute identifiers vary between IdPs, and most IdPs offer ways to
customise the URIs and their associated value. customize the URIs and their associated value.
{es} uses these attributes to infer information about the user who has {es} uses these attributes to infer information about the user who has
logged in, and they can be used for role mapping (below). logged in, and they can be used for role mapping (below).
In order for these attributes to be useful, {es} and the IdP need to have a In order for these attributes to be useful, {es} and the IdP need to have a
common value for the names of the attributes. This is done manually, by common value for the names of the attributes. This is done manually, by
configuring the IdP and the {security} SAML realm to use the same URI name for configuring the IdP and the SAML realm to use the same URI name for
each logical user attribute. each logical user attribute.
The recommended steps for configuring these SAML attributes are as follows: The recommended steps for configuring these SAML attributes are as follows:
@ -469,7 +469,7 @@ or separate keys used for each of those.
The Elastic Stack uses X.509 certificates with RSA private keys for SAML The Elastic Stack uses X.509 certificates with RSA private keys for SAML
cryptography. These keys can be generated using any standard SSL tool, including cryptography. These keys can be generated using any standard SSL tool, including
the `elasticsearch-certutil` tool that ships with {xpack}. the `elasticsearch-certutil` tool.
Your IdP may require that the Elastic Stack have a cryptographic key for signing Your IdP may require that the Elastic Stack have a cryptographic key for signing
SAML messages, and that you provide the corresponding signing certificate within SAML messages, and that you provide the corresponding signing certificate within
@ -518,7 +518,7 @@ Encryption certificates can be generated with the same process.
===== Configuring {es} for signing ===== Configuring {es} for signing
By default, {security} will sign _all_ outgoing SAML messages if a signing By default, {es} will sign _all_ outgoing SAML messages if a signing
key has been configured. key has been configured.
If you wish to use *PEM formatted* keys and certificates for signing, then If you wish to use *PEM formatted* keys and certificates for signing, then
@ -559,17 +559,17 @@ are: `AuthnRequest`, `LogoutRequest` and `LogoutResponse`.
===== Configuring {es} for encrypted messages ===== Configuring {es} for encrypted messages
{security} supports a single key for message decryption. If a key is The {es} {security-features} support a single key for message decryption. If a
configured, then {security} will attempt to use it to decrypt key is configured, then {es} attempts to use it to decrypt
`EncryptedAssertion` and `EncryptedAttribute` elements in Authentication `EncryptedAssertion` and `EncryptedAttribute` elements in Authentication
responses, and `EncryptedID` elements in Logout requests. responses, and `EncryptedID` elements in Logout requests.
{security} will reject any SAML message that contains an `EncryptedAssertion` {es} rejects any SAML message that contains an `EncryptedAssertion`
that cannot be decrypted. that cannot be decrypted.
If an `Assertion` contains both encrypted and plain-text attributes, then If an `Assertion` contains both encrypted and plain-text attributes, then
failure to decrypt the encrypted attributes will not cause an automatic failure to decrypt the encrypted attributes will not cause an automatic
rejection. Rather, {security} will process the available plain-text attributes rejection. Rather, {es} processes the available plain-text attributes
(and any `EncryptedAttributes` that could be decrypted). (and any `EncryptedAttributes` that could be decrypted).
If you wish to use *PEM formatted* keys and certificates for SAML encryption, If you wish to use *PEM formatted* keys and certificates for SAML encryption,
@ -620,8 +620,8 @@ When a user authenticates using SAML, they are identified to the Elastic Stack,
but this does not automatically grant them access to perform any actions or but this does not automatically grant them access to perform any actions or
access any data. access any data.
Your SAML users cannot do anything until they are assigned {security} Your SAML users cannot do anything until they are assigned roles. This is done
roles. This is done through either the through either the
{ref}/security-api-put-role-mapping.html[add role mapping API], or with {ref}/security-api-put-role-mapping.html[add role mapping API], or with
<<authorization_realms, authorization realms>>. <<authorization_realms, authorization realms>>.
@ -680,7 +680,7 @@ PUT /_security/role_mapping/saml-finance
// CONSOLE // CONSOLE
// TEST // TEST
If your users also exist in a repository that can be directly accessed by {security} If your users also exist in a repository that can be directly accessed by {es}
(such as an LDAP directory) then you can use (such as an LDAP directory) then you can use
<<authorization_realms, authorization realms>> instead of role mappings. <<authorization_realms, authorization realms>> instead of role mappings.

View File

@ -10,18 +10,17 @@ You can configure characteristics of the user cache with the `cache.ttl`,
NOTE: PKI realms do not cache user credentials but do cache the resolved user NOTE: PKI realms do not cache user credentials but do cache the resolved user
object to avoid unnecessarily needing to perform role mapping on each request. object to avoid unnecessarily needing to perform role mapping on each request.
The cached user credentials are hashed in memory. By default, {security} uses a The cached user credentials are hashed in memory. By default, the {es}
salted `sha-256` hash algorithm. You can use a different hashing algorithm by {security-features} use a salted `sha-256` hash algorithm. You can use a
setting the `cache.hash_algo` realm settings. See different hashing algorithm by setting the `cache.hash_algo` realm settings. See
{ref}/security-settings.html#hashing-settings[User cache and password hash algorithms]. {ref}/security-settings.html#hashing-settings[User cache and password hash algorithms].
[[cache-eviction-api]] [[cache-eviction-api]]
==== Evicting users from the cache ==== Evicting users from the cache
{security} exposes a You can use the {ref}/security-api-clear-cache.html[clear cache API] to force
{ref}/security-api-clear-cache.html[Clear Cache API] you can use the eviction of cached users . For example, the following request evicts all
to force the eviction of cached users. For example, the following request evicts users from the `ad1` realm:
all users from the `ad1` realm:
[source, js] [source, js]
------------------------------------------------------------ ------------------------------------------------------------

View File

@ -4,7 +4,8 @@
Elasticsearch allows to execute operations against {ref}/indices-aliases.html[index aliases], Elasticsearch allows to execute operations against {ref}/indices-aliases.html[index aliases],
which are effectively virtual indices. An alias points to one or more indices, which are effectively virtual indices. An alias points to one or more indices,
holds metadata and potentially a filter. {security} treats aliases and indices holds metadata and potentially a filter. The {es} {security-features} treat
aliases and indices
the same. Privileges for indices actions are granted on specific indices or the same. Privileges for indices actions are granted on specific indices or
aliases. In order for an indices action to be authorized, the user that executes aliases. In order for an indices action to be authorized, the user that executes
it needs to have permissions for that action on all the specific indices or it needs to have permissions for that action on all the specific indices or

View File

@ -3,7 +3,8 @@
=== Custom roles provider extension === Custom roles provider extension
If you need to retrieve user roles from a system not supported out-of-the-box If you need to retrieve user roles from a system not supported out-of-the-box
by {security}, you can create a custom roles provider to retrieve and resolve by the {es} {security-features}, you can create a custom roles provider to
retrieve and resolve
roles. You implement a custom roles provider as an SPI loaded security extension roles. You implement a custom roles provider as an SPI loaded security extension
as part of an ordinary elasticsearch plugin. as part of an ordinary elasticsearch plugin.

View File

@ -130,7 +130,7 @@ The following describes the structure of an application privileges entry:
<2> The list of the names of the application privileges to grant to this role. <2> The list of the names of the application privileges to grant to this role.
<3> The resources to which those privileges apply. These are handled in the same <3> The resources to which those privileges apply. These are handled in the same
way as index name pattern in `indices` permissions. These resources do not way as index name pattern in `indices` permissions. These resources do not
have any special meaning to {security}. have any special meaning to the {es} {security-features}.
For details about the validation rules for these fields, see the For details about the validation rules for these fields, see the
{ref}/security-api-put-privileges.html[add application privileges API]. {ref}/security-api-put-privileges.html[add application privileges API].
@ -176,7 +176,7 @@ Based on the above definition, users owning the `clicks_admin` role can:
TIP: For a complete list of available <<security-privileges, cluster and indices privileges>> TIP: For a complete list of available <<security-privileges, cluster and indices privileges>>
There are two available mechanisms to define roles: using the _Role Management APIs_ There are two available mechanisms to define roles: using the _Role Management APIs_
or in local files on the {es} nodes. {security} also supports implementing or in local files on the {es} nodes. You can also implement
custom roles providers. If you need to integrate with another system to retrieve custom roles providers. If you need to integrate with another system to retrieve
user roles, you can build a custom roles provider plugin. For more information, user roles, you can build a custom roles provider plugin. For more information,
see <<custom-roles-provider, Custom Roles Provider Extension>>. see <<custom-roles-provider, Custom Roles Provider Extension>>.
@ -185,7 +185,7 @@ see <<custom-roles-provider, Custom Roles Provider Extension>>.
[[roles-management-ui]] [[roles-management-ui]]
=== Role management UI === Role management UI
{security} enables you to easily manage users and roles from within {kib}. To You can manage users and roles easily in {kib}. To
manage roles, log in to {kib} and go to *Management / Elasticsearch / Roles*. manage roles, log in to {kib} and go to *Management / Elasticsearch / Roles*.
[float] [float]
@ -242,5 +242,5 @@ click_admins:
query: '{"match": {"category": "click"}}' query: '{"match": {"category": "click"}}'
----------------------------------- -----------------------------------
{security} continuously monitors the `roles.yml` file and automatically picks {es} continuously monitors the `roles.yml` file and automatically picks
up and applies any changes to it. up and applies any changes to it.

View File

@ -10,9 +10,10 @@ For other types of realms, you must create _role-mappings_ that define which
roles should be assigned to each user based on their username, groups, or roles should be assigned to each user based on their username, groups, or
other metadata. other metadata.
{security} allows role-mappings to be defined via an You can define role-mappings via an
<<mapping-roles-api, API>>, or managed through <<mapping-roles-file, files>>. <<mapping-roles-api, API>> or manage them through <<mapping-roles-file, files>>.
These two sources of role-mapping are combined inside of {security}, so it is These two sources of role-mapping are combined inside of the {es}
{security-features}, so it is
possible for a single user to have some roles that have been mapped through possible for a single user to have some roles that have been mapped through
the API, and other roles that are mapped through files. the API, and other roles that are mapped through files.
@ -54,7 +55,7 @@ are values. The mappings can have a many-to-many relationship. When you map role
to groups, the roles of a user in that group are the combination of the roles to groups, the roles of a user in that group are the combination of the roles
assigned to that group and the roles assigned to that user. assigned to that group and the roles assigned to that user.
By default, {security} checks role mapping files for changes every 5 seconds. By default, {es} checks role mapping files for changes every 5 seconds.
You can change this default behavior by changing the You can change this default behavior by changing the
`resource.reload.interval.high` setting in the `elasticsearch.yml` file. Since `resource.reload.interval.high` setting in the `elasticsearch.yml` file. Since
this is a common setting in Elasticsearch, changing its value might effect other this is a common setting in Elasticsearch, changing its value might effect other
@ -69,8 +70,8 @@ To specify users and groups in the role mappings, you use their
_Distinguished Names_ (DNs). A DN is a string that uniquely identifies the user _Distinguished Names_ (DNs). A DN is a string that uniquely identifies the user
or group, for example `"cn=John Doe,cn=contractors,dc=example,dc=com"`. or group, for example `"cn=John Doe,cn=contractors,dc=example,dc=com"`.
NOTE: {security} only supports Active Directory security groups. You cannot map NOTE: The {es} {security-features} support only Active Directory security groups.
distribution groups to roles. You cannot map distribution groups to roles.
For example, the following snippet uses the file-based method to map the For example, the following snippet uses the file-based method to map the
`admins` group to the `monitoring` role and map the `John Doe` user, the `admins` group to the `monitoring` role and map the `John Doe` user, the
@ -85,7 +86,7 @@ user:
- "cn=users,dc=example,dc=com" - "cn=users,dc=example,dc=com"
- "cn=admins,dc=example,dc=com" - "cn=admins,dc=example,dc=com"
------------------------------------------------------------ ------------------------------------------------------------
<1> The name of a {security} role. <1> The name of a role.
<2> The distinguished name of an LDAP group or an Active Directory security group. <2> The distinguished name of an LDAP group or an Active Directory security group.
<3> The distinguished name of an LDAP or Active Directory user. <3> The distinguished name of an LDAP or Active Directory user.

View File

@ -2,10 +2,11 @@
[[run-as-privilege]] [[run-as-privilege]]
=== Submitting requests on behalf of other users === Submitting requests on behalf of other users
{security} supports a permission that enables an authenticated user to submit The {es} {security-features} support a permission that enables an authenticated
user to submit
requests on behalf of other users. If your application already authenticates requests on behalf of other users. If your application already authenticates
users, you can use the _run as_ mechanism to restrict data access according to users, you can use the _run as_ mechanism to restrict data access according to
{security} permissions without having to re-authenticate each user through. {es} permissions without having to re-authenticate each user through.
To "run as" (impersonate) another user, you must be able to retrieve the user from To "run as" (impersonate) another user, you must be able to retrieve the user from
the realm you use to authenticate. Both the internal `native` and `file` realms the realm you use to authenticate. Both the internal `native` and `file` realms

View File

@ -15,10 +15,10 @@ secured cluster:
* <<http-clients, HTTP Clients>> * <<http-clients, HTTP Clients>>
{security} enables you to secure your {es} cluster. But {es} itself is only one The {es} {security-features} enable you to secure your {es} cluster. But
product within the Elastic Stack. It is often the case that other products in {es} itself is only one product within the {stack}. It is often the case that
the stack are connected to the cluster and therefore need to be secured as well, other products in the stack are connected to the cluster and therefore need to
or at least communicate with the cluster in a secured way: be secured as well, or at least communicate with the cluster in a secured way:
* <<hadoop, Apache Hadoop>> * <<hadoop, Apache Hadoop>>
* {auditbeat-ref}/securing-beats.html[Auditbeat] * {auditbeat-ref}/securing-beats.html[Auditbeat]

View File

@ -3,9 +3,9 @@
See: See:
* {auditbeat-ref}/securing-beats.html[Auditbeat and {security}] * {auditbeat-ref}/securing-beats.html[{auditbeat}]
* {filebeat-ref}/securing-beats.html[Filebeat and {security}] * {filebeat-ref}/securing-beats.html[{filebeat}]
* {heartbeat-ref}/securing-beats.html[Heartbeat and {security}] * {heartbeat-ref}/securing-beats.html[{heartbeat}]
* {metricbeat-ref}/securing-beats.html[Metricbeat and {security}] * {metricbeat-ref}/securing-beats.html[{metricbeat}]
* {packetbeat-ref}/securing-beats.html[Packetbeat and {security}] * {packetbeat-ref}/securing-beats.html[{packetbeat}]
* {winlogbeat-ref}/securing-beats.html[Winlogbeat and {security}] * {winlogbeat-ref}/securing-beats.html[{winlogbeat}]

View File

@ -1,9 +1,10 @@
[[cross-cluster-configuring]] [[cross-cluster-configuring]]
=== Cross Cluster Search and Security === Cross cluster search and security
{ref}/modules-cross-cluster-search.html[Cross Cluster Search] enables {ref}/modules-cross-cluster-search.html[Cross cluster search] enables
federated search across multiple clusters. When using cross cluster search federated search across multiple clusters. When using cross cluster search
with secured clusters, all clusters must have {security} enabled. with secured clusters, all clusters must have the {es} {security-features}
enabled.
The local cluster (the cluster used to initiate cross cluster search) must be The local cluster (the cluster used to initiate cross cluster search) must be
allowed to connect to the remote clusters, which means that the CA used to allowed to connect to the remote clusters, which means that the CA used to
@ -22,8 +23,8 @@ This feature was added as Beta in {es} `v5.3` with further improvements made in
To use cross cluster search with secured clusters: To use cross cluster search with secured clusters:
* Enable {security} on every node in each connected cluster. For more * Enable the {es} {security-features} on every node in each connected cluster.
information about the `xpack.security.enabled` setting, see For more information about the `xpack.security.enabled` setting, see
{ref}/security-settings.html[Security Settings in {es}]. {ref}/security-settings.html[Security Settings in {es}].
* Enable encryption globally. To encrypt communications, you must enable * Enable encryption globally. To encrypt communications, you must enable

View File

@ -1,7 +1,8 @@
[[http-clients]] [[http-clients]]
=== HTTP/REST Clients and Security === HTTP/REST clients and security
{security} works with standard HTTP {wikipedia}/Basic_access_authentication[basic authentication] The {es} {security-features} work with standard HTTP
{wikipedia}/Basic_access_authentication[basic authentication]
headers to authenticate users. Since Elasticsearch is stateless, this header must headers to authenticate users. Since Elasticsearch is stateless, this header must
be sent with every request: be sent with every request:
@ -48,8 +49,8 @@ curl --user rdeniro:taxidriver -XPUT 'localhost:9200/idx'
[float] [float]
==== Client Libraries over HTTP ==== Client Libraries over HTTP
For more information about how to use {security} with the language specific clients For more information about using {security-features} with the language
please refer to specific clients, refer to
https://github.com/elasticsearch/elasticsearch-ruby/tree/master/elasticsearch-transport#authentication[Ruby], https://github.com/elasticsearch/elasticsearch-ruby/tree/master/elasticsearch-transport#authentication[Ruby],
http://elasticsearch-py.readthedocs.org/en/master/#ssl-and-authentication[Python], http://elasticsearch-py.readthedocs.org/en/master/#ssl-and-authentication[Python],
https://metacpan.org/pod/Search::Elasticsearch::Cxn::HTTPTiny#CONFIGURATION[Perl], https://metacpan.org/pod/Search::Elasticsearch::Cxn::HTTPTiny#CONFIGURATION[Perl],

View File

@ -1,9 +1,9 @@
[[java-clients]] [[java-clients]]
=== Java Client and Security === Java Client and security
deprecated[7.0.0, The `TransportClient` is deprecated in favour of the {java-rest}/java-rest-high.html[Java High Level REST Client] and will be removed in Elasticsearch 8.0. The {java-rest}/java-rest-high-level-migration.html[migration guide] describes all the steps needed to migrate.] deprecated[7.0.0, The `TransportClient` is deprecated in favour of the {java-rest}/java-rest-high.html[Java High Level REST Client] and will be removed in Elasticsearch 8.0. The {java-rest}/java-rest-high-level-migration.html[migration guide] describes all the steps needed to migrate.]
{security} supports the Java http://www.elastic.co/guide/en/elasticsearch/client/java-api/current/transport-client.html[transport client] for Elasticsearch. The {es} {security-features} support the Java http://www.elastic.co/guide/en/elasticsearch/client/java-api/current/transport-client.html[transport client] for Elasticsearch.
The transport client uses the same transport protocol that the cluster nodes use The transport client uses the same transport protocol that the cluster nodes use
for inter-node communication. It is very efficient as it does not have to marshall for inter-node communication. It is very efficient as it does not have to marshall
and unmarshall JSON requests like a typical REST client. and unmarshall JSON requests like a typical REST client.
@ -21,7 +21,8 @@ To use the transport client with a secured cluster, you need to:
. {ref}/setup-xpack-client.html[Configure the {xpack} transport client]. . {ref}/setup-xpack-client.html[Configure the {xpack} transport client].
. Configure a user with the privileges required to start the transport client. . Configure a user with the privileges required to start the transport client.
A default `transport_client` role is built-in to {xpack} that grants the A default `transport_client` role is built-in to the {es} {security-features},
which grants the
appropriate cluster permissions for the transport client to work with the secured appropriate cluster permissions for the transport client to work with the secured
cluster. The transport client uses the _Nodes Info API_ to fetch information about cluster. The transport client uses the _Nodes Info API_ to fetch information about
the nodes in the cluster. the nodes in the cluster.
@ -137,7 +138,7 @@ TransportClient client = new PreBuiltXPackTransportClient(Settings.builder()
[float] [float]
[[disabling-client-auth]] [[disabling-client-auth]]
===== Disabling Client Authentication ===== Disabling client authentication
If you want to disable client authentication, you can use a client-specific If you want to disable client authentication, you can use a client-specific
transport protocol. For more information see <<separating-node-client-traffic, Separating Node to Node and Client Traffic>>. transport protocol. For more information see <<separating-node-client-traffic, Separating Node to Node and Client Traffic>>.
@ -167,7 +168,7 @@ NOTE: If you are using a public CA that is already trusted by the Java runtime,
[float] [float]
[[connecting-anonymously]] [[connecting-anonymously]]
===== Connecting Anonymously ===== Connecting anonymously
To enable the transport client to connect anonymously, you must assign the To enable the transport client to connect anonymously, you must assign the
anonymous user the privileges defined in the <<java-transport-client-role,transport_client>> anonymous user the privileges defined in the <<java-transport-client-role,transport_client>>
@ -176,14 +177,14 @@ see <<anonymous-access,Enabling Anonymous Access>>.
[float] [float]
[[security-client]] [[security-client]]
==== Security Client ==== Security client
{security} exposes its own API through the `SecurityClient` class. To get a hold The {stack} {security-features} expose an API through the `SecurityClient` class.
of a `SecurityClient` you'll first need to create the `XPackClient`, which is a To get a hold of a `SecurityClient` you first need to create the `XPackClient`,
wrapper around the existing Elasticsearch clients (any client class implementing which is a wrapper around the existing {es} clients (any client class implementing
`org.elasticsearch.client.Client`). `org.elasticsearch.client.Client`).
The following example shows how you can clear {security}'s realm caches using The following example shows how you can clear the realm caches using
the `SecurityClient`: the `SecurityClient`:
[source,java] [source,java]

View File

@ -1,15 +1,15 @@
[[secure-monitoring]] [[secure-monitoring]]
=== Monitoring and Security === Monitoring and security
<<xpack-monitoring, {monitoring}>> consists of two components: an agent The <<xpack-monitoring,{stack} {monitor-features}>> consists of two components:
that you install on on each {es} and Logstash node, and a Monitoring UI an agent that you install on on each {es} and Logstash node, and a Monitoring UI
in {kib}. The monitoring agent collects and indexes metrics from the nodes in {kib}. The monitoring agent collects and indexes metrics from the nodes
and you visualize the data through the Monitoring dashboards in {kib}. The agent and you visualize the data through the Monitoring dashboards in {kib}. The agent
can index data on the same {es} cluster, or send it to an external can index data on the same {es} cluster, or send it to an external
monitoring cluster. monitoring cluster.
To use {monitoring} with {security} enabled, you need to To use the {monitor-features} with the {security-features} enabled, you need to
{kibana-ref}/using-kibana-with-security.html[set up {kib} to work with {security}] {kibana-ref}/using-kibana-with-security.html[set up {kib} to work with the {security-features}]
and create at least one user for the Monitoring UI. If you are using an external and create at least one user for the Monitoring UI. If you are using an external
monitoring cluster, you also need to configure a user for the monitoring agent monitoring cluster, you also need to configure a user for the monitoring agent
and configure the agent to use the appropriate credentials when communicating and configure the agent to use the appropriate credentials when communicating

View File

@ -2,25 +2,25 @@
[[configuring-security]] [[configuring-security]]
== Configuring security in {es} == Configuring security in {es}
++++ ++++
<titleabbrev>Configuring Security</titleabbrev> <titleabbrev>Configuring security</titleabbrev>
++++ ++++
{security} enables you to easily secure a cluster. With {security}, you can The {es} {security-features} enable you to easily secure a cluster. You can
password-protect your data as well as implement more advanced security measures password-protect your data as well as implement more advanced security measures
such as encrypting communications, role-based access control, IP filtering, and such as encrypting communications, role-based access control, IP filtering, and
auditing. For more information, see auditing. For more information, see
{xpack-ref}/elasticsearch-security.html[Securing the Elastic Stack]. {stack-ov}/elasticsearch-security.html[Securing the {stack}].
To use {security} in {es}: To use {es} {security-features}:
. Verify that you are using a license that includes the {security} feature. . Verify that you are using a license that includes the {security-features}.
+ +
-- --
If you want to try all of the {xpack} features, you can start a 30-day trial. At If you want to try all of the platinum features, you can start a 30-day trial.
the end of the trial period, you can purchase a subscription to keep using the At the end of the trial period, you can purchase a subscription to keep using
full functionality of the {xpack} components. For more information, see the full functionality. For more information, see
https://www.elastic.co/subscriptions and https://www.elastic.co/subscriptions and
{xpack-ref}/license-management.html[License Management]. {stack-ov}/license-management.html[License Management].
-- --
. Verify that the `xpack.security.enabled` setting is `true` on each node in . Verify that the `xpack.security.enabled` setting is `true` on each node in
@ -37,7 +37,7 @@ NOTE: This requirement applies to clusters with more than one node and to
clusters with a single node that listens on an external interface. Single-node clusters with a single node that listens on an external interface. Single-node
clusters that use a loopback interface do not have this requirement. For more clusters that use a loopback interface do not have this requirement. For more
information, see information, see
{xpack-ref}/encrypting-communications.html[Encrypting Communications]. {stack-ov}/encrypting-communications.html[Encrypting Communications].
-- --
.. <<node-certificates,Generate node certificates for each of your {es} nodes>>. .. <<node-certificates,Generate node certificates for each of your {es} nodes>>.
@ -49,7 +49,7 @@ information, see
. Set the passwords for all built-in users. . Set the passwords for all built-in users.
+ +
-- --
{security} provides The {es} {security-features} provide
{stack-ov}/built-in-users.html[built-in users] to {stack-ov}/built-in-users.html[built-in users] to
help you get up and running. The +elasticsearch-setup-passwords+ command is the help you get up and running. The +elasticsearch-setup-passwords+ command is the
simplest method to set the built-in users' passwords for the first time. simplest method to set the built-in users' passwords for the first time.
@ -126,7 +126,7 @@ curl -XPOST -u elastic 'localhost:9200/_security/user/johndoe' -H "Content-Type:
xpack.security.audit.enabled: true xpack.security.audit.enabled: true
---------------------------- ----------------------------
+ +
For more information, see {xpack-ref}/auditing.html[Auditing Security Events] For more information, see {stack-ov}/auditing.html[Auditing Security Events]
and <<auditing-settings>>. and <<auditing-settings>>.
.. Restart {es}. .. Restart {es}.

View File

@ -6,7 +6,8 @@ Elasticsearch nodes store data that may be confidential. Attacks on the data may
come from the network. These attacks could include sniffing of the data, come from the network. These attacks could include sniffing of the data,
manipulation of the data, and attempts to gain access to the server and thus the manipulation of the data, and attempts to gain access to the server and thus the
files storing the data. Securing your nodes is required in order to use a production files storing the data. Securing your nodes is required in order to use a production
license that enables {security} and helps reduce the risk from network-based attacks. license that enables {security-features} and helps reduce the risk from
network-based attacks.
This section shows how to: This section shows how to:

View File

@ -5,19 +5,19 @@
You can apply IP filtering to application clients, node clients, or transport You can apply IP filtering to application clients, node clients, or transport
clients, in addition to other nodes that are attempting to join the cluster. clients, in addition to other nodes that are attempting to join the cluster.
If a node's IP address is on the blacklist, {security} will still allow the If a node's IP address is on the blacklist, the {es} {security-features} allow
connection to Elasticsearch, but it will be dropped immediately, and no requests the connection to {es} but it is be dropped immediately and no requests are
will be processed. processed.
NOTE: Elasticsearch installations are not designed to be publicly accessible NOTE: Elasticsearch installations are not designed to be publicly accessible
over the Internet. IP Filtering and the other security capabilities of over the Internet. IP Filtering and the other capabilities of the
{security} do not change this condition. {es} {security-features} do not change this condition.
[float] [float]
=== Enabling IP filtering === Enabling IP filtering
{security} features an access control feature that allows or rejects hosts, The {es} {security-features} contain an access control feature that allows or
domains, or subnets. rejects hosts, domains, or subnets.
You configure IP filtering by specifying the `xpack.security.transport.filter.allow` and You configure IP filtering by specifying the `xpack.security.transport.filter.allow` and
`xpack.security.transport.filter.deny` settings in in `elasticsearch.yml`. Allow rules `xpack.security.transport.filter.deny` settings in in `elasticsearch.yml`. Allow rules
@ -79,7 +79,7 @@ xpack.security.http.filter.enabled: true
=== Specifying TCP transport profiles === Specifying TCP transport profiles
{ref}/modules-transport.html[TCP transport profiles] {ref}/modules-transport.html[TCP transport profiles]
enable Elasticsearch to bind on multiple hosts. {security} enables you to apply enable Elasticsearch to bind on multiple hosts. The {es} {security-features} enable you to apply
different IP filtering on different profiles. different IP filtering on different profiles.
[source,yaml] [source,yaml]

View File

@ -70,13 +70,13 @@ For example, the following `webhook` action creates a new issue in GitHub:
<1> The username and password for the user creating the issue <1> The username and password for the user creating the issue
NOTE: By default, both the username and the password are stored in the `.watches` NOTE: By default, both the username and the password are stored in the `.watches`
index in plain text. When {security} is enabled, {watcher} can encrypt the index in plain text. When the {es} {security-features} are enabled,
password before storing it. {watcher} can encrypt the password before storing it.
You can also use PKI-based authentication when submitting requests to a cluster You can also use PKI-based authentication when submitting requests to a cluster
secured with {security}. When you use PKI-based authentication instead of HTTP that has {es} {security-features} enabled. When you use PKI-based authentication
basic auth, you don't need to store any authentication information in the watch instead of HTTP basic auth, you don't need to store any authentication
itself. To use PKI-based authentication, you {ref}/notification-settings.html#ssl-notification-settings information in the watch itself. To use PKI-based authentication, you {ref}/notification-settings.html#ssl-notification-settings
[configure the SSL key settings] for {watcher} in `elasticsearch.yml`. [configure the SSL key settings] for {watcher} in `elasticsearch.yml`.

View File

@ -11,8 +11,8 @@ related to this watch from the watch history.
IMPORTANT: Deleting a watch must be done via this API only. Do not delete the IMPORTANT: Deleting a watch must be done via this API only. Do not delete the
watch directly from the `.watches` index using Elasticsearch's DELETE watch directly from the `.watches` index using Elasticsearch's DELETE
Document API. I {security} is enabled, make sure no `write` privileges Document API. If the {es} {security-features} are enabled, make sure
are granted to anyone over the `.watches` index. no `write` privileges are granted to anyone over the `.watches` index.
The following example deletes a watch with the `my-watch` id: The following example deletes a watch with the `my-watch` id:

View File

@ -10,8 +10,8 @@ registered with the relevant trigger engine (typically the scheduler, for the
IMPORTANT: Putting a watch must be done via this API only. Do not put a watch IMPORTANT: Putting a watch must be done via this API only. Do not put a watch
directly to the `.watches` index using Elasticsearch's Index API. directly to the `.watches` index using Elasticsearch's Index API.
When {security} is enabled, make sure no `write` privileges are When the {es} {security-features} are enabled, make sure no `write`
granted to anyone over the `.watches` index. privileges are granted to anyone over the `.watches` index.
The following example adds a watch with the `my-watch` id that has the following The following example adds a watch with the `my-watch` id that has the following

View File

@ -19,9 +19,9 @@ since {watcher} stores its watches in the `.watches` index, you can list them
by executing a search on this index. by executing a search on this index.
IMPORTANT: You can only perform read actions on the `.watches` index. You must IMPORTANT: You can only perform read actions on the `.watches` index. You must
use the {watcher} APIs to create, update, and delete watches. If use the {watcher} APIs to create, update, and delete watches. If {es}
{security} is enabled, we recommend you only grant users `read` {security-features} are enabled, we recommend you only grant users
privileges on the `.watches` index. `read` privileges on the `.watches` index.
For example, the following returns the first 100 watches: For example, the following returns the first 100 watches: