Type to search.

Create or update roles

  • POST also PUT /_security/role/{name}
Auth

The role management APIs are generally the preferred way to manage roles in the native realm, rather than using file-based role management. The create or update roles API cannot update roles that are defined in roles files. File-based role management is not available in Elastic Serverless.

Read the reference documentation

Required privileges

Cluster privileges manage_security

Path parameters

name string required

The name of the role.

Query parameters

refresh enum

If true (the default) then refresh the affected shards to make this operation visible to search, if wait_for then wait for a refresh to make this operation visible to search, if false then do nothing with refreshes.

Values: true false wait_for

Request body

cluster union anyOf[]

A list of cluster privileges. These privileges define the cluster-level actions for users with this role.

Values: all cancel_task create_snapshot cross_cluster_replication cross_cluster_search delegate_pki grant_api_key manage manage_api_key manage_autoscaling manage_behavioral_analytics manage_ccr
global map string to object

An object defining global privileges. A global privilege is a form of cluster privilege that is request-aware. Support for global privileges is currently limited to the management of application privileges.

metadata object

Optional metadata. Within the metadata object, keys that begin with an underscore (_) are reserved for system use.

run_as string[]

A list of users that the owners of this role can impersonate. Note: in Serverless, the run-as feature is disabled. For API compatibility, you can still specify an empty run_as field, but a non-empty list will be rejected.

description string

Optional description of the role descriptor

transient_metadata map string to object

Indicates roles that might be incompatible with the current cluster license, specifically roles with document and field level security. When the cluster license doesn’t allow certain features for a given role, this parameter is updated dynamically to list the incompatible features. If enabled is false, the role is ignored, but is still listed in the response from the authenticate API.

Response

application/json
role object required

When an existing role is updated, created is set to false.

created boolean required