Skip to content

Commit 895fccc

Browse files
authored
Merge branch 'main' into align-sec-landings-part2
2 parents cf53409 + ac93a60 commit 895fccc

29 files changed

+272
-290
lines changed

deploy-manage/remote-clusters.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,8 @@ Remote clusters are especially useful in two cases:
2020
- **Cross-cluster search**
2121
[Cross-cluster search](/solutions/search/cross-cluster-search.md), or CCS, enables you to run a search request against one or more remote clusters. This capability provides each region with a global view of all clusters, allowing you to send a search request from a local cluster and return results from all connected remote clusters. For full {{ccs}} capabilities, the local and remote cluster must be on the same [subscription level](https://www.elastic.co/subscriptions).
2222

23-
::::{note} about terminology
24-
In the case of remote clusters, the {{es}} cluster or deployment initiating the connection and requests is often referred to as the **local cluster**, while the {{es}} cluster or deployment receiving the requests is referred to as the **remote cluster**.
25-
::::
23+
:::{include} ./remote-clusters/_snippets/terminology.md
24+
:::
2625

2726
## Security models and connection modes
2827

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
Before you start, consider the security model that you would prefer to use for authenticating remote connections between clusters, and follow the corresponding steps.
1+
Before you start, consider the [security model](/deploy-manage/remote-clusters/security-models.md) that you would prefer to use for authenticating remote connections between clusters, and follow the corresponding steps.
22

33
API key
4-
: For deployments based on {{stack}} 8.14 or later, you can use an API key to authenticate and authorize cross-cluster operations to a remote cluster. This model offers administrators of both the local and the remote deployment fine-grained access controls.
4+
: For deployments based on {{stack}} 8.14 or later, you can use an API key to authenticate and authorize cross-cluster operations to a remote cluster. This model uses a dedicated service endpoint, on port `9443` by default, and gives administrators fine-grained control over remote access. The API key is created on the remote cluster and defines the permissions available to all cross-cluster requests, while local user roles can further restrict, but not extend, those permissions.
55

66
TLS certificate (deprecated in {{stack}} 9.0.0)
7-
: This model uses mutual TLS authentication for cross-cluster operations. User authentication is performed on the local cluster and a user's role names are passed to the remote cluster. A superuser on the local deployment gains total read access to the remote deployment, so it is only suitable for deployments that are in the same security domain.
7+
: This model uses mutual TLS authentication over the {{es}} transport interface for cross-cluster operations. User authentication is performed on the local cluster and a user's role names are passed to the remote cluster for authorization. Because a superuser on the local cluster automatically gains full read access to the remote cluster, this model is only suitable for clusters within the same security domain.
Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1 @@
1-
API key authentication enables a local cluster to authenticate itself with a remote cluster via a [cross-cluster API key](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-security-create-cross-cluster-api-key). The API key needs to be created by an administrator of the remote cluster. The local cluster is configured to provide this API key on each request to the remote cluster. The remote cluster verifies the API key and grants access, based on the API key’s privileges.
2-
3-
All cross-cluster requests from the local cluster are bound by the API key’s privileges, regardless of local users associated with the requests. For example, if the API key only allows read access to `my-index` on the remote cluster, even a superuser from the local cluster is limited by this constraint. This mechanism enables the remote cluster’s administrator to have full control over who can access what data with cross-cluster search and/or cross-cluster replication. The remote cluster’s administrator can be confident that no access is possible beyond what is explicitly assigned to the API key.
4-
5-
On the local cluster side, not every local user needs to access every piece of data allowed by the API key. An administrator of the local cluster can further configure additional permission constraints on local users so each user only gets access to the necessary remote data. Note it is only possible to further reduce the permissions allowed by the API key for individual local users. It is impossible to increase the permissions to go beyond what is allowed by the API key.
6-
7-
If you run into any issues, refer to [Troubleshooting](/troubleshoot/elasticsearch/remote-clusters.md).
1+
Follow these steps to configure the [API key security model](/deploy-manage/remote-clusters/security-models.md#api-key) for remote clusters. If you run into any issues, refer to [Troubleshooting](/troubleshoot/elasticsearch/remote-clusters.md).
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<!--
2+
This snippet is in use in the following locations:
3+
- ece-remote-cluster-self-managed.md
4+
- ece-remote-cluster-other-ece.md
5+
6+
It requires remote_type substitution to be defined
7+
-->
8+
1. [Log in to the Cloud UI](/deploy-manage/deploy/cloud-enterprise/log-into-cloud-ui.md).
9+
2. On the **Deployments** page, select your deployment.
10+
11+
Narrow the list by name, ID, or choose from several other filters. To further define the list, use a combination of filters.
12+
13+
3. Access the **Security** page of the deployment.
14+
4. Select **Remote Connections > Add trusted environment** and choose **{{remote_type}}**. Then click **Next**.
15+
5. Select **API keys** as authentication mechanism and click **Next**.
16+
6. When asked whether the Certificate Authority (CA) of the remote environment’s proxy or load-balancing infrastructure is public, select **No, it is private**.
17+
7. Add the API key:
18+
19+
1. Fill both fields.
20+
21+
* For the **Remote cluster name**, enter the alias of your choice. You will use this alias to connect to the remote cluster later. It must be lowercase and only contain letters, numbers, dashes and underscores.
22+
* For the **Cross-cluster API key**, paste the encoded cross-cluster API key.
23+
24+
2. Click **Add** to save the API key to the keystore.
25+
3. Repeat these steps for each API key you want to add. For example, if you want to use several clusters of the remote environment for CCR or CCS.
26+
27+
8. Add the CA certificate of the remote environment.
28+
9. Provide a name for the trusted environment. That name will appear in the trust summary of your deployment's **Security** page.
29+
10. Select **Create trust** to complete the configuration.
30+
11. Restart the local deployment to reload the keystore with its new setting. To do that, go to the deployment's main page, locate the **Actions** menu, and select **Restart {{es}}**.
31+
32+
::::{note}
33+
If the local deployment runs on version 8.14 or greater, you no longer need to perform this step because the keystore is reloaded automatically with the new API keys.
34+
::::
35+
36+
If you need to update the remote connection with different permissions later, refer to [Change a cross-cluster API key used for a remote connection](/deploy-manage/remote-clusters/ece-edit-remove-trusted-environment.md#edit-remove-trusted-environment-api-key).
37+

deploy-manage/remote-clusters/_snippets/apikeys-local-ece-remote-public.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
<!--
2+
This snippet is in use in the following locations:
3+
- ece-remote-cluster-self-managed.md
4+
- ece-remote-cluster-same-ece.md
5+
- ece-remote-cluster-other-ece.md
6+
- ece-remote-cluster-ece-ess.md
7+
-->
18
1. [Log into the Cloud UI](/deploy-manage/deploy/cloud-enterprise/log-into-cloud-ui.md).
29
2. On the **Deployments** page, select your deployment.
310

@@ -13,11 +20,10 @@
1320

1421
2. Click **Add** to save the API key to the keystore.
1522

16-
5. Restart the local deployment to reload the keystore with its new setting. To do that, go to the deployment's main page (named after your deployment's name), locate the **Actions** menu, and select **Restart {{es}}**.<br>
23+
5. Restart the local deployment to reload the keystore with its new setting. To do that, go to the deployment's main page (named after your deployment's name), locate the **Actions** menu, and select **Restart {{es}}**.
1724

1825
::::{note}
1926
If the local deployment runs on version 8.14 or greater, you no longer need to perform this step because the keystore is reloaded automatically with the new API keys.
2027
::::
2128

22-
23-
If you need to update the remote connection with different permissions later, refer to [Change a cross-cluster API key used for a remote connection](/deploy-manage/remote-clusters/ece-edit-remove-trusted-environment.md#ece-edit-remove-trusted-environment-api-key).
29+
If you need to update the remote connection with different permissions later, refer to [Change a cross-cluster API key used for a remote connection](/deploy-manage/remote-clusters/ece-edit-remove-trusted-environment.md#edit-remove-trusted-environment-api-key).
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<!--
2+
This snippet is in use in the following locations:
3+
- ec-remote-cluster-self-managed.md
4+
- ec-remote-cluster-ece.md
5+
6+
It requires remote_type substitution to be defined
7+
-->
8+
1. Log in to the [{{ecloud}} Console](https://cloud.elastic.co?page=docs&placement=docs-body).
9+
2. On the home page, find your hosted deployment and select **Manage** to access it directly. Or, select **Hosted deployments** to go to the **Hosted deployments** page to view all of your deployments.
10+
11+
On the **Hosted deployments** page you can narrow your deployments by name, ID, or choose from several other filters. To customize your view, use a combination of filters, or change the format from a grid to a list.
12+
13+
3. From the navigation menu, select **Security**.
14+
4. Select **Remote Connections > Add trusted environment** and choose **{{remote_type}}**. Then click **Next**.
15+
5. Select **API keys** as authentication mechanism and click **Next**.
16+
6. When asked whether the Certificate Authority (CA) of the remote environment’s proxy or load-balancing infrastructure is public, select **No, it is private**.
17+
7. Add the API key:
18+
19+
1. Fill both fields.
20+
21+
* For the **Remote cluster name**, enter the alias of your choice. You will use this alias to connect to the remote cluster later. It must be lowercase and only contain letters, numbers, dashes and underscores.
22+
* For the **Cross-cluster API key**, paste the encoded cross-cluster API key.
23+
24+
2. Click **Add** to save the API key to the keystore.
25+
3. Repeat these steps for each API key you want to add. For example, if you want to use several clusters of the remote environment for CCR or CCS.
26+
27+
8. Add the CA certificate of the remote environment.
28+
9. Provide a name for the trusted environment. That name will appear in the trust summary of your deployment's **Security** page.
29+
10. Select **Create trust** to complete the configuration.
30+
11. Restart the local deployment to reload the keystore with its new setting. To do that, go to the deployment's main page, locate the **Actions** menu, and select **Restart {{es}}**.
31+
32+
::::{note}
33+
If the local deployment runs on version 8.14 or greater, you no longer need to perform this step because the keystore is reloaded automatically with the new API keys.
34+
::::
35+
36+
If you need to update the remote connection with different permissions later, refer to [Change a cross-cluster API key used for a remote connection](/deploy-manage/remote-clusters/ec-edit-remove-trusted-environment.md#edit-remove-trusted-environment-api-key).

deploy-manage/remote-clusters/_snippets/apikeys-local-ech-remote-public.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
<!--
2+
This snippet is in use in the following locations:
3+
- ec-remote-cluster-self-managed.md
4+
- ec-remote-cluster-same-ess.md
5+
- ec-remote-cluster-other-ess.md
6+
- ec-remote-cluster-ece.md
7+
-->
18
1. Log in to the [{{ecloud}} Console](https://cloud.elastic.co?page=docs&placement=docs-body).
29
2. On the home page, find your hosted deployment and select **Manage** to access it directly. Or, select **Hosted deployments** to go to the **Hosted deployments** page to view all of your deployments.
310

@@ -13,11 +20,10 @@
1320

1421
2. Click **Add** to save the API key.
1522

16-
5. Restart the local deployment to reload the new setting. To do that, go to the deployment's main page (named after your deployment's name), locate the **Actions** menu, and select **Restart {{es}}**.<br>
23+
5. Restart the local deployment to reload the new setting. To do that, go to the deployment's main page (named after your deployment's name), locate the **Actions** menu, and select **Restart {{es}}**.
1724

1825
::::{note}
1926
If the local deployment runs on version 8.14 or greater, you no longer need to perform this step because the keystore is reloaded automatically with the new API keys.
2027
::::
2128

22-
23-
If you need to update the remote connection with different permissions later, refer to [Change a cross-cluster API key used for a remote connection](/deploy-manage/remote-clusters/ec-edit-remove-trusted-environment.md#ec-edit-remove-trusted-environment-api-key).
29+
If you need to update the remote connection with different permissions later, refer to [Change a cross-cluster API key used for a remote connection](/deploy-manage/remote-clusters/ec-edit-remove-trusted-environment.md#edit-remove-trusted-environment-api-key).

deploy-manage/remote-clusters/_snippets/rcs-elasticsearch-api-snippet-self.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ This snippet is in use in the following locations:
33
- ece-remote-cluster-self-managed.md
44
- ec-remote-cluster-self-managed.md
55
-->
6-
To configure a self-managed cluster as a remote cluster, use the [cluster update settings API](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-cluster-put-settings). Configure the following fields:
6+
To add a remote cluster, use the [cluster update settings API](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-cluster-put-settings). Configure the following fields:
77

88
* `Remote cluster alias`: When using API key authentication, the cluster alias must match the one you configured when adding the API key in the Cloud UI as **Remote cluster name**.
99
* `mode`: `proxy`
10-
* `proxy_address`: Enter the endpoint of the remote self-managed cluster, including the hostname, FQDN, or IP address, and the port. Both IPv4 and IPv6 addresses are supported.
10+
* `proxy_address`: Enter the endpoint of the remote cluster, including the hostname, FQDN, or IP address, and the port. Both IPv4 and IPv6 addresses are supported.
1111

1212
Make sure you use the correct port for your authentication method:
1313
* **API keys**: Use the port configured in the remote cluster interface of the remote cluster (defaults to `9443`).

deploy-manage/remote-clusters/_snippets/rcs-elasticsearch-api-snippet.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ To configure a deployment as a remote cluster, use the [cluster update settings
1313

1414
* `Remote cluster alias`: When using API key authentication, the cluster alias must match the one you configured when adding the API key in the Cloud UI as **Remote cluster name**.
1515
* `mode`: `proxy`
16-
* `proxy_address`: This value can be found on the **Security** page of the {{remote_type}} you want to use as a remote. Copy the **Proxy address** from the **Remote cluster parameters** section.
16+
* `proxy_address`: This value can be found on the **Security** page of the {{remote_type}} deployment you want to use as a remote. Copy the **Proxy address** from the **Remote cluster parameters** section.
1717

1818
Using the API, this value can be obtained from the {{es}} resource info, concatenating the field `metadata.endpoint` and port `9400` using a semicolon.
1919

2020
::::{note}
2121
If you’re using API keys as security model, change the port to `9443`.
2222
::::
2323

24-
* `server_name`: This value can be found on the **Security** page of the {{remote_type}} you want to use as a remote. Copy the **Server name** from the **Remote cluster parameters** section.
24+
* `server_name`: This value can be found on the **Security** page of the {{remote_type}} deployment you want to use as a remote. Copy the **Server name** from the **Remote cluster parameters** section.
2525

2626
Using the API, this can be obtained from the {{es}} resource info field `metadata.endpoint`.
2727

deploy-manage/remote-clusters/_snippets/rcs-kibana-api-snippet-self.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ This snippet is in use in the following locations:
1212
* **Remote cluster name**: This *cluster alias* is a unique identifier that represents the connection to the remote cluster and is used to distinguish local and remote indices.
1313

1414
When using API key authentication, this alias must match the **Remote cluster name** you configured when adding the API key in the Cloud UI.
15-
* **Remote address**: Enter the endpoint of the remote self-managed cluster, including the hostname, FQDN, or IP address, and the port.
15+
* **Remote address**: Enter the endpoint of the remote cluster, including the hostname, FQDN, or IP address, and the port.
1616

1717
Make sure you use the correct port for your authentication method:
1818
* **API keys**: Use the port configured in the remote cluster interface of the remote cluster (defaults to `9443`).

0 commit comments

Comments
 (0)