Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Docs] Add documentation on multiple tenants #103125

Merged
merged 3 commits into from
Jul 1, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions docs/spaces/index.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ Kibana supports spaces in several ways. You can:

The `kibana_admin` role or equivilent is required to manage **Spaces**.

TIP: Looking to support multiple tenants? See <<xpack-security-multiple-tenants, the Security documentation>> for more information.

[float]
[[spaces-managing]]
=== View, create, and delete spaces
Expand Down
16 changes: 15 additions & 1 deletion docs/user/security/authorization/index.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,21 @@ The Elastic Stack comes with the `kibana_admin` {ref}/built-in-roles.html[built-

When you assign a user multiple roles, the user receives a union of the roles’ privileges. Therefore, assigning the `kibana_admin` role in addition to a custom role that grants {kib} privileges is ineffective because `kibana_admin` has access to all the features in all spaces.

NOTE: When running multiple tenants of {kib} by changing the `kibana.index` in your `kibana.yml`, you cannot use `kibana_admin` to grant access. You must create custom roles that authorize the user for that specific tenant. Although multi-tenant installations are supported, the recommended approach to securing access to {kib} segments is to grant users access to specific spaces.
[[xpack-security-multiple-tenants]]
==== Supporting multiple tenants

There are two approaches to supporting multi-tenancy in {kib}:

1. *Recommended:* create a space and a limited role for each tenant, and configure each user with the appropriate role.
jportner marked this conversation as resolved.
Show resolved Hide resolved
2. deprecated:[7.13.0,"In 8.0 and later, the `kibana.index` setting will no longer be supported."] Set up separate {kib} instances to work
with a single {es} cluster by changing the `kibana.index` setting in your `kibana.yml` file.
+
NOTE: When using multiple {kib} instances this way, you cannot use the `kibana_admin` role to grant access. You must create custom roles
that authorize the user for each specific instance.

Whichever approach you use, be aware that you need to be careful when granting cluster privileges and index privileges. Both of these
jportner marked this conversation as resolved.
Show resolved Hide resolved
approaches share the same {es} cluster, and {kib} spaces do not prevent you from granting users of two different tenants access to the same
index.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kibana's feature privileges alone won't grant direct access to any indices. This was the clearest and most concise way I could think of to address @grabowskit's concerns in #96101 (comment), but if anyone has suggestions on how this could be worded differently, please do share!


[role="xpack"]
[[xpack-kibana-role-management]]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ This guide introduces you to three of {kib}'s security features: spaces, roles,
[float]
=== Spaces

Do you have multiple teams using {kib}? Do you want a “playground” to experiment with new visualizations or alerts? If so, then <<xpack-spaces,{kib} Spaces>> can help.
Do you have multiple teams or tenants using {kib}? Do you want a “playground” to experiment with new visualizations or alerts? If so, then <<xpack-spaces,{kib} Spaces>> can help.

Think of a space as another instance of {kib}. A space allows you to organize your <<dashboard, dashboards>>, <<alerting-getting-started, alerts>>, <<xpack-ml, machine learning jobs>>, and much more into their own categories. For example, you might have a Marketing space for your marketeers to track the results of their campaigns, and an Engineering space for your developers to {apm-get-started-ref}/overview.html[monitor application performance].

Expand Down