Get roles

  • GET /_security/role/{name}
  • GET /_security/role
Auth

Get roles in the native realm. The role management APIs are generally the preferred way to manage roles, rather than using file-based role management. The get roles API cannot retrieve roles that are defined in roles files.

Required authorization

Cluster privileges read_security

Path parameters

name union string | string[] optional

The name of the role. You can specify multiple roles as a comma-separated list. If you do not specify this parameter, the API returns information about all roles.

Leave it out to use /_security/role.

Query parameters

include_implicit boolean · default: false

If true, include privileges that are implicitly granted by registered ImplicitPrivilegesProviders alongside the explicitly configured privileges. Each implicit entry in the response is annotated with implicitly_granted: true.

Response

application/json
<string> object
cluster union anyOf[] required
Values: all cancel_task clone_api_key create_snapshot cross_cluster_replication cross_cluster_search delegate_pki grant_api_key manage manage_api_key manage_autoscaling manage_behavioral_analytics
indices object[] required
implicitly_granted boolean

Set to true on entries that were contributed by a registered ImplicitPrivilegesProvider rather than explicitly stored on the role. Only present when the get role API is called with include_implicit=true. The put role API rejects this field, so clients must not echo it back on a GET-then-PUT round-trip.

field_security object

The document fields that the owners of the role have read access to.

except union oneOf
One of: string[] or string
grant union oneOf
One of: string[] or string
names union string | string[] required

A list of indices (or index name patterns) to which the permissions in this entry apply.

privileges union anyOf[] required

The index level privileges that owners of the role have on the specified indices.

Values: all auto_configure create create_doc create_index create_view cross_cluster_replication cross_cluster_replication_internal delete delete_index delete_view index
query union oneOf

A search query that defines the documents the owners of the role have access to. A document within the specified indices must match this query for it to be accessible by the owners of the role.

One of:
allow_restricted_indices boolean · default: false

Set to true if using wildcard or regular expressions for patterns that cover restricted indices. Implicitly, restricted indices have limited privileges that can cause pattern tests to fail. If restricted indices are explicitly included in the names list, Elasticsearch checks privileges against these indices regardless of the value set for allow_restricted_indices.

remote_indices object[]
clusters union oneOf required

A list of cluster aliases to which the permissions in this entry apply.

One of: string[] or string
field_security object

The document fields that the owners of the role have read access to.

except union oneOf
One of: string[] or string
grant union oneOf
One of: string[] or string
names union string | string[] required

A list of indices (or index name patterns) to which the permissions in this entry apply.

privileges union anyOf[] required

The index level privileges that owners of the role have on the specified indices.

Values: all auto_configure create create_doc create_index create_view cross_cluster_replication cross_cluster_replication_internal delete delete_index delete_view index
query union oneOf

A search query that defines the documents the owners of the role have access to. A document within the specified indices must match this query for it to be accessible by the owners of the role.

One of:
allow_restricted_indices boolean · default: false

Set to true if using wildcard or regular expressions for patterns that cover restricted indices. Implicitly, restricted indices have limited privileges that can cause pattern tests to fail. If restricted indices are explicitly included in the names list, Elasticsearch checks privileges against these indices regardless of the value set for allow_restricted_indices.

remote_cluster object[]
clusters union oneOf required

A list of cluster aliases to which the permissions in this entry apply.

One of: string[] or string
privileges enum[] required

The cluster level privileges that owners of the role have on the remote cluster.

Values: monitor_enrich monitor_stats
metadata object required
description string
run_as string[]
transient_metadata map string to object
applications object[] required
application string required

The name of the application to which this entry applies.

privileges string[] required

A list of strings, where each element is the name of an application privilege or action.

resources string[] required

A list resources to which the privileges are applied.

role_templates object[]
format enum
Values: string json
template string required
global object
application object
manage object

The applications for which application privileges can be managed. Absent when the application section is present but grants no privileges.

applications string[] required
profile object

A privilege that grants the ability to write the data and access sections of user profiles for the specified applications.

write object

The applications for which user profile data can be written. Absent when the profile section is present but grants no privileges.

applications string[] required
role object

A privilege that grants the ability to manage roles that are scoped to the specified indices.

manage object

The index-scoped role management privileges. Absent when the role section is present but grants no privileges.

indices object[] required
names string[] required

A list of indices (or index name patterns) that the owners of the role can manage roles for.

privileges string[] required

The index privileges that the managed roles are allowed to grant on the specified indices.

data_source object[]

A list of data source privilege entries, used to grant access to ES|QL data sources.

names string[] required

A list of data source names or wildcard patterns to which the permissions in this entry apply.

privileges union anyOf[] required

The data source privileges that owners of the role have for the specified data sources.

Supported values include:

  • create: Grants privilege to create a data source with a matching name.
  • delete: Grants privilege to delete a data source with a matching name.
  • read_metadata: Grants privilege to read a data source's metadata.
  • read: Grants privilege to attach a dataset to a data source with a matching name.
  • manage: Grants all data source privileges, including create, delete, read, and read_metadata.
Values: create delete read_metadata read manage