Skip to content

Commit 01d296a

Browse files
authored
[Docs] For CCS and CCR local cluster determines priviliges of API key (#98205) (#98262)
This PR adds a short call out to our CCS & CCR docs for the existing, certificate-based security model: when API keys are used for authentication, the privileges of the API key are determined by the local cluster, instead of the remote. This is a recurring source of confusion for customers, and generally un-intuitive behavior. I'm opting for a brief call out, instead of diving into too much detail. To fully explain (or justify) this behavior, we would likely need a lot of text and more context around how API keys work. Keeping it short gives users a pointer in the right direction, without distracting from the main documentation of CCS and CCR. LMWYT!
1 parent 03d772e commit 01d296a

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

x-pack/docs/en/security/authentication/remote-clusters-privileges.asciidoc

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ retrieve roles dynamically. When you use the APIs to manage roles in the
1717

1818
The following requests use the
1919
<<security-api-put-role,create or update roles API>>. You must have at least the
20-
`manage_security` cluster privilege to use this API.
20+
`manage_security` cluster privilege to use this API.
2121

2222
[[remote-clusters-privileges-ccr]]
2323
//tag::configure-ccr-privileges[]
@@ -33,8 +33,11 @@ On the remote cluster that contains the leader index, the {ccr} role requires
3333
the `read_ccr` cluster privilege, and `monitor` and `read` privileges on the
3434
leader index.
3535

36-
NOTE: If requests will be issued <<run-as-privilege,on behalf of other users>>,
37-
then the authenticating user must have the `run_as` privilege on the remote
36+
NOTE: If requests are authenticated with an <<security-api-create-api-key, API key>>, the API key
37+
requires the above privileges on the **local** cluster, instead of the remote.
38+
39+
NOTE: If requests are issued <<run-as-privilege,on behalf of other users>>,
40+
then the authenticating user must have the `run_as` privilege on the remote
3841
cluster.
3942

4043
The following request creates a `remote-replication` role on the remote cluster:
@@ -99,7 +102,7 @@ POST /_security/role/remote-replication
99102
}
100103
----
101104

102-
After creating the `remote-replication` role on each cluster, use the
105+
After creating the `remote-replication` role on each cluster, use the
103106
<<security-api-put-user,create or update users API>> to create a user on
104107
the local cluster cluster and assign the `remote-replication` role. For
105108
example, the following request assigns the `remote-replication` role to a user
@@ -133,8 +136,11 @@ local and remote clusters, and then create a user with the required roles.
133136
On the remote cluster, the {ccs} role requires the `read` and
134137
`read_cross_cluster` privileges for the target indices.
135138

136-
NOTE: If requests will be issued <<run-as-privilege,on behalf of other users>>,
137-
then the authenticating user must have the `run_as` privilege on the remote
139+
NOTE: If requests are authenticated with an <<security-api-create-api-key, API key>>, the API key
140+
requires the above privileges on the **local** cluster, instead of the remote.
141+
142+
NOTE: If requests are issued <<run-as-privilege,on behalf of other users>>,
143+
then the authenticating user must have the `run_as` privilege on the remote
138144
cluster.
139145

140146
The following request creates a `remote-search` role on the remote cluster:
@@ -180,7 +186,7 @@ POST /_security/role/remote-search
180186
{}
181187
----
182188

183-
After creating the `remote-search` role on each cluster, use the
189+
After creating the `remote-search` role on each cluster, use the
184190
<<security-api-put-user,create or update users API>> to create a user on the
185191
local cluster and assign the `remote-search` role. For example, the following
186192
request assigns the `remote-search` role to a user named `cross-search-user`:
@@ -263,7 +269,7 @@ Assign your {kib} users a role that grants
263269
PUT /_security/user/cross-cluster-kibana
264270
{
265271
"password" : "l0ng-r4nd0m-p@ssw0rd",
266-
"roles" : [
272+
"roles" : [
267273
"logstash-reader",
268274
"kibana-access"
269275
]

0 commit comments

Comments
 (0)